All functions:
  Elements:
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-kill-session.c:48,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-kill-session.c:49,1
    - Dst: args_has
      Src: /src/tmux/cmd-kill-session.c:53,1
    - Dst: RB_FOREACH
      Src: /src/tmux/cmd-kill-session.c:54,1
    - Dst: server_redraw_session
      Src: /src/tmux/cmd-kill-session.c:58,1
    - Dst: args_has
      Src: /src/tmux/cmd-kill-session.c:59,1
    - Dst: RB_FOREACH_SAFE
      Src: /src/tmux/cmd-kill-session.c:60,1
    - Dst: server_destroy_session
      Src: /src/tmux/cmd-kill-session.c:62,1
    - Dst: session_destroy
      Src: /src/tmux/cmd-kill-session.c:63,1
    - Dst: server_destroy_session
      Src: /src/tmux/cmd-kill-session.c:67,1
    - Dst: session_destroy
      Src: /src/tmux/cmd-kill-session.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 71
    functionName: cmd_kill_session_exec
    functionSourceFile: /src/tmux/cmd-kill-session.c
    functionUses: 0
    functionsReached:
    - session_destroy
    - cmd_get_args
    - server_destroy_session
    - RB_FOREACH
    - RB_FOREACH_SAFE
    - server_redraw_session
    - cmdq_get_target
    - args_has
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_kill_session_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/tmux/window-clock.c:134,1
    - Dst: evtimer_add
      Src: /src/tmux/window-clock.c:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 144
    functionName: window_clock_start_timer
    functionSourceFile: /src/tmux/window-clock.c
    functionUses: 0
    functionsReached:
    - evtimer_add
    - clock_gettime
    linkageType: ''
    returnType: void
    signature: void window_clock_start_timer(struct window_mode_entry *wme)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evtimer_del
      Src: /src/tmux/window-clock.c:155,1
    - Dst: time
      Src: /src/tmux/window-clock.c:157,1
    - Dst: gmtime_r
      Src: /src/tmux/window-clock.c:158,1
    - Dst: gmtime_r
      Src: /src/tmux/window-clock.c:159,1
    - Dst: window_clock_draw_screen
      Src: /src/tmux/window-clock.c:163,1
    - Dst: window_clock_start_timer
      Src: /src/tmux/window-clock.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - int
    - events
    - arg
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 168
    functionName: window_clock_timer_callback
    functionSourceFile: /src/tmux/window-clock.c
    functionUses: 0
    functionsReached:
    - window_clock_draw_screen
    - evtimer_del
    - gmtime_r
    - time
    - window_clock_start_timer
    linkageType: ''
    returnType: void
    signature: void window_clock_timer_callback(__unused int fd, __unused short events,
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/tmux/window-clock.c:178,1
    - Dst: time
      Src: /src/tmux/window-clock.c:179,1
    - Dst: evtimer_set
      Src: /src/tmux/window-clock.c:181,1
    - Dst: window_clock_start_timer
      Src: /src/tmux/window-clock.c:182,1
    - Dst: screen_init
      Src: /src/tmux/window-clock.c:185,1
    - Dst: screen_size_x
      Src: /src/tmux/window-clock.c:185,1
    - Dst: screen_size_y
      Src: /src/tmux/window-clock.c:185,1
    - Dst: window_clock_draw_screen
      Src: /src/tmux/window-clock.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - wme
    - fs
    - args
    argTypes:
    - struct window_mode_entry*
    - __unused*
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 191
    functionName: window_clock_init
    functionSourceFile: /src/tmux/window-clock.c
    functionUses: 0
    functionsReached:
    - screen_size_y
    - window_clock_draw_screen
    - screen_init
    - screen_size_x
    - xmalloc
    - window_clock_start_timer
    - time
    - evtimer_set
    linkageType: ''
    returnType: struct screen
    signature: "struct screen *\nwindow_clock_init(struct window_mode_entry *wme,\n
      \   __unused struct cmd_find_state *fs, __unused struct args *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evtimer_del
      Src: /src/tmux/window-clock.c:198,1
    - Dst: screen_free
      Src: /src/tmux/window-clock.c:199,1
    - Dst: free
      Src: /src/tmux/window-clock.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 201
    functionName: window_clock_free
    functionSourceFile: /src/tmux/window-clock.c
    functionUses: 0
    functionsReached:
    - evtimer_del
    - free
    - screen_free
    linkageType: ''
    returnType: void
    signature: void window_clock_free(struct window_mode_entry *wme)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: screen_resize
      Src: /src/tmux/window-clock.c:209,1
    - Dst: window_clock_draw_screen
      Src: /src/tmux/window-clock.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - wme
    - sx
    - sy
    argTypes:
    - struct window_mode_entry*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 211
    functionName: window_clock_resize
    functionSourceFile: /src/tmux/window-clock.c
    functionUses: 0
    functionsReached:
    - window_clock_draw_screen
    - screen_resize
    linkageType: ''
    returnType: void
    signature: void window_clock_resize(struct window_mode_entry *wme, u_int sx, u_int
      sy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_pane_reset_mode
      Src: /src/tmux/window-clock.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - wme
    - c
    - s
    - wl
    - key_code
    - m
    argTypes:
    - struct window_mode_entry*
    - __unused*
    - __unused*
    - __unused*
    - __unused
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 219
    functionName: window_clock_key
    functionSourceFile: /src/tmux/window-clock.c
    functionUses: 0
    functionsReached:
    - window_pane_reset_mode
    linkageType: ''
    returnType: void
    signature: "void window_clock_key(struct window_mode_entry *wme, __unused struct
      client *c,\n    __unused struct session *s, __unused struct winlink *wl,\n    __unused
      key_code key, __unused struct mouse_event *m)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/window-clock.c:235,1
    - Dst: options_get_number
      Src: /src/tmux/window-clock.c:236,1
    - Dst: screen_write_start
      Src: /src/tmux/window-clock.c:238,1
    - Dst: time
      Src: /src/tmux/window-clock.c:240,1
    - Dst: localtime
      Src: /src/tmux/window-clock.c:241,1
    - Dst: strftime
      Src: /src/tmux/window-clock.c:244,1
    - Dst: localtime
      Src: /src/tmux/window-clock.c:244,1
    - Dst: strftime
      Src: /src/tmux/window-clock.c:246,1
    - Dst: localtime
      Src: /src/tmux/window-clock.c:246,1
    - Dst: strlcat
      Src: /src/tmux/window-clock.c:248,1
    - Dst: strlcat
      Src: /src/tmux/window-clock.c:250,1
    - Dst: strftime
      Src: /src/tmux/window-clock.c:253,1
    - Dst: strftime
      Src: /src/tmux/window-clock.c:255,1
    - Dst: screen_write_clearscreen
      Src: /src/tmux/window-clock.c:258,1
    - Dst: screen_size_x
      Src: /src/tmux/window-clock.c:260,1
    - Dst: strlen
      Src: /src/tmux/window-clock.c:260,1
    - Dst: screen_size_y
      Src: /src/tmux/window-clock.c:260,1
    - Dst: screen_size_x
      Src: /src/tmux/window-clock.c:261,1
    - Dst: strlen
      Src: /src/tmux/window-clock.c:261,1
    - Dst: screen_size_y
      Src: /src/tmux/window-clock.c:261,1
    - Dst: screen_size_x
      Src: /src/tmux/window-clock.c:262,1
    - Dst: strlen
      Src: /src/tmux/window-clock.c:262,1
    - Dst: screen_size_y
      Src: /src/tmux/window-clock.c:263,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-clock.c:264,1
    - Dst: memcpy
      Src: /src/tmux/window-clock.c:266,1
    - Dst: screen_write_puts
      Src: /src/tmux/window-clock.c:269,1
    - Dst: screen_write_stop
      Src: /src/tmux/window-clock.c:272,1
    - Dst: screen_size_x
      Src: /src/tmux/window-clock.c:276,1
    - Dst: strlen
      Src: /src/tmux/window-clock.c:276,1
    - Dst: screen_size_y
      Src: /src/tmux/window-clock.c:277,1
    - Dst: memcpy
      Src: /src/tmux/window-clock.c:279,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-clock.c:301,1
    - Dst: screen_write_putc
      Src: /src/tmux/window-clock.c:303,1
    - Dst: screen_write_stop
      Src: /src/tmux/window-clock.c:309,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 310
    functionName: window_clock_draw_screen
    functionSourceFile: /src/tmux/window-clock.c
    functionUses: 3
    functionsReached:
    - screen_size_y
    - screen_write_puts
    - localtime
    - screen_size_x
    - screen_write_putc
    - screen_write_cursormove
    - screen_write_clearscreen
    - strlcat
    - time
    - memcpy
    - strlen
    - options_get_number
    - screen_write_start
    - screen_write_stop
    - strftime
    linkageType: ''
    returnType: void
    signature: void window_clock_draw_screen(struct window_mode_entry *wme)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-switch-client.c:51,1
    - Dst: cmdq_get_current
      Src: /src/tmux/cmd-switch-client.c:52,1
    - Dst: args_get
      Src: /src/tmux/cmd-switch-client.c:54,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-switch-client.c:57,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/cmd-switch-client.c:58,1
    - Dst: strcspn
      Src: /src/tmux/cmd-switch-client.c:69,1
    - Dst: strcmp
      Src: /src/tmux/cmd-switch-client.c:69,1
    - Dst: cmd_find_target
      Src: /src/tmux/cmd-switch-client.c:76,1
    - Dst: args_has
      Src: /src/tmux/cmd-switch-client.c:82,1
    - Dst: proc_get_peer_uid
      Src: /src/tmux/cmd-switch-client.c:84,1
    - Dst: getuid
      Src: /src/tmux/cmd-switch-client.c:85,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-switch-client.c:86,1
    - Dst: args_get
      Src: /src/tmux/cmd-switch-client.c:96,1
    - Dst: key_bindings_get_table
      Src: /src/tmux/cmd-switch-client.c:98,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-switch-client.c:100,1
    - Dst: key_bindings_unref_table
      Src: /src/tmux/cmd-switch-client.c:104,1
    - Dst: sort_order_from_string
      Src: /src/tmux/cmd-switch-client.c:109,1
    - Dst: args_get
      Src: /src/tmux/cmd-switch-client.c:109,1
    - Dst: args_has
      Src: /src/tmux/cmd-switch-client.c:110,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-switch-client.c:111,1
    - Dst: args_has
      Src: /src/tmux/cmd-switch-client.c:114,1
    - Dst: args_has
      Src: /src/tmux/cmd-switch-client.c:116,1
    - Dst: session_next_session
      Src: /src/tmux/cmd-switch-client.c:117,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-switch-client.c:119,1
    - Dst: args_has
      Src: /src/tmux/cmd-switch-client.c:122,1
    - Dst: session_previous_session
      Src: /src/tmux/cmd-switch-client.c:123,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-switch-client.c:125,1
    - Dst: args_has
      Src: /src/tmux/cmd-switch-client.c:128,1
    - Dst: session_alive
      Src: /src/tmux/cmd-switch-client.c:129,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-switch-client.c:134,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-switch-client.c:138,1
    - Dst: window_push_zoom
      Src: /src/tmux/cmd-switch-client.c:142,1
    - Dst: args_has
      Src: /src/tmux/cmd-switch-client.c:142,1
    - Dst: server_redraw_window
      Src: /src/tmux/cmd-switch-client.c:143,1
    - Dst: window_redraw_active_switch
      Src: /src/tmux/cmd-switch-client.c:144,1
    - Dst: window_set_active_pane
      Src: /src/tmux/cmd-switch-client.c:145,1
    - Dst: window_pop_zoom
      Src: /src/tmux/cmd-switch-client.c:146,1
    - Dst: server_redraw_window
      Src: /src/tmux/cmd-switch-client.c:147,1
    - Dst: session_set_current
      Src: /src/tmux/cmd-switch-client.c:150,1
    - Dst: cmd_find_from_session
      Src: /src/tmux/cmd-switch-client.c:151,1
    - Dst: args_has
      Src: /src/tmux/cmd-switch-client.c:155,1
    - Dst: environ_update
      Src: /src/tmux/cmd-switch-client.c:156,1
    - Dst: server_client_set_session
      Src: /src/tmux/cmd-switch-client.c:158,1
    - Dst: cmdq_get_flags
      Src: /src/tmux/cmd-switch-client.c:159,1
    - Dst: server_client_set_key_table
      Src: /src/tmux/cmd-switch-client.c:160,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 88
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 163
    functionName: cmd_switch_client_exec
    functionSourceFile: /src/tmux/cmd-switch-client.c
    functionUses: 0
    functionsReached:
    - proc_get_peer_uid
    - server_redraw_window
    - window_redraw_active_switch
    - environ_update
    - strcspn
    - cmdq_get_client
    - session_previous_session
    - session_set_current
    - args_has
    - server_client_set_key_table
    - cmdq_get_current
    - window_push_zoom
    - window_pop_zoom
    - cmdq_get_flags
    - cmdq_get_target_client
    - args_get
    - getuid
    - cmd_find_target
    - cmd_get_args
    - cmd_find_from_session
    - server_client_set_session
    - key_bindings_get_table
    - key_bindings_unref_table
    - cmdq_error
    - session_next_session
    - session_alive
    - strcmp
    - sort_order_from_string
    - window_set_active_pane
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_switch_client_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w1
    - w2
    argTypes:
    - struct window*
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: window_cmp
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int window_cmp(struct window *w1, struct window *w2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wl1
    - wl2
    argTypes:
    - struct winlink*
    - struct winlink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: winlink_cmp
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int winlink_cmp(struct winlink *wl1, struct winlink *wl2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wp1
    - wp2
    argTypes:
    - struct window_pane*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: window_pane_cmp
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int window_pane_cmp(struct window_pane *wp1, struct window_pane *wp2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - wwl
    - w
    argTypes:
    - struct winlinks*
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 109
    functionName: winlink_find_by_window
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct winlink
    signature: 'struct winlink *

      winlink_find_by_window(struct winlinks *wwl, struct window *w)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: RB_FOREACH
    functionSourceFile: /src/tmux/window.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RB_FOREACH(wl, winlinks, wwl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fatalx
      Src: /src/tmux/window.c:117,1
    - Dst: RB_FIND
      Src: /src/tmux/window.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - wwl
    - idx
    argTypes:
    - struct winlinks*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 121
    functionName: winlink_find_by_index
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - fatalx
    - RB_FIND
    linkageType: ''
    returnType: struct winlink
    signature: 'struct winlink *

      winlink_find_by_index(struct winlinks *wwl, int idx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - wwl
    - id
    argTypes:
    - struct winlinks*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 133
    functionName: winlink_find_by_window_id
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct winlink
    signature: 'struct winlink *

      winlink_find_by_window_id(struct winlinks *wwl, u_int id)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: RB_FOREACH
    functionSourceFile: /src/tmux/window.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RB_FOREACH(wl, winlinks, wwl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: winlink_find_by_index
      Src: /src/tmux/window.c:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - wwl
    - idx
    argTypes:
    - struct winlinks*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 150
    functionName: winlink_next_index
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - winlink_find_by_index
    linkageType: ''
    returnType: int
    signature: int winlink_next_index(struct winlinks *wwl, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/window.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - wwl
    argTypes:
    - struct winlinks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 163
    functionName: winlink_count
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - RB_FOREACH
    linkageType: ''
    returnType: u_int
    signature: u_int winlink_count(struct winlinks *wwl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: winlink_next_index
      Src: /src/tmux/window.c:171,1
    - Dst: winlink_find_by_index
      Src: /src/tmux/window.c:173,1
    - Dst: xcalloc
      Src: /src/tmux/window.c:176,1
    - Dst: RB_INSERT
      Src: /src/tmux/window.c:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - wwl
    - idx
    argTypes:
    - struct winlinks*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 181
    functionName: winlink_add
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - winlink_next_index
    - winlink_find_by_index
    - RB_INSERT
    linkageType: ''
    returnType: struct winlink
    signature: 'struct winlink *

      winlink_add(struct winlinks *wwl, int idx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/window.c:187,1
    - Dst: window_remove_ref
      Src: /src/tmux/window.c:188,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/window.c:190,1
    - Dst: window_add_ref
      Src: /src/tmux/window.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - wl
    - w
    argTypes:
    - struct winlink*
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 193
    functionName: winlink_set_window
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - window_add_ref
    - TAILQ_INSERT_TAIL
    - window_remove_ref
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void winlink_set_window(struct winlink *wl, struct window *w)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/window.c:201,1
    - Dst: window_remove_ref
      Src: /src/tmux/window.c:202,1
    - Dst: RB_REMOVE
      Src: /src/tmux/window.c:205,1
    - Dst: free
      Src: /src/tmux/window.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - wwl
    - wl
    argTypes:
    - struct winlinks*
    - struct winlink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: winlink_remove
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - free
    - RB_REMOVE
    - window_remove_ref
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void winlink_remove(struct winlinks *wwl, struct winlink *wl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_NEXT
      Src: /src/tmux/window.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - wl
    argTypes:
    - struct winlink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: winlink_next
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - RB_NEXT
    linkageType: ''
    returnType: struct winlink
    signature: 'struct winlink *

      winlink_next(struct winlink *wl)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_PREV
      Src: /src/tmux/window.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - wl
    argTypes:
    - struct winlink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: winlink_previous
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - RB_PREV
    linkageType: ''
    returnType: struct winlink
    signature: 'struct winlink *

      winlink_previous(struct winlink *wl)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_NEXT
      Src: /src/tmux/window.c:225,1
    - Dst: RB_MIN
      Src: /src/tmux/window.c:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - wl
    - s
    - n
    argTypes:
    - struct winlink*
    - struct session*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 230
    functionName: winlink_next_by_number
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - RB_NEXT
    - RB_MIN
    linkageType: ''
    returnType: struct winlink
    signature: 'struct winlink *

      winlink_next_by_number(struct winlink *wl, struct session *s, int n)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_PREV
      Src: /src/tmux/window.c:236,1
    - Dst: RB_MAX
      Src: /src/tmux/window.c:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - wl
    - s
    - n
    argTypes:
    - struct winlink*
    - struct session*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 241
    functionName: winlink_previous_by_number
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - RB_MAX
    - RB_PREV
    linkageType: ''
    returnType: struct winlink
    signature: 'struct winlink *

      winlink_previous_by_number(struct winlink *wl, struct session *s, int n)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: winlink_stack_remove
      Src: /src/tmux/window.c:249,1
    - Dst: TAILQ_INSERT_HEAD
      Src: /src/tmux/window.c:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - stack
    - wl
    argTypes:
    - struct winlink_stack*
    - struct winlink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 252
    functionName: winlink_stack_push
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - TAILQ_INSERT_HEAD
    - winlink_stack_remove
    linkageType: ''
    returnType: void
    signature: void winlink_stack_push(struct winlink_stack *stack, struct winlink
      *wl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/window.c:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - stack
    - wl
    argTypes:
    - struct winlink_stack*
    - struct winlink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 261
    functionName: winlink_stack_remove
    functionSourceFile: /src/tmux/window.c
    functionUses: 1
    functionsReached:
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void winlink_stack_remove(struct winlink_stack *stack, struct winlink
      *wl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtonum
      Src: /src/tmux/window.c:272,1
    - Dst: window_find_by_id
      Src: /src/tmux/window.c:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 276
    functionName: window_find_by_id_str
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - strtonum
    - window_find_by_id
    linkageType: ''
    returnType: struct window
    signature: 'struct window *

      window_find_by_id_str(const char *s)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FIND
      Src: /src/tmux/window.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 285
    functionName: window_find_by_id
    functionSourceFile: /src/tmux/window.c
    functionUses: 1
    functionsReached:
    - RB_FIND
    linkageType: ''
    returnType: struct window
    signature: 'struct window *

      window_find_by_id(u_int id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/tmux/window.c:290,1
    - Dst: alerts_queue
      Src: /src/tmux/window.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 292
    functionName: window_update_activity
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - alerts_queue
    - gettimeofday
    linkageType: ''
    returnType: void
    signature: void window_update_activity(struct window *w)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/window.c:304,1
    - Dst: xstrdup
      Src: /src/tmux/window.c:305,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/window.c:308,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/window.c:309,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/window.c:310,1
    - Dst: options_create
      Src: /src/tmux/window.c:323,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/window.c:326,1
    - Dst: RB_INSERT
      Src: /src/tmux/window.c:329,1
    - Dst: window_set_fill_character
      Src: /src/tmux/window.c:331,1
    - Dst: gettimeofday
      Src: /src/tmux/window.c:333,1
    - Dst: fatal
      Src: /src/tmux/window.c:334,1
    - Dst: window_update_activity
      Src: /src/tmux/window.c:335,1
    - Dst: log_debug
      Src: /src/tmux/window.c:337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 4
    argNames:
    - sx
    - sy
    - xpixel
    - ypixel
    argTypes:
    - u_int
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 340
    functionName: window_create
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - fatal
    - xcalloc
    - gettimeofday
    - log_debug
    - window_set_fill_character
    - options_create
    - xstrdup
    - TAILQ_INIT
    - window_update_activity
    - RB_INSERT
    linkageType: ''
    returnType: struct window
    signature: 'struct window *

      window_create(u_int sx, u_int sy, u_int xpixel, u_int ypixel)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/window.c:345,1
    - Dst: window_unzoom
      Src: /src/tmux/window.c:347,1
    - Dst: RB_REMOVE
      Src: /src/tmux/window.c:348,1
    - Dst: layout_free_cell
      Src: /src/tmux/window.c:350,1
    - Dst: layout_free_cell
      Src: /src/tmux/window.c:351,1
    - Dst: free
      Src: /src/tmux/window.c:352,1
    - Dst: window_destroy_panes
      Src: /src/tmux/window.c:354,1
    - Dst: event_initialized
      Src: /src/tmux/window.c:356,1
    - Dst: evtimer_del
      Src: /src/tmux/window.c:357,1
    - Dst: event_initialized
      Src: /src/tmux/window.c:359,1
    - Dst: evtimer_del
      Src: /src/tmux/window.c:360,1
    - Dst: event_initialized
      Src: /src/tmux/window.c:361,1
    - Dst: event_del
      Src: /src/tmux/window.c:362,1
    - Dst: options_free
      Src: /src/tmux/window.c:364,1
    - Dst: free
      Src: /src/tmux/window.c:365,1
    - Dst: free
      Src: /src/tmux/window.c:367,1
    - Dst: free
      Src: /src/tmux/window.c:368,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 369
    functionName: window_destroy
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - event_del
    - evtimer_del
    - event_initialized
    - options_free
    - layout_free_cell
    - free
    - log_debug
    - RB_REMOVE
    - window_destroy_panes
    - window_unzoom
    linkageType: ''
    returnType: void
    signature: void window_destroy(struct window *w)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/window.c:376,1
    - Dst: ioctl
      Src: /src/tmux/window.c:378,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 384
    functionName: window_pane_destroy_ready
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - ioctl
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: int
    signature: int window_pane_destroy_ready(struct window_pane *wp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/window.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - w
    - from
    argTypes:
    - struct window*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 391
    functionName: window_add_ref
    functionSourceFile: /src/tmux/window.c
    functionUses: 1
    functionsReached:
    - log_debug
    linkageType: ''
    returnType: void
    signature: void window_add_ref(struct window *w, const char *from)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/window.c:397,1
    - Dst: window_destroy
      Src: /src/tmux/window.c:400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - w
    - from
    argTypes:
    - struct window*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 401
    functionName: window_remove_ref
    functionSourceFile: /src/tmux/window.c
    functionUses: 2
    functionsReached:
    - log_debug
    - window_destroy
    linkageType: ''
    returnType: void
    signature: void window_remove_ref(struct window *w, const char *from)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clean_name
      Src: /src/tmux/window.c:408,1
    - Dst: free
      Src: /src/tmux/window.c:410,1
    - Dst: notify_window
      Src: /src/tmux/window.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - w
    - new_name
    argTypes:
    - struct window*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 414
    functionName: window_set_name
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - notify_window
    - clean_name
    - free
    linkageType: ''
    returnType: void
    signature: void window_set_name(struct window *w, const char *new_name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/window.c:424,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - w
    - sx
    - sy
    - xpixel
    - ypixel
    argTypes:
    - struct window*
    - u_int
    - u_int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 433
    functionName: window_resize
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - log_debug
    linkageType: ''
    returnType: void
    signature: void window_resize(struct window *w, u_int sx, u_int sy, int xpixel,
      int ypixel)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/window.c:444,1
    - Dst: memset
      Src: /src/tmux/window.c:446,1
    - Dst: ioctl
      Src: /src/tmux/window.c:451,1
    - Dst: fatal
      Src: /src/tmux/window.c:461,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - wp
    - sx
    - sy
    argTypes:
    - struct window_pane*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 462
    functionName: window_pane_send_resize
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - log_debug
    - memset
    - fatal
    - ioctl
    linkageType: ''
    returnType: void
    signature: void window_pane_send_resize(struct window_pane *wp, u_int sx, u_int
      sy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/window.c:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 474
    functionName: window_has_floating_panes
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH
    linkageType: ''
    returnType: int
    signature: int window_has_floating_panes(struct window *w)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/window.c:481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - w
    - wp
    argTypes:
    - struct window*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 486
    functionName: window_has_pane
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH
    linkageType: ''
    returnType: int
    signature: int window_has_pane(struct window *w, struct window_pane *wp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/window.c:492,1
    - Dst: window_pane_update_focus
      Src: /src/tmux/window.c:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 495
    functionName: window_update_focus
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - log_debug
    - window_pane_update_focus
    linkageType: ''
    returnType: void
    signature: void window_update_focus(struct window *w)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/window.c:507,1
    - Dst: log_debug
      Src: /src/tmux/window.c:519,1
    - Dst: bufferevent_write
      Src: /src/tmux/window.c:521,1
    - Dst: notify_pane
      Src: /src/tmux/window.c:522,1
    - Dst: log_debug
      Src: /src/tmux/window.c:525,1
    - Dst: bufferevent_write
      Src: /src/tmux/window.c:527,1
    - Dst: notify_pane
      Src: /src/tmux/window.c:528,1
    - Dst: log_debug
      Src: /src/tmux/window.c:531,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 533
    functionName: window_pane_update_focus
    functionSourceFile: /src/tmux/window.c
    functionUses: 1
    functionsReached:
    - log_debug
    - bufferevent_write
    - notify_pane
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void window_pane_update_focus(struct window_pane *wp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/window.c:540,1
    - Dst: window_unzoom
      Src: /src/tmux/window.c:545,1
    - Dst: window_pane_stack_remove
      Src: /src/tmux/window.c:548,1
    - Dst: window_pane_stack_push
      Src: /src/tmux/window.c:549,1
    - Dst: options_get_number
      Src: /src/tmux/window.c:555,1
    - Dst: window_pane_update_focus
      Src: /src/tmux/window.c:556,1
    - Dst: window_pane_update_focus
      Src: /src/tmux/window.c:557,1
    - Dst: tty_update_window_offset
      Src: /src/tmux/window.c:560,1
    - Dst: server_redraw_window
      Src: /src/tmux/window.c:561,1
    - Dst: notify_window
      Src: /src/tmux/window.c:564,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - w
    - wp
    - notify
    argTypes:
    - struct window*
    - struct window_pane*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 535
    functionDepth: 2
    functionLinenumber: 535
    functionLinenumberEnd: 566
    functionName: window_set_active_pane
    functionSourceFile: /src/tmux/window.c
    functionUses: 1
    functionsReached:
    - window_pane_update_focus
    - notify_window
    - server_redraw_window
    - window_pane_stack_push
    - window_pane_stack_remove
    - log_debug
    - options_get_number
    - window_unzoom
    - tty_update_window_offset
    linkageType: ''
    returnType: int
    signature: int window_set_active_pane(struct window *w, struct window_pane *wp,
      int notify)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: colour_palette_get
      Src: /src/tmux/window.c:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - wp
    - c
    argTypes:
    - struct window_pane*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 574
    functionName: window_pane_get_palette
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - colour_palette_get
    linkageType: ''
    returnType: int
    signature: int window_pane_get_palette(struct window_pane *wp, int c)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: grid_cells_look_equal
      Src: /src/tmux/window.c:592,1
    - Dst: window_pane_get_palette
      Src: /src/tmux/window.c:595,1
    - Dst: window_pane_get_palette
      Src: /src/tmux/window.c:596,1
    - Dst: window_pane_get_palette
      Src: /src/tmux/window.c:600,1
    - Dst: window_pane_get_palette
      Src: /src/tmux/window.c:601,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/window.c:611,1
    - Dst: TAILQ_INSERT_HEAD
      Src: /src/tmux/window.c:612,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - w
    - wp
    argTypes:
    - struct window*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 576
    functionDepth: 2
    functionLinenumber: 576
    functionLinenumberEnd: 620
    functionName: window_redraw_active_switch
    functionSourceFile: /src/tmux/window.c
    functionUses: 1
    functionsReached:
    - grid_cells_look_equal
    - TAILQ_INSERT_HEAD
    - window_pane_get_palette
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void window_redraw_active_switch(struct window *w, struct window_pane
      *wp)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/window.c:629,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/window.c:631,1
    - Dst: window_pane_visible
      Src: /src/tmux/window.c:632,1
    - Dst: window_pane_full_size_offset
      Src: /src/tmux/window.c:634,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 30
    argCount: 3
    argNames:
    - w
    - x
    - y
    argTypes:
    - struct window*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 661
    functionName: window_get_active_at
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - window_pane_visible
    - window_pane_full_size_offset
    - options_get_number
    - TAILQ_FOREACH
    linkageType: ''
    returnType: struct window_pane
    signature: 'struct window_pane *

      window_get_active_at(struct window *w, u_int x, u_int y)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/window.c:672,1
    - Dst: strcasecmp
      Src: /src/tmux/window.c:678,1
    - Dst: strcasecmp
      Src: /src/tmux/window.c:680,1
    - Dst: strcasecmp
      Src: /src/tmux/window.c:682,1
    - Dst: strcasecmp
      Src: /src/tmux/window.c:684,1
    - Dst: strcasecmp
      Src: /src/tmux/window.c:686,1
    - Dst: strcasecmp
      Src: /src/tmux/window.c:689,1
    - Dst: strcasecmp
      Src: /src/tmux/window.c:692,1
    - Dst: strcasecmp
      Src: /src/tmux/window.c:695,1
    - Dst: window_get_active_at
      Src: /src/tmux/window.c:701,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - w
    - s
    argTypes:
    - struct window*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 663
    functionDepth: 2
    functionLinenumber: 663
    functionLinenumberEnd: 702
    functionName: window_find_string
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - options_get_number
    - window_get_active_at
    - strcasecmp
    linkageType: ''
    returnType: struct window_pane
    signature: 'struct window_pane *

      window_find_string(struct window *w, const char *s)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: window_count_panes
      Src: /src/tmux/window.c:712,1
    - Dst: window_set_active_pane
      Src: /src/tmux/window.c:716,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/window.c:719,1
    - Dst: layout_init
      Src: /src/tmux/window.c:725,1
    - Dst: notify_window
      Src: /src/tmux/window.c:727,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 704
    functionDepth: 3
    functionLinenumber: 704
    functionLinenumberEnd: 730
    functionName: window_zoom
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - layout_init
    - TAILQ_FOREACH
    - notify_window
    - window_count_panes
    - window_set_active_pane
    linkageType: ''
    returnType: int
    signature: int window_zoom(struct window_pane *wp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: layout_free
      Src: /src/tmux/window.c:741,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/window.c:745,1
    - Dst: layout_fix_panes
      Src: /src/tmux/window.c:750,1
    - Dst: notify_window
      Src: /src/tmux/window.c:753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - w
    - notify
    argTypes:
    - struct window*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 756
    functionName: window_unzoom
    functionSourceFile: /src/tmux/window.c
    functionUses: 2
    functionsReached:
    - notify_window
    - TAILQ_FOREACH
    - layout_fix_panes
    - layout_free
    linkageType: ''
    returnType: int
    signature: int window_unzoom(struct window *w, int notify)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/window.c:761,1
    - Dst: window_unzoom
      Src: /src/tmux/window.c:767,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - w
    - always
    - flag
    argTypes:
    - struct window*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 758
    functionDepth: 2
    functionLinenumber: 758
    functionLinenumberEnd: 768
    functionName: window_push_zoom
    functionSourceFile: /src/tmux/window.c
    functionUses: 1
    functionsReached:
    - log_debug
    - window_unzoom
    linkageType: ''
    returnType: int
    signature: int window_push_zoom(struct window *w, int always, int flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/window.c:773,1
    - Dst: window_zoom
      Src: /src/tmux/window.c:776,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 770
    functionDepth: 4
    functionLinenumber: 770
    functionLinenumberEnd: 778
    functionName: window_pop_zoom
    functionSourceFile: /src/tmux/window.c
    functionUses: 1
    functionsReached:
    - log_debug
    - window_zoom
    linkageType: ''
    returnType: int
    signature: int window_pop_zoom(struct window *w)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: window_pane_create
      Src: /src/tmux/window.c:789,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/window.c:790,1
    - Dst: log_debug
      Src: /src/tmux/window.c:791,1
    - Dst: TAILQ_INSERT_HEAD
      Src: /src/tmux/window.c:792,1
    - Dst: log_debug
      Src: /src/tmux/window.c:794,1
    - Dst: TAILQ_INSERT_HEAD
      Src: /src/tmux/window.c:796,1
    - Dst: TAILQ_INSERT_BEFORE
      Src: /src/tmux/window.c:798,1
    - Dst: log_debug
      Src: /src/tmux/window.c:800,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/window.c:802,1
    - Dst: TAILQ_INSERT_AFTER
      Src: /src/tmux/window.c:804,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/window.c:807,1
    - Dst: TAILQ_INSERT_HEAD
      Src: /src/tmux/window.c:810,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - w
    - other
    - hlimit
    - flags
    argTypes:
    - struct window*
    - struct window_pane*
    - u_int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 813
    functionName: window_add_pane
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - TAILQ_INSERT_HEAD
    - log_debug
    - window_pane_create
    - TAILQ_INSERT_BEFORE
    - TAILQ_EMPTY
    - TAILQ_INSERT_AFTER
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: struct window_pane
    signature: "struct window_pane *\nwindow_add_pane(struct window *w, struct window_pane
      *other, u_int hlimit,\n    int flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/window.c:818,1
    - Dst: server_clear_marked
      Src: /src/tmux/window.c:821,1
    - Dst: window_pane_stack_remove
      Src: /src/tmux/window.c:823,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window.c:825,1
    - Dst: TAILQ_PREV
      Src: /src/tmux/window.c:827,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/window.c:829,1
    - Dst: window_pane_stack_remove
      Src: /src/tmux/window.c:832,1
    - Dst: notify_window
      Src: /src/tmux/window.c:834,1
    - Dst: window_update_focus
      Src: /src/tmux/window.c:835,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - w
    - wp
    argTypes:
    - struct window*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 815
    functionDepth: 2
    functionLinenumber: 815
    functionLinenumberEnd: 838
    functionName: window_lost_pane
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - TAILQ_PREV
    - notify_window
    - TAILQ_FIRST
    - window_update_focus
    - window_pane_stack_remove
    - log_debug
    - TAILQ_NEXT
    - server_clear_marked
    linkageType: ''
    returnType: void
    signature: void window_lost_pane(struct window *w, struct window_pane *wp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_lost_pane
      Src: /src/tmux/window.c:843,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/window.c:844,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/window.c:845,1
    - Dst: window_pane_destroy
      Src: /src/tmux/window.c:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - w
    - wp
    argTypes:
    - struct window*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 840
    functionDepth: 3
    functionLinenumber: 840
    functionLinenumberEnd: 847
    functionName: window_remove_pane
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - window_lost_pane
    - window_pane_destroy
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void window_remove_pane(struct window *w, struct window_pane *wp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/window.c:855,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/window.c:856,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - w
    - idx
    argTypes:
    - struct window*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 849
    functionDepth: 1
    functionLinenumber: 849
    functionLinenumberEnd: 862
    functionName: window_pane_at_index
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - options_get_number
    - TAILQ_FOREACH
    linkageType: ''
    returnType: struct window_pane
    signature: 'struct window_pane *

      window_pane_at_index(struct window *w, u_int idx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_NEXT
      Src: /src/tmux/window.c:868,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window.c:869,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - w
    - wp
    - n
    argTypes:
    - struct window*
    - struct window_pane*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 873
    functionName: window_pane_next_by_number
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - TAILQ_NEXT
    - TAILQ_FIRST
    linkageType: ''
    returnType: struct window_pane
    signature: 'struct window_pane *

      window_pane_next_by_number(struct window *w, struct window_pane *wp, u_int n)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_PREV
      Src: /src/tmux/window.c:880,1
    - Dst: TAILQ_LAST
      Src: /src/tmux/window.c:881,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - w
    - wp
    - n
    argTypes:
    - struct window*
    - struct window_pane*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 885
    functionName: window_pane_previous_by_number
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - TAILQ_PREV
    - TAILQ_LAST
    linkageType: ''
    returnType: struct window_pane
    signature: "struct window_pane *\nwindow_pane_previous_by_number(struct window
      *w, struct window_pane *wp,\n    u_int n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/window.c:893,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/window.c:894,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - wp
    - i
    argTypes:
    - struct window_pane*
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 902
    functionName: window_pane_index
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - options_get_number
    - TAILQ_FOREACH
    linkageType: ''
    returnType: int
    signature: int window_pane_index(struct window_pane *wp, u_int *i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/window.c:910,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - w
    - with_floating
    argTypes:
    - struct window*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 915
    functionName: window_count_panes
    functionSourceFile: /src/tmux/window.c
    functionUses: 1
    functionsReached:
    - TAILQ_FOREACH
    linkageType: ''
    returnType: u_int
    signature: u_int window_count_panes(struct window *w, int with_floating)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/window.c:922,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window.c:923,1
    - Dst: window_pane_stack_remove
      Src: /src/tmux/window.c:924,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/window.c:927,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window.c:928,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/window.c:929,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/window.c:930,1
    - Dst: window_pane_destroy
      Src: /src/tmux/window.c:931,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 917
    functionDepth: 1
    functionLinenumber: 917
    functionLinenumberEnd: 933
    functionName: window_destroy_panes
    functionSourceFile: /src/tmux/window.c
    functionUses: 1
    functionsReached:
    - TAILQ_FIRST
    - window_pane_stack_remove
    - TAILQ_EMPTY
    - window_pane_destroy
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void window_destroy_panes(struct window *w)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window.c:953,1
    - Dst: server_check_marked
      Src: /src/tmux/window.c:955,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - wl
    - escape
    argTypes:
    - struct winlink*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 935
    functionDepth: 1
    functionLinenumber: 935
    functionLinenumberEnd: 961
    functionName: window_printable_flags
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - server_check_marked
    - TAILQ_FIRST
    linkageType: ''
    returnType: char
    signature: 'char *

      window_printable_flags(struct winlink *wl, int escape)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window.c:972,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 980
    functionName: window_pane_printable_flags
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    linkageType: ''
    returnType: char
    signature: 'char *

      window_pane_printable_flags(struct window_pane *wp)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtonum
      Src: /src/tmux/window.c:991,1
    - Dst: window_pane_find_by_id
      Src: /src/tmux/window.c:994,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 995
    functionName: window_pane_find_by_id_str
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - window_pane_find_by_id
    - strtonum
    linkageType: ''
    returnType: struct window_pane
    signature: 'struct window_pane *

      window_pane_find_by_id_str(const char *s)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FIND
      Src: /src/tmux/window.c:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 997
    functionDepth: 0
    functionLinenumber: 997
    functionLinenumberEnd: 1004
    functionName: window_pane_find_by_id
    functionSourceFile: /src/tmux/window.c
    functionUses: 1
    functionsReached:
    - RB_FIND
    linkageType: ''
    returnType: struct window_pane
    signature: 'struct window_pane *

      window_pane_find_by_id(u_int id)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/window.c:1012,1
    - Dst: options_create
      Src: /src/tmux/window.c:1014,1
    - Dst: RB_INSERT
      Src: /src/tmux/window.c:1018,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/window.c:1022,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/window.c:1024,1
    - Dst: style_set_scrollbar_style_from_option
      Src: /src/tmux/window.c:1034,1
    - Dst: colour_palette_init
      Src: /src/tmux/window.c:1037,1
    - Dst: colour_palette_from_option
      Src: /src/tmux/window.c:1038,1
    - Dst: screen_init
      Src: /src/tmux/window.c:1040,1
    - Dst: window_pane_default_cursor
      Src: /src/tmux/window.c:1042,1
    - Dst: screen_init
      Src: /src/tmux/window.c:1044,1
    - Dst: style_ranges_init
      Src: /src/tmux/window.c:1045,1
    - Dst: gethostname
      Src: /src/tmux/window.c:1047,1
    - Dst: screen_set_title
      Src: /src/tmux/window.c:1048,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 4
    argNames:
    - w
    - sx
    - sy
    - hlimit
    argTypes:
    - struct window*
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1051
    functionName: window_pane_create
    functionSourceFile: /src/tmux/window.c
    functionUses: 1
    functionsReached:
    - style_set_scrollbar_style_from_option
    - screen_init
    - gethostname
    - xcalloc
    - style_ranges_init
    - colour_palette_from_option
    - window_pane_default_cursor
    - colour_palette_init
    - options_create
    - TAILQ_INIT
    - screen_set_title
    - RB_INSERT
    linkageType: ''
    returnType: struct window_pane
    signature: 'struct window_pane *

      window_pane_create(struct window *w, u_int sx, u_int sy, u_int hlimit)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: window_pane_reset_mode_all
      Src: /src/tmux/window.c:1059,1
    - Dst: free
      Src: /src/tmux/window.c:1060,1
    - Dst: utempter_remove_record
      Src: /src/tmux/window.c:1064,1
    - Dst: kill
      Src: /src/tmux/window.c:1065,1
    - Dst: getpid
      Src: /src/tmux/window.c:1065,1
    - Dst: bufferevent_free
      Src: /src/tmux/window.c:1067,1
    - Dst: close
      Src: /src/tmux/window.c:1068,1
    - Dst: input_free
      Src: /src/tmux/window.c:1071,1
    - Dst: screen_free
      Src: /src/tmux/window.c:1073,1
    - Dst: screen_free
      Src: /src/tmux/window.c:1075,1
    - Dst: bufferevent_free
      Src: /src/tmux/window.c:1078,1
    - Dst: close
      Src: /src/tmux/window.c:1079,1
    - Dst: event_initialized
      Src: /src/tmux/window.c:1082,1
    - Dst: event_del
      Src: /src/tmux/window.c:1083,1
    - Dst: event_initialized
      Src: /src/tmux/window.c:1084,1
    - Dst: event_del
      Src: /src/tmux/window.c:1085,1
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/window.c:1086,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/window.c:1087,1
    - Dst: free
      Src: /src/tmux/window.c:1088,1
    - Dst: RB_REMOVE
      Src: /src/tmux/window.c:1091,1
    - Dst: options_free
      Src: /src/tmux/window.c:1093,1
    - Dst: free
      Src: /src/tmux/window.c:1094,1
    - Dst: free
      Src: /src/tmux/window.c:1095,1
    - Dst: cmd_free_argv
      Src: /src/tmux/window.c:1096,1
    - Dst: colour_palette_free
      Src: /src/tmux/window.c:1097,1
    - Dst: style_ranges_free
      Src: /src/tmux/window.c:1098,1
    - Dst: free
      Src: /src/tmux/window.c:1099,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1053
    functionDepth: 1
    functionLinenumber: 1053
    functionLinenumberEnd: 1100
    functionName: window_pane_destroy
    functionSourceFile: /src/tmux/window.c
    functionUses: 2
    functionsReached:
    - close
    - event_del
    - screen_free
    - kill
    - RB_REMOVE
    - options_free
    - bufferevent_free
    - input_free
    - style_ranges_free
    - window_pane_reset_mode_all
    - free
    - TAILQ_FOREACH_SAFE
    - utempter_remove_record
    - getpid
    - colour_palette_free
    - event_initialized
    - cmd_free_argv
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void window_pane_destroy(struct window_pane *wp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/window.c:1108,1
    - Dst: window_pane_get_new_data
      Src: /src/tmux/window.c:1114,1
    - Dst: bufferevent_write
      Src: /src/tmux/window.c:1116,1
    - Dst: window_pane_update_used_data
      Src: /src/tmux/window.c:1117,1
    - Dst: log_debug
      Src: /src/tmux/window.c:1121,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/window.c:1122,1
    - Dst: control_write_output
      Src: /src/tmux/window.c:1124,1
    - Dst: input_parse_pane
      Src: /src/tmux/window.c:1126,1
    - Dst: bufferevent_disable
      Src: /src/tmux/window.c:1127,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - bufev
    - data
    argTypes:
    - __unused*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1102
    functionDepth: 1
    functionLinenumber: 1102
    functionLinenumberEnd: 1128
    functionName: window_pane_read_callback
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - control_write_output
    - TAILQ_FOREACH
    - window_pane_update_used_data
    - input_parse_pane
    - bufferevent_disable
    - log_debug
    - bufferevent_write
    - window_pane_get_new_data
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: void window_pane_read_callback(__unused struct bufferevent *bufev,
      void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/window.c:1136,1
    - Dst: window_pane_destroy_ready
      Src: /src/tmux/window.c:1139,1
    - Dst: server_destroy_pane
      Src: /src/tmux/window.c:1140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bufev
    - what
    - data
    argTypes:
    - __unused*
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1130
    functionDepth: 2
    functionLinenumber: 1130
    functionLinenumberEnd: 1141
    functionName: window_pane_error_callback
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - log_debug
    - server_destroy_pane
    - window_pane_destroy_ready
    linkageType: ''
    returnType: void
    signature: "void window_pane_error_callback(__unused struct bufferevent *bufev,\n
      \   __unused short what, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setblocking
      Src: /src/tmux/window.c:1146,1
    - Dst: bufferevent_new
      Src: /src/tmux/window.c:1148,1
    - Dst: fatalx
      Src: /src/tmux/window.c:1151,1
    - Dst: input_init
      Src: /src/tmux/window.c:1152,1
    - Dst: bufferevent_enable
      Src: /src/tmux/window.c:1154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1143
    functionDepth: 1
    functionLinenumber: 1143
    functionLinenumberEnd: 1155
    functionName: window_pane_set_event
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - bufferevent_new
    - input_init
    - fatalx
    - bufferevent_enable
    - setblocking
    linkageType: ''
    returnType: void
    signature: void window_pane_set_event(struct window_pane *wp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_stop_sync
      Src: /src/tmux/window.c:1166,1
    - Dst: xmalloc
      Src: /src/tmux/window.c:1168,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/window.c:1173,1
    - Dst: log_debug
      Src: /src/tmux/window.c:1178,1
    - Dst: screen_resize
      Src: /src/tmux/window.c:1179,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window.c:1181,1
    - Dst: struct window_mode_entry*::mode::resize
      Src: /src/tmux/window.c:1183,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - wp
    - sx
    - sy
    argTypes:
    - struct window_pane*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1157
    functionDepth: 1
    functionLinenumber: 1157
    functionLinenumberEnd: 1184
    functionName: window_pane_resize
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - log_debug
    - xmalloc
    - TAILQ_FIRST
    - struct window_mode_entry*::mode::resize
    - screen_resize
    - screen_write_stop_sync
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: void
    signature: void window_pane_resize(struct window_pane *wp, u_int sx, u_int sy)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/window.c:1194,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window.c:1194,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/window.c:1197,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/window.c:1202,1
    - Dst: TAILQ_INSERT_HEAD
      Src: /src/tmux/window.c:1203,1
    - Dst: xcalloc
      Src: /src/tmux/window.c:1205,1
    - Dst: TAILQ_INSERT_HEAD
      Src: /src/tmux/window.c:1210,1
    - Dst: struct window_mode_entry*::mode::init
      Src: /src/tmux/window.c:1211,1
    - Dst: layout_fix_panes
      Src: /src/tmux/window.c:1216,1
    - Dst: server_redraw_window_borders
      Src: /src/tmux/window.c:1218,1
    - Dst: server_status_window
      Src: /src/tmux/window.c:1219,1
    - Dst: notify_pane
      Src: /src/tmux/window.c:1220,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - wp
    - swp
    - mode
    - fs
    - args
    argTypes:
    - struct window_pane*
    - struct window_pane*
    - struct window_mode*
    - struct cmd_find_state*
    - struct args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1186
    functionDepth: 1
    functionLinenumber: 1186
    functionLinenumberEnd: 1223
    functionName: window_pane_set_mode
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - TAILQ_INSERT_HEAD
    - server_status_window
    - layout_fix_panes
    - TAILQ_FOREACH
    - xcalloc
    - TAILQ_FIRST
    - struct window_mode_entry*::mode::init
    - notify_pane
    - TAILQ_EMPTY
    - server_redraw_window_borders
    - TAILQ_REMOVE
    linkageType: ''
    returnType: int
    signature: "int window_pane_set_mode(struct window_pane *wp, struct window_pane
      *swp,\n    const struct window_mode *mode, struct cmd_find_state *fs,\n    struct
      args *args)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/window.c:1231,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window.c:1234,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/window.c:1235,1
    - Dst: struct window_mode_entry*::mode::free
      Src: /src/tmux/window.c:1236,1
    - Dst: free
      Src: /src/tmux/window.c:1237,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window.c:1239,1
    - Dst: log_debug
      Src: /src/tmux/window.c:1242,1
    - Dst: log_debug
      Src: /src/tmux/window.c:1245,1
    - Dst: mode::resize
      Src: /src/tmux/window.c:1248,1
    - Dst: layout_fix_panes
      Src: /src/tmux/window.c:1252,1
    - Dst: server_redraw_window_borders
      Src: /src/tmux/window.c:1254,1
    - Dst: server_status_window
      Src: /src/tmux/window.c:1255,1
    - Dst: notify_pane
      Src: /src/tmux/window.c:1256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1225
    functionDepth: 1
    functionLinenumber: 1225
    functionLinenumberEnd: 1257
    functionName: window_pane_reset_mode
    functionSourceFile: /src/tmux/window.c
    functionUses: 1
    functionsReached:
    - server_status_window
    - layout_fix_panes
    - log_debug
    - struct window_mode_entry*::mode::free
    - TAILQ_FIRST
    - mode::resize
    - free
    - notify_pane
    - TAILQ_EMPTY
    - server_redraw_window_borders
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void window_pane_reset_mode(struct window_pane *wp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/window.c:1262,1
    - Dst: window_pane_reset_mode
      Src: /src/tmux/window.c:1263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1259
    functionDepth: 2
    functionLinenumber: 1259
    functionLinenumberEnd: 1264
    functionName: window_pane_reset_mode_all
    functionSourceFile: /src/tmux/window.c
    functionUses: 1
    functionsReached:
    - TAILQ_EMPTY
    - window_pane_reset_mode
    linkageType: ''
    returnType: void
    signature: void window_pane_reset_mode_all(struct window_pane *wp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/window.c:1271,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/window.c:1273,1
    - Dst: window_pane_visible
      Src: /src/tmux/window.c:1276,1
    - Dst: options_get_number
      Src: /src/tmux/window.c:1277,1
    - Dst: log_debug
      Src: /src/tmux/window.c:1278,1
    - Dst: bufferevent_write
      Src: /src/tmux/window.c:1279,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 3
    argNames:
    - wp
    - buf
    - len
    argTypes:
    - struct window_pane*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1266
    functionDepth: 1
    functionLinenumber: 1266
    functionLinenumberEnd: 1282
    functionName: window_pane_copy_paste
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - log_debug
    - TAILQ_FOREACH
    - window_pane_visible
    - TAILQ_EMPTY
    - bufferevent_write
    - options_get_number
    linkageType: ''
    returnType: void
    signature: void window_pane_copy_paste(struct window_pane *wp, char *buf, size_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/window.c:1289,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/window.c:1291,1
    - Dst: window_pane_visible
      Src: /src/tmux/window.c:1294,1
    - Dst: options_get_number
      Src: /src/tmux/window.c:1295,1
    - Dst: input_key_pane
      Src: /src/tmux/window.c:1296,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 2
    argNames:
    - wp
    - key
    argTypes:
    - struct window_pane*
    - key_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1284
    functionDepth: 1
    functionLinenumber: 1284
    functionLinenumberEnd: 1298
    functionName: window_pane_copy_key
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH
    - input_key_pane
    - window_pane_visible
    - TAILQ_EMPTY
    - options_get_number
    linkageType: ''
    returnType: void
    signature: void window_pane_copy_key(struct window_pane *wp, key_code key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/window.c:1303,1
    - Dst: KEYC_IS_PASTE
      Src: /src/tmux/window.c:1309,1
    - Dst: log_debug
      Src: /src/tmux/window.c:1312,1
    - Dst: bufferevent_write
      Src: /src/tmux/window.c:1313,1
    - Dst: options_get_number
      Src: /src/tmux/window.c:1315,1
    - Dst: window_pane_copy_paste
      Src: /src/tmux/window.c:1316,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - wp
    - key
    - buf
    - len
    argTypes:
    - struct window_pane*
    - key_code
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1300
    functionDepth: 2
    functionLinenumber: 1300
    functionLinenumberEnd: 1317
    functionName: window_pane_paste
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - KEYC_IS_PASTE
    - log_debug
    - window_pane_copy_paste
    - TAILQ_EMPTY
    - bufferevent_write
    - options_get_number
    linkageType: ''
    returnType: void
    signature: void window_pane_paste(struct window_pane *wp, key_code key, char *buf,
      size_t len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: KEYC_IS_MOUSE
      Src: /src/tmux/window.c:1325,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window.c:1328,1
    - Dst: struct window_mode_entry*::mode::key
      Src: /src/tmux/window.c:1332,1
    - Dst: input_key_pane
      Src: /src/tmux/window.c:1340,1
    - Dst: KEYC_IS_MOUSE
      Src: /src/tmux/window.c:1343,1
    - Dst: options_get_number
      Src: /src/tmux/window.c:1345,1
    - Dst: window_pane_copy_key
      Src: /src/tmux/window.c:1346,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 6
    argNames:
    - wp
    - c
    - s
    - wl
    - key
    - m
    argTypes:
    - struct window_pane*
    - struct client*
    - struct session*
    - struct winlink*
    - key_code
    - struct mouse_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1319
    functionDepth: 2
    functionLinenumber: 1319
    functionLinenumberEnd: 1348
    functionName: window_pane_key
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - KEYC_IS_MOUSE
    - struct window_mode_entry*::mode::key
    - window_pane_copy_key
    - input_key_pane
    - TAILQ_FIRST
    - options_get_number
    linkageType: ''
    returnType: int
    signature: "int window_pane_key(struct window_pane *wp, struct client *c, struct
      session *s,\n    struct winlink *wl, key_code key, struct mouse_event *m)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1350
    functionDepth: 0
    functionLinenumber: 1350
    functionLinenumberEnd: 1356
    functionName: window_pane_visible
    functionSourceFile: /src/tmux/window.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int window_pane_visible(struct window_pane *wp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1358
    functionDepth: 0
    functionLinenumber: 1358
    functionLinenumberEnd: 1362
    functionName: window_pane_exited
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int window_pane_exited(struct window_pane *wp)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/tmux/window.c:1378,1
    - Dst: regcomp
      Src: /src/tmux/window.c:1382,1
    - Dst: screen_size_y
      Src: /src/tmux/window.c:1386,1
    - Dst: grid_view_string_cells
      Src: /src/tmux/window.c:1387,1
    - Dst: screen_size_x
      Src: /src/tmux/window.c:1387,1
    - Dst: strlen
      Src: /src/tmux/window.c:1388,1
    - Dst: isspace
      Src: /src/tmux/window.c:1389,1
    - Dst: log_debug
      Src: /src/tmux/window.c:1393,1
    - Dst: regexec
      Src: /src/tmux/window.c:1397,1
    - Dst: free
      Src: /src/tmux/window.c:1398,1
    - Dst: free
      Src: /src/tmux/window.c:1403,1
    - Dst: regfree
      Src: /src/tmux/window.c:1405,1
    - Dst: screen_size_y
      Src: /src/tmux/window.c:1407,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 4
    argNames:
    - wp
    - term
    - regex
    - ignore
    argTypes:
    - struct window_pane*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1364
    functionDepth: 1
    functionLinenumber: 1364
    functionLinenumberEnd: 1410
    functionName: window_pane_search
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - regfree
    - xasprintf
    - screen_size_y
    - regexec
    - log_debug
    - screen_size_x
    - regcomp
    - grid_view_string_cells
    - isspace
    - free
    - strlen
    linkageType: ''
    returnType: u_int
    signature: "u_int window_pane_search(struct window_pane *wp, const char *term,
      int regex,\n    int ignore)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - list
    - size
    argTypes:
    - struct window_pane**
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1413
    functionDepth: 0
    functionLinenumber: 1413
    functionLinenumberEnd: 1429
    functionName: window_pane_choose_best
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct window_pane
    signature: 'struct window_pane *

      window_pane_choose_best(struct window_pane **list, u_int size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/window.c:1443,1
    - Dst: options_get_number
      Src: /src/tmux/window.c:1444,1
    - Dst: window_pane_show_scrollbar
      Src: /src/tmux/window.c:1446,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - wp
    - xoff
    - yoff
    - sx
    - sy
    argTypes:
    - struct window_pane*
    - int*
    - int*
    - u_int*
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1435
    functionDepth: 1
    functionLinenumber: 1435
    functionLinenumberEnd: 1459
    functionName: window_pane_full_size_offset
    functionSourceFile: /src/tmux/window.c
    functionUses: 1
    functionsReached:
    - window_pane_show_scrollbar
    - options_get_number
    linkageType: ''
    returnType: void
    signature: "void window_pane_full_size_offset(struct window_pane *wp, int *xoff,
      int *yoff,\n    u_int *sx, u_int *sy)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/window.c:1477,1
    - Dst: window_pane_full_size_offset
      Src: /src/tmux/window.c:1482,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/window.c:1499,1
    - Dst: window_pane_full_size_offset
      Src: /src/tmux/window.c:1500,1
    - Dst: xreallocarray
      Src: /src/tmux/window.c:1516,1
    - Dst: window_pane_choose_best
      Src: /src/tmux/window.c:1520,1
    - Dst: free
      Src: /src/tmux/window.c:1521,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1465
    functionDepth: 2
    functionLinenumber: 1465
    functionLinenumberEnd: 1523
    functionName: window_pane_find_up
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH
    - window_pane_full_size_offset
    - window_pane_choose_best
    - free
    - xreallocarray
    - options_get_number
    linkageType: ''
    returnType: struct window_pane
    signature: 'struct window_pane *

      window_pane_find_up(struct window_pane *wp)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/window.c:1538,1
    - Dst: window_pane_full_size_offset
      Src: /src/tmux/window.c:1543,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/window.c:1560,1
    - Dst: window_pane_full_size_offset
      Src: /src/tmux/window.c:1561,1
    - Dst: xreallocarray
      Src: /src/tmux/window.c:1577,1
    - Dst: window_pane_choose_best
      Src: /src/tmux/window.c:1581,1
    - Dst: free
      Src: /src/tmux/window.c:1582,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1526
    functionDepth: 2
    functionLinenumber: 1526
    functionLinenumberEnd: 1584
    functionName: window_pane_find_down
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH
    - window_pane_full_size_offset
    - window_pane_choose_best
    - free
    - xreallocarray
    - options_get_number
    linkageType: ''
    returnType: struct window_pane
    signature: 'struct window_pane *

      window_pane_find_down(struct window_pane *wp)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: window_pane_full_size_offset
      Src: /src/tmux/window.c:1603,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/window.c:1612,1
    - Dst: window_pane_full_size_offset
      Src: /src/tmux/window.c:1613,1
    - Dst: xreallocarray
      Src: /src/tmux/window.c:1629,1
    - Dst: window_pane_choose_best
      Src: /src/tmux/window.c:1633,1
    - Dst: free
      Src: /src/tmux/window.c:1634,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1587
    functionDepth: 2
    functionLinenumber: 1587
    functionLinenumberEnd: 1636
    functionName: window_pane_find_left
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH
    - window_pane_full_size_offset
    - window_pane_choose_best
    - free
    - xreallocarray
    linkageType: ''
    returnType: struct window_pane
    signature: 'struct window_pane *

      window_pane_find_left(struct window_pane *wp)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: window_pane_full_size_offset
      Src: /src/tmux/window.c:1655,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/window.c:1664,1
    - Dst: window_pane_full_size_offset
      Src: /src/tmux/window.c:1665,1
    - Dst: xreallocarray
      Src: /src/tmux/window.c:1681,1
    - Dst: window_pane_choose_best
      Src: /src/tmux/window.c:1685,1
    - Dst: free
      Src: /src/tmux/window.c:1686,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1639
    functionDepth: 2
    functionLinenumber: 1639
    functionLinenumberEnd: 1688
    functionName: window_pane_find_right
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH
    - window_pane_full_size_offset
    - window_pane_choose_best
    - free
    - xreallocarray
    linkageType: ''
    returnType: struct window_pane
    signature: 'struct window_pane *

      window_pane_find_right(struct window_pane *wp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: window_pane_stack_remove
      Src: /src/tmux/window.c:1695,1
    - Dst: TAILQ_INSERT_HEAD
      Src: /src/tmux/window.c:1696,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - stack
    - wp
    argTypes:
    - struct window_panes*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1699
      start: 1691
    functionDepth: 1
    functionLinenumber: 1691
    functionLinenumberEnd: 1699
    functionName: window_pane_stack_push
    functionSourceFile: /src/tmux/window.c
    functionUses: 1
    functionsReached:
    - TAILQ_INSERT_HEAD
    - window_pane_stack_remove
    linkageType: ''
    returnType: void
    signature: void window_pane_stack_push(struct window_panes *stack, struct window_pane
      *wp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/window.c:1706,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - stack
    - wp
    argTypes:
    - struct window_panes*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1702
    functionDepth: 0
    functionLinenumber: 1702
    functionLinenumberEnd: 1709
    functionName: window_pane_stack_remove
    functionSourceFile: /src/tmux/window.c
    functionUses: 4
    functionsReached:
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void window_pane_stack_remove(struct window_panes *stack, struct window_pane
      *wp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/window.c:1718,1
    - Dst: server_status_session
      Src: /src/tmux/window.c:1721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - wl
    argTypes:
    - struct winlink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1724
      start: 1712
    functionDepth: 1
    functionLinenumber: 1712
    functionLinenumberEnd: 1724
    functionName: winlink_clear_flags
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - server_status_session
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void winlink_clear_flags(struct winlink *wl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: winlink_find_by_index
      Src: /src/tmux/window.c:1741,1
    - Dst: winlink_find_by_index
      Src: /src/tmux/window.c:1749,1
    - Dst: RB_REMOVE
      Src: /src/tmux/window.c:1750,1
    - Dst: RB_INSERT
      Src: /src/tmux/window.c:1752,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - s
    - wl
    - before
    argTypes:
    - struct session*
    - struct winlink*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1727
    functionDepth: 2
    functionLinenumber: 1727
    functionLinenumberEnd: 1756
    functionName: winlink_shuffle_up
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - winlink_find_by_index
    - RB_REMOVE
    - RB_INSERT
    linkageType: ''
    returnType: int
    signature: int winlink_shuffle_up(struct session *s, struct winlink *wl, int before)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_DATA
      Src: /src/tmux/window.c:1764,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/window.c:1765,1
    - Dst: window_pane_find_by_id
      Src: /src/tmux/window.c:1767,1
    - Dst: file_cancel
      Src: /src/tmux/window.c:1773,1
    - Dst: cmdq_continue
      Src: /src/tmux/window.c:1775,1
    - Dst: server_client_unref
      Src: /src/tmux/window.c:1776,1
    - Dst: free
      Src: /src/tmux/window.c:1777,1
    - Dst: input_parse_buffer
      Src: /src/tmux/window.c:1779,1
    - Dst: evbuffer_drain
      Src: /src/tmux/window.c:1780,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 6
    argNames:
    - c
    - path
    - error
    - closed
    - buffer
    - data
    argTypes:
    - struct client*
    - __unused*
    - int
    - int
    - struct evbuffer*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1758
    functionDepth: 1
    functionLinenumber: 1758
    functionLinenumberEnd: 1781
    functionName: window_pane_input_callback
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - cmdq_continue
    - EVBUFFER_DATA
    - server_client_unref
    - file_cancel
    - input_parse_buffer
    - free
    - window_pane_find_by_id
    - evbuffer_drain
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: "void window_pane_input_callback(struct client *c, __unused const char
      *path,\n    int error, int closed, struct evbuffer *buffer, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get_client
      Src: /src/tmux/window.c:1787,1
    - Dst: xstrdup
      Src: /src/tmux/window.c:1791,1
    - Dst: xmalloc
      Src: /src/tmux/window.c:1799,1
    - Dst: file_read
      Src: /src/tmux/window.c:1802,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - wp
    - item
    - cause
    argTypes:
    - struct window_pane*
    - struct cmdq_item*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1806
      start: 1783
    functionDepth: 1
    functionLinenumber: 1783
    functionLinenumberEnd: 1806
    functionName: window_pane_start_input
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - file_read
    - xmalloc
    - xstrdup
    - cmdq_get_client
    linkageType: ''
    returnType: int
    signature: "int window_pane_start_input(struct window_pane *wp, struct cmdq_item
      *item,\n    char **cause)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/window.c:1814,1
    - Dst: EVBUFFER_DATA
      Src: /src/tmux/window.c:1815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - wp
    - wpo
    - size
    argTypes:
    - struct window_pane*
    - struct window_pane_offset*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1808
    functionDepth: 1
    functionLinenumber: 1808
    functionLinenumberEnd: 1816
    functionName: window_pane_get_new_data
    functionSourceFile: /src/tmux/window.c
    functionUses: 1
    functionsReached:
    - EVBUFFER_DATA
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: "void *\nwindow_pane_get_new_data(struct window_pane *wp,\n    struct
      window_pane_offset *wpo, size_t *size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/window.c:1824,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/window.c:1825,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - wp
    - wpo
    - size
    argTypes:
    - struct window_pane*
    - struct window_pane_offset*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1827
      start: 1818
    functionDepth: 1
    functionLinenumber: 1818
    functionLinenumberEnd: 1827
    functionName: window_pane_update_used_data
    functionSourceFile: /src/tmux/window.c
    functionUses: 1
    functionsReached:
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: "void window_pane_update_used_data(struct window_pane *wp,\n    struct
      window_pane_offset *wpo, size_t size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/window.c:1835,1
    - Dst: options_get_string
      Src: /src/tmux/window.c:1838,1
    - Dst: utf8_isvalid
      Src: /src/tmux/window.c:1839,1
    - Dst: utf8_fromcstr
      Src: /src/tmux/window.c:1840,1
    - Dst: free
      Src: /src/tmux/window.c:1844,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1829
    functionDepth: 1
    functionLinenumber: 1829
    functionLinenumberEnd: 1846
    functionName: window_set_fill_character
    functionSourceFile: /src/tmux/window.c
    functionUses: 1
    functionsReached:
    - utf8_fromcstr
    - free
    - options_get_string
    - utf8_isvalid
    linkageType: ''
    returnType: void
    signature: void window_set_fill_character(struct window *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: screen_set_default_cursor
      Src: /src/tmux/window.c:1851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1852
      start: 1848
    functionDepth: 1
    functionLinenumber: 1848
    functionLinenumberEnd: 1852
    functionName: window_pane_default_cursor
    functionSourceFile: /src/tmux/window.c
    functionUses: 1
    functionsReached:
    - screen_set_default_cursor
    linkageType: ''
    returnType: void
    signature: void window_pane_default_cursor(struct window_pane *wp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window.c:1857,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window.c:1858,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window.c:1860,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1864
      start: 1854
    functionDepth: 0
    functionLinenumber: 1854
    functionLinenumberEnd: 1864
    functionName: window_pane_mode
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    linkageType: ''
    returnType: int
    signature: int window_pane_mode(struct window_pane *wp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SCREEN_IS_ALTERNATE
      Src: /src/tmux/window.c:1870,1
    - Dst: window_pane_mode
      Src: /src/tmux/window.c:1874,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - wp
    - sb_option
    argTypes:
    - struct window_pane*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1877
      start: 1867
    functionDepth: 1
    functionLinenumber: 1867
    functionLinenumberEnd: 1877
    functionName: window_pane_show_scrollbar
    functionSourceFile: /src/tmux/window.c
    functionUses: 1
    functionsReached:
    - SCREEN_IS_ALTERNATE
    - window_pane_mode
    linkageType: ''
    returnType: int
    signature: int window_pane_show_scrollbar(struct window_pane *wp, int sb_option)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: window_pane_get_bg_control_client
      Src: /src/tmux/window.c:1885,1
    - Dst: tty_default_colours
      Src: /src/tmux/window.c:1887,1
    - Dst: COLOUR_DEFAULT
      Src: /src/tmux/window.c:1888,1
    - Dst: window_get_bg_client
      Src: /src/tmux/window.c:1889,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1894
      start: 1879
    functionDepth: 1
    functionLinenumber: 1879
    functionLinenumberEnd: 1894
    functionName: window_pane_get_bg
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - window_pane_get_bg_control_client
    - COLOUR_DEFAULT
    - window_get_bg_client
    - tty_default_colours
    linkageType: ''
    returnType: int
    signature: int window_pane_get_bg(struct window_pane *wp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/window.c:1903,1
    - Dst: session_has
      Src: /src/tmux/window.c:1906,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1913
      start: 1897
    functionDepth: 1
    functionLinenumber: 1897
    functionLinenumberEnd: 1913
    functionName: window_get_bg_client
    functionSourceFile: /src/tmux/window.c
    functionUses: 1
    functionsReached:
    - session_has
    - TAILQ_FOREACH
    linkageType: ''
    returnType: int
    signature: int window_get_bg_client(struct window_pane *wp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/window.c:1927,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1932
      start: 1919
    functionDepth: 0
    functionLinenumber: 1919
    functionLinenumberEnd: 1932
    functionName: window_pane_get_bg_control_client
    functionSourceFile: /src/tmux/window.c
    functionUses: 1
    functionsReached:
    - TAILQ_FOREACH
    linkageType: ''
    returnType: int
    signature: int window_pane_get_bg_control_client(struct window_pane *wp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/window.c:1944,1
    - Dst: session_has
      Src: /src/tmux/window.c:1947,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1954
      start: 1938
    functionDepth: 1
    functionLinenumber: 1938
    functionLinenumberEnd: 1954
    functionName: window_pane_get_fg
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - session_has
    - TAILQ_FOREACH
    linkageType: ''
    returnType: int
    signature: int window_pane_get_fg(struct window_pane *wp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/window.c:1968,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1960
    functionDepth: 0
    functionLinenumber: 1960
    functionLinenumberEnd: 1973
    functionName: window_pane_get_fg_control_client
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH
    linkageType: ''
    returnType: int
    signature: int window_pane_get_fg_control_client(struct window_pane *wp)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: colour_totheme
      Src: /src/tmux/window.c:1991,1
    - Dst: window_pane_get_bg
      Src: /src/tmux/window.c:1991,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/window.c:1996,1
    - Dst: session_has
      Src: /src/tmux/window.c:1999,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 1975
    functionDepth: 2
    functionLinenumber: 1975
    functionLinenumberEnd: 2018
    functionName: window_pane_get_theme
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - colour_totheme
    - session_has
    - window_pane_get_bg
    - TAILQ_FOREACH
    linkageType: ''
    returnType: enum client_theme
    signature: enum client_theme window_pane_get_theme(struct window_pane *wp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: window_pane_exited
      Src: /src/tmux/window.c:2025,1
    - Dst: window_pane_get_theme
      Src: /src/tmux/window.c:2032,1
    - Dst: log_debug
      Src: /src/tmux/window.c:2040,1
    - Dst: bufferevent_write
      Src: /src/tmux/window.c:2041,1
    - Dst: log_debug
      Src: /src/tmux/window.c:2044,1
    - Dst: bufferevent_write
      Src: /src/tmux/window.c:2045,1
    - Dst: log_debug
      Src: /src/tmux/window.c:2048,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2051
      start: 2020
    functionDepth: 3
    functionLinenumber: 2020
    functionLinenumberEnd: 2051
    functionName: window_pane_send_theme_update
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - log_debug
    - bufferevent_write
    - window_pane_exited
    - window_pane_get_theme
    linkageType: ''
    returnType: void
    signature: void window_pane_send_theme_update(struct window_pane *wp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/window.c:2068,1
    - Dst: style_ranges_get_range
      Src: /src/tmux/window.c:2080,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - wp
    - x
    - y
    argTypes:
    - struct window_pane*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2053
    functionDepth: 1
    functionLinenumber: 2053
    functionLinenumberEnd: 2081
    functionName: window_pane_border_status_get_range
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - options_get_number
    - style_ranges_get_range
    linkageType: ''
    returnType: struct style_range
    signature: 'struct style_range *

      window_pane_border_status_get_range(struct window_pane *wp, u_int x, u_int y)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: args_has
      Src: /src/tmux/window.c:2094,1
    - Dst: args_has
      Src: /src/tmux/window.c:2097,1
    - Dst: args_has
      Src: /src/tmux/window.c:2097,1
    - Dst: args_has
      Src: /src/tmux/window.c:2098,1
    - Dst: args_has
      Src: /src/tmux/window.c:2111,1
    - Dst: args_percentage_and_expand
      Src: /src/tmux/window.c:2112,1
    - Dst: args_has
      Src: /src/tmux/window.c:2114,1
    - Dst: args_strtonum_and_expand
      Src: /src/tmux/window.c:2115,1
    - Dst: args_has
      Src: /src/tmux/window.c:2123,1
    - Dst: args_has
      Src: /src/tmux/window.c:2125,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 8
    argNames:
    - w
    - wp
    - out_size
    - out_flags
    - out_type
    - item
    - args
    - cause
    argTypes:
    - struct window*
    - struct window_pane*
    - int*
    - int*
    - enum layout_type*
    - struct cmdq_item*
    - struct args*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2084
    functionDepth: 1
    functionLinenumber: 2084
    functionLinenumberEnd: 2132
    functionName: window_pane_tiled_geometry
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - args_strtonum_and_expand
    - args_percentage_and_expand
    - args_has
    linkageType: ''
    returnType: int
    signature: "int window_pane_tiled_geometry(struct window *w, struct window_pane
      *wp,\n    int *out_size, int *out_flags, enum layout_type *out_type,\n    struct
      cmdq_item *item, struct args *args, char **cause)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: args_has
      Src: /src/tmux/window.c:2142,1
    - Dst: args_percentage_and_expand
      Src: /src/tmux/window.c:2143,1
    - Dst: args_has
      Src: /src/tmux/window.c:2148,1
    - Dst: args_percentage_and_expand
      Src: /src/tmux/window.c:2149,1
    - Dst: args_has
      Src: /src/tmux/window.c:2155,1
    - Dst: args_percentage_and_expand
      Src: /src/tmux/window.c:2156,1
    - Dst: args_has
      Src: /src/tmux/window.c:2170,1
    - Dst: args_percentage_and_expand
      Src: /src/tmux/window.c:2171,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 9
    argNames:
    - w
    - wp
    - out_x
    - out_y
    - out_sx
    - out_sy
    - item
    - args
    - cause
    argTypes:
    - struct window*
    - __unused*
    - u_int*
    - u_int*
    - u_int*
    - u_int*
    - struct cmdq_item*
    - struct args*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2191
      start: 2135
    functionDepth: 1
    functionLinenumber: 2135
    functionLinenumberEnd: 2191
    functionName: window_pane_floating_geometry
    functionSourceFile: /src/tmux/window.c
    functionUses: 0
    functionsReached:
    - args_percentage_and_expand
    - args_has
    linkageType: ''
    returnType: int
    signature: "int window_pane_floating_geometry(struct window *w, __unused struct
      window_pane *wp,\n    u_int *out_x, u_int *out_y, u_int *out_sx, u_int *out_sy,\n
      \   struct cmdq_item *item, struct args *args, char **cause)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/tmux/layout.c:58,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/layout.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - lcparent
    argTypes:
    - struct layout_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 73
    functionName: layout_create_cell
    functionSourceFile: /src/tmux/layout.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - TAILQ_INIT
    linkageType: ''
    returnType: struct layout_cell
    signature: 'struct layout_cell *

      layout_create_cell(struct layout_cell *lcparent)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/layout.c:87,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/layout.c:88,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/layout.c:89,1
    - Dst: layout_free_cell
      Src: /src/tmux/layout.c:90,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/layout.c:100,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/layout.c:101,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/layout.c:102,1
    - Dst: free
      Src: /src/tmux/layout.c:114,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - lc
    argTypes:
    - struct layout_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 115
    functionName: layout_free_cell
    functionSourceFile: /src/tmux/layout.c
    functionUses: 2
    functionsReached:
    - TAILQ_FIRST
    - layout_free_cell
    - free
    - TAILQ_EMPTY
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void layout_free_cell(struct layout_cell *lc)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/layout.c:144,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout.c:151,1
    - Dst: layout_print_cell
      Src: /src/tmux/layout.c:152,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - lc
    - hdr
    - n
    argTypes:
    - struct layout_cell*
    - char*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 157
    functionName: layout_print_cell
    functionSourceFile: /src/tmux/layout.c
    functionUses: 1
    functionsReached:
    - log_debug
    - layout_print_cell
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void layout_print_cell(struct layout_cell *lc, const char *hdr, u_int
      n)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout.c:165,1
    - Dst: layout_search_by_border
      Src: /src/tmux/layout.c:171,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 3
    argNames:
    - lc
    - x
    - y
    argTypes:
    - struct layout_cell*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 199
    functionName: layout_search_by_border
    functionSourceFile: /src/tmux/layout.c
    functionUses: 1
    functionsReached:
    - layout_search_by_border
    - TAILQ_FOREACH
    linkageType: ''
    returnType: struct layout_cell
    signature: 'struct layout_cell *

      layout_search_by_border(struct layout_cell *lc, u_int x, u_int y)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - lc
    - sx
    - sy
    - xoff
    - yoff
    argTypes:
    - struct layout_cell*
    - u_int
    - u_int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 210
    functionName: layout_set_size
    functionSourceFile: /src/tmux/layout.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void layout_set_size(struct layout_cell *lc, u_int sx, u_int sy, int
      xoff, int yoff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_INIT
      Src: /src/tmux/layout.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - lc
    - wp
    argTypes:
    - struct layout_cell*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 222
    functionName: layout_make_leaf
    functionSourceFile: /src/tmux/layout.c
    functionUses: 0
    functionsReached:
    - TAILQ_INIT
    linkageType: ''
    returnType: void
    signature: void layout_make_leaf(struct layout_cell *lc, struct window_pane *wp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fatalx
      Src: /src/tmux/layout.c:229,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/layout.c:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - lc
    - type
    argTypes:
    - struct layout_cell*
    - enum layout_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 237
    functionName: layout_make_node
    functionSourceFile: /src/tmux/layout.c
    functionUses: 0
    functionsReached:
    - fatalx
    - TAILQ_INIT
    linkageType: ''
    returnType: void
    signature: void layout_make_node(struct layout_cell *lc, enum layout_type type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/layout.c:250,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout.c:255,1
    - Dst: layout_fix_zindexes
      Src: /src/tmux/layout.c:256,1
    - Dst: fatalx
      Src: /src/tmux/layout.c:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - w
    - lc
    argTypes:
    - struct window*
    - struct layout_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 261
    functionName: layout_fix_zindexes
    functionSourceFile: /src/tmux/layout.c
    functionUses: 1
    functionsReached:
    - fatalx
    - layout_fix_zindexes
    - TAILQ_INSERT_TAIL
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void layout_fix_zindexes(struct window *w, struct layout_cell *lc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout.c:272,1
    - Dst: layout_fix_offsets1
      Src: /src/tmux/layout.c:276,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout.c:281,1
    - Dst: layout_fix_offsets1
      Src: /src/tmux/layout.c:285,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - lc
    argTypes:
    - struct layout_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 289
    functionName: layout_fix_offsets1
    functionSourceFile: /src/tmux/layout.c
    functionUses: 1
    functionsReached:
    - layout_fix_offsets1
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void layout_fix_offsets1(struct layout_cell *lc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: layout_fix_offsets1
      Src: /src/tmux/layout.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 301
    functionName: layout_fix_offsets
    functionSourceFile: /src/tmux/layout.c
    functionUses: 0
    functionsReached:
    - layout_fix_offsets1
    linkageType: ''
    returnType: void
    signature: void layout_fix_offsets(struct window *w)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/layout.c:314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - w
    - lc
    argTypes:
    - struct window*
    - struct layout_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 319
    functionName: layout_cell_is_top
    functionSourceFile: /src/tmux/layout.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    linkageType: ''
    returnType: int
    signature: int layout_cell_is_top(struct window *w, struct layout_cell *lc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_LAST
      Src: /src/tmux/layout.c:332,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - w
    - lc
    argTypes:
    - struct window*
    - struct layout_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 337
    functionName: layout_cell_is_bottom
    functionSourceFile: /src/tmux/layout.c
    functionUses: 0
    functionsReached:
    - TAILQ_LAST
    linkageType: ''
    returnType: int
    signature: int layout_cell_is_bottom(struct window *w, struct layout_cell *lc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: layout_cell_is_top
      Src: /src/tmux/layout.c:348,1
    - Dst: layout_cell_is_bottom
      Src: /src/tmux/layout.c:350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - w
    - lc
    - status
    argTypes:
    - struct window*
    - struct layout_cell*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 352
    functionName: layout_add_horizontal_border
    functionSourceFile: /src/tmux/layout.c
    functionUses: 0
    functionsReached:
    - layout_cell_is_bottom
    - layout_cell_is_top
    linkageType: ''
    returnType: int
    signature: "int layout_add_horizontal_border(struct window *w, struct layout_cell
      *lc,\n    int status)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/layout.c:363,1
    - Dst: options_get_number
      Src: /src/tmux/layout.c:364,1
    - Dst: options_get_number
      Src: /src/tmux/layout.c:365,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout.c:367,1
    - Dst: layout_add_horizontal_border
      Src: /src/tmux/layout.c:377,1
    - Dst: window_pane_show_scrollbar
      Src: /src/tmux/layout.c:383,1
    - Dst: window_pane_resize
      Src: /src/tmux/layout.c:407,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - w
    - skip
    argTypes:
    - struct window*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 409
    functionName: layout_fix_panes
    functionSourceFile: /src/tmux/layout.c
    functionUses: 3
    functionsReached:
    - window_pane_resize
    - TAILQ_FOREACH
    - layout_add_horizontal_border
    - window_pane_show_scrollbar
    - options_get_number
    linkageType: ''
    returnType: void
    signature: void layout_fix_panes(struct window *w, struct window_pane *skip)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout.c:424,1
    - Dst: layout_count_cells
      Src: /src/tmux/layout.c:425,1
    - Dst: fatalx
      Src: /src/tmux/layout.c:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - lc
    argTypes:
    - struct layout_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 430
    functionName: layout_count_cells
    functionSourceFile: /src/tmux/layout.c
    functionUses: 1
    functionsReached:
    - fatalx
    - layout_count_cells
    - TAILQ_FOREACH
    linkageType: ''
    returnType: u_int
    signature: u_int layout_count_cells(struct layout_cell *lc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/layout.c:442,1
    - Dst: options_get_number
      Src: /src/tmux/layout.c:443,1
    - Dst: layout_add_horizontal_border
      Src: /src/tmux/layout.c:456,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout.c:468,1
    - Dst: layout_resize_check
      Src: /src/tmux/layout.c:469,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout.c:473,1
    - Dst: layout_resize_check
      Src: /src/tmux/layout.c:474,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - w
    - lc
    - type
    argTypes:
    - struct window*
    - struct layout_cell*
    - enum layout_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 482
    functionName: layout_resize_check
    functionSourceFile: /src/tmux/layout.c
    functionUses: 1
    functionsReached:
    - layout_add_horizontal_border
    - layout_resize_check
    - options_get_number
    - TAILQ_FOREACH
    linkageType: ''
    returnType: u_int
    signature: "u_int layout_resize_check(struct window *w, struct layout_cell *lc,\n
      \   enum layout_type type)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout.c:506,1
    - Dst: layout_resize_adjust
      Src: /src/tmux/layout.c:507,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout.c:516,1
    - Dst: layout_resize_adjust
      Src: /src/tmux/layout.c:520,1
    - Dst: layout_resize_check
      Src: /src/tmux/layout.c:524,1
    - Dst: layout_resize_adjust
      Src: /src/tmux/layout.c:525,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - w
    - lc
    - type
    - change
    argTypes:
    - struct window*
    - struct layout_cell*
    - enum layout_type
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 488
    functionDepth: 3
    functionLinenumber: 488
    functionLinenumberEnd: 530
    functionName: layout_resize_adjust
    functionSourceFile: /src/tmux/layout.c
    functionUses: 1
    functionsReached:
    - layout_resize_check
    - layout_resize_adjust
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: "void layout_resize_adjust(struct window *w, struct layout_cell *lc,\n
      \   enum layout_type type, int change)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: layout_free_cell
      Src: /src/tmux/layout.c:548,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/layout.c:554,1
    - Dst: layout_free_cell
      Src: /src/tmux/layout.c:555,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/layout.c:560,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/layout.c:561,1
    - Dst: TAILQ_PREV
      Src: /src/tmux/layout.c:563,1
    - Dst: layout_resize_adjust
      Src: /src/tmux/layout.c:565,1
    - Dst: layout_resize_adjust
      Src: /src/tmux/layout.c:567,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/layout.c:570,1
    - Dst: layout_free_cell
      Src: /src/tmux/layout.c:571,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/layout.c:577,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/layout.c:578,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/layout.c:579,1
    - Dst: TAILQ_REPLACE
      Src: /src/tmux/layout.c:587,1
    - Dst: layout_free_cell
      Src: /src/tmux/layout.c:589,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - w
    - lc
    - lcroot
    argTypes:
    - struct window*
    - struct layout_cell*
    - struct layout_cell**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 533
    functionDepth: 4
    functionLinenumber: 533
    functionLinenumberEnd: 591
    functionName: layout_destroy_cell
    functionSourceFile: /src/tmux/layout.c
    functionUses: 0
    functionsReached:
    - TAILQ_REPLACE
    - TAILQ_PREV
    - TAILQ_FIRST
    - layout_free_cell
    - layout_resize_adjust
    - TAILQ_NEXT
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: "void layout_destroy_cell(struct window *w, struct layout_cell *lc,\n
      \   struct layout_cell **lcroot)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: layout_create_cell
      Src: /src/tmux/layout.c:599,1
    - Dst: layout_set_size
      Src: /src/tmux/layout.c:600,1
    - Dst: layout_make_leaf
      Src: /src/tmux/layout.c:601,1
    - Dst: layout_fix_panes
      Src: /src/tmux/layout.c:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - w
    - wp
    argTypes:
    - struct window*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 594
    functionDepth: 3
    functionLinenumber: 594
    functionLinenumberEnd: 603
    functionName: layout_init
    functionSourceFile: /src/tmux/layout.c
    functionUses: 1
    functionsReached:
    - layout_set_size
    - layout_make_leaf
    - layout_create_cell
    - layout_fix_panes
    linkageType: ''
    returnType: void
    signature: void layout_init(struct window *w, struct window_pane *wp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: layout_free_cell
      Src: /src/tmux/layout.c:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 606
    functionDepth: 2
    functionLinenumber: 606
    functionLinenumberEnd: 610
    functionName: layout_free
    functionSourceFile: /src/tmux/layout.c
    functionUses: 1
    functionsReached:
    - layout_free_cell
    linkageType: ''
    returnType: void
    signature: void layout_free(struct window *w)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: layout_resize_check
      Src: /src/tmux/layout.c:633,1
    - Dst: layout_resize_adjust
      Src: /src/tmux/layout.c:643,1
    - Dst: layout_resize_check
      Src: /src/tmux/layout.c:647,1
    - Dst: layout_resize_adjust
      Src: /src/tmux/layout.c:657,1
    - Dst: layout_fix_offsets
      Src: /src/tmux/layout.c:660,1
    - Dst: layout_fix_panes
      Src: /src/tmux/layout.c:661,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - w
    - sx
    - sy
    argTypes:
    - struct window*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 613
    functionDepth: 4
    functionLinenumber: 613
    functionLinenumberEnd: 662
    functionName: layout_resize
    functionSourceFile: /src/tmux/layout.c
    functionUses: 0
    functionsReached:
    - layout_resize_check
    - layout_resize_adjust
    - layout_fix_panes
    - layout_fix_offsets
    linkageType: ''
    returnType: void
    signature: void layout_resize(struct window *w, u_int sx, u_int sy)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_LAST
      Src: /src/tmux/layout.c:688,1
    - Dst: layout_resize_pane
      Src: /src/tmux/layout.c:694,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - wp
    - type
    - new_size
    argTypes:
    - struct window_pane*
    - enum layout_type
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 695
    functionName: layout_resize_pane_to
    functionSourceFile: /src/tmux/layout.c
    functionUses: 0
    functionsReached:
    - layout_resize_pane
    - TAILQ_LAST
    linkageType: ''
    returnType: void
    signature: "void layout_resize_pane_to(struct window_pane *wp, enum layout_type
      type,\n    u_int new_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: layout_resize_pane_grow
      Src: /src/tmux/layout.c:707,1
    - Dst: layout_resize_pane_shrink
      Src: /src/tmux/layout.c:711,1
    - Dst: layout_fix_offsets
      Src: /src/tmux/layout.c:720,1
    - Dst: layout_fix_panes
      Src: /src/tmux/layout.c:721,1
    - Dst: notify_window
      Src: /src/tmux/layout.c:722,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - w
    - lc
    - type
    - change
    - opposite
    argTypes:
    - struct window*
    - struct layout_cell*
    - enum layout_type
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 697
    functionDepth: 3
    functionLinenumber: 697
    functionLinenumberEnd: 723
    functionName: layout_resize_layout
    functionSourceFile: /src/tmux/layout.c
    functionUses: 0
    functionsReached:
    - layout_fix_panes
    - notify_window
    - layout_fix_offsets
    - layout_resize_pane_shrink
    - layout_resize_pane_grow
    linkageType: ''
    returnType: void
    signature: "void layout_resize_layout(struct window *w, struct layout_cell *lc,\n
      \   enum layout_type type, int change, int opposite)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_LAST
      Src: /src/tmux/layout.c:744,1
    - Dst: TAILQ_PREV
      Src: /src/tmux/layout.c:745,1
    - Dst: layout_resize_layout
      Src: /src/tmux/layout.c:747,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - wp
    - type
    - change
    - opposite
    argTypes:
    - struct window_pane*
    - enum layout_type
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 726
    functionDepth: 4
    functionLinenumber: 726
    functionLinenumberEnd: 748
    functionName: layout_resize_pane
    functionSourceFile: /src/tmux/layout.c
    functionUses: 1
    functionsReached:
    - TAILQ_PREV
    - TAILQ_LAST
    - layout_resize_layout
    linkageType: ''
    returnType: void
    signature: "void layout_resize_pane(struct window_pane *wp, enum layout_type type,
      int change,\n    int opposite)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_NEXT
      Src: /src/tmux/layout.c:762,1
    - Dst: layout_resize_check
      Src: /src/tmux/layout.c:764,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/layout.c:767,1
    - Dst: TAILQ_PREV
      Src: /src/tmux/layout.c:772,1
    - Dst: layout_resize_check
      Src: /src/tmux/layout.c:774,1
    - Dst: TAILQ_PREV
      Src: /src/tmux/layout.c:777,1
    - Dst: layout_resize_adjust
      Src: /src/tmux/layout.c:786,1
    - Dst: layout_resize_adjust
      Src: /src/tmux/layout.c:787,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 5
    argNames:
    - w
    - lc
    - type
    - needed
    - opposite
    argTypes:
    - struct window*
    - struct layout_cell*
    - enum layout_type
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 751
    functionDepth: 4
    functionLinenumber: 751
    functionLinenumberEnd: 789
    functionName: layout_resize_pane_grow
    functionSourceFile: /src/tmux/layout.c
    functionUses: 1
    functionsReached:
    - TAILQ_PREV
    - TAILQ_NEXT
    - layout_resize_adjust
    - layout_resize_check
    linkageType: ''
    returnType: int
    signature: "int layout_resize_pane_grow(struct window *w, struct layout_cell *lc,\n
      \   enum layout_type type, int needed, int opposite)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: layout_resize_check
      Src: /src/tmux/layout.c:802,1
    - Dst: TAILQ_PREV
      Src: /src/tmux/layout.c:805,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/layout.c:811,1
    - Dst: layout_resize_adjust
      Src: /src/tmux/layout.c:818,1
    - Dst: layout_resize_adjust
      Src: /src/tmux/layout.c:819,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - w
    - lc
    - type
    - needed
    argTypes:
    - struct window*
    - struct layout_cell*
    - enum layout_type
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 792
    functionDepth: 4
    functionLinenumber: 792
    functionLinenumberEnd: 821
    functionName: layout_resize_pane_shrink
    functionSourceFile: /src/tmux/layout.c
    functionUses: 1
    functionsReached:
    - TAILQ_PREV
    - layout_resize_check
    - layout_resize_adjust
    - TAILQ_NEXT
    linkageType: ''
    returnType: int
    signature: "int layout_resize_pane_shrink(struct window *w, struct layout_cell
      *lc,\n    enum layout_type type, int needed)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: layout_make_leaf
      Src: /src/tmux/layout.c:828,1
    - Dst: layout_fix_panes
      Src: /src/tmux/layout.c:830,1
    - Dst: layout_fix_panes
      Src: /src/tmux/layout.c:832,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - lc
    - wp
    - do_not_resize
    argTypes:
    - struct layout_cell*
    - struct window_pane*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 824
    functionDepth: 3
    functionLinenumber: 824
    functionLinenumberEnd: 833
    functionName: layout_assign_pane
    functionSourceFile: /src/tmux/layout.c
    functionUses: 0
    functionsReached:
    - layout_make_leaf
    - layout_fix_panes
    linkageType: ''
    returnType: void
    signature: "void layout_assign_pane(struct layout_cell *lc, struct window_pane
      *wp,\n    int do_not_resize)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: layout_resize_check
      Src: /src/tmux/layout.c:847,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 7
    argNames:
    - w
    - previous
    - lc
    - type
    - size
    - count_left
    - size_left
    argTypes:
    - struct window*
    - u_int
    - struct layout_cell*
    - enum layout_type
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 836
    functionDepth: 3
    functionLinenumber: 836
    functionLinenumberEnd: 871
    functionName: layout_new_pane_size
    functionSourceFile: /src/tmux/layout.c
    functionUses: 0
    functionsReached:
    - layout_resize_check
    linkageType: ''
    returnType: u_int
    signature: "u_int layout_new_pane_size(struct window *w, u_int previous, struct
      layout_cell *lc,\n    enum layout_type type, u_int size, u_int count_left, u_int
      size_left)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout.c:888,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout.c:902,1
    - Dst: layout_new_pane_size
      Src: /src/tmux/layout.c:903,1
    - Dst: layout_set_size_check
      Src: /src/tmux/layout.c:914,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout.c:919,1
    - Dst: layout_set_size_check
      Src: /src/tmux/layout.c:922,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 4
    argNames:
    - w
    - lc
    - type
    - size
    argTypes:
    - struct window*
    - struct layout_cell*
    - enum layout_type
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 874
    functionDepth: 4
    functionLinenumber: 874
    functionLinenumberEnd: 928
    functionName: layout_set_size_check
    functionSourceFile: /src/tmux/layout.c
    functionUses: 1
    functionsReached:
    - layout_new_pane_size
    - layout_set_size_check
    - TAILQ_FOREACH
    linkageType: ''
    returnType: int
    signature: "int layout_set_size_check(struct window *w, struct layout_cell *lc,\n
      \   enum layout_type type, int size)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout.c:943,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout.c:961,1
    - Dst: layout_new_pane_size
      Src: /src/tmux/layout.c:966,1
    - Dst: layout_new_pane_size
      Src: /src/tmux/layout.c:973,1
    - Dst: layout_resize_child_cells
      Src: /src/tmux/layout.c:977,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 2
    argNames:
    - w
    - lc
    argTypes:
    - struct window*
    - struct layout_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 931
    functionDepth: 4
    functionLinenumber: 931
    functionLinenumberEnd: 980
    functionName: layout_resize_child_cells
    functionSourceFile: /src/tmux/layout.c
    functionUses: 1
    functionsReached:
    - layout_new_pane_size
    - layout_resize_child_cells
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void layout_resize_child_cells(struct window *w, struct layout_cell
      *lc)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/layout.c:1005,1
    - Dst: options_get_number
      Src: /src/tmux/layout.c:1006,1
    - Dst: layout_add_horizontal_border
      Src: /src/tmux/layout.c:1026,1
    - Dst: fatalx
      Src: /src/tmux/layout.c:1034,1
    - Dst: layout_set_size_check
      Src: /src/tmux/layout.c:1064,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout.c:1073,1
    - Dst: TAILQ_INSERT_BEFORE
      Src: /src/tmux/layout.c:1075,1
    - Dst: TAILQ_INSERT_AFTER
      Src: /src/tmux/layout.c:1077,1
    - Dst: layout_resize_child_cells
      Src: /src/tmux/layout.c:1087,1
    - Dst: layout_resize_child_cells
      Src: /src/tmux/layout.c:1091,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout.c:1097,1
    - Dst: layout_set_size
      Src: /src/tmux/layout.c:1100,1
    - Dst: layout_set_size
      Src: /src/tmux/layout.c:1102,1
    - Dst: TAILQ_INSERT_HEAD
      Src: /src/tmux/layout.c:1104,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/layout.c:1106,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout.c:1113,1
    - Dst: layout_make_node
      Src: /src/tmux/layout.c:1114,1
    - Dst: layout_set_size
      Src: /src/tmux/layout.c:1115,1
    - Dst: TAILQ_REPLACE
      Src: /src/tmux/layout.c:1119,1
    - Dst: TAILQ_INSERT_HEAD
      Src: /src/tmux/layout.c:1123,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout.c:1126,1
    - Dst: TAILQ_INSERT_HEAD
      Src: /src/tmux/layout.c:1128,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/layout.c:1130,1
    - Dst: layout_set_size
      Src: /src/tmux/layout.c:1145,1
    - Dst: layout_set_size
      Src: /src/tmux/layout.c:1146,1
    - Dst: layout_set_size
      Src: /src/tmux/layout.c:1148,1
    - Dst: layout_set_size
      Src: /src/tmux/layout.c:1149,1
    - Dst: layout_resize_child_cells
      Src: /src/tmux/layout.c:1153,1
    - Dst: layout_fix_offsets
      Src: /src/tmux/layout.c:1154,1
    - Dst: layout_make_leaf
      Src: /src/tmux/layout.c:1156,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 111
    argCount: 4
    argNames:
    - wp
    - type
    - size
    - flags
    argTypes:
    - struct window_pane*
    - enum layout_type
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 986
    functionDepth: 5
    functionLinenumber: 986
    functionLinenumberEnd: 1159
    functionName: layout_split_pane
    functionSourceFile: /src/tmux/layout.c
    functionUses: 0
    functionsReached:
    - layout_resize_child_cells
    - TAILQ_INSERT_HEAD
    - TAILQ_REPLACE
    - layout_make_leaf
    - layout_set_size
    - layout_fix_offsets
    - fatalx
    - TAILQ_INSERT_BEFORE
    - layout_add_horizontal_border
    - layout_set_size_check
    - TAILQ_INSERT_AFTER
    - options_get_number
    - layout_create_cell
    - layout_make_node
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: struct layout_cell
    signature: "struct layout_cell *\nlayout_split_pane(struct window_pane *wp, enum
      layout_type type, int size,\n    int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: layout_destroy_cell
      Src: /src/tmux/layout.c:1171,1
    - Dst: layout_fix_offsets
      Src: /src/tmux/layout.c:1175,1
    - Dst: layout_fix_panes
      Src: /src/tmux/layout.c:1176,1
    - Dst: notify_window
      Src: /src/tmux/layout.c:1178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1162
    functionDepth: 5
    functionLinenumber: 1162
    functionLinenumberEnd: 1179
    functionName: layout_close_pane
    functionSourceFile: /src/tmux/layout.c
    functionUses: 0
    functionsReached:
    - notify_window
    - layout_fix_offsets
    - layout_destroy_cell
    - layout_fix_panes
    linkageType: ''
    returnType: void
    signature: void layout_close_pane(struct window_pane *wp)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout.c:1189,1
    - Dst: options_get_number
      Src: /src/tmux/layout.c:1193,1
    - Dst: layout_add_horizontal_border
      Src: /src/tmux/layout.c:1198,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout.c:1216,1
    - Dst: layout_resize_adjust
      Src: /src/tmux/layout.c:1224,1
    - Dst: layout_add_horizontal_border
      Src: /src/tmux/layout.c:1226,1
    - Dst: layout_resize_adjust
      Src: /src/tmux/layout.c:1235,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 2
    argNames:
    - w
    - parent
    argTypes:
    - struct window*
    - struct layout_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1181
    functionDepth: 4
    functionLinenumber: 1181
    functionLinenumberEnd: 1241
    functionName: layout_spread_cell
    functionSourceFile: /src/tmux/layout.c
    functionUses: 0
    functionsReached:
    - layout_add_horizontal_border
    - layout_resize_adjust
    - options_get_number
    - TAILQ_FOREACH
    linkageType: ''
    returnType: int
    signature: int layout_spread_cell(struct window *w, struct layout_cell *parent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: layout_spread_cell
      Src: /src/tmux/layout.c:1254,1
    - Dst: layout_fix_offsets
      Src: /src/tmux/layout.c:1255,1
    - Dst: layout_fix_panes
      Src: /src/tmux/layout.c:1256,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1243
    functionDepth: 5
    functionLinenumber: 1243
    functionLinenumberEnd: 1260
    functionName: layout_spread_out
    functionSourceFile: /src/tmux/layout.c
    functionUses: 0
    functionsReached:
    - layout_fix_offsets
    - layout_spread_cell
    - layout_fix_panes
    linkageType: ''
    returnType: void
    signature: void layout_spread_out(struct window_pane *wp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/tty-features.c:403,1
    - Dst: xstrdup
      Src: /src/tmux/tty-features.c:405,1
    - Dst: strsep
      Src: /src/tmux/tty-features.c:406,1
    - Dst: nitems
      Src: /src/tmux/tty-features.c:407,1
    - Dst: strcasecmp
      Src: /src/tmux/tty-features.c:409,1
    - Dst: nitems
      Src: /src/tmux/tty-features.c:412,1
    - Dst: log_debug
      Src: /src/tmux/tty-features.c:413,1
    - Dst: log_debug
      Src: /src/tmux/tty-features.c:417,1
    - Dst: free
      Src: /src/tmux/tty-features.c:421,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - feat
    - s
    - separators
    argTypes:
    - int*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 422
    functionName: tty_add_features
    functionSourceFile: /src/tmux/tty-features.c
    functionUses: 0
    functionsReached:
    - nitems
    - strcasecmp
    - strsep
    - free
    - log_debug
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void tty_add_features(int *feat, const char *s, const char *separators)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nitems
      Src: /src/tmux/tty-features.c:432,1
    - Dst: strlcat
      Src: /src/tmux/tty-features.c:437,1
    - Dst: strlcat
      Src: /src/tmux/tty-features.c:438,1
    - Dst: strlen
      Src: /src/tmux/tty-features.c:441,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - feat
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 443
    functionName: tty_get_features
    functionSourceFile: /src/tmux/tty-features.c
    functionUses: 0
    functionsReached:
    - strlen
    - nitems
    - strlcat
    linkageType: ''
    returnType: char
    signature: 'char *

      tty_get_features(int feat)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/tty-features.c:454,1
    - Dst: tty_get_features
      Src: /src/tmux/tty-features.c:454,1
    - Dst: nitems
      Src: /src/tmux/tty-features.c:456,1
    - Dst: log_debug
      Src: /src/tmux/tty-features.c:461,1
    - Dst: log_debug
      Src: /src/tmux/tty-features.c:465,1
    - Dst: tty_term_apply
      Src: /src/tmux/tty-features.c:466,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - term
    - feat
    argTypes:
    - struct tty_term*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 476
    functionName: tty_apply_features
    functionSourceFile: /src/tmux/tty-features.c
    functionUses: 0
    functionsReached:
    - log_debug
    - tty_get_features
    - nitems
    - tty_term_apply
    linkageType: ''
    returnType: int
    signature: int tty_apply_features(struct tty_term *term, int feat)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nitems
      Src: /src/tmux/tty-features.c:561,1
    - Dst: strcmp
      Src: /src/tmux/tty-features.c:562,1
    - Dst: tty_add_features
      Src: /src/tmux/tty-features.c:566,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - feat
    - name
    - version
    argTypes:
    - int*
    - char*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 478
    functionDepth: 2
    functionLinenumber: 478
    functionLinenumberEnd: 568
    functionName: tty_default_features
    functionSourceFile: /src/tmux/tty-features.c
    functionUses: 0
    functionsReached:
    - nitems
    - tty_add_features
    - strcmp
    linkageType: ''
    returnType: void
    signature: void tty_default_features(int *feat, const char *name, u_int version)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/tmux/file.c:47,1
    - Dst: xstrdup
      Src: /src/tmux/file.c:48,1
    - Dst: find_home
      Src: /src/tmux/file.c:50,1
    - Dst: xasprintf
      Src: /src/tmux/file.c:53,1
    - Dst: xasprintf
      Src: /src/tmux/file.c:57,1
    - Dst: server_client_get_cwd
      Src: /src/tmux/file.c:57,1
    - Dst: free
      Src: /src/tmux/file.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - c
    - file
    argTypes:
    - struct client*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 60
    functionName: file_get_path
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - strncmp
    - server_client_get_cwd
    - free
    - xstrdup
    - find_home
    linkageType: ''
    returnType: char
    signature: 'char *

      file_get_path(struct client *c, const char *file)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - cf1
    - cf2
    argTypes:
    - struct client_file*
    - struct client_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: file_cmp
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_cmp(struct client_file *cf1, struct client_file *cf2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/file.c:85,1
    - Dst: evbuffer_new
      Src: /src/tmux/file.c:90,1
    - Dst: fatalx
      Src: /src/tmux/file.c:92,1
    - Dst: RB_INSERT
      Src: /src/tmux/file.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 5
    argNames:
    - peer
    - files
    - stream
    - cb
    - cbdata
    argTypes:
    - struct tmuxpeer*
    - struct client_files*
    - int
    - client_file_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 102
    functionName: file_create_with_peer
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - RB_INSERT
    - evbuffer_new
    - fatalx
    linkageType: ''
    returnType: struct client_file
    signature: "struct client_file *\nfile_create_with_peer(struct tmuxpeer *peer,
      struct client_files *files,\n    int stream, client_file_cb cb, void *cbdata)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/file.c:114,1
    - Dst: evbuffer_new
      Src: /src/tmux/file.c:119,1
    - Dst: fatalx
      Src: /src/tmux/file.c:121,1
    - Dst: RB_INSERT
      Src: /src/tmux/file.c:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - c
    - stream
    - cb
    - cbdata
    argTypes:
    - struct client*
    - int
    - client_file_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 134
    functionName: file_create_with_client
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - RB_INSERT
    - evbuffer_new
    - fatalx
    linkageType: ''
    returnType: struct client_file
    signature: "struct client_file *\nfile_create_with_client(struct client *c, int
      stream, client_file_cb cb,\n    void *cbdata)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_free
      Src: /src/tmux/file.c:143,1
    - Dst: free
      Src: /src/tmux/file.c:144,1
    - Dst: RB_REMOVE
      Src: /src/tmux/file.c:147,1
    - Dst: server_client_unref
      Src: /src/tmux/file.c:149,1
    - Dst: free
      Src: /src/tmux/file.c:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - cf
    argTypes:
    - struct client_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 152
    functionName: file_free
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached:
    - server_client_unref
    - RB_REMOVE
    - evbuffer_free
    - free
    linkageType: ''
    returnType: void
    signature: void file_free(struct client_file *cf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct client_file*::cb
      Src: /src/tmux/file.c:163,1
    - Dst: file_free
      Src: /src/tmux/file.c:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - int
    - events
    - arg
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 165
    functionName: file_fire_done_cb
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached:
    - struct client_file*::cb
    - file_free
    linkageType: ''
    returnType: void
    signature: void file_fire_done_cb(__unused int fd, __unused short events, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_once
      Src: /src/tmux/file.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cf
    argTypes:
    - struct client_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: file_fire_done
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached:
    - event_once
    linkageType: ''
    returnType: void
    signature: void file_fire_done(struct client_file *cf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct client_file*::cb
      Src: /src/tmux/file.c:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - cf
    argTypes:
    - struct client_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: file_fire_read
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached:
    - struct client_file*::cb
    linkageType: ''
    returnType: void
    signature: void file_fire_read(struct client_file *cf)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 191
    functionName: file_can_print
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int file_can_print(struct client *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/tmux/file.c:199,1
    - Dst: file_vprint
      Src: /src/tmux/file.c:200,1
    - Dst: va_end
      Src: /src/tmux/file.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - c
    - fmt
    argTypes:
    - struct client*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 202
    functionName: file_print
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached:
    - file_vprint
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void file_print(struct client *c, const char *fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: file_can_print
      Src: /src/tmux/file.c:211,1
    - Dst: RB_FIND
      Src: /src/tmux/file.c:215,1
    - Dst: file_create_with_client
      Src: /src/tmux/file.c:216,1
    - Dst: xstrdup
      Src: /src/tmux/file.c:217,1
    - Dst: evbuffer_add_vprintf
      Src: /src/tmux/file.c:219,1
    - Dst: proc_send
      Src: /src/tmux/file.c:224,1
    - Dst: evbuffer_add_vprintf
      Src: /src/tmux/file.c:226,1
    - Dst: file_push
      Src: /src/tmux/file.c:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - c
    - fmt
    - ap
    argTypes:
    - struct client*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 229
    functionName: file_vprint
    functionSourceFile: /src/tmux/file.c
    functionUses: 1
    functionsReached:
    - proc_send
    - file_can_print
    - file_create_with_client
    - xstrdup
    - evbuffer_add_vprintf
    - RB_FIND
    - file_push
    linkageType: ''
    returnType: void
    signature: void file_vprint(struct client *c, const char *fmt, va_list ap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: file_can_print
      Src: /src/tmux/file.c:238,1
    - Dst: RB_FIND
      Src: /src/tmux/file.c:242,1
    - Dst: file_create_with_client
      Src: /src/tmux/file.c:243,1
    - Dst: xstrdup
      Src: /src/tmux/file.c:244,1
    - Dst: evbuffer_add
      Src: /src/tmux/file.c:246,1
    - Dst: proc_send
      Src: /src/tmux/file.c:251,1
    - Dst: evbuffer_add
      Src: /src/tmux/file.c:253,1
    - Dst: file_push
      Src: /src/tmux/file.c:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - c
    - data
    - size
    argTypes:
    - struct client*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 256
    functionName: file_print_buffer
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached:
    - proc_send
    - evbuffer_add
    - file_can_print
    - file_create_with_client
    - xstrdup
    - RB_FIND
    - file_push
    linkageType: ''
    returnType: void
    signature: void file_print_buffer(struct client *c, void *data, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: file_can_print
      Src: /src/tmux/file.c:266,1
    - Dst: va_start
      Src: /src/tmux/file.c:269,1
    - Dst: RB_FIND
      Src: /src/tmux/file.c:272,1
    - Dst: file_create_with_client
      Src: /src/tmux/file.c:273,1
    - Dst: xstrdup
      Src: /src/tmux/file.c:274,1
    - Dst: evbuffer_add_vprintf
      Src: /src/tmux/file.c:276,1
    - Dst: proc_send
      Src: /src/tmux/file.c:281,1
    - Dst: evbuffer_add_vprintf
      Src: /src/tmux/file.c:283,1
    - Dst: file_push
      Src: /src/tmux/file.c:284,1
    - Dst: va_end
      Src: /src/tmux/file.c:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - c
    - fmt
    argTypes:
    - struct client*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 288
    functionName: file_error
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached:
    - proc_send
    - file_can_print
    - evbuffer_add_vprintf
    - file_create_with_client
    - va_start
    - va_end
    - xstrdup
    - RB_FIND
    - file_push
    linkageType: ''
    returnType: void
    signature: void file_error(struct client *c, const char *fmt, ...)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/file.c:303,1
    - Dst: file_create_with_client
      Src: /src/tmux/file.c:304,1
    - Dst: xstrdup
      Src: /src/tmux/file.c:305,1
    - Dst: file_create_with_client
      Src: /src/tmux/file.c:317,1
    - Dst: file_get_path
      Src: /src/tmux/file.c:318,1
    - Dst: fopen
      Src: /src/tmux/file.c:325,1
    - Dst: fwrite
      Src: /src/tmux/file.c:330,1
    - Dst: fclose
      Src: /src/tmux/file.c:331,1
    - Dst: fclose
      Src: /src/tmux/file.c:335,1
    - Dst: evbuffer_add
      Src: /src/tmux/file.c:340,1
    - Dst: strlen
      Src: /src/tmux/file.c:342,1
    - Dst: xmalloc
      Src: /src/tmux/file.c:347,1
    - Dst: memcpy
      Src: /src/tmux/file.c:351,1
    - Dst: proc_send
      Src: /src/tmux/file.c:352,1
    - Dst: free
      Src: /src/tmux/file.c:353,1
    - Dst: free
      Src: /src/tmux/file.c:357,1
    - Dst: file_fire_done
      Src: /src/tmux/file.c:361,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 7
    argNames:
    - c
    - path
    - flags
    - bdata
    - bsize
    - cb
    - cbdata
    argTypes:
    - struct client*
    - char*
    - int
    - void*
    - size_t
    - client_file_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 362
    functionName: file_write
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached:
    - proc_send
    - evbuffer_add
    - file_get_path
    - file_create_with_client
    - fclose
    - xmalloc
    - file_fire_done
    - fwrite
    - strcmp
    - free
    - memcpy
    - strlen
    - xstrdup
    - fopen
    linkageType: ''
    returnType: void
    signature: "void file_write(struct client *c, const char *path, int flags, const
      void *bdata,\n    size_t bsize, client_file_cb cb, void *cbdata)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/file.c:377,1
    - Dst: file_create_with_client
      Src: /src/tmux/file.c:378,1
    - Dst: xstrdup
      Src: /src/tmux/file.c:379,1
    - Dst: file_create_with_client
      Src: /src/tmux/file.c:391,1
    - Dst: file_get_path
      Src: /src/tmux/file.c:392,1
    - Dst: fopen
      Src: /src/tmux/file.c:395,1
    - Dst: fread
      Src: /src/tmux/file.c:401,1
    - Dst: ferror
      Src: /src/tmux/file.c:402,1
    - Dst: evbuffer_add
      Src: /src/tmux/file.c:406,1
    - Dst: ferror
      Src: /src/tmux/file.c:413,1
    - Dst: strlen
      Src: /src/tmux/file.c:421,1
    - Dst: xmalloc
      Src: /src/tmux/file.c:426,1
    - Dst: memcpy
      Src: /src/tmux/file.c:429,1
    - Dst: proc_send
      Src: /src/tmux/file.c:430,1
    - Dst: free
      Src: /src/tmux/file.c:431,1
    - Dst: free
      Src: /src/tmux/file.c:435,1
    - Dst: fclose
      Src: /src/tmux/file.c:440,1
    - Dst: file_fire_done
      Src: /src/tmux/file.c:441,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 71
    argCount: 4
    argNames:
    - c
    - path
    - cb
    - cbdata
    argTypes:
    - struct client*
    - char*
    - client_file_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 443
    functionName: file_read
    functionSourceFile: /src/tmux/file.c
    functionUses: 1
    functionsReached:
    - proc_send
    - evbuffer_add
    - file_get_path
    - file_create_with_client
    - xmalloc
    - fclose
    - file_fire_done
    - strcmp
    - fread
    - ferror
    - free
    - memcpy
    - strlen
    - xstrdup
    - fopen
    linkageType: ''
    returnType: struct client_file
    signature: 'struct client_file *

      file_read(struct client *c, const char *path, client_file_cb cb, void *cbdata)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/file.c:451,1
    - Dst: proc_send
      Src: /src/tmux/file.c:458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cf
    argTypes:
    - struct client_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 459
    functionName: file_cancel
    functionSourceFile: /src/tmux/file.c
    functionUses: 1
    functionsReached:
    - log_debug
    - proc_send
    linkageType: ''
    returnType: void
    signature: void file_cancel(struct client_file *cf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_push
      Src: /src/tmux/file.c:468,1
    - Dst: file_free
      Src: /src/tmux/file.c:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - int
    - events
    - arg
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 462
    functionDepth: 2
    functionLinenumber: 462
    functionLinenumberEnd: 470
    functionName: file_push_cb
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached:
    - file_push
    - file_free
    linkageType: ''
    returnType: void
    signature: void file_push_cb(__unused int fd, __unused short events, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/tmux/file.c:480,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/file.c:481,1
    - Dst: xrealloc
      Src: /src/tmux/file.c:488,1
    - Dst: memcpy
      Src: /src/tmux/file.c:490,1
    - Dst: EVBUFFER_DATA
      Src: /src/tmux/file.c:490,1
    - Dst: proc_send
      Src: /src/tmux/file.c:491,1
    - Dst: evbuffer_drain
      Src: /src/tmux/file.c:493,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/file.c:495,1
    - Dst: log_debug
      Src: /src/tmux/file.c:496,1
    - Dst: event_once
      Src: /src/tmux/file.c:500,1
    - Dst: proc_send
      Src: /src/tmux/file.c:503,1
    - Dst: file_fire_done
      Src: /src/tmux/file.c:504,1
    - Dst: free
      Src: /src/tmux/file.c:506,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - cf
    argTypes:
    - struct client_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 507
    functionName: file_push
    functionSourceFile: /src/tmux/file.c
    functionUses: 4
    functionsReached:
    - proc_send
    - EVBUFFER_DATA
    - xmalloc
    - file_fire_done
    - free
    - xrealloc
    - memcpy
    - log_debug
    - event_once
    - evbuffer_drain
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: void file_push(struct client_file *cf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/file.c:520,1
    - Dst: log_debug
      Src: /src/tmux/file.c:523,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - files
    argTypes:
    - struct client_files*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 527
    functionName: file_write_left
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached:
    - log_debug
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: int
    signature: int file_write_left(struct client_files *files)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/file.c:520,1
    - Dst: log_debug
      Src: /src/tmux/file.c:523,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 525
    functionName: RB_FOREACH
    functionSourceFile: /src/tmux/file.c
    functionUses: 2
    functionsReached:
    - log_debug
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: void RB_FOREACH(cf, client_files, files)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/file.c:536,1
    - Dst: bufferevent_free
      Src: /src/tmux/file.c:538,1
    - Dst: close
      Src: /src/tmux/file.c:541,1
    - Dst: struct client_file*::cb
      Src: /src/tmux/file.c:545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - __unused*
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 546
    functionName: file_write_error_callback
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached:
    - log_debug
    - close
    - struct client_file*::cb
    - bufferevent_free
    linkageType: ''
    returnType: void
    signature: "void file_write_error_callback(__unused struct bufferevent *bev, __unused
      short what,\n    void *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/file.c:554,1
    - Dst: struct client_file*::cb
      Src: /src/tmux/file.c:557,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/file.c:559,1
    - Dst: bufferevent_free
      Src: /src/tmux/file.c:560,1
    - Dst: close
      Src: /src/tmux/file.c:561,1
    - Dst: RB_REMOVE
      Src: /src/tmux/file.c:562,1
    - Dst: file_free
      Src: /src/tmux/file.c:563,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - __unused*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 565
    functionName: file_write_callback
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached:
    - close
    - RB_REMOVE
    - bufferevent_free
    - file_free
    - log_debug
    - struct client_file*::cb
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: void file_write_callback(__unused struct bufferevent *bev, void *arg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fatalx
      Src: /src/tmux/file.c:582,1
    - Dst: log_debug
      Src: /src/tmux/file.c:587,1
    - Dst: RB_FIND
      Src: /src/tmux/file.c:590,1
    - Dst: file_create_with_peer
      Src: /src/tmux/file.c:594,1
    - Dst: open
      Src: /src/tmux/file.c:602,1
    - Dst: dup
      Src: /src/tmux/file.c:607,1
    - Dst: close
      Src: /src/tmux/file.c:609,1
    - Dst: bufferevent_new
      Src: /src/tmux/file.c:618,1
    - Dst: fatalx
      Src: /src/tmux/file.c:621,1
    - Dst: bufferevent_enable
      Src: /src/tmux/file.c:622,1
    - Dst: proc_send
      Src: /src/tmux/file.c:628,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 7
    argNames:
    - files
    - peer
    - imsg
    - allow_streams
    - close_received
    - cb
    - cbdata
    argTypes:
    - struct client_files*
    - struct tmuxpeer*
    - struct imsg*
    - int
    - int
    - client_file_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 568
    functionDepth: 2
    functionLinenumber: 568
    functionLinenumberEnd: 629
    functionName: file_write_open
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached:
    - proc_send
    - close
    - file_create_with_peer
    - bufferevent_new
    - fatalx
    - open
    - dup
    - log_debug
    - bufferevent_enable
    - RB_FIND
    linkageType: ''
    returnType: void
    signature: "void file_write_open(struct client_files *files, struct tmuxpeer *peer,\n
      \   struct imsg *imsg, int allow_streams, int close_received,\n    client_file_cb
      cb, void *cbdata)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fatalx
      Src: /src/tmux/file.c:641,1
    - Dst: RB_FIND
      Src: /src/tmux/file.c:643,1
    - Dst: fatalx
      Src: /src/tmux/file.c:644,1
    - Dst: log_debug
      Src: /src/tmux/file.c:645,1
    - Dst: bufferevent_write
      Src: /src/tmux/file.c:648,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - files
    - imsg
    argTypes:
    - struct client_files*
    - struct imsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 649
    functionName: file_write_data
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached:
    - log_debug
    - bufferevent_write
    - fatalx
    - RB_FIND
    linkageType: ''
    returnType: void
    signature: void file_write_data(struct client_files *files, struct imsg *imsg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fatalx
      Src: /src/tmux/file.c:660,1
    - Dst: RB_FIND
      Src: /src/tmux/file.c:662,1
    - Dst: fatalx
      Src: /src/tmux/file.c:663,1
    - Dst: log_debug
      Src: /src/tmux/file.c:664,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/file.c:666,1
    - Dst: bufferevent_free
      Src: /src/tmux/file.c:668,1
    - Dst: close
      Src: /src/tmux/file.c:670,1
    - Dst: RB_REMOVE
      Src: /src/tmux/file.c:671,1
    - Dst: file_free
      Src: /src/tmux/file.c:672,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - files
    - imsg
    argTypes:
    - struct client_files*
    - struct imsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 652
    functionDepth: 2
    functionLinenumber: 652
    functionLinenumberEnd: 674
    functionName: file_write_close
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached:
    - close
    - fatalx
    - bufferevent_free
    - file_free
    - log_debug
    - RB_REMOVE
    - RB_FIND
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: void file_write_close(struct client_files *files, struct imsg *imsg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/file.c:684,1
    - Dst: proc_send
      Src: /src/tmux/file.c:688,1
    - Dst: bufferevent_free
      Src: /src/tmux/file.c:690,1
    - Dst: close
      Src: /src/tmux/file.c:691,1
    - Dst: RB_REMOVE
      Src: /src/tmux/file.c:692,1
    - Dst: file_free
      Src: /src/tmux/file.c:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - __unused*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 694
    functionName: file_read_error_callback
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached:
    - proc_send
    - close
    - bufferevent_free
    - file_free
    - log_debug
    - RB_REMOVE
    linkageType: ''
    returnType: void
    signature: "void file_read_error_callback(__unused struct bufferevent *bev, short
      what,\n    void *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/tmux/file.c:706,1
    - Dst: EVBUFFER_DATA
      Src: /src/tmux/file.c:708,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/file.c:709,1
    - Dst: log_debug
      Src: /src/tmux/file.c:715,1
    - Dst: xrealloc
      Src: /src/tmux/file.c:718,1
    - Dst: memcpy
      Src: /src/tmux/file.c:720,1
    - Dst: proc_send
      Src: /src/tmux/file.c:721,1
    - Dst: evbuffer_drain
      Src: /src/tmux/file.c:723,1
    - Dst: free
      Src: /src/tmux/file.c:725,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - __unused*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 726
    functionName: file_read_callback
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached:
    - proc_send
    - EVBUFFER_DATA
    - xmalloc
    - free
    - xrealloc
    - memcpy
    - log_debug
    - evbuffer_drain
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: void file_read_callback(__unused struct bufferevent *bev, void *arg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fatalx
      Src: /src/tmux/file.c:743,1
    - Dst: log_debug
      Src: /src/tmux/file.c:748,1
    - Dst: RB_FIND
      Src: /src/tmux/file.c:751,1
    - Dst: file_create_with_peer
      Src: /src/tmux/file.c:755,1
    - Dst: open
      Src: /src/tmux/file.c:763,1
    - Dst: dup
      Src: /src/tmux/file.c:768,1
    - Dst: close
      Src: /src/tmux/file.c:770,1
    - Dst: bufferevent_new
      Src: /src/tmux/file.c:779,1
    - Dst: fatalx
      Src: /src/tmux/file.c:782,1
    - Dst: bufferevent_enable
      Src: /src/tmux/file.c:783,1
    - Dst: proc_send
      Src: /src/tmux/file.c:789,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 7
    argNames:
    - files
    - peer
    - imsg
    - allow_streams
    - close_received
    - cb
    - cbdata
    argTypes:
    - struct client_files*
    - struct tmuxpeer*
    - struct imsg*
    - int
    - int
    - client_file_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 729
    functionDepth: 2
    functionLinenumber: 729
    functionLinenumberEnd: 790
    functionName: file_read_open
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached:
    - proc_send
    - close
    - file_create_with_peer
    - bufferevent_new
    - fatalx
    - open
    - dup
    - log_debug
    - bufferevent_enable
    - RB_FIND
    linkageType: ''
    returnType: void
    signature: "void file_read_open(struct client_files *files, struct tmuxpeer *peer,\n
      \   struct imsg *imsg, int allow_streams, int close_received, client_file_cb
      cb,\n    void *cbdata)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fatalx
      Src: /src/tmux/file.c:801,1
    - Dst: RB_FIND
      Src: /src/tmux/file.c:803,1
    - Dst: fatalx
      Src: /src/tmux/file.c:804,1
    - Dst: log_debug
      Src: /src/tmux/file.c:805,1
    - Dst: file_read_error_callback
      Src: /src/tmux/file.c:807,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - files
    - imsg
    argTypes:
    - struct client_files*
    - struct imsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 793
    functionDepth: 3
    functionLinenumber: 793
    functionLinenumberEnd: 808
    functionName: file_read_cancel
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached:
    - log_debug
    - fatalx
    - file_read_error_callback
    - RB_FIND
    linkageType: ''
    returnType: void
    signature: void file_read_cancel(struct client_files *files, struct imsg *imsg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RB_FIND
      Src: /src/tmux/file.c:821,1
    - Dst: file_fire_done
      Src: /src/tmux/file.c:825,1
    - Dst: file_push
      Src: /src/tmux/file.c:827,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - files
    - imsg
    argTypes:
    - struct client_files*
    - struct imsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 811
    functionDepth: 3
    functionLinenumber: 811
    functionLinenumberEnd: 829
    functionName: file_write_ready
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached:
    - file_fire_done
    - RB_FIND
    - file_push
    linkageType: ''
    returnType: int
    signature: int file_write_ready(struct client_files *files, struct imsg *imsg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RB_FIND
      Src: /src/tmux/file.c:844,1
    - Dst: log_debug
      Src: /src/tmux/file.c:847,1
    - Dst: evbuffer_add
      Src: /src/tmux/file.c:849,1
    - Dst: file_fire_done
      Src: /src/tmux/file.c:851,1
    - Dst: file_fire_read
      Src: /src/tmux/file.c:853,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - files
    - imsg
    argTypes:
    - struct client_files*
    - struct imsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 832
    functionDepth: 2
    functionLinenumber: 832
    functionLinenumberEnd: 856
    functionName: file_read_data
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    - file_fire_read
    - file_fire_done
    - log_debug
    - RB_FIND
    linkageType: ''
    returnType: int
    signature: int file_read_data(struct client_files *files, struct imsg *imsg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RB_FIND
      Src: /src/tmux/file.c:869,1
    - Dst: log_debug
      Src: /src/tmux/file.c:872,1
    - Dst: file_fire_done
      Src: /src/tmux/file.c:874,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - files
    - imsg
    argTypes:
    - struct client_files*
    - struct imsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 859
    functionDepth: 2
    functionLinenumber: 859
    functionLinenumberEnd: 876
    functionName: file_read_done
    functionSourceFile: /src/tmux/file.c
    functionUses: 0
    functionsReached:
    - log_debug
    - file_fire_done
    - RB_FIND
    linkageType: ''
    returnType: int
    signature: int file_read_done(struct client_files *files, struct imsg *imsg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: server_redraw_client
    functionSourceFile: /src/tmux/server-fn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void server_redraw_client(struct client *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: server_status_client
    functionSourceFile: /src/tmux/server-fn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void server_status_client(struct client *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-fn.c:50,1
    - Dst: server_redraw_client
      Src: /src/tmux/server-fn.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: server_redraw_session
    functionSourceFile: /src/tmux/server-fn.c
    functionUses: 1
    functionsReached:
    - server_redraw_client
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void server_redraw_session(struct session *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: session_group_contains
      Src: /src/tmux/server-fn.c:61,1
    - Dst: server_redraw_session
      Src: /src/tmux/server-fn.c:62,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-fn.c:64,1
    - Dst: server_redraw_session
      Src: /src/tmux/server-fn.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 67
    functionName: server_redraw_session_group
    functionSourceFile: /src/tmux/server-fn.c
    functionUses: 0
    functionsReached:
    - session_group_contains
    - server_redraw_session
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void server_redraw_session_group(struct session *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-fn.c:74,1
    - Dst: server_status_client
      Src: /src/tmux/server-fn.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: server_status_session
    functionSourceFile: /src/tmux/server-fn.c
    functionUses: 1
    functionsReached:
    - server_status_client
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void server_status_session(struct session *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: session_group_contains
      Src: /src/tmux/server-fn.c:85,1
    - Dst: server_status_session
      Src: /src/tmux/server-fn.c:86,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-fn.c:88,1
    - Dst: server_status_session
      Src: /src/tmux/server-fn.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 91
    functionName: server_status_session_group
    functionSourceFile: /src/tmux/server-fn.c
    functionUses: 0
    functionsReached:
    - session_group_contains
    - server_status_session
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void server_status_session_group(struct session *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-fn.c:98,1
    - Dst: server_redraw_client
      Src: /src/tmux/server-fn.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: server_redraw_window
    functionSourceFile: /src/tmux/server-fn.c
    functionUses: 2
    functionsReached:
    - server_redraw_client
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void server_redraw_window(struct window *w)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-fn.c:111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 117
    functionName: server_redraw_window_borders
    functionSourceFile: /src/tmux/server-fn.c
    functionUses: 2
    functionsReached:
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void server_redraw_window_borders(struct window *w)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/server-fn.c:130,1
    - Dst: session_has
      Src: /src/tmux/server-fn.c:131,1
    - Dst: server_status_session
      Src: /src/tmux/server-fn.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 134
    functionName: server_status_window
    functionSourceFile: /src/tmux/server-fn.c
    functionUses: 2
    functionsReached:
    - RB_FOREACH
    - server_status_session
    - session_has
    linkageType: ''
    returnType: void
    signature: void server_status_window(struct window *w)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-fn.c:141,1
    - Dst: server_lock_client
      Src: /src/tmux/server-fn.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 145
    functionName: server_lock
    functionSourceFile: /src/tmux/server-fn.c
    functionUses: 0
    functionsReached:
    - server_lock_client
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void server_lock(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-fn.c:152,1
    - Dst: server_lock_client
      Src: /src/tmux/server-fn.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 156
    functionName: server_lock_session
    functionSourceFile: /src/tmux/server-fn.c
    functionUses: 0
    functionsReached:
    - server_lock_client
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void server_lock_session(struct session *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: options_get_string
      Src: /src/tmux/server-fn.c:169,1
    - Dst: strlen
      Src: /src/tmux/server-fn.c:170,1
    - Dst: tty_stop_tty
      Src: /src/tmux/server-fn.c:173,1
    - Dst: tty_raw
      Src: /src/tmux/server-fn.c:174,1
    - Dst: tty_term_string
      Src: /src/tmux/server-fn.c:174,1
    - Dst: tty_raw
      Src: /src/tmux/server-fn.c:175,1
    - Dst: tty_term_string
      Src: /src/tmux/server-fn.c:175,1
    - Dst: tty_raw
      Src: /src/tmux/server-fn.c:176,1
    - Dst: tty_term_string
      Src: /src/tmux/server-fn.c:176,1
    - Dst: proc_send
      Src: /src/tmux/server-fn.c:179,1
    - Dst: strlen
      Src: /src/tmux/server-fn.c:179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 180
    functionName: server_lock_client
    functionSourceFile: /src/tmux/server-fn.c
    functionUses: 2
    functionsReached:
    - proc_send
    - tty_term_string
    - tty_raw
    - tty_stop_tty
    - strlen
    - options_get_string
    linkageType: ''
    returnType: void
    signature: void server_lock_client(struct client *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: window_count_panes
      Src: /src/tmux/server-fn.c:187,1
    - Dst: server_kill_window
      Src: /src/tmux/server-fn.c:188,1
    - Dst: recalculate_sizes
      Src: /src/tmux/server-fn.c:189,1
    - Dst: server_unzoom_window
      Src: /src/tmux/server-fn.c:191,1
    - Dst: server_client_remove_pane
      Src: /src/tmux/server-fn.c:192,1
    - Dst: layout_close_pane
      Src: /src/tmux/server-fn.c:193,1
    - Dst: window_remove_pane
      Src: /src/tmux/server-fn.c:194,1
    - Dst: server_redraw_window
      Src: /src/tmux/server-fn.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 182
    functionDepth: 6
    functionLinenumber: 182
    functionLinenumberEnd: 197
    functionName: server_kill_pane
    functionSourceFile: /src/tmux/server-fn.c
    functionUses: 0
    functionsReached:
    - layout_close_pane
    - recalculate_sizes
    - server_redraw_window
    - window_count_panes
    - server_kill_window
    - server_unzoom_window
    - server_client_remove_pane
    - window_remove_pane
    linkageType: ''
    returnType: void
    signature: void server_kill_pane(struct window_pane *wp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH_SAFE
      Src: /src/tmux/server-fn.c:205,1
    - Dst: session_has
      Src: /src/tmux/server-fn.c:206,1
    - Dst: server_unzoom_window
      Src: /src/tmux/server-fn.c:209,1
    - Dst: winlink_find_by_window
      Src: /src/tmux/server-fn.c:210,1
    - Dst: session_detach
      Src: /src/tmux/server-fn.c:211,1
    - Dst: server_destroy_session_group
      Src: /src/tmux/server-fn.c:212,1
    - Dst: server_redraw_session_group
      Src: /src/tmux/server-fn.c:215,1
    - Dst: server_renumber_session
      Src: /src/tmux/server-fn.c:219,1
    - Dst: recalculate_sizes
      Src: /src/tmux/server-fn.c:221,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - w
    - renumber
    argTypes:
    - struct window*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 222
    functionName: server_kill_window
    functionSourceFile: /src/tmux/server-fn.c
    functionUses: 1
    functionsReached:
    - server_redraw_session_group
    - recalculate_sizes
    - session_has
    - RB_FOREACH_SAFE
    - server_destroy_session_group
    - session_detach
    - server_renumber_session
    - server_unzoom_window
    - winlink_find_by_window
    linkageType: ''
    returnType: void
    signature: void server_kill_window(struct window *w, int renumber)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/server-fn.c:229,1
    - Dst: session_group_contains
      Src: /src/tmux/server-fn.c:230,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-fn.c:231,1
    - Dst: session_renumber_windows
      Src: /src/tmux/server-fn.c:232,1
    - Dst: session_renumber_windows
      Src: /src/tmux/server-fn.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 236
    functionName: server_renumber_session
    functionSourceFile: /src/tmux/server-fn.c
    functionUses: 1
    functionsReached:
    - session_group_contains
    - options_get_number
    - session_renumber_windows
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void server_renumber_session(struct session *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/server-fn.c:243,1
    - Dst: server_renumber_session
      Src: /src/tmux/server-fn.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 245
    functionName: server_renumber_all
    functionSourceFile: /src/tmux/server-fn.c
    functionUses: 0
    functionsReached:
    - RB_FOREACH
    - server_renumber_session
    linkageType: ''
    returnType: void
    signature: void server_renumber_all(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: session_group_contains
      Src: /src/tmux/server-fn.c:255,1
    - Dst: session_group_contains
      Src: /src/tmux/server-fn.c:256,1
    - Dst: xasprintf
      Src: /src/tmux/server-fn.c:258,1
    - Dst: winlink_find_by_index
      Src: /src/tmux/server-fn.c:264,1
    - Dst: xasprintf
      Src: /src/tmux/server-fn.c:267,1
    - Dst: notify_session_window
      Src: /src/tmux/server-fn.c:275,1
    - Dst: winlink_stack_remove
      Src: /src/tmux/server-fn.c:278,1
    - Dst: winlink_remove
      Src: /src/tmux/server-fn.c:279,1
    - Dst: options_get_number
      Src: /src/tmux/server-fn.c:290,1
    - Dst: session_attach
      Src: /src/tmux/server-fn.c:291,1
    - Dst: session_select
      Src: /src/tmux/server-fn.c:298,1
    - Dst: server_redraw_session_group
      Src: /src/tmux/server-fn.c:299,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 7
    argNames:
    - src
    - srcwl
    - dst
    - dstidx
    - killflag
    - selectflag
    - cause
    argTypes:
    - struct session*
    - struct winlink*
    - struct session*
    - int
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 302
    functionName: server_link_window
    functionSourceFile: /src/tmux/server-fn.c
    functionUses: 0
    functionsReached:
    - session_select
    - session_group_contains
    - xasprintf
    - server_redraw_session_group
    - session_attach
    - winlink_remove
    - options_get_number
    - notify_session_window
    - winlink_find_by_index
    - winlink_stack_remove
    linkageType: ''
    returnType: int
    signature: "int server_link_window(struct session *src, struct winlink *srcwl,\n
      \   struct session *dst, int dstidx, int killflag, int selectflag,\n    char
      **cause)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: session_detach
      Src: /src/tmux/server-fn.c:307,1
    - Dst: server_destroy_session_group
      Src: /src/tmux/server-fn.c:308,1
    - Dst: server_redraw_session_group
      Src: /src/tmux/server-fn.c:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - wl
    argTypes:
    - struct session*
    - struct winlink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 311
    functionName: server_unlink_window
    functionSourceFile: /src/tmux/server-fn.c
    functionUses: 0
    functionsReached:
    - server_redraw_session_group
    - server_destroy_session_group
    - session_detach
    linkageType: ''
    returnType: void
    signature: void server_unlink_window(struct session *s, struct winlink *wl)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/server-fn.c:322,1
    - Dst: screen_size_y
      Src: /src/tmux/server-fn.c:323,1
    - Dst: utempter_remove_record
      Src: /src/tmux/server-fn.c:327,1
    - Dst: kill
      Src: /src/tmux/server-fn.c:328,1
    - Dst: getpid
      Src: /src/tmux/server-fn.c:328,1
    - Dst: bufferevent_free
      Src: /src/tmux/server-fn.c:330,1
    - Dst: close
      Src: /src/tmux/server-fn.c:332,1
    - Dst: options_get_number
      Src: /src/tmux/server-fn.c:336,1
    - Dst: WIFEXITED
      Src: /src/tmux/server-fn.c:343,1
    - Dst: WEXITSTATUS
      Src: /src/tmux/server-fn.c:343,1
    - Dst: gettimeofday
      Src: /src/tmux/server-fn.c:352,1
    - Dst: notify_pane
      Src: /src/tmux/server-fn.c:354,1
    - Dst: options_get_string
      Src: /src/tmux/server-fn.c:356,1
    - Dst: screen_write_start_pane
      Src: /src/tmux/server-fn.c:358,1
    - Dst: screen_write_scrollregion
      Src: /src/tmux/server-fn.c:359,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/server-fn.c:360,1
    - Dst: screen_write_linefeed
      Src: /src/tmux/server-fn.c:361,1
    - Dst: memcpy
      Src: /src/tmux/server-fn.c:362,1
    - Dst: format_single
      Src: /src/tmux/server-fn.c:364,1
    - Dst: format_draw
      Src: /src/tmux/server-fn.c:365,1
    - Dst: free
      Src: /src/tmux/server-fn.c:366,1
    - Dst: screen_write_stop
      Src: /src/tmux/server-fn.c:368,1
    - Dst: notify_pane
      Src: /src/tmux/server-fn.c:377,1
    - Dst: server_unzoom_window
      Src: /src/tmux/server-fn.c:379,1
    - Dst: server_client_remove_pane
      Src: /src/tmux/server-fn.c:380,1
    - Dst: layout_close_pane
      Src: /src/tmux/server-fn.c:381,1
    - Dst: window_remove_pane
      Src: /src/tmux/server-fn.c:382,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/server-fn.c:384,1
    - Dst: server_kill_window
      Src: /src/tmux/server-fn.c:385,1
    - Dst: server_redraw_window
      Src: /src/tmux/server-fn.c:387,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    argCount: 2
    argNames:
    - wp
    - notify
    argTypes:
    - struct window_pane*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 313
    functionDepth: 6
    functionLinenumber: 313
    functionLinenumberEnd: 388
    functionName: server_destroy_pane
    functionSourceFile: /src/tmux/server-fn.c
    functionUses: 1
    functionsReached:
    - screen_size_x
    - server_redraw_window
    - bufferevent_free
    - screen_write_linefeed
    - utempter_remove_record
    - getpid
    - screen_size_y
    - kill
    - WIFEXITED
    - screen_write_scrollregion
    - memcpy
    - server_unzoom_window
    - server_client_remove_pane
    - window_remove_pane
    - close
    - screen_write_start_pane
    - server_kill_window
    - gettimeofday
    - notify_pane
    - WEXITSTATUS
    - format_draw
    - layout_close_pane
    - screen_write_cursormove
    - format_single
    - free
    - TAILQ_EMPTY
    - options_get_number
    - options_get_string
    - screen_write_stop
    linkageType: ''
    returnType: void
    signature: void server_destroy_pane(struct window_pane *wp, int notify)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: session_group_contains
      Src: /src/tmux/server-fn.c:396,1
    - Dst: server_destroy_session
      Src: /src/tmux/server-fn.c:397,1
    - Dst: session_destroy
      Src: /src/tmux/server-fn.c:398,1
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/server-fn.c:400,1
    - Dst: server_destroy_session
      Src: /src/tmux/server-fn.c:401,1
    - Dst: session_destroy
      Src: /src/tmux/server-fn.c:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 405
    functionName: server_destroy_session_group
    functionSourceFile: /src/tmux/server-fn.c
    functionUses: 2
    functionsReached:
    - TAILQ_FOREACH_SAFE
    - session_group_contains
    - server_destroy_session
    - session_destroy
    linkageType: ''
    returnType: void
    signature: void server_destroy_session_group(struct session *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/server-fn.c:413,1
    - Dst: f
      Src: /src/tmux/server-fn.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 418
    functionName: server_find_session
    functionSourceFile: /src/tmux/server-fn.c
    functionUses: 0
    functionsReached:
    - RB_FOREACH
    - f
    linkageType: ''
    returnType: struct session
    signature: "struct session *\nserver_find_session(struct session *s,\n    int
      (*f)(struct session *, struct session *))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: timercmp
      Src: /src/tmux/server-fn.c:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s_loop
    - s_out
    argTypes:
    - struct session*
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 426
    functionName: server_newer_session
    functionSourceFile: /src/tmux/server-fn.c
    functionUses: 0
    functionsReached:
    - timercmp
    linkageType: ''
    returnType: int
    signature: int server_newer_session(struct session *s_loop, struct session *s_out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: server_newer_session
      Src: /src/tmux/server-fn.c:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s_loop
    - s_out
    argTypes:
    - struct session*
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 434
    functionName: server_newer_detached_session
    functionSourceFile: /src/tmux/server-fn.c
    functionUses: 0
    functionsReached:
    - server_newer_session
    linkageType: ''
    returnType: int
    signature: int server_newer_detached_session(struct session *s_loop, struct session
      *s_out)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/server-fn.c:443,1
    - Dst: server_find_session
      Src: /src/tmux/server-fn.c:445,1
    - Dst: server_find_session
      Src: /src/tmux/server-fn.c:447,1
    - Dst: session_previous_session
      Src: /src/tmux/server-fn.c:449,1
    - Dst: session_next_session
      Src: /src/tmux/server-fn.c:451,1
    - Dst: server_find_session
      Src: /src/tmux/server-fn.c:459,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-fn.c:461,1
    - Dst: server_client_set_session
      Src: /src/tmux/server-fn.c:470,1
    - Dst: recalculate_sizes
      Src: /src/tmux/server-fn.c:474,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 475
    functionName: server_destroy_session
    functionSourceFile: /src/tmux/server-fn.c
    functionUses: 2
    functionsReached:
    - TAILQ_FOREACH
    - recalculate_sizes
    - session_next_session
    - server_client_set_session
    - session_previous_session
    - options_get_number
    - server_find_session
    linkageType: ''
    returnType: void
    signature: void server_destroy_session(struct session *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/server-fn.c:487,1
    - Dst: options_get_number
      Src: /src/tmux/server-fn.c:490,1
    - Dst: session_group_contains
      Src: /src/tmux/server-fn.c:496,1
    - Dst: session_group_count
      Src: /src/tmux/server-fn.c:497,1
    - Dst: session_group_contains
      Src: /src/tmux/server-fn.c:501,1
    - Dst: session_group_count
      Src: /src/tmux/server-fn.c:502,1
    - Dst: session_destroy
      Src: /src/tmux/server-fn.c:506,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 508
    functionName: server_check_unattached
    functionSourceFile: /src/tmux/server-fn.c
    functionUses: 0
    functionsReached:
    - session_group_contains
    - session_destroy
    - RB_FOREACH
    - session_group_count
    - options_get_number
    linkageType: ''
    returnType: void
    signature: void server_check_unattached(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: window_unzoom
      Src: /src/tmux/server-fn.c:513,1
    - Dst: server_redraw_window
      Src: /src/tmux/server-fn.c:514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 510
    functionDepth: 2
    functionLinenumber: 510
    functionLinenumberEnd: 515
    functionName: server_unzoom_window
    functionSourceFile: /src/tmux/server-fn.c
    functionUses: 3
    functionsReached:
    - server_redraw_window
    - window_unzoom
    linkageType: ''
    returnType: void
    signature: void server_unzoom_window(struct window *w)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-break-pane.c:51,1
    - Dst: cmdq_get_current
      Src: /src/tmux/cmd-break-pane.c:52,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-break-pane.c:53,1
    - Dst: cmdq_get_source
      Src: /src/tmux/cmd-break-pane.c:54,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/cmd-break-pane.c:55,1
    - Dst: args_has
      Src: /src/tmux/cmd-break-pane.c:65,1
    - Dst: args_has
      Src: /src/tmux/cmd-break-pane.c:66,1
    - Dst: winlink_shuffle_up
      Src: /src/tmux/cmd-break-pane.c:68,1
    - Dst: winlink_shuffle_up
      Src: /src/tmux/cmd-break-pane.c:70,1
    - Dst: server_unzoom_window
      Src: /src/tmux/cmd-break-pane.c:74,1
    - Dst: window_count_panes
      Src: /src/tmux/cmd-break-pane.c:76,1
    - Dst: server_link_window
      Src: /src/tmux/cmd-break-pane.c:77,1
    - Dst: args_has
      Src: /src/tmux/cmd-break-pane.c:78,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-break-pane.c:79,1
    - Dst: free
      Src: /src/tmux/cmd-break-pane.c:80,1
    - Dst: args_has
      Src: /src/tmux/cmd-break-pane.c:83,1
    - Dst: window_set_name
      Src: /src/tmux/cmd-break-pane.c:84,1
    - Dst: args_get
      Src: /src/tmux/cmd-break-pane.c:84,1
    - Dst: options_set_number
      Src: /src/tmux/cmd-break-pane.c:85,1
    - Dst: server_unlink_window
      Src: /src/tmux/cmd-break-pane.c:87,1
    - Dst: winlink_find_by_window
      Src: /src/tmux/cmd-break-pane.c:88,1
    - Dst: winlink_find_by_index
      Src: /src/tmux/cmd-break-pane.c:93,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-break-pane.c:94,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/cmd-break-pane.c:98,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/cmd-break-pane.c:99,1
    - Dst: server_client_remove_pane
      Src: /src/tmux/cmd-break-pane.c:100,1
    - Dst: window_lost_pane
      Src: /src/tmux/cmd-break-pane.c:101,1
    - Dst: layout_close_pane
      Src: /src/tmux/cmd-break-pane.c:102,1
    - Dst: window_create
      Src: /src/tmux/cmd-break-pane.c:104,1
    - Dst: options_set_parent
      Src: /src/tmux/cmd-break-pane.c:105,1
    - Dst: TAILQ_INSERT_HEAD
      Src: /src/tmux/cmd-break-pane.c:107,1
    - Dst: TAILQ_INSERT_HEAD
      Src: /src/tmux/cmd-break-pane.c:108,1
    - Dst: args_has
      Src: /src/tmux/cmd-break-pane.c:112,1
    - Dst: default_window_name
      Src: /src/tmux/cmd-break-pane.c:113,1
    - Dst: window_set_name
      Src: /src/tmux/cmd-break-pane.c:114,1
    - Dst: free
      Src: /src/tmux/cmd-break-pane.c:115,1
    - Dst: window_set_name
      Src: /src/tmux/cmd-break-pane.c:117,1
    - Dst: args_get
      Src: /src/tmux/cmd-break-pane.c:117,1
    - Dst: options_set_number
      Src: /src/tmux/cmd-break-pane.c:118,1
    - Dst: layout_init
      Src: /src/tmux/cmd-break-pane.c:121,1
    - Dst: colour_palette_from_option
      Src: /src/tmux/cmd-break-pane.c:123,1
    - Dst: options_get_number
      Src: /src/tmux/cmd-break-pane.c:126,1
    - Dst: session_attach
      Src: /src/tmux/cmd-break-pane.c:127,1
    - Dst: args_has
      Src: /src/tmux/cmd-break-pane.c:128,1
    - Dst: session_select
      Src: /src/tmux/cmd-break-pane.c:129,1
    - Dst: cmd_find_from_session
      Src: /src/tmux/cmd-break-pane.c:130,1
    - Dst: server_redraw_session
      Src: /src/tmux/cmd-break-pane.c:133,1
    - Dst: server_redraw_session
      Src: /src/tmux/cmd-break-pane.c:135,1
    - Dst: server_status_session_group
      Src: /src/tmux/cmd-break-pane.c:136,1
    - Dst: server_status_session_group
      Src: /src/tmux/cmd-break-pane.c:138,1
    - Dst: args_has
      Src: /src/tmux/cmd-break-pane.c:141,1
    - Dst: format_single
      Src: /src/tmux/cmd-break-pane.c:144,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-break-pane.c:145,1
    - Dst: free
      Src: /src/tmux/cmd-break-pane.c:146,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 78
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 48
    functionDepth: 6
    functionLinenumber: 48
    functionLinenumberEnd: 149
    functionName: cmd_break_pane_exec
    functionSourceFile: /src/tmux/cmd-break-pane.c
    functionUses: 0
    functionsReached:
    - TAILQ_INSERT_HEAD
    - winlink_shuffle_up
    - colour_palette_from_option
    - window_create
    - args_has
    - cmdq_get_current
    - session_select
    - default_window_name
    - server_unlink_window
    - cmdq_get_target_client
    - args_get
    - server_unzoom_window
    - cmdq_get_source
    - server_client_remove_pane
    - server_link_window
    - cmdq_print
    - cmd_get_args
    - window_count_panes
    - cmd_find_from_session
    - winlink_find_by_index
    - cmdq_get_target
    - TAILQ_REMOVE
    - layout_init
    - layout_close_pane
    - server_status_session_group
    - cmdq_error
    - window_lost_pane
    - window_set_name
    - options_set_parent
    - session_attach
    - free
    - options_set_number
    - format_single
    - options_get_number
    - server_redraw_session
    - winlink_find_by_window
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_break_pane_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-rename-window.c:48,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-rename-window.c:49,1
    - Dst: format_single_from_target
      Src: /src/tmux/cmd-rename-window.c:53,1
    - Dst: args_string
      Src: /src/tmux/cmd-rename-window.c:53,1
    - Dst: window_set_name
      Src: /src/tmux/cmd-rename-window.c:54,1
    - Dst: options_set_number
      Src: /src/tmux/cmd-rename-window.c:55,1
    - Dst: server_redraw_window_borders
      Src: /src/tmux/cmd-rename-window.c:57,1
    - Dst: server_status_window
      Src: /src/tmux/cmd-rename-window.c:58,1
    - Dst: free
      Src: /src/tmux/cmd-rename-window.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 62
    functionName: cmd_rename_window_exec
    functionSourceFile: /src/tmux/cmd-rename-window.c
    functionUses: 0
    functionsReached:
    - args_string
    - window_set_name
    - cmd_get_args
    - format_single_from_target
    - free
    - options_set_number
    - server_status_window
    - server_redraw_window_borders
    - cmdq_get_target
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_rename_window_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/cmd-find.c:88,1
    - Dst: strcmp
      Src: /src/tmux/cmd-find.c:89,1
    - Dst: environ_find
      Src: /src/tmux/cmd-find.c:93,1
    - Dst: window_pane_find_by_id_str
      Src: /src/tmux/cmd-find.c:95,1
    - Dst: log_debug
      Src: /src/tmux/cmd-find.c:98,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 100
    functionName: cmd_find_inside_pane
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 0
    functionsReached:
    - window_pane_find_by_id_str
    - environ_find
    - strcmp
    - RB_FOREACH
    - log_debug
    linkageType: ''
    returnType: struct window_pane
    signature: 'struct window_pane *

      cmd_find_inside_pane(struct client *c)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: timercmp
      Src: /src/tmux/cmd-find.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - c
    - than
    argTypes:
    - struct client*
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: cmd_find_client_better
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 0
    functionsReached:
    - timercmp
    linkageType: ''
    returnType: int
    signature: int cmd_find_client_better(struct client *c, struct client *than)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/cmd-find.c:121,1
    - Dst: cmd_find_client_better
      Src: /src/tmux/cmd-find.c:126,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 130
    functionName: cmd_find_best_client
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 0
    functionsReached:
    - cmd_find_client_better
    - TAILQ_FOREACH
    linkageType: ''
    returnType: struct client
    signature: 'struct client *

      cmd_find_best_client(struct session *s)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: timercmp
      Src: /src/tmux/cmd-find.c:147,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - s
    - than
    - flags
    argTypes:
    - struct session*
    - struct session*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 148
    functionName: cmd_find_session_better
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 0
    functionsReached:
    - timercmp
    linkageType: ''
    returnType: int
    signature: int cmd_find_session_better(struct session *s, struct session *than,
      int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/cmd-find.c:157,1
    - Dst: cmd_find_session_better
      Src: /src/tmux/cmd-find.c:162,1
    - Dst: RB_FOREACH
      Src: /src/tmux/cmd-find.c:166,1
    - Dst: cmd_find_session_better
      Src: /src/tmux/cmd-find.c:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - slist
    - ssize
    - flags
    argTypes:
    - struct session**
    - u_int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 172
    functionName: cmd_find_best_session
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 0
    functionsReached:
    - log_debug
    - RB_FOREACH
    - cmd_find_session_better
    linkageType: ''
    returnType: struct session
    signature: 'struct session *

      cmd_find_best_session(struct session **slist, u_int ssize, int flags)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/cmd-find.c:182,1
    - Dst: RB_FOREACH
      Src: /src/tmux/cmd-find.c:185,1
    - Dst: session_has
      Src: /src/tmux/cmd-find.c:186,1
    - Dst: xreallocarray
      Src: /src/tmux/cmd-find.c:188,1
    - Dst: cmd_find_best_session
      Src: /src/tmux/cmd-find.c:193,1
    - Dst: free
      Src: /src/tmux/cmd-find.c:196,1
    - Dst: cmd_find_best_winlink_with_window
      Src: /src/tmux/cmd-find.c:197,1
    - Dst: free
      Src: /src/tmux/cmd-find.c:200,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - fs
    argTypes:
    - struct cmd_find_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 202
    functionName: cmd_find_best_session_with_window
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 0
    functionsReached:
    - cmd_find_best_session
    - RB_FOREACH
    - session_has
    - free
    - cmd_find_best_winlink_with_window
    - xreallocarray
    - log_debug
    linkageType: ''
    returnType: int
    signature: int cmd_find_best_session_with_window(struct cmd_find_state *fs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/cmd-find.c:213,1
    - Dst: RB_FOREACH
      Src: /src/tmux/cmd-find.c:219,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - fs
    argTypes:
    - struct cmd_find_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 231
    functionName: cmd_find_best_winlink_with_window
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 1
    functionsReached:
    - log_debug
    - RB_FOREACH
    linkageType: ''
    returnType: int
    signature: int cmd_find_best_winlink_with_window(struct cmd_find_state *fs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/cmd-find.c:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - table
    - s
    argTypes:
    - char*[][]
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 244
    functionName: cmd_find_map_table
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: char
    signature: 'char *

      cmd_find_map_table(const char *table[][2], const char *s)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/cmd-find.c:253,1
    - Dst: session_find_by_id_str
      Src: /src/tmux/cmd-find.c:257,1
    - Dst: session_find
      Src: /src/tmux/cmd-find.c:264,1
    - Dst: cmd_find_client
      Src: /src/tmux/cmd-find.c:269,1
    - Dst: RB_FOREACH
      Src: /src/tmux/cmd-find.c:281,1
    - Dst: strncmp
      Src: /src/tmux/cmd-find.c:282,1
    - Dst: strlen
      Src: /src/tmux/cmd-find.c:282,1
    - Dst: RB_FOREACH
      Src: /src/tmux/cmd-find.c:295,1
    - Dst: fnmatch
      Src: /src/tmux/cmd-find.c:296,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 2
    argNames:
    - fs
    - session
    argTypes:
    - struct cmd_find_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 308
    functionName: cmd_find_get_session
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 0
    functionsReached:
    - cmd_find_client
    - session_find
    - strncmp
    - RB_FOREACH
    - fnmatch
    - log_debug
    - strlen
    - session_find_by_id_str
    linkageType: ''
    returnType: int
    signature: int cmd_find_get_session(struct cmd_find_state *fs, const char *session)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/cmd-find.c:314,1
    - Dst: window_find_by_id_str
      Src: /src/tmux/cmd-find.c:318,1
    - Dst: cmd_find_best_session_with_window
      Src: /src/tmux/cmd-find.c:321,1
    - Dst: cmd_find_get_window_with_session
      Src: /src/tmux/cmd-find.c:328,1
    - Dst: cmd_find_get_session
      Src: /src/tmux/cmd-find.c:332,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - fs
    - window
    - only
    argTypes:
    - struct cmd_find_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 311
    functionDepth: 4
    functionLinenumber: 311
    functionLinenumberEnd: 341
    functionName: cmd_find_get_window
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 0
    functionsReached:
    - cmd_find_best_session_with_window
    - cmd_find_get_session
    - log_debug
    - window_find_by_id_str
    - cmd_find_get_window_with_session
    linkageType: ''
    returnType: int
    signature: int cmd_find_get_window(struct cmd_find_state *fs, const char *window,
      int only)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/cmd-find.c:355,1
    - Dst: window_find_by_id_str
      Src: /src/tmux/cmd-find.c:367,1
    - Dst: session_has
      Src: /src/tmux/cmd-find.c:368,1
    - Dst: cmd_find_best_winlink_with_window
      Src: /src/tmux/cmd-find.c:370,1
    - Dst: strtonum
      Src: /src/tmux/cmd-find.c:376,1
    - Dst: winlink_next_by_number
      Src: /src/tmux/cmd-find.c:393,1
    - Dst: winlink_previous_by_number
      Src: /src/tmux/cmd-find.c:395,1
    - Dst: strcmp
      Src: /src/tmux/cmd-find.c:405,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/cmd-find.c:406,1
    - Dst: strcmp
      Src: /src/tmux/cmd-find.c:412,1
    - Dst: RB_MIN
      Src: /src/tmux/cmd-find.c:413,1
    - Dst: strcmp
      Src: /src/tmux/cmd-find.c:419,1
    - Dst: RB_MAX
      Src: /src/tmux/cmd-find.c:420,1
    - Dst: strtonum
      Src: /src/tmux/cmd-find.c:431,1
    - Dst: winlink_find_by_index
      Src: /src/tmux/cmd-find.c:433,1
    - Dst: RB_FOREACH
      Src: /src/tmux/cmd-find.c:448,1
    - Dst: strcmp
      Src: /src/tmux/cmd-find.c:449,1
    - Dst: RB_FOREACH
      Src: /src/tmux/cmd-find.c:467,1
    - Dst: strncmp
      Src: /src/tmux/cmd-find.c:468,1
    - Dst: strlen
      Src: /src/tmux/cmd-find.c:468,1
    - Dst: RB_FOREACH
      Src: /src/tmux/cmd-find.c:482,1
    - Dst: fnmatch
      Src: /src/tmux/cmd-find.c:483,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 120
    argCount: 2
    argNames:
    - fs
    - window
    argTypes:
    - struct cmd_find_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 496
    functionName: cmd_find_get_window_with_session
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 1
    functionsReached:
    - winlink_next_by_number
    - RB_MIN
    - RB_MAX
    - strtonum
    - strncmp
    - strlen
    - TAILQ_FIRST
    - strcmp
    - session_has
    - cmd_find_best_winlink_with_window
    - RB_FOREACH
    - fnmatch
    - log_debug
    - window_find_by_id_str
    - winlink_find_by_index
    - winlink_previous_by_number
    linkageType: ''
    returnType: int
    signature: int cmd_find_get_window_with_session(struct cmd_find_state *fs, const
      char *window)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/cmd-find.c:502,1
    - Dst: window_pane_find_by_id_str
      Src: /src/tmux/cmd-find.c:506,1
    - Dst: cmd_find_best_session_with_window
      Src: /src/tmux/cmd-find.c:510,1
    - Dst: cmd_find_get_pane_with_window
      Src: /src/tmux/cmd-find.c:520,1
    - Dst: cmd_find_get_window
      Src: /src/tmux/cmd-find.c:524,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - fs
    - pane
    - only
    argTypes:
    - struct cmd_find_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 499
    functionDepth: 5
    functionLinenumber: 499
    functionLinenumberEnd: 530
    functionName: cmd_find_get_pane
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 0
    functionsReached:
    - cmd_find_get_window
    - window_pane_find_by_id_str
    - cmd_find_get_pane_with_window
    - cmd_find_best_session_with_window
    - log_debug
    linkageType: ''
    returnType: int
    signature: int cmd_find_get_pane(struct cmd_find_state *fs, const char *pane,
      int only)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/cmd-find.c:539,1
    - Dst: window_pane_find_by_id_str
      Src: /src/tmux/cmd-find.c:543,1
    - Dst: cmd_find_best_winlink_with_window
      Src: /src/tmux/cmd-find.c:547,1
    - Dst: cmd_find_get_pane_with_window
      Src: /src/tmux/cmd-find.c:556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - fs
    - pane
    argTypes:
    - struct cmd_find_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 536
    functionDepth: 2
    functionLinenumber: 536
    functionLinenumberEnd: 557
    functionName: cmd_find_get_pane_with_session
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 0
    functionsReached:
    - log_debug
    - cmd_find_best_winlink_with_window
    - window_pane_find_by_id_str
    - cmd_find_get_pane_with_window
    linkageType: ''
    returnType: int
    signature: int cmd_find_get_pane_with_session(struct cmd_find_state *fs, const
      char *pane)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/cmd-find.c:571,1
    - Dst: window_pane_find_by_id_str
      Src: /src/tmux/cmd-find.c:575,1
    - Dst: strcmp
      Src: /src/tmux/cmd-find.c:584,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/cmd-find.c:585,1
    - Dst: strcmp
      Src: /src/tmux/cmd-find.c:589,1
    - Dst: window_pane_find_up
      Src: /src/tmux/cmd-find.c:590,1
    - Dst: strcmp
      Src: /src/tmux/cmd-find.c:594,1
    - Dst: window_pane_find_down
      Src: /src/tmux/cmd-find.c:595,1
    - Dst: strcmp
      Src: /src/tmux/cmd-find.c:599,1
    - Dst: window_pane_find_left
      Src: /src/tmux/cmd-find.c:600,1
    - Dst: strcmp
      Src: /src/tmux/cmd-find.c:604,1
    - Dst: window_pane_find_right
      Src: /src/tmux/cmd-find.c:605,1
    - Dst: strtonum
      Src: /src/tmux/cmd-find.c:614,1
    - Dst: window_pane_next_by_number
      Src: /src/tmux/cmd-find.c:619,1
    - Dst: window_pane_previous_by_number
      Src: /src/tmux/cmd-find.c:621,1
    - Dst: strtonum
      Src: /src/tmux/cmd-find.c:627,1
    - Dst: window_pane_at_index
      Src: /src/tmux/cmd-find.c:629,1
    - Dst: window_find_string
      Src: /src/tmux/cmd-find.c:635,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 61
    argCount: 2
    argNames:
    - fs
    - pane
    argTypes:
    - struct cmd_find_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 563
    functionDepth: 3
    functionLinenumber: 563
    functionLinenumberEnd: 640
    functionName: cmd_find_get_pane_with_window
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 2
    functionsReached:
    - window_pane_find_down
    - window_pane_find_right
    - window_pane_find_by_id_str
    - strtonum
    - window_pane_at_index
    - TAILQ_FIRST
    - window_pane_next_by_number
    - window_pane_previous_by_number
    - strcmp
    - window_find_string
    - log_debug
    - window_pane_find_up
    - window_pane_find_left
    linkageType: ''
    returnType: int
    signature: int cmd_find_get_pane_with_window(struct cmd_find_state *fs, const
      char *pane)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/tmux/cmd-find.c:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - fs
    - flags
    argTypes:
    - struct cmd_find_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 651
    functionName: cmd_find_clear_state
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void cmd_find_clear_state(struct cmd_find_state *fs, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - fs
    argTypes:
    - struct cmd_find_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 660
    functionName: cmd_find_empty_state
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmd_find_empty_state(struct cmd_find_state *fs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: session_alive
      Src: /src/tmux/cmd-find.c:671,1
    - Dst: RB_FOREACH
      Src: /src/tmux/cmd-find.c:674,1
    - Dst: window_has_pane
      Src: /src/tmux/cmd-find.c:684,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 1
    argNames:
    - fs
    argTypes:
    - struct cmd_find_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 685
    functionName: cmd_find_valid_state
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 0
    functionsReached:
    - RB_FOREACH
    - session_alive
    - window_has_pane
    linkageType: ''
    returnType: int
    signature: int cmd_find_valid_state(struct cmd_find_state *fs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct cmd_find_state*
    - struct cmd_find_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 696
    functionName: cmd_find_copy_state
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cmd_find_copy_state(struct cmd_find_state *dst, struct cmd_find_state
      *src)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/cmd-find.c:703,1
    - Dst: log_debug
      Src: /src/tmux/cmd-find.c:705,1
    - Dst: log_debug
      Src: /src/tmux/cmd-find.c:707,1
    - Dst: log_debug
      Src: /src/tmux/cmd-find.c:710,1
    - Dst: log_debug
      Src: /src/tmux/cmd-find.c:712,1
    - Dst: log_debug
      Src: /src/tmux/cmd-find.c:714,1
    - Dst: log_debug
      Src: /src/tmux/cmd-find.c:716,1
    - Dst: log_debug
      Src: /src/tmux/cmd-find.c:718,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - prefix
    - fs
    argTypes:
    - char*
    - struct cmd_find_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 719
    functionName: cmd_find_log_state
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 0
    functionsReached:
    - log_debug
    linkageType: ''
    returnType: void
    signature: void cmd_find_log_state(const char *prefix, struct cmd_find_state *fs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmd_find_clear_state
      Src: /src/tmux/cmd-find.c:725,1
    - Dst: cmd_find_log_state
      Src: /src/tmux/cmd-find.c:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - fs
    - s
    - flags
    argTypes:
    - struct cmd_find_state*
    - struct session*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 722
    functionDepth: 2
    functionLinenumber: 722
    functionLinenumberEnd: 733
    functionName: cmd_find_from_session
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 2
    functionsReached:
    - cmd_find_clear_state
    - cmd_find_log_state
    linkageType: ''
    returnType: void
    signature: void cmd_find_from_session(struct cmd_find_state *fs, struct session
      *s, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmd_find_clear_state
      Src: /src/tmux/cmd-find.c:739,1
    - Dst: cmd_find_log_state
      Src: /src/tmux/cmd-find.c:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - fs
    - wl
    - flags
    argTypes:
    - struct cmd_find_state*
    - struct winlink*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 736
    functionDepth: 2
    functionLinenumber: 736
    functionLinenumberEnd: 747
    functionName: cmd_find_from_winlink
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 0
    functionsReached:
    - cmd_find_clear_state
    - cmd_find_log_state
    linkageType: ''
    returnType: void
    signature: void cmd_find_from_winlink(struct cmd_find_state *fs, struct winlink
      *wl, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmd_find_clear_state
      Src: /src/tmux/cmd-find.c:754,1
    - Dst: cmd_find_best_winlink_with_window
      Src: /src/tmux/cmd-find.c:758,1
    - Dst: cmd_find_clear_state
      Src: /src/tmux/cmd-find.c:759,1
    - Dst: cmd_find_log_state
      Src: /src/tmux/cmd-find.c:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - fs
    - s
    - w
    - flags
    argTypes:
    - struct cmd_find_state*
    - struct session*
    - struct window*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 750
    functionDepth: 2
    functionLinenumber: 750
    functionLinenumberEnd: 766
    functionName: cmd_find_from_session_window
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 0
    functionsReached:
    - cmd_find_clear_state
    - cmd_find_best_winlink_with_window
    - cmd_find_log_state
    linkageType: ''
    returnType: int
    signature: "int cmd_find_from_session_window(struct cmd_find_state *fs, struct
      session *s,\n    struct window *w, int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmd_find_clear_state
      Src: /src/tmux/cmd-find.c:772,1
    - Dst: cmd_find_best_session_with_window
      Src: /src/tmux/cmd-find.c:775,1
    - Dst: cmd_find_clear_state
      Src: /src/tmux/cmd-find.c:776,1
    - Dst: cmd_find_best_winlink_with_window
      Src: /src/tmux/cmd-find.c:779,1
    - Dst: cmd_find_clear_state
      Src: /src/tmux/cmd-find.c:780,1
    - Dst: cmd_find_log_state
      Src: /src/tmux/cmd-find.c:785,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - fs
    - w
    - flags
    argTypes:
    - struct cmd_find_state*
    - struct window*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 769
    functionDepth: 4
    functionLinenumber: 769
    functionLinenumberEnd: 787
    functionName: cmd_find_from_window
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 0
    functionsReached:
    - cmd_find_clear_state
    - cmd_find_best_session_with_window
    - cmd_find_best_winlink_with_window
    - cmd_find_log_state
    linkageType: ''
    returnType: int
    signature: int cmd_find_from_window(struct cmd_find_state *fs, struct window *w,
      int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmd_find_clear_state
      Src: /src/tmux/cmd-find.c:794,1
    - Dst: cmd_find_log_state
      Src: /src/tmux/cmd-find.c:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - fs
    - wl
    - wp
    - flags
    argTypes:
    - struct cmd_find_state*
    - struct winlink*
    - struct window_pane*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 790
    functionDepth: 2
    functionLinenumber: 790
    functionLinenumberEnd: 803
    functionName: cmd_find_from_winlink_pane
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 0
    functionsReached:
    - cmd_find_clear_state
    - cmd_find_log_state
    linkageType: ''
    returnType: void
    signature: "void cmd_find_from_winlink_pane(struct cmd_find_state *fs, struct
      winlink *wl,\n    struct window_pane *wp, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmd_find_from_window
      Src: /src/tmux/cmd-find.c:809,1
    - Dst: cmd_find_log_state
      Src: /src/tmux/cmd-find.c:813,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fs
    - wp
    - flags
    argTypes:
    - struct cmd_find_state*
    - struct window_pane*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 806
    functionDepth: 5
    functionLinenumber: 806
    functionLinenumberEnd: 815
    functionName: cmd_find_from_pane
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 0
    functionsReached:
    - cmd_find_log_state
    - cmd_find_from_window
    linkageType: ''
    returnType: int
    signature: int cmd_find_from_pane(struct cmd_find_state *fs, struct window_pane
      *wp, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmd_find_clear_state
      Src: /src/tmux/cmd-find.c:821,1
    - Dst: cmd_find_best_session
      Src: /src/tmux/cmd-find.c:823,1
    - Dst: cmd_find_clear_state
      Src: /src/tmux/cmd-find.c:825,1
    - Dst: cmd_find_log_state
      Src: /src/tmux/cmd-find.c:833,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - fs
    - flags
    argTypes:
    - struct cmd_find_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 818
    functionDepth: 3
    functionLinenumber: 818
    functionLinenumberEnd: 835
    functionName: cmd_find_from_nothing
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 0
    functionsReached:
    - cmd_find_clear_state
    - cmd_find_best_session
    - cmd_find_log_state
    linkageType: ''
    returnType: int
    signature: int cmd_find_from_nothing(struct cmd_find_state *fs, int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmd_find_clear_state
      Src: /src/tmux/cmd-find.c:841,1
    - Dst: cmd_mouse_pane
      Src: /src/tmux/cmd-find.c:846,1
    - Dst: cmd_find_clear_state
      Src: /src/tmux/cmd-find.c:848,1
    - Dst: cmd_find_log_state
      Src: /src/tmux/cmd-find.c:853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - fs
    - m
    - flags
    argTypes:
    - struct cmd_find_state*
    - struct mouse_event*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 838
    functionDepth: 2
    functionLinenumber: 838
    functionLinenumberEnd: 855
    functionName: cmd_find_from_mouse
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 0
    functionsReached:
    - cmd_find_clear_state
    - cmd_mouse_pane
    - cmd_find_log_state
    linkageType: ''
    returnType: int
    signature: int cmd_find_from_mouse(struct cmd_find_state *fs, struct mouse_event
      *m, int flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cmd_find_from_nothing
      Src: /src/tmux/cmd-find.c:865,1
    - Dst: cmd_find_clear_state
      Src: /src/tmux/cmd-find.c:869,1
    - Dst: server_client_get_pane
      Src: /src/tmux/cmd-find.c:871,1
    - Dst: cmd_find_from_session
      Src: /src/tmux/cmd-find.c:873,1
    - Dst: cmd_find_log_state
      Src: /src/tmux/cmd-find.c:880,1
    - Dst: cmd_find_clear_state
      Src: /src/tmux/cmd-find.c:883,1
    - Dst: cmd_find_inside_pane
      Src: /src/tmux/cmd-find.c:889,1
    - Dst: cmd_find_best_session_with_window
      Src: /src/tmux/cmd-find.c:898,1
    - Dst: cmd_find_log_state
      Src: /src/tmux/cmd-find.c:910,1
    - Dst: cmd_find_from_nothing
      Src: /src/tmux/cmd-find.c:915,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - fs
    - c
    - flags
    argTypes:
    - struct cmd_find_state*
    - struct client*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 858
    functionDepth: 4
    functionLinenumber: 858
    functionLinenumberEnd: 916
    functionName: cmd_find_from_client
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 0
    functionsReached:
    - cmd_find_log_state
    - cmd_find_best_session_with_window
    - cmd_find_from_session
    - cmd_find_from_nothing
    - cmd_find_clear_state
    - server_client_get_pane
    - cmd_find_inside_pane
    linkageType: ''
    returnType: int
    signature: int cmd_find_from_client(struct cmd_find_state *fs, struct client *c,
      int flags)
  - BBCount: 79
    BranchProfiles: []
    Callsites:
    - Dst: strlcat
      Src: /src/tmux/cmd-find.c:948,1
    - Dst: strlcat
      Src: /src/tmux/cmd-find.c:950,1
    - Dst: strlcat
      Src: /src/tmux/cmd-find.c:952,1
    - Dst: strlcat
      Src: /src/tmux/cmd-find.c:954,1
    - Dst: strlcat
      Src: /src/tmux/cmd-find.c:956,1
    - Dst: strlcat
      Src: /src/tmux/cmd-find.c:958,1
    - Dst: strlcat
      Src: /src/tmux/cmd-find.c:960,1
    - Dst: strlen
      Src: /src/tmux/cmd-find.c:962,1
    - Dst: strlcat
      Src: /src/tmux/cmd-find.c:964,1
    - Dst: log_debug
      Src: /src/tmux/cmd-find.c:965,1
    - Dst: cmd_find_clear_state
      Src: /src/tmux/cmd-find.c:969,1
    - Dst: server_check_marked
      Src: /src/tmux/cmd-find.c:972,1
    - Dst: log_debug
      Src: /src/tmux/cmd-find.c:974,1
    - Dst: cmd_find_valid_state
      Src: /src/tmux/cmd-find.c:975,1
    - Dst: cmdq_get_current
      Src: /src/tmux/cmd-find.c:975,1
    - Dst: cmdq_get_current
      Src: /src/tmux/cmd-find.c:976,1
    - Dst: log_debug
      Src: /src/tmux/cmd-find.c:977,1
    - Dst: cmd_find_from_client
      Src: /src/tmux/cmd-find.c:978,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-find.c:978,1
    - Dst: log_debug
      Src: /src/tmux/cmd-find.c:981,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-find.c:984,1
    - Dst: cmd_find_valid_state
      Src: /src/tmux/cmd-find.c:987,1
    - Dst: fatalx
      Src: /src/tmux/cmd-find.c:988,1
    - Dst: strcmp
      Src: /src/tmux/cmd-find.c:994,1
    - Dst: strcmp
      Src: /src/tmux/cmd-find.c:995,1
    - Dst: strcmp
      Src: /src/tmux/cmd-find.c:996,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-find.c:997,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-find.c:999,1
    - Dst: strcmp
      Src: /src/tmux/cmd-find.c:1009,1
    - Dst: strcmp
      Src: /src/tmux/cmd-find.c:1009,1
    - Dst: cmdq_get_event
      Src: /src/tmux/cmd-find.c:1010,1
    - Dst: cmd_mouse_pane
      Src: /src/tmux/cmd-find.c:1013,1
    - Dst: cmd_mouse_window
      Src: /src/tmux/cmd-find.c:1021,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-find.c:1032,1
    - Dst: strcmp
      Src: /src/tmux/cmd-find.c:1039,1
    - Dst: strcmp
      Src: /src/tmux/cmd-find.c:1039,1
    - Dst: server_check_marked
      Src: /src/tmux/cmd-find.c:1040,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-find.c:1042,1
    - Dst: cmd_find_copy_state
      Src: /src/tmux/cmd-find.c:1045,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-find.c:1050,1
    - Dst: strchr
      Src: /src/tmux/cmd-find.c:1051,1
    - Dst: strchr
      Src: /src/tmux/cmd-find.c:1055,1
    - Dst: strchr
      Src: /src/tmux/cmd-find.c:1057,1
    - Dst: cmd_find_map_table
      Src: /src/tmux/cmd-find.c:1119,1
    - Dst: cmd_find_map_table
      Src: /src/tmux/cmd-find.c:1121,1
    - Dst: cmd_find_map_table
      Src: /src/tmux/cmd-find.c:1123,1
    - Dst: log_debug
      Src: /src/tmux/cmd-find.c:1126,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-find.c:1139,1
    - Dst: cmd_find_get_session
      Src: /src/tmux/cmd-find.c:1146,1
    - Dst: cmd_find_get_window_with_session
      Src: /src/tmux/cmd-find.c:1161,1
    - Dst: cmd_find_get_pane_with_session
      Src: /src/tmux/cmd-find.c:1171,1
    - Dst: cmd_find_get_window_with_session
      Src: /src/tmux/cmd-find.c:1180,1
    - Dst: cmd_find_get_pane_with_window
      Src: /src/tmux/cmd-find.c:1183,1
    - Dst: cmd_find_get_window
      Src: /src/tmux/cmd-find.c:1191,1
    - Dst: cmd_find_get_pane_with_window
      Src: /src/tmux/cmd-find.c:1194,1
    - Dst: cmd_find_get_window
      Src: /src/tmux/cmd-find.c:1202,1
    - Dst: cmd_find_get_pane
      Src: /src/tmux/cmd-find.c:1212,1
    - Dst: cmd_find_copy_state
      Src: /src/tmux/cmd-find.c:1219,1
    - Dst: log_debug
      Src: /src/tmux/cmd-find.c:1226,1
    - Dst: free
      Src: /src/tmux/cmd-find.c:1228,1
    - Dst: cmd_find_log_state
      Src: /src/tmux/cmd-find.c:1235,1
    - Dst: free
      Src: /src/tmux/cmd-find.c:1237,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-find.c:1242,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-find.c:1247,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-find.c:1252,1
    CyclomaticComplexity: 132
    EdgeCount: 132
    ICount: 282
    argCount: 5
    argNames:
    - fs
    - item
    - target
    - type
    - flags
    argTypes:
    - struct cmd_find_state*
    - struct cmdq_item*
    - char*
    - enum cmd_find_type
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 922
    functionDepth: 6
    functionLinenumber: 922
    functionLinenumberEnd: 1254
    functionName: cmd_find_target
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 1
    functionsReached:
    - cmd_find_copy_state
    - strlcat
    - cmdq_get_client
    - cmd_find_get_pane
    - cmdq_get_current
    - cmd_find_from_client
    - server_check_marked
    - strchr
    - cmd_find_clear_state
    - cmd_mouse_pane
    - log_debug
    - strlen
    - cmd_find_map_table
    - xstrdup
    - cmd_find_get_window
    - cmd_find_get_pane_with_window
    - cmd_find_get_session
    - cmd_mouse_window
    - cmd_find_get_pane_with_session
    - cmd_find_valid_state
    - cmdq_get_event
    - cmdq_error
    - cmd_find_log_state
    - fatalx
    - strcmp
    - free
    - cmd_find_get_window_with_session
    linkageType: ''
    returnType: int
    signature: "int cmd_find_target(struct cmd_find_state *fs, struct cmdq_item *item,\n
      \   const char *target, enum cmd_find_type type, int flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-find.c:1266,1
    - Dst: cmd_find_inside_pane
      Src: /src/tmux/cmd-find.c:1271,1
    - Dst: cmd_find_clear_state
      Src: /src/tmux/cmd-find.c:1272,1
    - Dst: cmd_find_best_session_with_window
      Src: /src/tmux/cmd-find.c:1274,1
    - Dst: cmd_find_best_client
      Src: /src/tmux/cmd-find.c:1275,1
    - Dst: cmd_find_best_session
      Src: /src/tmux/cmd-find.c:1277,1
    - Dst: cmd_find_best_client
      Src: /src/tmux/cmd-find.c:1279,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-find.c:1282,1
    - Dst: log_debug
      Src: /src/tmux/cmd-find.c:1283,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - item
    - quiet
    argTypes:
    - struct cmdq_item*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1257
    functionDepth: 4
    functionLinenumber: 1257
    functionLinenumberEnd: 1285
    functionName: cmd_find_current_client
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 0
    functionsReached:
    - cmd_find_best_client
    - cmd_find_best_session
    - cmdq_error
    - cmd_find_best_session_with_window
    - cmd_find_clear_state
    - cmdq_get_client
    - log_debug
    - cmd_find_inside_pane
    linkageType: ''
    returnType: struct client
    signature: 'struct client *

      cmd_find_current_client(struct cmdq_item *item, int quiet)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cmd_find_current_client
      Src: /src/tmux/cmd-find.c:1297,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-find.c:1298,1
    - Dst: strlen
      Src: /src/tmux/cmd-find.c:1301,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/cmd-find.c:1306,1
    - Dst: strcmp
      Src: /src/tmux/cmd-find.c:1309,1
    - Dst: strcmp
      Src: /src/tmux/cmd-find.c:1314,1
    - Dst: strncmp
      Src: /src/tmux/cmd-find.c:1316,1
    - Dst: strcmp
      Src: /src/tmux/cmd-find.c:1318,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-find.c:1324,1
    - Dst: free
      Src: /src/tmux/cmd-find.c:1326,1
    - Dst: log_debug
      Src: /src/tmux/cmd-find.c:1327,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 26
    argCount: 3
    argNames:
    - item
    - target
    - quiet
    argTypes:
    - struct cmdq_item*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1288
    functionDepth: 5
    functionLinenumber: 1288
    functionLinenumberEnd: 1329
    functionName: cmd_find_client
    functionSourceFile: /src/tmux/cmd-find.c
    functionUses: 1
    functionsReached:
    - log_debug
    - TAILQ_FOREACH
    - cmdq_error
    - strncmp
    - strcmp
    - free
    - cmd_find_current_client
    - strlen
    - xstrdup
    linkageType: ''
    returnType: struct client
    signature: 'struct client *

      cmd_find_client(struct cmdq_item *item, const char *target, int quiet)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-show-options.c:79,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-show-options.c:80,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-show-options.c:86,1
    - Dst: args_count
      Src: /src/tmux/cmd-show-options.c:88,1
    - Dst: options_scope_from_flags
      Src: /src/tmux/cmd-show-options.c:89,1
    - Dst: args_has
      Src: /src/tmux/cmd-show-options.c:92,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-show-options.c:94,1
    - Dst: free
      Src: /src/tmux/cmd-show-options.c:95,1
    - Dst: cmd_show_options_all
      Src: /src/tmux/cmd-show-options.c:98,1
    - Dst: format_single_from_target
      Src: /src/tmux/cmd-show-options.c:100,1
    - Dst: args_string
      Src: /src/tmux/cmd-show-options.c:100,1
    - Dst: options_match
      Src: /src/tmux/cmd-show-options.c:102,1
    - Dst: args_has
      Src: /src/tmux/cmd-show-options.c:104,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-show-options.c:107,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-show-options.c:109,1
    - Dst: options_scope_from_name
      Src: /src/tmux/cmd-show-options.c:112,1
    - Dst: args_has
      Src: /src/tmux/cmd-show-options.c:115,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-show-options.c:117,1
    - Dst: free
      Src: /src/tmux/cmd-show-options.c:118,1
    - Dst: options_get_only
      Src: /src/tmux/cmd-show-options.c:121,1
    - Dst: args_has
      Src: /src/tmux/cmd-show-options.c:122,1
    - Dst: options_get
      Src: /src/tmux/cmd-show-options.c:123,1
    - Dst: cmd_show_options_print
      Src: /src/tmux/cmd-show-options.c:128,1
    - Dst: args_has
      Src: /src/tmux/cmd-show-options.c:130,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-show-options.c:132,1
    - Dst: free
      Src: /src/tmux/cmd-show-options.c:137,1
    - Dst: free
      Src: /src/tmux/cmd-show-options.c:138,1
    - Dst: free
      Src: /src/tmux/cmd-show-options.c:142,1
    - Dst: free
      Src: /src/tmux/cmd-show-options.c:143,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 145
    functionName: cmd_show_options_exec
    functionSourceFile: /src/tmux/cmd-show-options.c
    functionUses: 0
    functionsReached:
    - options_scope_from_name
    - cmdq_error
    - args_string
    - cmd_get_args
    - format_single_from_target
    - cmd_get_entry
    - options_match
    - options_get_only
    - cmd_show_options_print
    - free
    - cmd_show_options_all
    - args_count
    - options_scope_from_flags
    - options_get
    - cmdq_get_target
    - args_has
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_show_options_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-show-options.c:151,1
    - Dst: options_name
      Src: /src/tmux/cmd-show-options.c:153,1
    - Dst: xasprintf
      Src: /src/tmux/cmd-show-options.c:157,1
    - Dst: options_is_array
      Src: /src/tmux/cmd-show-options.c:160,1
    - Dst: options_array_first
      Src: /src/tmux/cmd-show-options.c:161,1
    - Dst: args_has
      Src: /src/tmux/cmd-show-options.c:163,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-show-options.c:164,1
    - Dst: options_array_item_index
      Src: /src/tmux/cmd-show-options.c:168,1
    - Dst: cmd_show_options_print
      Src: /src/tmux/cmd-show-options.c:169,1
    - Dst: options_array_next
      Src: /src/tmux/cmd-show-options.c:171,1
    - Dst: options_to_string
      Src: /src/tmux/cmd-show-options.c:177,1
    - Dst: args_has
      Src: /src/tmux/cmd-show-options.c:178,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-show-options.c:179,1
    - Dst: options_is_string
      Src: /src/tmux/cmd-show-options.c:180,1
    - Dst: args_escape
      Src: /src/tmux/cmd-show-options.c:181,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-show-options.c:183,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-show-options.c:185,1
    - Dst: free
      Src: /src/tmux/cmd-show-options.c:186,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-show-options.c:189,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-show-options.c:191,1
    - Dst: free
      Src: /src/tmux/cmd-show-options.c:193,1
    - Dst: free
      Src: /src/tmux/cmd-show-options.c:195,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 5
    argNames:
    - self
    - item
    - o
    - idx
    - parent
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    - struct options_entry*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 196
    functionName: cmd_show_options_print
    functionSourceFile: /src/tmux/cmd-show-options.c
    functionUses: 2
    functionsReached:
    - xasprintf
    - options_array_first
    - options_is_string
    - options_to_string
    - cmdq_print
    - options_name
    - cmd_get_args
    - cmd_show_options_print
    - args_escape
    - free
    - options_is_array
    - options_array_next
    - args_has
    - options_array_item_index
    linkageType: ''
    returnType: void
    signature: "void cmd_show_options_print(struct cmd *self, struct cmdq_item *item,\n
      \   struct options_entry *o, int idx, int parent)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-show-options.c:202,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-show-options.c:210,1
    - Dst: options_first
      Src: /src/tmux/cmd-show-options.c:211,1
    - Dst: options_table_entry
      Src: /src/tmux/cmd-show-options.c:213,1
    - Dst: cmd_show_options_print
      Src: /src/tmux/cmd-show-options.c:214,1
    - Dst: options_next
      Src: /src/tmux/cmd-show-options.c:215,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-show-options.c:222,1
    - Dst: args_has
      Src: /src/tmux/cmd-show-options.c:223,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-show-options.c:225,1
    - Dst: options_get_only
      Src: /src/tmux/cmd-show-options.c:229,1
    - Dst: args_has
      Src: /src/tmux/cmd-show-options.c:231,1
    - Dst: options_get
      Src: /src/tmux/cmd-show-options.c:233,1
    - Dst: options_is_array
      Src: /src/tmux/cmd-show-options.c:240,1
    - Dst: cmd_show_options_print
      Src: /src/tmux/cmd-show-options.c:241,1
    - Dst: options_array_first
      Src: /src/tmux/cmd-show-options.c:242,1
    - Dst: args_has
      Src: /src/tmux/cmd-show-options.c:243,1
    - Dst: options_name
      Src: /src/tmux/cmd-show-options.c:244,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-show-options.c:246,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-show-options.c:248,1
    - Dst: options_array_item_index
      Src: /src/tmux/cmd-show-options.c:252,1
    - Dst: cmd_show_options_print
      Src: /src/tmux/cmd-show-options.c:253,1
    - Dst: options_array_next
      Src: /src/tmux/cmd-show-options.c:255,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 42
    argCount: 4
    argNames:
    - self
    - item
    - scope
    - oo
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    - int
    - struct options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 260
    functionName: cmd_show_options_all
    functionSourceFile: /src/tmux/cmd-show-options.c
    functionUses: 1
    functionsReached:
    - options_array_first
    - options_array_next
    - options_next
    - cmdq_print
    - cmd_get_args
    - cmd_show_options_print
    - cmd_get_entry
    - options_get_only
    - options_name
    - options_table_entry
    - options_first
    - options_is_array
    - options_get
    - args_has
    - options_array_item_index
    linkageType: ''
    returnType: enum cmd_retval
    signature: "enum cmd_retval cmd_show_options_all(struct cmd *self, struct cmdq_item
      *item, int scope,\n    struct options *oo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: nitems
    functionSourceFile: /src/tmux/osdep-freebsd.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nitems(_a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: is_runnable
    functionSourceFile: /src/tmux/osdep-freebsd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_runnable(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: is_stopped
    functionSourceFile: /src/tmux/osdep-freebsd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_stopped(p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: is_runnable
      Src: /src/tmux/osdep-freebsd.c:52,1
    - Dst: is_runnable
      Src: /src/tmux/osdep-freebsd.c:52,1
    - Dst: is_runnable
      Src: /src/tmux/osdep-freebsd.c:54,1
    - Dst: is_runnable
      Src: /src/tmux/osdep-freebsd.c:54,1
    - Dst: is_stopped
      Src: /src/tmux/osdep-freebsd.c:57,1
    - Dst: is_stopped
      Src: /src/tmux/osdep-freebsd.c:57,1
    - Dst: is_stopped
      Src: /src/tmux/osdep-freebsd.c:59,1
    - Dst: is_stopped
      Src: /src/tmux/osdep-freebsd.c:59,1
    - Dst: strcmp
      Src: /src/tmux/osdep-freebsd.c:72,1
    - Dst: strcmp
      Src: /src/tmux/osdep-freebsd.c:74,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 24
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - struct kinfo_proc*
    - struct kinfo_proc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 80
    functionName: cmp_procs
    functionSourceFile: /src/tmux/osdep-freebsd.c
    functionUses: 0
    functionsReached:
    - strcmp
    - is_stopped
    - is_runnable
    linkageType: ''
    returnType: struct kinfo_proc
    signature: 'struct kinfo_proc *

      cmp_procs(struct kinfo_proc *p1, struct kinfo_proc *p2)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/tmux/osdep-freebsd.c:94,1
    - Dst: tcgetpgrp
      Src: /src/tmux/osdep-freebsd.c:96,1
    - Dst: sysctl
      Src: /src/tmux/osdep-freebsd.c:100,1
    - Dst: nitems
      Src: /src/tmux/osdep-freebsd.c:100,1
    - Dst: realloc
      Src: /src/tmux/osdep-freebsd.c:104,1
    - Dst: sysctl
      Src: /src/tmux/osdep-freebsd.c:108,1
    - Dst: nitems
      Src: /src/tmux/osdep-freebsd.c:108,1
    - Dst: cmp_procs
      Src: /src/tmux/osdep-freebsd.c:121,1
    - Dst: strdup
      Src: /src/tmux/osdep-freebsd.c:126,1
    - Dst: free
      Src: /src/tmux/osdep-freebsd.c:128,1
    - Dst: free
      Src: /src/tmux/osdep-freebsd.c:132,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - fd
    - tty
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 134
    functionName: osdep_get_name
    functionSourceFile: /src/tmux/osdep-freebsd.c
    functionUses: 0
    functionsReached:
    - realloc
    - nitems
    - sysctl
    - stat
    - free
    - cmp_procs
    - tcgetpgrp
    - strdup
    linkageType: ''
    returnType: char
    signature: 'char *

      osdep_get_name(int fd, char *tty)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tcgetpgrp
      Src: /src/tmux/osdep-freebsd.c:144,1
    - Dst: kinfo_getfile
      Src: /src/tmux/osdep-freebsd.c:147,1
    - Dst: strlcpy
      Src: /src/tmux/osdep-freebsd.c:152,1
    - Dst: free
      Src: /src/tmux/osdep-freebsd.c:153,1
    - Dst: free
      Src: /src/tmux/osdep-freebsd.c:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 160
    functionName: osdep_get_cwd_fallback
    functionSourceFile: /src/tmux/osdep-freebsd.c
    functionUses: 0
    functionsReached:
    - kinfo_getfile
    - tcgetpgrp
    - free
    - strlcpy
    linkageType: ''
    returnType: char
    signature: 'char *

      osdep_get_cwd_fallback(int fd)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: osdep_get_cwd_fallback
      Src: /src/tmux/osdep-freebsd.c:172,1
    - Dst: tcgetpgrp
      Src: /src/tmux/osdep-freebsd.c:174,1
    - Dst: sysctl
      Src: /src/tmux/osdep-freebsd.c:177,1
    - Dst: osdep_get_cwd_fallback
      Src: /src/tmux/osdep-freebsd.c:180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 185
    functionName: osdep_get_cwd
    functionSourceFile: /src/tmux/osdep-freebsd.c
    functionUses: 0
    functionsReached:
    - tcgetpgrp
    - osdep_get_cwd_fallback
    - sysctl
    linkageType: ''
    returnType: char
    signature: 'char *

      osdep_get_cwd(int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_get_cwd_fallback
      Src: /src/tmux/osdep-freebsd.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: osdep_get_cwd
    functionSourceFile: /src/tmux/osdep-freebsd.c
    functionUses: 0
    functionsReached:
    - osdep_get_cwd_fallback
    linkageType: ''
    returnType: char
    signature: 'char *

      osdep_get_cwd(int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/tmux/osdep-freebsd.c:203,1
    - Dst: event_init
      Src: /src/tmux/osdep-freebsd.c:205,1
    - Dst: unsetenv
      Src: /src/tmux/osdep-freebsd.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 208
    functionName: osdep_event_init
    functionSourceFile: /src/tmux/osdep-freebsd.c
    functionUses: 0
    functionsReached:
    - event_init
    - setenv
    - unsetenv
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      osdep_event_init(void)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: window_unzoom
      Src: /src/tmux/resize.c:43,1
    - Dst: layout_resize
      Src: /src/tmux/resize.c:46,1
    - Dst: window_resize
      Src: /src/tmux/resize.c:53,1
    - Dst: log_debug
      Src: /src/tmux/resize.c:54,1
    - Dst: window_zoom
      Src: /src/tmux/resize.c:59,1
    - Dst: tty_update_window_offset
      Src: /src/tmux/resize.c:61,1
    - Dst: server_redraw_window
      Src: /src/tmux/resize.c:62,1
    - Dst: notify_window
      Src: /src/tmux/resize.c:63,1
    - Dst: notify_window
      Src: /src/tmux/resize.c:64,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - w
    - sx
    - sy
    - xpixel
    - ypixel
    argTypes:
    - struct window*
    - u_int
    - u_int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 25
    functionDepth: 5
    functionLinenumber: 25
    functionLinenumberEnd: 66
    functionName: resize_window
    functionSourceFile: /src/tmux/resize.c
    functionUses: 0
    functionsReached:
    - notify_window
    - server_redraw_window
    - window_zoom
    - layout_resize
    - log_debug
    - window_resize
    - window_unzoom
    - tty_update_window_offset
    linkageType: ''
    returnType: void
    signature: void resize_window(struct window *w, u_int sx, u_int sy, int xpixel,
      int ypixel)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/resize.c:82,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 96
    functionName: ignore_client_size
    functionSourceFile: /src/tmux/resize.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH
    linkageType: ''
    returnType: int
    signature: int ignore_client_size(struct client *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/resize.c:104,1
    - Dst: ignore_client_size
      Src: /src/tmux/resize.c:105,1
    - Dst: session_has
      Src: /src/tmux/resize.c:105,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 111
    functionName: clients_with_window
    functionSourceFile: /src/tmux/resize.c
    functionUses: 0
    functionsReached:
    - session_has
    - ignore_client_size
    - TAILQ_FOREACH
    linkageType: ''
    returnType: u_int
    signature: u_int clients_with_window(struct window *w)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/resize.c:133,1
    - Dst: clients_with_window
      Src: /src/tmux/resize.c:145,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/resize.c:152,1
    - Dst: ignore_client_size
      Src: /src/tmux/resize.c:153,1
    - Dst: log_debug
      Src: /src/tmux/resize.c:154,1
    - Dst: skip_client
      Src: /src/tmux/resize.c:157,1
    - Dst: log_debug
      Src: /src/tmux/resize.c:158,1
    - Dst: log_debug
      Src: /src/tmux/resize.c:168,1
    - Dst: server_client_get_client_window
      Src: /src/tmux/resize.c:177,1
    - Dst: status_line_size
      Src: /src/tmux/resize.c:187,1
    - Dst: log_debug
      Src: /src/tmux/resize.c:209,1
    - Dst: log_debug
      Src: /src/tmux/resize.c:213,1
    - Dst: log_debug
      Src: /src/tmux/resize.c:215,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/resize.c:223,1
    - Dst: ignore_client_size
      Src: /src/tmux/resize.c:224,1
    - Dst: skip_client
      Src: /src/tmux/resize.c:226,1
    - Dst: server_client_get_client_window
      Src: /src/tmux/resize.c:232,1
    - Dst: log_debug
      Src: /src/tmux/resize.c:237,1
    - Dst: log_debug
      Src: /src/tmux/resize.c:246,1
    - Dst: log_debug
      Src: /src/tmux/resize.c:248,1
    - Dst: log_debug
      Src: /src/tmux/resize.c:252,1
    - Dst: log_debug
      Src: /src/tmux/resize.c:256,1
    - Dst: log_debug
      Src: /src/tmux/resize.c:260,1
    - Dst: log_debug
      Src: /src/tmux/resize.c:262,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 97
    argCount: 9
    argNames:
    - type
    - current
    - c
    - s
    - w
    - sx
    - sy
    - xpixel
    - ypixel
    argTypes:
    - int
    - int
    - struct client*
    - struct session*
    - struct window*
    - u_int*
    - u_int*
    - u_int*
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 264
    functionName: clients_calculate_size
    functionSourceFile: /src/tmux/resize.c
    functionUses: 0
    functionsReached:
    - status_line_size
    - skip_client
    - TAILQ_FOREACH
    - server_client_get_client_window
    - clients_with_window
    - log_debug
    - ignore_client_size
    linkageType: ''
    returnType: int
    signature: "int clients_calculate_size(int type, int current, struct client *c,\n
      \   struct session *s, struct window *w, int (*skip_client)(struct client *,\n
      \   int, int, struct session *, struct window *), u_int *sx, u_int *sy,\n    u_int
      *xpixel, u_int *ypixel)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: session_has
      Src: /src/tmux/resize.c:270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 5
    argNames:
    - loop
    - type
    - current
    - s
    - w
    argTypes:
    - struct client*
    - __unused
    - __unused
    - struct session*
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 275
    functionName: default_window_size_skip_client
    functionSourceFile: /src/tmux/resize.c
    functionUses: 0
    functionsReached:
    - session_has
    linkageType: ''
    returnType: int
    signature: "int default_window_size_skip_client(struct client *loop, __unused
      int type,\n    __unused int current, struct session *s, struct window *w)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/resize.c:285,1
    - Dst: ignore_client_size
      Src: /src/tmux/resize.c:291,1
    - Dst: status_line_size
      Src: /src/tmux/resize.c:293,1
    - Dst: log_debug
      Src: /src/tmux/resize.c:296,1
    - Dst: clients_calculate_size
      Src: /src/tmux/resize.c:312,1
    - Dst: options_get_string
      Src: /src/tmux/resize.c:314,1
    - Dst: sscanf
      Src: /src/tmux/resize.c:315,1
    - Dst: log_debug
      Src: /src/tmux/resize.c:319,1
    - Dst: log_debug
      Src: /src/tmux/resize.c:333,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 8
    argNames:
    - c
    - s
    - w
    - sx
    - sy
    - xpixel
    - ypixel
    - type
    argTypes:
    - struct client*
    - struct session*
    - struct window*
    - u_int*
    - u_int*
    - u_int*
    - u_int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 334
    functionName: default_window_size
    functionSourceFile: /src/tmux/resize.c
    functionUses: 0
    functionsReached:
    - status_line_size
    - options_get_string
    - sscanf
    - log_debug
    - options_get_number
    - clients_calculate_size
    - ignore_client_size
    linkageType: ''
    returnType: void
    signature: "void default_window_size(struct client *c, struct session *s, struct
      window *w,\n\tu_int *sx, u_int *sy, u_int *xpixel, u_int *ypixel, int type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: session_has
      Src: /src/tmux/resize.c:349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - loop
    - type
    - current
    - s
    - w
    argTypes:
    - struct client*
    - __unused
    - int
    - __unused*
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 350
    functionName: recalculate_size_skip_client
    functionSourceFile: /src/tmux/resize.c
    functionUses: 0
    functionsReached:
    - session_has
    linkageType: ''
    returnType: int
    signature: "int recalculate_size_skip_client(struct client *loop, __unused int
      type,\n    int current, __unused struct session *s, struct window *w)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/resize.c:364,1
    - Dst: options_get_number
      Src: /src/tmux/resize.c:371,1
    - Dst: options_get_number
      Src: /src/tmux/resize.c:372,1
    - Dst: clients_calculate_size
      Src: /src/tmux/resize.c:375,1
    - Dst: log_debug
      Src: /src/tmux/resize.c:395,1
    - Dst: tty_update_window_offset
      Src: /src/tmux/resize.c:396,1
    - Dst: log_debug
      Src: /src/tmux/resize.c:405,1
    - Dst: resize_window
      Src: /src/tmux/resize.c:407,1
    - Dst: tty_update_window_offset
      Src: /src/tmux/resize.c:415,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 2
    argNames:
    - w
    - now
    argTypes:
    - struct window*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 352
    functionDepth: 6
    functionLinenumber: 352
    functionLinenumberEnd: 417
    functionName: recalculate_size
    functionSourceFile: /src/tmux/resize.c
    functionUses: 0
    functionsReached:
    - resize_window
    - log_debug
    - options_get_number
    - clients_calculate_size
    - tty_update_window_offset
    linkageType: ''
    returnType: void
    signature: void recalculate_size(struct window *w, int now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: recalculate_sizes_now
      Src: /src/tmux/resize.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 423
    functionName: recalculate_sizes
    functionSourceFile: /src/tmux/resize.c
    functionUses: 3
    functionsReached:
    - recalculate_sizes_now
    linkageType: ''
    returnType: void
    signature: void recalculate_sizes(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/resize.c:436,1
    - Dst: status_update_cache
      Src: /src/tmux/resize.c:438,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/resize.c:445,1
    - Dst: ignore_client_size
      Src: /src/tmux/resize.c:449,1
    - Dst: RB_FOREACH
      Src: /src/tmux/resize.c:458,1
    - Dst: recalculate_size
      Src: /src/tmux/resize.c:459,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - now
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 425
    functionDepth: 7
    functionLinenumber: 425
    functionLinenumberEnd: 460
    functionName: recalculate_sizes_now
    functionSourceFile: /src/tmux/resize.c
    functionUses: 1
    functionsReached:
    - recalculate_size
    - status_update_cache
    - TAILQ_FOREACH
    - RB_FOREACH
    - ignore_client_size
    linkageType: ''
    returnType: void
    signature: void recalculate_sizes_now(int now)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - int
    - tty
    argTypes:
    - __unused
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: osdep_get_name
    functionSourceFile: /src/tmux/osdep-unknown.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      osdep_get_name(__unused int fd, __unused char *tty)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: osdep_get_cwd
    functionSourceFile: /src/tmux/osdep-unknown.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      osdep_get_cwd(int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_init
      Src: /src/tmux/osdep-unknown.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: osdep_event_init
    functionSourceFile: /src/tmux/osdep-unknown.c
    functionUses: 0
    functionsReached:
    - event_init
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      osdep_event_init(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: is_runnable
    functionSourceFile: /src/tmux/osdep-netbsd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_runnable(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: is_stopped
    functionSourceFile: /src/tmux/osdep-netbsd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_stopped(p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_runnable
      Src: /src/tmux/osdep-netbsd.c:42,1
    - Dst: is_runnable
      Src: /src/tmux/osdep-netbsd.c:42,1
    - Dst: is_runnable
      Src: /src/tmux/osdep-netbsd.c:44,1
    - Dst: is_runnable
      Src: /src/tmux/osdep-netbsd.c:44,1
    - Dst: is_stopped
      Src: /src/tmux/osdep-netbsd.c:47,1
    - Dst: is_stopped
      Src: /src/tmux/osdep-netbsd.c:47,1
    - Dst: is_stopped
      Src: /src/tmux/osdep-netbsd.c:49,1
    - Dst: is_stopped
      Src: /src/tmux/osdep-netbsd.c:49,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - struct kinfo_proc2*
    - struct kinfo_proc2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 65
    functionName: cmp_procs
    functionSourceFile: /src/tmux/osdep-netbsd.c
    functionUses: 1
    functionsReached:
    - is_stopped
    - is_runnable
    linkageType: ''
    returnType: struct kinfo_proc2
    signature: 'struct kinfo_proc2 *

      cmp_procs(struct kinfo_proc2 *p1, struct kinfo_proc2 *p2)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/tmux/osdep-netbsd.c:76,1
    - Dst: tcgetpgrp
      Src: /src/tmux/osdep-netbsd.c:78,1
    - Dst: sysctl
      Src: /src/tmux/osdep-netbsd.c:92,1
    - Dst: __arraycount
      Src: /src/tmux/osdep-netbsd.c:92,1
    - Dst: realloc
      Src: /src/tmux/osdep-netbsd.c:95,1
    - Dst: sysctl
      Src: /src/tmux/osdep-netbsd.c:100,1
    - Dst: __arraycount
      Src: /src/tmux/osdep-netbsd.c:100,1
    - Dst: cmp_procs
      Src: /src/tmux/osdep-netbsd.c:113,1
    - Dst: strdup
      Src: /src/tmux/osdep-netbsd.c:118,1
    - Dst: free
      Src: /src/tmux/osdep-netbsd.c:120,1
    - Dst: free
      Src: /src/tmux/osdep-netbsd.c:124,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 2
    argNames:
    - fd
    - tty
    argTypes:
    - int
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 126
    functionName: osdep_get_name
    functionSourceFile: /src/tmux/osdep-netbsd.c
    functionUses: 0
    functionsReached:
    - realloc
    - __arraycount
    - sysctl
    - stat
    - free
    - cmp_procs
    - tcgetpgrp
    - strdup
    linkageType: ''
    returnType: char
    signature: 'char *

      osdep_get_name(int fd, __unused char *tty)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tcgetpgrp
      Src: /src/tmux/osdep-netbsd.c:141,1
    - Dst: sysctl
      Src: /src/tmux/osdep-netbsd.c:150,1
    - Dst: __arraycount
      Src: /src/tmux/osdep-netbsd.c:150,1
    - Dst: xasprintf
      Src: /src/tmux/osdep-netbsd.c:153,1
    - Dst: readlink
      Src: /src/tmux/osdep-netbsd.c:154,1
    - Dst: free
      Src: /src/tmux/osdep-netbsd.c:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 163
    functionName: osdep_get_cwd
    functionSourceFile: /src/tmux/osdep-netbsd.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - readlink
    - __arraycount
    - sysctl
    - free
    - tcgetpgrp
    linkageType: ''
    returnType: char
    signature: 'char *

      osdep_get_cwd(int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_init
      Src: /src/tmux/osdep-netbsd.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: osdep_event_init
    functionSourceFile: /src/tmux/osdep-netbsd.c
    functionUses: 0
    functionsReached:
    - event_init
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      osdep_event_init(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tty
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: tty_use_margin
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tty_use_margin(tty)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tty
    - ','
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: tty_full_width
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tty_full_width(tty, ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tty
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: TTY_BLOCK_START
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TTY_BLOCK_START(tty)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tty
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: TTY_BLOCK_STOP
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TTY_BLOCK_STOP(tty)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/tmux/tty.c:92,1
    - Dst: getpid
      Src: /src/tmux/tty.c:92,1
    - Dst: open
      Src: /src/tmux/tty.c:94,1
    - Dst: fcntl
      Src: /src/tmux/tty.c:95,1
    - Dst: fatal
      Src: /src/tmux/tty.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 97
    functionName: tty_create_log
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - fatal
    - open
    - fcntl
    - xsnprintf
    - getpid
    linkageType: ''
    returnType: void
    signature: void tty_create_log(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/tmux/tty.c:102,1
    - Dst: memset
      Src: /src/tmux/tty.c:105,1
    - Dst: tcgetattr
      Src: /src/tmux/tty.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - tty
    - c
    argTypes:
    - struct tty*
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 116
    functionName: tty_init
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - memset
    - tcgetattr
    - isatty
    linkageType: ''
    returnType: int
    signature: int tty_init(struct tty *tty, struct client *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/tmux/tty.c:125,1
    - Dst: tty_puts
      Src: /src/tmux/tty.c:143,1
    - Dst: log_debug
      Src: /src/tmux/tty.c:152,1
    - Dst: tty_set_size
      Src: /src/tmux/tty.c:154,1
    - Dst: tty_invalidate
      Src: /src/tmux/tty.c:155,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - tty
    argTypes:
    - struct tty*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 156
    functionName: tty_resize
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_puts
    - tty_set_size
    - tty_invalidate
    - log_debug
    - ioctl
    linkageType: ''
    returnType: void
    signature: void tty_resize(struct tty *tty)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - tty
    - sx
    - sy
    - xpixel
    - ypixel
    argTypes:
    - struct tty*
    - u_int
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 165
    functionName: tty_set_size
    functionSourceFile: /src/tmux/tty.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tty_set_size(struct tty *tty, u_int sx, u_int sy, u_int xpixel,
      u_int ypixel)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/tty.c:173,1
    - Dst: evbuffer_read
      Src: /src/tmux/tty.c:176,1
    - Dst: log_debug
      Src: /src/tmux/tty.c:179,1
    - Dst: log_debug
      Src: /src/tmux/tty.c:181,1
    - Dst: strerror
      Src: /src/tmux/tty.c:181,1
    - Dst: event_del
      Src: /src/tmux/tty.c:182,1
    - Dst: server_client_lost
      Src: /src/tmux/tty.c:183,1
    - Dst: log_debug
      Src: /src/tmux/tty.c:186,1
    - Dst: tty_keys_next
      Src: /src/tmux/tty.c:188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - int
    - events
    - data
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 190
    functionName: tty_read_callback
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - event_del
    - evbuffer_read
    - strerror
    - log_debug
    - server_client_lost
    - tty_keys_next
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: void tty_read_callback(__unused int fd, __unused short events, void
      *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/tty.c:199,1
    - Dst: TTY_BLOCK_STOP
      Src: /src/tmux/tty.c:204,1
    - Dst: tty_invalidate
      Src: /src/tmux/tty.c:206,1
    - Dst: evtimer_add
      Src: /src/tmux/tty.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - int
    - events
    - data
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 211
    functionName: tty_timer_callback
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - log_debug
    - TTY_BLOCK_STOP
    - evtimer_add
    - tty_invalidate
    linkageType: ''
    returnType: void
    signature: void tty_timer_callback(__unused int fd, __unused short events, void
      *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/tty.c:217,1
    - Dst: TTY_BLOCK_START
      Src: /src/tmux/tty.c:225,1
    - Dst: log_debug
      Src: /src/tmux/tty.c:232,1
    - Dst: evbuffer_drain
      Src: /src/tmux/tty.c:234,1
    - Dst: evtimer_add
      Src: /src/tmux/tty.c:238,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - tty
    argTypes:
    - struct tty*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 240
    functionName: tty_block_maybe
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - evtimer_add
    - TTY_BLOCK_START
    - log_debug
    - evbuffer_drain
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: int
    signature: int tty_block_maybe(struct tty *tty)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/tty.c:247,1
    - Dst: evbuffer_write
      Src: /src/tmux/tty.c:250,1
    - Dst: log_debug
      Src: /src/tmux/tty.c:253,1
    - Dst: log_debug
      Src: /src/tmux/tty.c:260,1
    - Dst: tty_block_maybe
      Src: /src/tmux/tty.c:262,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/tty.c:265,1
    - Dst: event_add
      Src: /src/tmux/tty.c:266,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - int
    - events
    - data
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 267
    functionName: tty_write_callback
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_block_maybe
    - event_add
    - log_debug
    - evbuffer_write
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: void tty_write_callback(__unused int fd, __unused short events, void
      *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tty_term_create
      Src: /src/tmux/tty.c:274,1
    - Dst: tty_close
      Src: /src/tmux/tty.c:277,1
    - Dst: event_set
      Src: /src/tmux/tty.c:284,1
    - Dst: evbuffer_new
      Src: /src/tmux/tty.c:286,1
    - Dst: fatal
      Src: /src/tmux/tty.c:288,1
    - Dst: event_set
      Src: /src/tmux/tty.c:290,1
    - Dst: evbuffer_new
      Src: /src/tmux/tty.c:291,1
    - Dst: fatal
      Src: /src/tmux/tty.c:293,1
    - Dst: evtimer_set
      Src: /src/tmux/tty.c:295,1
    - Dst: evtimer_set
      Src: /src/tmux/tty.c:296,1
    - Dst: evtimer_set
      Src: /src/tmux/tty.c:297,1
    - Dst: tty_start_tty
      Src: /src/tmux/tty.c:299,1
    - Dst: tty_keys_build
      Src: /src/tmux/tty.c:300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - tty
    - cause
    argTypes:
    - struct tty*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 303
    functionName: tty_open
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_term_create
    - tty_close
    - event_set
    - tty_start_tty
    - tty_keys_build
    - fatal
    - evtimer_set
    - evbuffer_new
    linkageType: ''
    returnType: int
    signature: int tty_open(struct tty *tty, char **cause)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/tty.c:311,1
    - Dst: tty_update_features
      Src: /src/tmux/tty.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - int
    - events
    - data
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 318
    functionName: tty_start_timer_callback
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - log_debug
    - tty_update_features
    linkageType: ''
    returnType: void
    signature: void tty_start_timer_callback(__unused int fd, __unused short events,
      void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/tty.c:326,1
    - Dst: evtimer_del
      Src: /src/tmux/tty.c:327,1
    - Dst: evtimer_add
      Src: /src/tmux/tty.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tty
    argTypes:
    - struct tty*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 329
    functionName: tty_start_start_timer
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - log_debug
    - evtimer_add
    - evtimer_del
    linkageType: ''
    returnType: void
    signature: void tty_start_start_timer(struct tty *tty)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: setblocking
      Src: /src/tmux/tty.c:337,1
    - Dst: event_add
      Src: /src/tmux/tty.c:338,1
    - Dst: memcpy
      Src: /src/tmux/tty.c:340,1
    - Dst: tcsetattr
      Src: /src/tmux/tty.c:348,1
    - Dst: tcflush
      Src: /src/tmux/tty.c:349,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:351,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:353,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:354,1
    - Dst: tty_acs_needed
      Src: /src/tmux/tty.c:356,1
    - Dst: log_debug
      Src: /src/tmux/tty.c:357,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:358,1
    - Dst: log_debug
      Src: /src/tmux/tty.c:360,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:362,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:363,1
    - Dst: tty_puts
      Src: /src/tmux/tty.c:364,1
    - Dst: tty_puts
      Src: /src/tmux/tty.c:365,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:367,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:368,1
    - Dst: tty_puts
      Src: /src/tmux/tty.c:372,1
    - Dst: tty_start_start_timer
      Src: /src/tmux/tty.c:375,1
    - Dst: tty_invalidate
      Src: /src/tmux/tty.c:378,1
    - Dst: tty_force_cursor_colour
      Src: /src/tmux/tty.c:381,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 1
    argNames:
    - tty
    argTypes:
    - struct tty*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 386
    functionName: tty_start_tty
    functionSourceFile: /src/tmux/tty.c
    functionUses: 1
    functionsReached:
    - tty_puts
    - tty_term_has
    - tcflush
    - tcsetattr
    - tty_force_cursor_colour
    - tty_acs_needed
    - event_add
    - memcpy
    - tty_putcode
    - tty_invalidate
    - log_debug
    - setblocking
    - tty_start_start_timer
    linkageType: ''
    returnType: void
    signature: void tty_start_tty(struct tty *tty)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tty_puts
      Src: /src/tmux/tty.c:396,1
    - Dst: tty_puts
      Src: /src/tmux/tty.c:398,1
    - Dst: tty_puts
      Src: /src/tmux/tty.c:400,1
    - Dst: tty_puts
      Src: /src/tmux/tty.c:401,1
    - Dst: time
      Src: /src/tmux/tty.c:405,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - tty
    argTypes:
    - struct tty*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 406
    functionName: tty_send_requests
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_puts
    - time
    linkageType: ''
    returnType: void
    signature: void tty_send_requests(struct tty *tty)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/tmux/tty.c:412,1
    - Dst: log_debug
      Src: /src/tmux/tty.c:419,1
    - Dst: log_debug
      Src: /src/tmux/tty.c:423,1
    - Dst: tty_puts
      Src: /src/tmux/tty.c:428,1
    - Dst: tty_start_start_timer
      Src: /src/tmux/tty.c:431,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - tty
    - force
    argTypes:
    - struct tty*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 432
    functionName: tty_repeat_requests
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - log_debug
    - time
    - tty_start_start_timer
    - tty_puts
    linkageType: ''
    returnType: void
    signature: void tty_repeat_requests(struct tty *tty, int force)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: evtimer_del
      Src: /src/tmux/tty.c:444,1
    - Dst: evtimer_del
      Src: /src/tmux/tty.c:445,1
    - Dst: event_del
      Src: /src/tmux/tty.c:447,1
    - Dst: event_del
      Src: /src/tmux/tty.c:450,1
    - Dst: event_del
      Src: /src/tmux/tty.c:451,1
    - Dst: ioctl
      Src: /src/tmux/tty.c:458,1
    - Dst: tcsetattr
      Src: /src/tmux/tty.c:460,1
    - Dst: tty_raw
      Src: /src/tmux/tty.c:463,1
    - Dst: tty_term_string_ii
      Src: /src/tmux/tty.c:463,1
    - Dst: tty_acs_needed
      Src: /src/tmux/tty.c:464,1
    - Dst: tty_raw
      Src: /src/tmux/tty.c:465,1
    - Dst: tty_term_string
      Src: /src/tmux/tty.c:465,1
    - Dst: tty_raw
      Src: /src/tmux/tty.c:466,1
    - Dst: tty_term_string
      Src: /src/tmux/tty.c:466,1
    - Dst: tty_raw
      Src: /src/tmux/tty.c:467,1
    - Dst: tty_term_string
      Src: /src/tmux/tty.c:467,1
    - Dst: tty_raw
      Src: /src/tmux/tty.c:468,1
    - Dst: tty_term_string
      Src: /src/tmux/tty.c:468,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:470,1
    - Dst: tty_raw
      Src: /src/tmux/tty.c:471,1
    - Dst: tty_term_string
      Src: /src/tmux/tty.c:471,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:472,1
    - Dst: tty_raw
      Src: /src/tmux/tty.c:473,1
    - Dst: tty_term_string_i
      Src: /src/tmux/tty.c:473,1
    - Dst: tty_raw
      Src: /src/tmux/tty.c:476,1
    - Dst: tty_term_string
      Src: /src/tmux/tty.c:476,1
    - Dst: tty_raw
      Src: /src/tmux/tty.c:478,1
    - Dst: tty_term_string
      Src: /src/tmux/tty.c:478,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:479,1
    - Dst: tty_raw
      Src: /src/tmux/tty.c:480,1
    - Dst: tty_raw
      Src: /src/tmux/tty.c:481,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:483,1
    - Dst: tty_raw
      Src: /src/tmux/tty.c:484,1
    - Dst: tty_term_string
      Src: /src/tmux/tty.c:484,1
    - Dst: tty_raw
      Src: /src/tmux/tty.c:487,1
    - Dst: tty_raw
      Src: /src/tmux/tty.c:488,1
    - Dst: tty_term_string
      Src: /src/tmux/tty.c:488,1
    - Dst: tty_raw
      Src: /src/tmux/tty.c:489,1
    - Dst: tty_term_string
      Src: /src/tmux/tty.c:489,1
    - Dst: tty_use_margin
      Src: /src/tmux/tty.c:491,1
    - Dst: tty_raw
      Src: /src/tmux/tty.c:492,1
    - Dst: tty_term_string
      Src: /src/tmux/tty.c:492,1
    - Dst: tty_raw
      Src: /src/tmux/tty.c:493,1
    - Dst: tty_term_string
      Src: /src/tmux/tty.c:493,1
    - Dst: tty_raw
      Src: /src/tmux/tty.c:496,1
    - Dst: setblocking
      Src: /src/tmux/tty.c:498,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - tty
    argTypes:
    - struct tty*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 499
    functionName: tty_stop_tty
    functionSourceFile: /src/tmux/tty.c
    functionUses: 1
    functionsReached:
    - tty_term_string
    - event_del
    - tty_term_string_i
    - evtimer_del
    - tty_term_has
    - tty_raw
    - tcsetattr
    - tty_term_string_ii
    - tty_acs_needed
    - tty_use_margin
    - setblocking
    - ioctl
    linkageType: ''
    returnType: void
    signature: void tty_stop_tty(struct tty *tty)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_initialized
      Src: /src/tmux/tty.c:504,1
    - Dst: evtimer_del
      Src: /src/tmux/tty.c:505,1
    - Dst: tty_stop_tty
      Src: /src/tmux/tty.c:506,1
    - Dst: evbuffer_free
      Src: /src/tmux/tty.c:509,1
    - Dst: event_del
      Src: /src/tmux/tty.c:510,1
    - Dst: evbuffer_free
      Src: /src/tmux/tty.c:511,1
    - Dst: event_del
      Src: /src/tmux/tty.c:512,1
    - Dst: tty_term_free
      Src: /src/tmux/tty.c:514,1
    - Dst: tty_keys_free
      Src: /src/tmux/tty.c:515,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - tty
    argTypes:
    - struct tty*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 519
    functionName: tty_close
    functionSourceFile: /src/tmux/tty.c
    functionUses: 1
    functionsReached:
    - event_del
    - evtimer_del
    - tty_keys_free
    - evbuffer_free
    - tty_stop_tty
    - tty_term_free
    - event_initialized
    linkageType: ''
    returnType: void
    signature: void tty_close(struct tty *tty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tty_close
      Src: /src/tmux/tty.c:524,1
    - Dst: free
      Src: /src/tmux/tty.c:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tty
    argTypes:
    - struct tty*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 521
    functionDepth: 3
    functionLinenumber: 521
    functionLinenumberEnd: 527
    functionName: tty_free
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_close
    - free
    linkageType: ''
    returnType: void
    signature: void tty_free(struct tty *tty)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tty_apply_features
      Src: /src/tmux/tty.c:534,1
    - Dst: tty_term_apply_overrides
      Src: /src/tmux/tty.c:535,1
    - Dst: tty_use_margin
      Src: /src/tmux/tty.c:537,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:538,1
    - Dst: options_get_number
      Src: /src/tmux/tty.c:539,1
    - Dst: tty_puts
      Src: /src/tmux/tty.c:540,1
    - Dst: tty_term_string
      Src: /src/tmux/tty.c:540,1
    - Dst: options_get_number
      Src: /src/tmux/tty.c:541,1
    - Dst: tty_puts
      Src: /src/tmux/tty.c:542,1
    - Dst: tty_term_string
      Src: /src/tmux/tty.c:542,1
    - Dst: tty_puts
      Src: /src/tmux/tty.c:544,1
    - Dst: server_redraw_client
      Src: /src/tmux/tty.c:550,1
    - Dst: tty_invalidate
      Src: /src/tmux/tty.c:552,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - tty
    argTypes:
    - struct tty*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 529
    functionDepth: 3
    functionLinenumber: 529
    functionLinenumberEnd: 553
    functionName: tty_update_features
    functionSourceFile: /src/tmux/tty.c
    functionUses: 1
    functionsReached:
    - tty_term_string
    - tty_puts
    - tty_apply_features
    - tty_term_apply_overrides
    - tty_use_margin
    - tty_putcode
    - tty_invalidate
    - server_redraw_client
    - options_get_number
    linkageType: ''
    returnType: void
    signature: void tty_update_features(struct tty *tty)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/tmux/tty.c:562,1
    - Dst: write
      Src: /src/tmux/tty.c:564,1
    - Dst: usleep
      Src: /src/tmux/tty.c:572,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - tty
    - s
    argTypes:
    - struct tty*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 574
    functionName: tty_raw
    functionSourceFile: /src/tmux/tty.c
    functionUses: 2
    functionsReached:
    - strlen
    - write
    - usleep
    linkageType: ''
    returnType: void
    signature: void tty_raw(struct tty *tty, const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tty_puts
      Src: /src/tmux/tty.c:579,1
    - Dst: tty_term_string
      Src: /src/tmux/tty.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tty
    - code
    argTypes:
    - struct tty*
    - enum tty_code_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 580
    functionName: tty_putcode
    functionSourceFile: /src/tmux/tty.c
    functionUses: 2
    functionsReached:
    - tty_puts
    - tty_term_string
    linkageType: ''
    returnType: void
    signature: void tty_putcode(struct tty *tty, enum tty_code_code code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_puts
      Src: /src/tmux/tty.c:587,1
    - Dst: tty_term_string_i
      Src: /src/tmux/tty.c:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - tty
    - code
    - a
    argTypes:
    - struct tty*
    - enum tty_code_code
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 588
    functionName: tty_putcode_i
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_puts
    - tty_term_string_i
    linkageType: ''
    returnType: void
    signature: void tty_putcode_i(struct tty *tty, enum tty_code_code code, int a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_puts
      Src: /src/tmux/tty.c:595,1
    - Dst: tty_term_string_ii
      Src: /src/tmux/tty.c:595,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - tty
    - code
    - a
    - b
    argTypes:
    - struct tty*
    - enum tty_code_code
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 596
    functionName: tty_putcode_ii
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_puts
    - tty_term_string_ii
    linkageType: ''
    returnType: void
    signature: void tty_putcode_ii(struct tty *tty, enum tty_code_code code, int a,
      int b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_puts
      Src: /src/tmux/tty.c:603,1
    - Dst: tty_term_string_iii
      Src: /src/tmux/tty.c:603,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 5
    argNames:
    - tty
    - code
    - a
    - b
    - c
    argTypes:
    - struct tty*
    - enum tty_code_code
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 604
    functionName: tty_putcode_iii
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_puts
    - tty_term_string_iii
    linkageType: ''
    returnType: void
    signature: void tty_putcode_iii(struct tty *tty, enum tty_code_code code, int
      a, int b, int c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_puts
      Src: /src/tmux/tty.c:610,1
    - Dst: tty_term_string_s
      Src: /src/tmux/tty.c:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - tty
    - code
    - a
    argTypes:
    - struct tty*
    - enum tty_code_code
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 611
    functionName: tty_putcode_s
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_puts
    - tty_term_string_s
    linkageType: ''
    returnType: void
    signature: void tty_putcode_s(struct tty *tty, enum tty_code_code code, const
      char *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_puts
      Src: /src/tmux/tty.c:618,1
    - Dst: tty_term_string_ss
      Src: /src/tmux/tty.c:618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 4
    argNames:
    - tty
    - code
    - a
    - b
    argTypes:
    - struct tty*
    - enum tty_code_code
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 619
    functionName: tty_putcode_ss
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_puts
    - tty_term_string_ss
    linkageType: ''
    returnType: void
    signature: "void tty_putcode_ss(struct tty *tty, enum tty_code_code code, const
      char *a,\n    const char *b)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_add
      Src: /src/tmux/tty.c:631,1
    - Dst: log_debug
      Src: /src/tmux/tty.c:632,1
    - Dst: write
      Src: /src/tmux/tty.c:636,1
    - Dst: event_pending
      Src: /src/tmux/tty.c:638,1
    - Dst: event_add
      Src: /src/tmux/tty.c:639,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - tty
    - buf
    - len
    argTypes:
    - struct tty*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 640
    functionName: tty_add
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - event_pending
    - evbuffer_add
    - write
    - event_add
    - log_debug
    linkageType: ''
    returnType: void
    signature: void tty_add(struct tty *tty, const char *buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_add
      Src: /src/tmux/tty.c:646,1
    - Dst: strlen
      Src: /src/tmux/tty.c:646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - tty
    - s
    argTypes:
    - struct tty*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 642
    functionDepth: 2
    functionLinenumber: 642
    functionLinenumberEnd: 647
    functionName: tty_puts
    functionSourceFile: /src/tmux/tty.c
    functionUses: 11
    functionsReached:
    - strlen
    - tty_add
    linkageType: ''
    returnType: void
    signature: void tty_puts(struct tty *tty, const char *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tty_acs_get
      Src: /src/tmux/tty.c:661,1
    - Dst: tty_add
      Src: /src/tmux/tty.c:663,1
    - Dst: strlen
      Src: /src/tmux/tty.c:663,1
    - Dst: tty_add
      Src: /src/tmux/tty.c:665,1
    - Dst: tty_add
      Src: /src/tmux/tty.c:667,1
    - Dst: tty_putcode_ii
      Src: /src/tmux/tty.c:681,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 2
    argNames:
    - tty
    - ch
    argTypes:
    - struct tty*
    - u_char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 649
    functionDepth: 2
    functionLinenumber: 649
    functionLinenumberEnd: 685
    functionName: tty_putc
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - strlen
    - tty_acs_get
    - tty_add
    - tty_putcode_ii
    linkageType: ''
    returnType: void
    signature: void tty_putc(struct tty *tty, u_char ch)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tty_add
      Src: /src/tmux/tty.c:695,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - tty
    - buf
    - len
    - width
    argTypes:
    - struct tty*
    - void*
    - size_t
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 687
    functionDepth: 2
    functionLinenumber: 687
    functionLinenumberEnd: 704
    functionName: tty_putn
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_add
    linkageType: ''
    returnType: void
    signature: void tty_putn(struct tty *tty, const void *buf, size_t len, u_int width)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:711,1
    - Dst: options_get_string
      Src: /src/tmux/tty.c:712,1
    - Dst: strcmp
      Src: /src/tmux/tty.c:713,1
    - Dst: strncmp
      Src: /src/tmux/tty.c:713,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:714,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:718,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - tty
    argTypes:
    - struct tty*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 706
    functionDepth: 2
    functionLinenumber: 706
    functionLinenumberEnd: 719
    functionName: tty_set_italics
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_term_has
    - strncmp
    - strcmp
    - tty_putcode
    - options_get_string
    linkageType: ''
    returnType: void
    signature: void tty_set_italics(struct tty *tty)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:724,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:725,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:728,1
    - Dst: tty_puts
      Src: /src/tmux/tty.c:729,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:730,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - tty
    - title
    argTypes:
    - struct tty*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 721
    functionDepth: 3
    functionLinenumber: 721
    functionLinenumberEnd: 731
    functionName: tty_set_title
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_puts
    - tty_term_has
    - tty_putcode
    linkageType: ''
    returnType: void
    signature: void tty_set_title(struct tty *tty, const char *title)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:736,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:737,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:740,1
    - Dst: tty_puts
      Src: /src/tmux/tty.c:741,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:742,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - tty
    - title
    argTypes:
    - struct tty*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 733
    functionDepth: 3
    functionLinenumber: 733
    functionLinenumberEnd: 743
    functionName: tty_set_path
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_puts
    - tty_term_has
    - tty_putcode
    linkageType: ''
    returnType: void
    signature: void tty_set_path(struct tty *tty, const char *title)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: colour_force_rgb
      Src: /src/tmux/tty.c:752,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:756,1
    - Dst: colour_split_rgb
      Src: /src/tmux/tty.c:758,1
    - Dst: xsnprintf
      Src: /src/tmux/tty.c:759,1
    - Dst: tty_putcode_s
      Src: /src/tmux/tty.c:760,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - tty
    - c
    argTypes:
    - struct tty*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 745
    functionDepth: 2
    functionLinenumber: 745
    functionLinenumberEnd: 763
    functionName: tty_force_cursor_colour
    functionSourceFile: /src/tmux/tty.c
    functionUses: 1
    functionsReached:
    - tty_putcode_s
    - colour_split_rgb
    - xsnprintf
    - colour_force_rgb
    - tty_putcode
    linkageType: ''
    returnType: void
    signature: void tty_force_cursor_colour(struct tty *tty, int c)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: tty_force_cursor_colour
      Src: /src/tmux/tty.c:776,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:782,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:814,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:818,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:819,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:821,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:824,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:827,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:829,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:831,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:833,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:836,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:838,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:840,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:842,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:845,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:847,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:849,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:851,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 68
    argCount: 3
    argNames:
    - tty
    - mode
    - s
    argTypes:
    - struct tty*
    - int
    - struct screen*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 765
    functionDepth: 3
    functionLinenumber: 765
    functionLinenumberEnd: 856
    functionName: tty_update_cursor
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_putcode_i
    - tty_force_cursor_colour
    - tty_term_has
    - tty_putcode
    linkageType: ''
    returnType: int
    signature: int tty_update_cursor(struct tty *tty, int mode, struct screen *s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tty_update_cursor
      Src: /src/tmux/tty.c:868,1
    - Dst: log_get_level
      Src: /src/tmux/tty.c:874,1
    - Dst: log_debug
      Src: /src/tmux/tty.c:875,1
    - Dst: screen_mode_to_string
      Src: /src/tmux/tty.c:876,1
    - Dst: log_debug
      Src: /src/tmux/tty.c:877,1
    - Dst: screen_mode_to_string
      Src: /src/tmux/tty.c:878,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:881,1
    - Dst: tty_puts
      Src: /src/tmux/tty.c:887,1
    - Dst: tty_puts
      Src: /src/tmux/tty.c:889,1
    - Dst: tty_puts
      Src: /src/tmux/tty.c:891,1
    - Dst: tty_puts
      Src: /src/tmux/tty.c:893,1
    - Dst: tty_puts
      Src: /src/tmux/tty.c:895,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - tty
    - mode
    - s
    argTypes:
    - struct tty*
    - int
    - struct screen*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 858
    functionDepth: 4
    functionLinenumber: 858
    functionLinenumberEnd: 898
    functionName: tty_update_mode
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_puts
    - screen_mode_to_string
    - tty_term_has
    - log_get_level
    - tty_update_cursor
    - log_debug
    linkageType: ''
    returnType: void
    signature: void tty_update_mode(struct tty *tty, int mode, struct screen *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:904,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:905,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:908,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - tty
    - code
    - code1
    - n
    argTypes:
    - struct tty*
    - enum tty_code_code
    - enum tty_code_code
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 900
    functionDepth: 2
    functionLinenumber: 900
    functionLinenumberEnd: 910
    functionName: tty_emulate_repeat
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_putcode_i
    - tty_term_has
    - tty_putcode
    linkageType: ''
    returnType: void
    signature: "void tty_emulate_repeat(struct tty *tty, enum tty_code_code code,\n
      \   enum tty_code_code code1, u_int n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/tmux/tty.c:918,1
    - Dst: tty_putn
      Src: /src/tmux/tty.c:921,1
    - Dst: tty_putn
      Src: /src/tmux/tty.c:925,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - tty
    - n
    argTypes:
    - struct tty*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 912
    functionDepth: 3
    functionLinenumber: 912
    functionLinenumberEnd: 926
    functionName: tty_repeat_space
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - memset
    - tty_putn
    linkageType: ''
    returnType: void
    signature: void tty_repeat_space(struct tty *tty, u_int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: status_line_size
      Src: /src/tmux/tty.c:935,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - tty
    argTypes:
    - struct tty*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 936
    functionName: tty_window_bigger
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - status_line_size
    linkageType: ''
    returnType: int
    signature: int tty_window_bigger(struct tty *tty)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - tty
    - ox
    - oy
    - sx
    - sy
    argTypes:
    - struct tty*
    - u_int*
    - u_int*
    - u_int*
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 948
    functionName: tty_window_offset
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tty_window_offset(struct tty *tty, u_int *ox, u_int *oy, u_int
      *sx, u_int *sy)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: server_client_get_pane
      Src: /src/tmux/tty.c:956,1
    - Dst: status_line_size
      Src: /src/tmux/tty.c:959,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 5
    argNames:
    - tty
    - ox
    - oy
    - sx
    - sy
    argTypes:
    - struct tty*
    - u_int*
    - u_int*
    - u_int*
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 1012
    functionName: tty_window_offset1
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - status_line_size
    - server_client_get_pane
    linkageType: ''
    returnType: int
    signature: int tty_window_offset1(struct tty *tty, u_int *ox, u_int *oy, u_int
      *sx, u_int *sy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/tty.c:1020,1
    - Dst: tty_update_client_offset
      Src: /src/tmux/tty.c:1024,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1015
    functionDepth: 1
    functionLinenumber: 1015
    functionLinenumberEnd: 1026
    functionName: tty_update_window_offset
    functionSourceFile: /src/tmux/tty.c
    functionUses: 3
    functionsReached:
    - tty_update_client_offset
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void tty_update_window_offset(struct window *w)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tty_window_offset1
      Src: /src/tmux/tty.c:1037,1
    - Dst: log_debug
      Src: /src/tmux/tty.c:1044,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1029
    functionDepth: 2
    functionLinenumber: 1029
    functionLinenumberEnd: 1054
    functionName: tty_update_client_offset
    functionSourceFile: /src/tmux/tty.c
    functionUses: 1
    functionsReached:
    - log_debug
    - tty_window_offset1
    linkageType: ''
    returnType: void
    signature: void tty_update_client_offset(struct client *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tty
    - ctx
    argTypes:
    - __unused*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1061
    functionDepth: 0
    functionLinenumber: 1061
    functionLinenumberEnd: 1065
    functionName: tty_large_region
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tty_large_region(__unused struct tty *tty, const struct tty_ctx
      *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tty_term_flag
      Src: /src/tmux/tty.c:1074,1
    - Dst: COLOUR_DEFAULT
      Src: /src/tmux/tty.c:1076,1
    - Dst: COLOUR_DEFAULT
      Src: /src/tmux/tty.c:1076,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - tty
    - gc
    - bg
    argTypes:
    - struct tty*
    - struct grid_cell*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1079
    functionName: tty_fake_bce
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_term_flag
    - COLOUR_DEFAULT
    linkageType: ''
    returnType: int
    signature: int tty_fake_bce(const struct tty *tty, const struct grid_cell *gc,
      u_int bg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_large_region
      Src: /src/tmux/tty.c:1096,1
    - Dst: log_debug
      Src: /src/tmux/tty.c:1097,1
    - Dst: struct tty_ctx*::redraw_cb
      Src: /src/tmux/tty.c:1098,1
    - Dst: log_debug
      Src: /src/tmux/tty.c:1102,1
    - Dst: tty_draw_pane
      Src: /src/tmux/tty.c:1105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - tty
    - ctx
    argTypes:
    - struct tty*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1086
    functionDepth: 1
    functionLinenumber: 1086
    functionLinenumberEnd: 1106
    functionName: tty_redraw_region
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - log_debug
    - tty_draw_pane
    - tty_large_region
    - struct tty_ctx*::redraw_cb
    linkageType: ''
    returnType: void
    signature: void tty_redraw_region(struct tty *tty, const struct tty_ctx *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 6
    argNames:
    - tty
    - ctx
    - px
    - py
    - nx
    - ny
    argTypes:
    - __unused*
    - struct tty_ctx*
    - u_int
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1109
    functionDepth: 0
    functionLinenumber: 1109
    functionLinenumberEnd: 1122
    functionName: tty_is_visible
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int tty_is_visible(__unused struct tty *tty, const struct tty_ctx
      *ctx, u_int px,\n    u_int py, u_int nx, u_int ny)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tty_is_visible
      Src: /src/tmux/tty.c:1142,1
    - Dst: fatalx
      Src: /src/tmux/tty.c:1168,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 9
    argNames:
    - tty
    - ctx
    - px
    - py
    - nx
    - i
    - x
    - rx
    - ry
    argTypes:
    - struct tty*
    - struct tty_ctx*
    - u_int
    - u_int
    - u_int
    - u_int*
    - u_int*
    - u_int*
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1125
    functionDepth: 1
    functionLinenumber: 1125
    functionLinenumberEnd: 1171
    functionName: tty_clamp_line
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_is_visible
    - fatalx
    linkageType: ''
    returnType: int
    signature: "int tty_clamp_line(struct tty *tty, const struct tty_ctx *ctx, u_int
      px, u_int py,\n    u_int nx, u_int *i, u_int *x, u_int *rx, u_int *ry)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/tty.c:1183,1
    - Dst: tty_fake_bce
      Src: /src/tmux/tty.c:1190,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1192,1
    - Dst: tty_cursor
      Src: /src/tmux/tty.c:1193,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:1194,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1199,1
    - Dst: tty_cursor
      Src: /src/tmux/tty.c:1200,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:1201,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1206,1
    - Dst: tty_cursor
      Src: /src/tmux/tty.c:1207,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:1208,1
    - Dst: tty_check_overlay_range
      Src: /src/tmux/tty.c:1217,1
    - Dst: tty_cursor
      Src: /src/tmux/tty.c:1221,1
    - Dst: tty_repeat_space
      Src: /src/tmux/tty.c:1222,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 6
    argNames:
    - tty
    - defaults
    - py
    - px
    - nx
    - bg
    argTypes:
    - struct tty*
    - struct grid_cell*
    - u_int
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1174
    functionDepth: 4
    functionLinenumber: 1174
    functionLinenumberEnd: 1225
    functionName: tty_clear_line
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_check_overlay_range
    - tty_term_has
    - tty_cursor
    - tty_putcode
    - log_debug
    - tty_putcode_i
    - tty_repeat_space
    - tty_fake_bce
    linkageType: ''
    returnType: void
    signature: "void tty_clear_line(struct tty *tty, const struct grid_cell *defaults,
      u_int py,\n    u_int px, u_int nx, u_int bg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/tty.c:1237,1
    - Dst: tty_clamp_line
      Src: /src/tmux/tty.c:1239,1
    - Dst: tty_check_overlay_range
      Src: /src/tmux/tty.c:1240,1
    - Dst: tty_clear_line
      Src: /src/tmux/tty.c:1245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 6
    argNames:
    - tty
    - ctx
    - py
    - px
    - nx
    - bg
    argTypes:
    - struct tty*
    - struct tty_ctx*
    - u_int
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1228
    functionDepth: 5
    functionLinenumber: 1228
    functionLinenumberEnd: 1249
    functionName: tty_clear_pane_line
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - log_debug
    - tty_clamp_line
    - tty_check_overlay_range
    - tty_clear_line
    linkageType: ''
    returnType: void
    signature: "void tty_clear_pane_line(struct tty *tty, const struct tty_ctx *ctx,
      u_int py,\n    u_int px, u_int nx, u_int bg)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tty_is_visible
      Src: /src/tmux/tty.c:1259,1
    - Dst: fatalx
      Src: /src/tmux/tty.c:1284,1
    - Dst: fatalx
      Src: /src/tmux/tty.c:1308,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 12
    argNames:
    - tty
    - ctx
    - px
    - py
    - nx
    - ny
    - i
    - j
    - x
    - y
    - rx
    - ry
    argTypes:
    - struct tty*
    - struct tty_ctx*
    - u_int
    - u_int
    - u_int
    - u_int
    - u_int*
    - u_int*
    - u_int*
    - u_int*
    - u_int*
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1252
    functionDepth: 1
    functionLinenumber: 1252
    functionLinenumberEnd: 1311
    functionName: tty_clamp_area
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_is_visible
    - fatalx
    linkageType: ''
    returnType: int
    signature: "int tty_clamp_area(struct tty *tty, const struct tty_ctx *ctx, u_int
      px, u_int py,\n    u_int nx, u_int ny, u_int *i, u_int *j, u_int *x, u_int *y,
      u_int *rx,\n    u_int *ry)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/tty.c:1323,1
    - Dst: tty_fake_bce
      Src: /src/tmux/tty.c:1333,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1338,1
    - Dst: tty_cursor
      Src: /src/tmux/tty.c:1339,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:1340,1
    - Dst: COLOUR_DEFAULT
      Src: /src/tmux/tty.c:1349,1
    - Dst: xsnprintf
      Src: /src/tmux/tty.c:1350,1
    - Dst: tty_puts
      Src: /src/tmux/tty.c:1352,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1360,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1361,1
    - Dst: tty_region
      Src: /src/tmux/tty.c:1362,1
    - Dst: tty_margin_off
      Src: /src/tmux/tty.c:1363,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:1364,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1374,1
    - Dst: tty_use_margin
      Src: /src/tmux/tty.c:1375,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1376,1
    - Dst: tty_region
      Src: /src/tmux/tty.c:1377,1
    - Dst: tty_margin
      Src: /src/tmux/tty.c:1378,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:1379,1
    - Dst: tty_clear_line
      Src: /src/tmux/tty.c:1386,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 30
    argCount: 7
    argNames:
    - tty
    - ctx
    - py
    - ny
    - px
    - nx
    - bg
    argTypes:
    - struct tty*
    - struct tty_ctx*
    - u_int
    - u_int
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1314
    functionDepth: 5
    functionLinenumber: 1314
    functionLinenumberEnd: 1387
    functionName: tty_clear_area
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_margin
    - COLOUR_DEFAULT
    - tty_puts
    - tty_term_has
    - tty_clear_line
    - tty_cursor
    - xsnprintf
    - tty_use_margin
    - tty_putcode
    - log_debug
    - tty_putcode_i
    - tty_margin_off
    - tty_region
    - tty_fake_bce
    linkageType: ''
    returnType: void
    signature: "void tty_clear_area(struct tty *tty, const struct tty_ctx *ctx, u_int
      py,\n    u_int ny, u_int px, u_int nx, u_int bg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_clamp_area
      Src: /src/tmux/tty.c:1396,1
    - Dst: tty_clear_area
      Src: /src/tmux/tty.c:1397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 7
    argNames:
    - tty
    - ctx
    - py
    - ny
    - px
    - nx
    - bg
    argTypes:
    - struct tty*
    - struct tty_ctx*
    - u_int
    - u_int
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1390
    functionDepth: 6
    functionLinenumber: 1390
    functionLinenumberEnd: 1398
    functionName: tty_clear_pane_area
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_clear_area
    - tty_clamp_area
    linkageType: ''
    returnType: void
    signature: "void tty_clear_pane_area(struct tty *tty, const struct tty_ctx *ctx,
      u_int py,\n    u_int ny, u_int px, u_int nx, u_int bg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/tty.c:1409,1
    - Dst: tty_check_overlay_range
      Src: /src/tmux/tty.c:1412,1
    - Dst: tty_draw_line
      Src: /src/tmux/tty.c:1417,1
    - Dst: tty_clamp_line
      Src: /src/tmux/tty.c:1422,1
    - Dst: tty_check_overlay_range
      Src: /src/tmux/tty.c:1423,1
    - Dst: tty_draw_line
      Src: /src/tmux/tty.c:1428,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - tty
    - ctx
    - py
    argTypes:
    - struct tty*
    - struct tty_ctx*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1401
    functionDepth: 2
    functionLinenumber: 1401
    functionLinenumberEnd: 1432
    functionName: tty_draw_pane
    functionSourceFile: /src/tmux/tty.c
    functionUses: 1
    functionsReached:
    - log_debug
    - tty_clamp_line
    - tty_check_overlay_range
    - tty_draw_line
    linkageType: ''
    returnType: void
    signature: void tty_draw_pane(struct tty *tty, const struct tty_ctx *ctx, u_int
      py)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/tty.c:1450,1
    - Dst: gc::gc
      Src: /src/tmux/tty.c:1450,1
    - Dst: tty_acs_reverse_get
      Src: /src/tmux/tty.c:1453,1
    - Dst: utf8_set
      Src: /src/tmux/tty.c:1455,1
    - Dst: data::data
      Src: /src/tmux/tty.c:1455,1
    - Dst: data::data
      Src: /src/tmux/tty.c:1461,1
    - Dst: data::data
      Src: /src/tmux/tty.c:1462,1
    - Dst: data::data
      Src: /src/tmux/tty.c:1463,1
    - Dst: memset
      Src: /src/tmux/tty.c:1464,1
    - Dst: data::data
      Src: /src/tmux/tty.c:1464,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - tty
    - gc
    argTypes:
    - struct tty*
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1435
    functionDepth: 1
    functionLinenumber: 1435
    functionLinenumberEnd: 1466
    functionName: tty_check_codeset
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - gc::gc
    - utf8_set
    - memset
    - memcpy
    - tty_acs_reverse_get
    - data::data
    linkageType: ''
    returnType: struct grid_cell
    signature: 'struct grid_cell *

      tty_check_codeset(struct tty *tty, const struct grid_cell *gc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tty_check_overlay_range
      Src: /src/tmux/tty.c:1478,1
    - Dst: server_client_ranges_is_empty
      Src: /src/tmux/tty.c:1479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tty
    - px
    - py
    argTypes:
    - struct tty*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1469
    functionDepth: 1
    functionLinenumber: 1469
    functionLinenumberEnd: 1480
    functionName: tty_check_overlay
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_check_overlay_range
    - server_client_ranges_is_empty
    linkageType: ''
    returnType: int
    signature: int tty_check_overlay(struct tty *tty, u_int px, u_int py)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: server_client_ensure_ranges
      Src: /src/tmux/tty.c:1489,1
    - Dst: struct client*::overlay_check
      Src: /src/tmux/tty.c:1495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - tty
    - px
    - py
    - nx
    argTypes:
    - struct tty*
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1483
    functionDepth: 1
    functionLinenumber: 1483
    functionLinenumberEnd: 1496
    functionName: tty_check_overlay_range
    functionSourceFile: /src/tmux/tty.c
    functionUses: 4
    functionsReached:
    - struct client*::overlay_check
    - server_client_ensure_ranges
    linkageType: ''
    returnType: struct visible_ranges
    signature: 'struct visible_ranges *

      tty_check_overlay_range(struct tty *tty, u_int px, u_int py, u_int nx)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tty_window_offset
      Src: /src/tmux/tty.c:1510,1
    - Dst: status_at_line
      Src: /src/tmux/tty.c:1517,1
    - Dst: status_line_size
      Src: /src/tmux/tty.c:1518,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ttyctx
    - c
    argTypes:
    - struct tty_ctx*
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1500
    functionDepth: 1
    functionLinenumber: 1500
    functionLinenumberEnd: 1521
    functionName: tty_set_client_cb
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - status_line_size
    - status_at_line
    - tty_window_offset
    linkageType: ''
    returnType: int
    signature: int tty_set_client_cb(struct tty_ctx *ttyctx, struct client *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/tty.c:1529,1
    - Dst: memset
      Src: /src/tmux/tty.c:1530,1
    - Dst: tty_write_one
      Src: /src/tmux/tty.c:1547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - c
    - wp
    - s
    argTypes:
    - struct client*
    - struct window_pane*
    - struct screen*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1549
      start: 1523
    functionDepth: 1
    functionLinenumber: 1523
    functionLinenumberEnd: 1549
    functionName: tty_draw_images
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - memset
    - tty_write_one
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void tty_draw_images(struct client *c, struct window_pane *wp, struct
      screen *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1561,1
    - Dst: log_debug
      Src: /src/tmux/tty.c:1562,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:1563,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - tty
    argTypes:
    - struct tty*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1552
    functionDepth: 2
    functionLinenumber: 1552
    functionLinenumberEnd: 1565
    functionName: tty_sync_start
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - log_debug
    - tty_putcode_i
    - tty_term_has
    linkageType: ''
    returnType: void
    signature: void tty_sync_start(struct tty *tty)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1576,1
    - Dst: log_debug
      Src: /src/tmux/tty.c:1577,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:1578,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - tty
    argTypes:
    - struct tty*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1567
    functionDepth: 2
    functionLinenumber: 1567
    functionLinenumberEnd: 1580
    functionName: tty_sync_end
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - log_debug
    - tty_putcode_i
    - tty_term_has
    linkageType: ''
    returnType: void
    signature: void tty_sync_end(struct tty *tty)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - struct tty_ctx*
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1582
    functionDepth: 0
    functionLinenumber: 1582
    functionLinenumberEnd: 1602
    functionName: tty_client_ready
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tty_client_ready(const struct tty_ctx *ctx, struct client *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/tty.c:1613,1
    - Dst: tty_client_ready
      Src: /src/tmux/tty.c:1614,1
    - Dst: struct tty_ctx*::set_client_cb
      Src: /src/tmux/tty.c:1615,1
    - Dst: cmdfn
      Src: /src/tmux/tty.c:1620,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1604
    functionDepth: 1
    functionLinenumber: 1604
    functionLinenumberEnd: 1623
    functionName: tty_write
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - cmdfn
    - tty_client_ready
    - struct tty_ctx*::set_client_cb
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: "void tty_write(void (*cmdfn)(struct tty *, const struct tty_ctx *),\n
      \   struct tty_ctx *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct tty_ctx*::set_client_cb
      Src: /src/tmux/tty.c:1633,1
    - Dst: cmdfn
      Src: /src/tmux/tty.c:1634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - c
    - ctx
    argTypes:
    - struct client*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1627
    functionDepth: 0
    functionLinenumber: 1627
    functionLinenumberEnd: 1635
    functionName: tty_write_one
    functionSourceFile: /src/tmux/tty.c
    functionUses: 1
    functionsReached:
    - cmdfn
    - struct tty_ctx*::set_client_cb
    linkageType: ''
    returnType: void
    signature: "void tty_write_one(void (*cmdfn)(struct tty *, const struct tty_ctx
      *),\n    struct client *c, struct tty_ctx *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_full_width
      Src: /src/tmux/tty.c:1644,1
    - Dst: tty_fake_bce
      Src: /src/tmux/tty.c:1645,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1646,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1647,1
    - Dst: tty_draw_pane
      Src: /src/tmux/tty.c:1649,1
    - Dst: tty_default_attributes
      Src: /src/tmux/tty.c:1653,1
    - Dst: tty_cursor_pane
      Src: /src/tmux/tty.c:1656,1
    - Dst: tty_emulate_repeat
      Src: /src/tmux/tty.c:1658,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - tty
    - ctx
    argTypes:
    - struct tty*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1638
    functionDepth: 3
    functionLinenumber: 1638
    functionLinenumberEnd: 1659
    functionName: tty_cmd_insertcharacter
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_default_attributes
    - tty_emulate_repeat
    - tty_cursor_pane
    - tty_term_has
    - tty_draw_pane
    - tty_full_width
    - tty_fake_bce
    linkageType: ''
    returnType: void
    signature: void tty_cmd_insertcharacter(struct tty *tty, const struct tty_ctx
      *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_full_width
      Src: /src/tmux/tty.c:1667,1
    - Dst: tty_fake_bce
      Src: /src/tmux/tty.c:1668,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1669,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1670,1
    - Dst: tty_draw_pane
      Src: /src/tmux/tty.c:1672,1
    - Dst: tty_default_attributes
      Src: /src/tmux/tty.c:1676,1
    - Dst: tty_cursor_pane
      Src: /src/tmux/tty.c:1679,1
    - Dst: tty_emulate_repeat
      Src: /src/tmux/tty.c:1681,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - tty
    - ctx
    argTypes:
    - struct tty*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1682
      start: 1661
    functionDepth: 3
    functionLinenumber: 1661
    functionLinenumberEnd: 1682
    functionName: tty_cmd_deletecharacter
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_default_attributes
    - tty_emulate_repeat
    - tty_cursor_pane
    - tty_term_has
    - tty_draw_pane
    - tty_full_width
    - tty_fake_bce
    linkageType: ''
    returnType: void
    signature: void tty_cmd_deletecharacter(struct tty *tty, const struct tty_ctx
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tty_default_attributes
      Src: /src/tmux/tty.c:1687,1
    - Dst: tty_clear_pane_line
      Src: /src/tmux/tty.c:1690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tty
    - ctx
    argTypes:
    - struct tty*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1684
    functionDepth: 6
    functionLinenumber: 1684
    functionLinenumberEnd: 1691
    functionName: tty_cmd_clearcharacter
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_clear_pane_line
    - tty_default_attributes
    linkageType: ''
    returnType: void
    signature: void tty_cmd_clearcharacter(struct tty *tty, const struct tty_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_full_width
      Src: /src/tmux/tty.c:1699,1
    - Dst: tty_fake_bce
      Src: /src/tmux/tty.c:1700,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1701,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1702,1
    - Dst: tty_redraw_region
      Src: /src/tmux/tty.c:1706,1
    - Dst: tty_default_attributes
      Src: /src/tmux/tty.c:1710,1
    - Dst: tty_region_pane
      Src: /src/tmux/tty.c:1713,1
    - Dst: tty_margin_off
      Src: /src/tmux/tty.c:1714,1
    - Dst: tty_cursor_pane
      Src: /src/tmux/tty.c:1715,1
    - Dst: tty_emulate_repeat
      Src: /src/tmux/tty.c:1717,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 2
    argNames:
    - tty
    - ctx
    argTypes:
    - struct tty*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1693
    functionDepth: 3
    functionLinenumber: 1693
    functionLinenumberEnd: 1719
    functionName: tty_cmd_insertline
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_region_pane
    - tty_default_attributes
    - tty_emulate_repeat
    - tty_cursor_pane
    - tty_term_has
    - tty_full_width
    - tty_margin_off
    - tty_fake_bce
    - tty_redraw_region
    linkageType: ''
    returnType: void
    signature: void tty_cmd_insertline(struct tty *tty, const struct tty_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_full_width
      Src: /src/tmux/tty.c:1727,1
    - Dst: tty_fake_bce
      Src: /src/tmux/tty.c:1728,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1729,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1730,1
    - Dst: tty_redraw_region
      Src: /src/tmux/tty.c:1734,1
    - Dst: tty_default_attributes
      Src: /src/tmux/tty.c:1738,1
    - Dst: tty_region_pane
      Src: /src/tmux/tty.c:1741,1
    - Dst: tty_margin_off
      Src: /src/tmux/tty.c:1742,1
    - Dst: tty_cursor_pane
      Src: /src/tmux/tty.c:1743,1
    - Dst: tty_emulate_repeat
      Src: /src/tmux/tty.c:1745,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 2
    argNames:
    - tty
    - ctx
    argTypes:
    - struct tty*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1721
    functionDepth: 3
    functionLinenumber: 1721
    functionLinenumberEnd: 1747
    functionName: tty_cmd_deleteline
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_region_pane
    - tty_default_attributes
    - tty_emulate_repeat
    - tty_cursor_pane
    - tty_term_has
    - tty_full_width
    - tty_margin_off
    - tty_fake_bce
    - tty_redraw_region
    linkageType: ''
    returnType: void
    signature: void tty_cmd_deleteline(struct tty *tty, const struct tty_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tty_default_attributes
      Src: /src/tmux/tty.c:1752,1
    - Dst: tty_clear_pane_line
      Src: /src/tmux/tty.c:1755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tty
    - ctx
    argTypes:
    - struct tty*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1749
    functionDepth: 6
    functionLinenumber: 1749
    functionLinenumberEnd: 1756
    functionName: tty_cmd_clearline
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_clear_pane_line
    - tty_default_attributes
    linkageType: ''
    returnType: void
    signature: void tty_cmd_clearline(struct tty *tty, const struct tty_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tty_default_attributes
      Src: /src/tmux/tty.c:1763,1
    - Dst: tty_clear_pane_line
      Src: /src/tmux/tty.c:1766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tty
    - ctx
    argTypes:
    - struct tty*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1758
    functionDepth: 6
    functionLinenumber: 1758
    functionLinenumberEnd: 1767
    functionName: tty_cmd_clearendofline
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_clear_pane_line
    - tty_default_attributes
    linkageType: ''
    returnType: void
    signature: void tty_cmd_clearendofline(struct tty *tty, const struct tty_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tty_default_attributes
      Src: /src/tmux/tty.c:1772,1
    - Dst: tty_clear_pane_line
      Src: /src/tmux/tty.c:1775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tty
    - ctx
    argTypes:
    - struct tty*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1769
    functionDepth: 6
    functionLinenumber: 1769
    functionLinenumberEnd: 1776
    functionName: tty_cmd_clearstartofline
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_clear_pane_line
    - tty_default_attributes
    linkageType: ''
    returnType: void
    signature: void tty_cmd_clearstartofline(struct tty *tty, const struct tty_ctx
      *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tty_full_width
      Src: /src/tmux/tty.c:1787,1
    - Dst: tty_use_margin
      Src: /src/tmux/tty.c:1787,1
    - Dst: tty_fake_bce
      Src: /src/tmux/tty.c:1788,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1789,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1790,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1791,1
    - Dst: tty_redraw_region
      Src: /src/tmux/tty.c:1795,1
    - Dst: tty_default_attributes
      Src: /src/tmux/tty.c:1799,1
    - Dst: tty_region_pane
      Src: /src/tmux/tty.c:1802,1
    - Dst: tty_margin_pane
      Src: /src/tmux/tty.c:1803,1
    - Dst: tty_cursor_pane
      Src: /src/tmux/tty.c:1804,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1806,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:1807,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:1809,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 14
    argCount: 2
    argNames:
    - tty
    - ctx
    argTypes:
    - struct tty*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1778
    functionDepth: 2
    functionLinenumber: 1778
    functionLinenumberEnd: 1810
    functionName: tty_cmd_reverseindex
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_region_pane
    - tty_default_attributes
    - tty_putcode_i
    - tty_cursor_pane
    - tty_term_has
    - tty_use_margin
    - tty_putcode
    - tty_margin_pane
    - tty_full_width
    - tty_fake_bce
    - tty_redraw_region
    linkageType: ''
    returnType: void
    signature: void tty_cmd_reverseindex(struct tty *tty, const struct tty_ctx *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tty_full_width
      Src: /src/tmux/tty.c:1821,1
    - Dst: tty_use_margin
      Src: /src/tmux/tty.c:1821,1
    - Dst: tty_fake_bce
      Src: /src/tmux/tty.c:1822,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1823,1
    - Dst: tty_redraw_region
      Src: /src/tmux/tty.c:1827,1
    - Dst: tty_default_attributes
      Src: /src/tmux/tty.c:1831,1
    - Dst: tty_region_pane
      Src: /src/tmux/tty.c:1834,1
    - Dst: tty_margin_pane
      Src: /src/tmux/tty.c:1835,1
    - Dst: tty_use_margin
      Src: /src/tmux/tty.c:1845,1
    - Dst: tty_cursor
      Src: /src/tmux/tty.c:1846,1
    - Dst: tty_cursor
      Src: /src/tmux/tty.c:1848,1
    - Dst: tty_cursor_pane
      Src: /src/tmux/tty.c:1850,1
    - Dst: tty_putc
      Src: /src/tmux/tty.c:1852,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 2
    argNames:
    - tty
    - ctx
    argTypes:
    - struct tty*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1812
    functionDepth: 3
    functionLinenumber: 1812
    functionLinenumberEnd: 1853
    functionName: tty_cmd_linefeed
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_region_pane
    - tty_default_attributes
    - tty_cursor_pane
    - tty_term_has
    - tty_cursor
    - tty_putc
    - tty_use_margin
    - tty_margin_pane
    - tty_full_width
    - tty_fake_bce
    - tty_redraw_region
    linkageType: ''
    returnType: void
    signature: void tty_cmd_linefeed(struct tty *tty, const struct tty_ctx *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tty_full_width
      Src: /src/tmux/tty.c:1862,1
    - Dst: tty_use_margin
      Src: /src/tmux/tty.c:1862,1
    - Dst: tty_fake_bce
      Src: /src/tmux/tty.c:1863,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1864,1
    - Dst: tty_redraw_region
      Src: /src/tmux/tty.c:1868,1
    - Dst: tty_default_attributes
      Src: /src/tmux/tty.c:1872,1
    - Dst: tty_region_pane
      Src: /src/tmux/tty.c:1875,1
    - Dst: tty_margin_pane
      Src: /src/tmux/tty.c:1876,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1878,1
    - Dst: tty_use_margin
      Src: /src/tmux/tty.c:1879,1
    - Dst: tty_cursor
      Src: /src/tmux/tty.c:1880,1
    - Dst: tty_cursor
      Src: /src/tmux/tty.c:1882,1
    - Dst: tty_putc
      Src: /src/tmux/tty.c:1884,1
    - Dst: tty_cursor
      Src: /src/tmux/tty.c:1887,1
    - Dst: tty_cursor
      Src: /src/tmux/tty.c:1889,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:1890,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 2
    argNames:
    - tty
    - ctx
    argTypes:
    - struct tty*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1892
      start: 1855
    functionDepth: 3
    functionLinenumber: 1855
    functionLinenumberEnd: 1892
    functionName: tty_cmd_scrollup
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_region_pane
    - tty_default_attributes
    - tty_putcode_i
    - tty_term_has
    - tty_cursor
    - tty_putc
    - tty_use_margin
    - tty_margin_pane
    - tty_full_width
    - tty_fake_bce
    - tty_redraw_region
    linkageType: ''
    returnType: void
    signature: void tty_cmd_scrollup(struct tty *tty, const struct tty_ctx *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tty_full_width
      Src: /src/tmux/tty.c:1901,1
    - Dst: tty_use_margin
      Src: /src/tmux/tty.c:1901,1
    - Dst: tty_fake_bce
      Src: /src/tmux/tty.c:1902,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1903,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1904,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1905,1
    - Dst: tty_redraw_region
      Src: /src/tmux/tty.c:1909,1
    - Dst: tty_default_attributes
      Src: /src/tmux/tty.c:1913,1
    - Dst: tty_region_pane
      Src: /src/tmux/tty.c:1916,1
    - Dst: tty_margin_pane
      Src: /src/tmux/tty.c:1917,1
    - Dst: tty_cursor_pane
      Src: /src/tmux/tty.c:1918,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:1920,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:1921,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:1924,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 14
    argCount: 2
    argNames:
    - tty
    - ctx
    argTypes:
    - struct tty*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1926
      start: 1894
    functionDepth: 2
    functionLinenumber: 1894
    functionLinenumberEnd: 1926
    functionName: tty_cmd_scrolldown
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_region_pane
    - tty_default_attributes
    - tty_putcode_i
    - tty_cursor_pane
    - tty_term_has
    - tty_use_margin
    - tty_putcode
    - tty_margin_pane
    - tty_full_width
    - tty_fake_bce
    - tty_redraw_region
    linkageType: ''
    returnType: void
    signature: void tty_cmd_scrolldown(struct tty *tty, const struct tty_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tty_default_attributes
      Src: /src/tmux/tty.c:1933,1
    - Dst: tty_region_pane
      Src: /src/tmux/tty.c:1936,1
    - Dst: tty_margin_off
      Src: /src/tmux/tty.c:1937,1
    - Dst: tty_clear_pane_area
      Src: /src/tmux/tty.c:1944,1
    - Dst: tty_clear_pane_line
      Src: /src/tmux/tty.c:1950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - tty
    - ctx
    argTypes:
    - struct tty*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1951
      start: 1928
    functionDepth: 7
    functionLinenumber: 1928
    functionLinenumberEnd: 1951
    functionName: tty_cmd_clearendofscreen
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_region_pane
    - tty_default_attributes
    - tty_clear_pane_line
    - tty_margin_off
    - tty_clear_pane_area
    linkageType: ''
    returnType: void
    signature: void tty_cmd_clearendofscreen(struct tty *tty, const struct tty_ctx
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tty_default_attributes
      Src: /src/tmux/tty.c:1958,1
    - Dst: tty_region_pane
      Src: /src/tmux/tty.c:1961,1
    - Dst: tty_margin_off
      Src: /src/tmux/tty.c:1962,1
    - Dst: tty_clear_pane_area
      Src: /src/tmux/tty.c:1969,1
    - Dst: tty_clear_pane_line
      Src: /src/tmux/tty.c:1975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - tty
    - ctx
    argTypes:
    - struct tty*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1953
    functionDepth: 7
    functionLinenumber: 1953
    functionLinenumberEnd: 1976
    functionName: tty_cmd_clearstartofscreen
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_region_pane
    - tty_default_attributes
    - tty_clear_pane_line
    - tty_margin_off
    - tty_clear_pane_area
    linkageType: ''
    returnType: void
    signature: void tty_cmd_clearstartofscreen(struct tty *tty, const struct tty_ctx
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tty_default_attributes
      Src: /src/tmux/tty.c:1983,1
    - Dst: tty_region_pane
      Src: /src/tmux/tty.c:1986,1
    - Dst: tty_margin_off
      Src: /src/tmux/tty.c:1987,1
    - Dst: tty_clear_pane_area
      Src: /src/tmux/tty.c:1994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - tty
    - ctx
    argTypes:
    - struct tty*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1995
      start: 1978
    functionDepth: 7
    functionLinenumber: 1978
    functionLinenumberEnd: 1995
    functionName: tty_cmd_clearscreen
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_region_pane
    - tty_default_attributes
    - tty_margin_off
    - tty_clear_pane_area
    linkageType: ''
    returnType: void
    signature: void tty_cmd_clearscreen(struct tty *tty, const struct tty_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct tty_ctx*::redraw_cb
      Src: /src/tmux/tty.c:2005,1
    - Dst: tty_attributes
      Src: /src/tmux/tty.c:2009,1
    - Dst: tty_region_pane
      Src: /src/tmux/tty.c:2012,1
    - Dst: tty_margin_off
      Src: /src/tmux/tty.c:2013,1
    - Dst: tty_cursor_pane
      Src: /src/tmux/tty.c:2016,1
    - Dst: tty_putc
      Src: /src/tmux/tty.c:2018,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - tty
    - ctx
    argTypes:
    - struct tty*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2020
      start: 1997
    functionDepth: 3
    functionLinenumber: 1997
    functionLinenumberEnd: 2020
    functionName: tty_cmd_alignmenttest
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_region_pane
    - struct tty_ctx*::redraw_cb
    - tty_cursor_pane
    - tty_putc
    - tty_attributes
    - tty_margin_off
    linkageType: ''
    returnType: void
    signature: void tty_cmd_alignmenttest(struct tty *tty, const struct tty_ctx *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tty_is_visible
      Src: /src/tmux/tty.c:2032,1
    - Dst: tty_check_overlay
      Src: /src/tmux/tty.c:2033,1
    - Dst: tty_check_overlay_range
      Src: /src/tmux/tty.c:2037,1
    - Dst: tty_draw_line
      Src: /src/tmux/tty.c:2041,1
    - Dst: tty_full_width
      Src: /src/tmux/tty.c:2049,1
    - Dst: tty_region_pane
      Src: /src/tmux/tty.c:2050,1
    - Dst: tty_margin_off
      Src: /src/tmux/tty.c:2052,1
    - Dst: tty_cursor_pane_unless_wrap
      Src: /src/tmux/tty.c:2053,1
    - Dst: tty_cell
      Src: /src/tmux/tty.c:2055,1
    - Dst: tty_invalidate
      Src: /src/tmux/tty.c:2059,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 2
    argNames:
    - tty
    - ctx
    argTypes:
    - struct tty*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2060
      start: 2022
    functionDepth: 2
    functionLinenumber: 2022
    functionLinenumberEnd: 2060
    functionName: tty_cmd_cell
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_region_pane
    - tty_check_overlay_range
    - tty_check_overlay
    - tty_margin_off
    - tty_cursor_pane_unless_wrap
    - tty_invalidate
    - tty_cell
    - tty_full_width
    - tty_is_visible
    - tty_draw_line
    linkageType: ''
    returnType: void
    signature: void tty_cmd_cell(struct tty *tty, const struct tty_ctx *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tty_is_visible
      Src: /src/tmux/tty.c:2071,1
    - Dst: tty_full_width
      Src: /src/tmux/tty.c:2078,1
    - Dst: tty_draw_pane
      Src: /src/tmux/tty.c:2084,1
    - Dst: struct tty_ctx*::redraw_cb
      Src: /src/tmux/tty.c:2086,1
    - Dst: tty_margin_off
      Src: /src/tmux/tty.c:2090,1
    - Dst: tty_cursor_pane_unless_wrap
      Src: /src/tmux/tty.c:2091,1
    - Dst: tty_attributes
      Src: /src/tmux/tty.c:2092,1
    - Dst: tty_check_overlay_range
      Src: /src/tmux/tty.c:2099,1
    - Dst: tty_cursor_pane_unless_wrap
      Src: /src/tmux/tty.c:2104,1
    - Dst: tty_putn
      Src: /src/tmux/tty.c:2105,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 2
    argNames:
    - tty
    - ctx
    argTypes:
    - struct tty*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2108
      start: 2062
    functionDepth: 3
    functionLinenumber: 2062
    functionLinenumberEnd: 2108
    functionName: tty_cmd_cells
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_check_overlay_range
    - struct tty_ctx*::redraw_cb
    - tty_draw_pane
    - tty_putn
    - tty_cursor_pane_unless_wrap
    - tty_attributes
    - tty_full_width
    - tty_is_visible
    - tty_margin_off
    linkageType: ''
    returnType: void
    signature: void tty_cmd_cells(struct tty *tty, const struct tty_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tty_set_selection
      Src: /src/tmux/tty.c:2113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tty
    - ctx
    argTypes:
    - struct tty*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2114
      start: 2110
    functionDepth: 1
    functionLinenumber: 2110
    functionLinenumberEnd: 2114
    functionName: tty_cmd_setselection
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_set_selection
    linkageType: ''
    returnType: void
    signature: void tty_cmd_setselection(struct tty *tty, const struct tty_ctx *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:2125,1
    - Dst: xmalloc
      Src: /src/tmux/tty.c:2129,1
    - Dst: b64_ntop
      Src: /src/tmux/tty.c:2131,1
    - Dst: tty_putcode_ss
      Src: /src/tmux/tty.c:2133,1
    - Dst: free
      Src: /src/tmux/tty.c:2135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - tty
    - clip
    - buf
    - len
    argTypes:
    - struct tty*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2136
      start: 2116
    functionDepth: 2
    functionLinenumber: 2116
    functionLinenumberEnd: 2136
    functionName: tty_set_selection
    functionSourceFile: /src/tmux/tty.c
    functionUses: 1
    functionsReached:
    - tty_term_has
    - xmalloc
    - b64_ntop
    - free
    - tty_putcode_ss
    linkageType: ''
    returnType: void
    signature: "void tty_set_selection(struct tty *tty, const char *clip, const char
      *buf,\n    size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tty_add
      Src: /src/tmux/tty.c:2142,1
    - Dst: tty_invalidate
      Src: /src/tmux/tty.c:2143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tty
    - ctx
    argTypes:
    - struct tty*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2144
      start: 2138
    functionDepth: 2
    functionLinenumber: 2138
    functionLinenumberEnd: 2144
    functionName: tty_cmd_rawstring
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_add
    - tty_invalidate
    linkageType: ''
    returnType: void
    signature: void tty_cmd_rawstring(struct tty *tty, const struct tty_ctx *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:2160,1
    - Dst: sixel_size_in_cells
      Src: /src/tmux/tty.c:2165,1
    - Dst: log_debug
      Src: /src/tmux/tty.c:2166,1
    - Dst: tty_clamp_area
      Src: /src/tmux/tty.c:2167,1
    - Dst: log_debug
      Src: /src/tmux/tty.c:2169,1
    - Dst: xstrdup
      Src: /src/tmux/tty.c:2172,1
    - Dst: strlen
      Src: /src/tmux/tty.c:2173,1
    - Dst: sixel_scale::sixel_scale
      Src: /src/tmux/tty.c:2175,1
    - Dst: sixel_print
      Src: /src/tmux/tty.c:2179,1
    - Dst: si::si
      Src: /src/tmux/tty.c:2179,1
    - Dst: log_debug
      Src: /src/tmux/tty.c:2182,1
    - Dst: tty_region_off
      Src: /src/tmux/tty.c:2183,1
    - Dst: tty_margin_off
      Src: /src/tmux/tty.c:2184,1
    - Dst: tty_cursor
      Src: /src/tmux/tty.c:2185,1
    - Dst: tty_add
      Src: /src/tmux/tty.c:2188,1
    - Dst: tty_invalidate
      Src: /src/tmux/tty.c:2189,1
    - Dst: free
      Src: /src/tmux/tty.c:2190,1
    - Dst: sixel_free
      Src: /src/tmux/tty.c:2194,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - tty
    - ctx
    argTypes:
    - struct tty*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2195
      start: 2147
    functionDepth: 2
    functionLinenumber: 2147
    functionLinenumberEnd: 2195
    functionName: tty_cmd_sixelimage
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_clamp_area
    - tty_term_has
    - tty_region_off
    - sixel_size_in_cells
    - sixel_print
    - tty_margin_off
    - tty_cursor
    - sixel_scale::sixel_scale
    - tty_add
    - free
    - sixel_free
    - tty_invalidate
    - log_debug
    - strlen
    - xstrdup
    - si::si
    linkageType: ''
    returnType: void
    signature: void tty_cmd_sixelimage(struct tty *tty, const struct tty_ctx *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tty_sync_start
      Src: /src/tmux/tty.c:2209,1
    - Dst: tty_sync_start
      Src: /src/tmux/tty.c:2216,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - tty
    - ctx
    argTypes:
    - struct tty*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2218
      start: 2198
    functionDepth: 3
    functionLinenumber: 2198
    functionLinenumberEnd: 2218
    functionName: tty_cmd_syncstart
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_sync_start
    linkageType: ''
    returnType: void
    signature: void tty_cmd_syncstart(struct tty *tty, const struct tty_ctx *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tty_check_overlay
      Src: /src/tmux/tty.c:2238,1
    - Dst: tty_check_codeset
      Src: /src/tmux/tty.c:2242,1
    - Dst: tty_attributes
      Src: /src/tmux/tty.c:2243,1
    - Dst: tty_putc
      Src: /src/tmux/tty.c:2249,1
    - Dst: tty_putn
      Src: /src/tmux/tty.c:2254,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 5
    argNames:
    - tty
    - gc
    - defaults
    - palette
    - hl
    argTypes:
    - struct tty*
    - struct grid_cell*
    - struct grid_cell*
    - struct colour_palette*
    - struct hyperlinks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2255
      start: 2220
    functionDepth: 3
    functionLinenumber: 2220
    functionLinenumberEnd: 2255
    functionName: tty_cell
    functionSourceFile: /src/tmux/tty.c
    functionUses: 1
    functionsReached:
    - tty_check_overlay
    - tty_check_codeset
    - tty_putn
    - tty_putc
    - tty_attributes
    linkageType: ''
    returnType: void
    signature: "void tty_cell(struct tty *tty, const struct grid_cell *gc,\n    const
      struct grid_cell *defaults, struct colour_palette *palette,\n    struct hyperlinks
      *hl)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: grid_cells_equal
      Src: /src/tmux/tty.c:2262,1
    - Dst: tty_putcode_ss
      Src: /src/tmux/tty.c:2264,1
    - Dst: tty_acs_needed
      Src: /src/tmux/tty.c:2265,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:2266,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:2267,1
    - Dst: memcpy
      Src: /src/tmux/tty.c:2268,1
    - Dst: memcpy
      Src: /src/tmux/tty.c:2270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - tty
    argTypes:
    - struct tty*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2271
      start: 2257
    functionDepth: 2
    functionLinenumber: 2257
    functionLinenumberEnd: 2271
    functionName: tty_reset
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - grid_cells_equal
    - tty_acs_needed
    - tty_putcode_ss
    - memcpy
    - tty_putcode
    linkageType: ''
    returnType: void
    signature: void tty_reset(struct tty *tty)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/tty.c:2276,1
    - Dst: memcpy
      Src: /src/tmux/tty.c:2277,1
    - Dst: tty_use_margin
      Src: /src/tmux/tty.c:2284,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:2285,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:2286,1
    - Dst: tty_update_mode
      Src: /src/tmux/tty.c:2289,1
    - Dst: tty_cursor
      Src: /src/tmux/tty.c:2291,1
    - Dst: tty_region_off
      Src: /src/tmux/tty.c:2292,1
    - Dst: tty_margin_off
      Src: /src/tmux/tty.c:2293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - tty
    argTypes:
    - struct tty*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2296
      start: 2273
    functionDepth: 5
    functionLinenumber: 2273
    functionLinenumberEnd: 2296
    functionName: tty_invalidate
    functionSourceFile: /src/tmux/tty.c
    functionUses: 7
    functionsReached:
    - tty_region_off
    - tty_cursor
    - tty_margin_off
    - memcpy
    - tty_putcode
    - tty_use_margin
    - tty_update_mode
    linkageType: ''
    returnType: void
    signature: void tty_invalidate(struct tty *tty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tty_region
      Src: /src/tmux/tty.c:2302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tty
    argTypes:
    - struct tty*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2303
      start: 2299
    functionDepth: 1
    functionLinenumber: 2299
    functionLinenumberEnd: 2303
    functionName: tty_region_off
    functionSourceFile: /src/tmux/tty.c
    functionUses: 2
    functionsReached:
    - tty_region
    linkageType: ''
    returnType: void
    signature: void tty_region_off(struct tty *tty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tty_region
      Src: /src/tmux/tty.c:2310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - tty
    - ctx
    - rupper
    - rlower
    argTypes:
    - struct tty*
    - struct tty_ctx*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2312
      start: 2306
    functionDepth: 1
    functionLinenumber: 2306
    functionLinenumberEnd: 2312
    functionName: tty_region_pane
    functionSourceFile: /src/tmux/tty.c
    functionUses: 11
    functionsReached:
    - tty_region
    linkageType: ''
    returnType: void
    signature: "void tty_region_pane(struct tty *tty, const struct tty_ctx *ctx, u_int
      rupper,\n    u_int rlower)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:2320,1
    - Dst: tty_cursor
      Src: /src/tmux/tty.c:2334,1
    - Dst: tty_cursor
      Src: /src/tmux/tty.c:2336,1
    - Dst: tty_putcode_ii
      Src: /src/tmux/tty.c:2339,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - tty
    - rupper
    - rlower
    argTypes:
    - struct tty*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2341
      start: 2315
    functionDepth: 2
    functionLinenumber: 2315
    functionLinenumberEnd: 2341
    functionName: tty_region
    functionSourceFile: /src/tmux/tty.c
    functionUses: 3
    functionsReached:
    - tty_term_has
    - tty_cursor
    - tty_putcode_ii
    linkageType: ''
    returnType: void
    signature: void tty_region(struct tty *tty, u_int rupper, u_int rlower)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tty_margin
      Src: /src/tmux/tty.c:2347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tty
    argTypes:
    - struct tty*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2348
      start: 2344
    functionDepth: 1
    functionLinenumber: 2344
    functionLinenumberEnd: 2348
    functionName: tty_margin_off
    functionSourceFile: /src/tmux/tty.c
    functionUses: 11
    functionsReached:
    - tty_margin
    linkageType: ''
    returnType: void
    signature: void tty_margin_off(struct tty *tty)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tty_margin
      Src: /src/tmux/tty.c:2368,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - tty
    - ctx
    argTypes:
    - struct tty*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2369
      start: 2351
    functionDepth: 1
    functionLinenumber: 2351
    functionLinenumberEnd: 2369
    functionName: tty_margin_pane
    functionSourceFile: /src/tmux/tty.c
    functionUses: 4
    functionsReached:
    - tty_margin
    linkageType: ''
    returnType: void
    signature: void tty_margin_pane(struct tty *tty, const struct tty_ctx *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tty_use_margin
      Src: /src/tmux/tty.c:2375,1
    - Dst: tty_putcode_ii
      Src: /src/tmux/tty.c:2380,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:2386,1
    - Dst: tty_putcode_ii
      Src: /src/tmux/tty.c:2388,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - tty
    - rleft
    - rright
    argTypes:
    - struct tty*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2390
      start: 2372
    functionDepth: 2
    functionLinenumber: 2372
    functionLinenumberEnd: 2390
    functionName: tty_margin
    functionSourceFile: /src/tmux/tty.c
    functionUses: 3
    functionsReached:
    - tty_use_margin
    - tty_putcode
    - tty_putcode_ii
    linkageType: ''
    returnType: void
    signature: void tty_margin(struct tty *tty, u_int rleft, u_int rright)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_full_width
      Src: /src/tmux/tty.c:2401,1
    - Dst: tty_cursor_pane
      Src: /src/tmux/tty.c:2407,1
    - Dst: log_debug
      Src: /src/tmux/tty.c:2409,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 4
    argNames:
    - tty
    - ctx
    - cx
    - cy
    argTypes:
    - struct tty*
    - struct tty_ctx*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2410
      start: 2396
    functionDepth: 1
    functionLinenumber: 2396
    functionLinenumberEnd: 2410
    functionName: tty_cursor_pane_unless_wrap
    functionSourceFile: /src/tmux/tty.c
    functionUses: 2
    functionsReached:
    - log_debug
    - tty_full_width
    - tty_cursor_pane
    linkageType: ''
    returnType: void
    signature: "void tty_cursor_pane_unless_wrap(struct tty *tty, const struct tty_ctx
      *ctx,\n    u_int cx, u_int cy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tty_cursor
      Src: /src/tmux/tty.c:2416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - tty
    - ctx
    - cx
    - cy
    argTypes:
    - struct tty*
    - struct tty_ctx*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2417
      start: 2413
    functionDepth: 1
    functionLinenumber: 2413
    functionLinenumberEnd: 2417
    functionName: tty_cursor_pane
    functionSourceFile: /src/tmux/tty.c
    functionUses: 9
    functionsReached:
    - tty_cursor
    linkageType: ''
    returnType: void
    signature: void tty_cursor_pane(struct tty *tty, const struct tty_ctx *ctx, u_int
      cx, u_int cy)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/tty.c:2440,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:2453,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:2454,1
    - Dst: tty_use_margin
      Src: /src/tmux/tty.c:2460,1
    - Dst: tty_putc
      Src: /src/tmux/tty.c:2461,1
    - Dst: tty_putc
      Src: /src/tmux/tty.c:2462,1
    - Dst: tty_use_margin
      Src: /src/tmux/tty.c:2473,1
    - Dst: tty_putc
      Src: /src/tmux/tty.c:2474,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:2479,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:2480,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:2485,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:2486,1
    - Dst: abs
      Src: /src/tmux/tty.c:2497,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:2497,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:2498,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:2501,1
    - Dst: tty_use_margin
      Src: /src/tmux/tty.c:2502,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:2503,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:2504,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:2505,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:2508,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:2511,1
    - Dst: tty_use_margin
      Src: /src/tmux/tty.c:2512,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:2513,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:2523,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:2524,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:2530,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:2531,1
    - Dst: abs
      Src: /src/tmux/tty.c:2542,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:2545,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:2546,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:2549,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:2550,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:2552,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:2553,1
    - Dst: tty_putcode_ii
      Src: /src/tmux/tty.c:2560,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 103
    argCount: 3
    argNames:
    - tty
    - cx
    - cy
    argTypes:
    - struct tty*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2565
      start: 2420
    functionDepth: 3
    functionLinenumber: 2420
    functionLinenumberEnd: 2565
    functionName: tty_cursor
    functionSourceFile: /src/tmux/tty.c
    functionUses: 8
    functionsReached:
    - tty_term_has
    - tty_putcode_ii
    - tty_putc
    - tty_use_margin
    - tty_putcode
    - abs
    - log_debug
    - tty_putcode_i
    linkageType: ''
    returnType: void
    signature: void tty_cursor(struct tty *tty, u_int cx, u_int cy)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hyperlinks_get
      Src: /src/tmux/tty.c:2580,1
    - Dst: tty_putcode_ss
      Src: /src/tmux/tty.c:2581,1
    - Dst: tty_putcode_ss
      Src: /src/tmux/tty.c:2583,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - tty
    - gc
    - hl
    argTypes:
    - struct tty*
    - struct grid_cell*
    - struct hyperlinks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2584
      start: 2567
    functionDepth: 2
    functionLinenumber: 2567
    functionLinenumberEnd: 2584
    functionName: tty_hyperlink
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_putcode_ss
    - hyperlinks_get
    linkageType: ''
    returnType: void
    signature: "void tty_hyperlink(struct tty *tty, const struct grid_cell *gc,\n
      \   struct hyperlinks *hl)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/tty.c:2595,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:2616,1
    - Dst: COLOUR_DEFAULT
      Src: /src/tmux/tty.c:2618,1
    - Dst: COLOUR_DEFAULT
      Src: /src/tmux/tty.c:2621,1
    - Dst: tty_check_fg
      Src: /src/tmux/tty.c:2627,1
    - Dst: tty_check_bg
      Src: /src/tmux/tty.c:2628,1
    - Dst: tty_check_us
      Src: /src/tmux/tty.c:2629,1
    - Dst: tty_reset
      Src: /src/tmux/tty.c:2636,1
    - Dst: tty_colours
      Src: /src/tmux/tty.c:2642,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:2650,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:2652,1
    - Dst: tty_set_italics
      Src: /src/tmux/tty.c:2654,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:2657,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:2659,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:2661,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:2663,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:2665,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:2668,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:2670,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:2671,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:2672,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:2673,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:2676,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:2678,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:2680,1
    - Dst: tty_acs_needed
      Src: /src/tmux/tty.c:2681,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:2682,1
    - Dst: tty_hyperlink
      Src: /src/tmux/tty.c:2685,1
    - Dst: memcpy
      Src: /src/tmux/tty.c:2687,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 63
    argCount: 5
    argNames:
    - tty
    - gc
    - defaults
    - palette
    - hl
    argTypes:
    - struct tty*
    - struct grid_cell*
    - struct grid_cell*
    - struct colour_palette*
    - struct hyperlinks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2688
      start: 2586
    functionDepth: 3
    functionLinenumber: 2586
    functionLinenumberEnd: 2688
    functionName: tty_attributes
    functionSourceFile: /src/tmux/tty.c
    functionUses: 3
    functionsReached:
    - COLOUR_DEFAULT
    - tty_term_has
    - tty_colours
    - tty_check_bg
    - tty_set_italics
    - tty_check_us
    - tty_check_fg
    - tty_reset
    - tty_acs_needed
    - memcpy
    - tty_putcode
    - tty_putcode_i
    - tty_hyperlink
    linkageType: ''
    returnType: void
    signature: "void tty_attributes(struct tty *tty, const struct grid_cell *gc,\n
      \   const struct grid_cell *defaults, struct colour_palette *palette,\n    struct
      hyperlinks *hl)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: COLOUR_DEFAULT
      Src: /src/tmux/tty.c:2705,1
    - Dst: COLOUR_DEFAULT
      Src: /src/tmux/tty.c:2705,1
    - Dst: tty_term_flag
      Src: /src/tmux/tty.c:2710,1
    - Dst: tty_reset
      Src: /src/tmux/tty.c:2711,1
    - Dst: COLOUR_DEFAULT
      Src: /src/tmux/tty.c:2713,1
    - Dst: COLOUR_DEFAULT
      Src: /src/tmux/tty.c:2713,1
    - Dst: tty_puts
      Src: /src/tmux/tty.c:2714,1
    - Dst: COLOUR_DEFAULT
      Src: /src/tmux/tty.c:2717,1
    - Dst: COLOUR_DEFAULT
      Src: /src/tmux/tty.c:2717,1
    - Dst: tty_puts
      Src: /src/tmux/tty.c:2718,1
    - Dst: COLOUR_DEFAULT
      Src: /src/tmux/tty.c:2725,1
    - Dst: tty_colours_fg
      Src: /src/tmux/tty.c:2726,1
    - Dst: COLOUR_DEFAULT
      Src: /src/tmux/tty.c:2732,1
    - Dst: tty_colours_bg
      Src: /src/tmux/tty.c:2733,1
    - Dst: tty_colours_us
      Src: /src/tmux/tty.c:2737,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 22
    argCount: 2
    argNames:
    - tty
    - gc
    argTypes:
    - struct tty*
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2738
      start: 2690
    functionDepth: 3
    functionLinenumber: 2690
    functionLinenumberEnd: 2738
    functionName: tty_colours
    functionSourceFile: /src/tmux/tty.c
    functionUses: 1
    functionsReached:
    - tty_term_flag
    - tty_colours_fg
    - tty_colours_us
    - COLOUR_DEFAULT
    - tty_puts
    - tty_colours_bg
    - tty_reset
    linkageType: ''
    returnType: void
    signature: void tty_colours(struct tty *tty, const struct grid_cell *gc)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:2757,1
    - Dst: colour_palette_get
      Src: /src/tmux/tty.c:2759,1
    - Dst: colour_split_rgb
      Src: /src/tmux/tty.c:2768,1
    - Dst: colour_find_rgb
      Src: /src/tmux/tty.c:2769,1
    - Dst: tty_term_number
      Src: /src/tmux/tty.c:2776,1
    - Dst: colour_256to16
      Src: /src/tmux/tty.c:2783,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 37
    argCount: 3
    argNames:
    - tty
    - palette
    - gc
    argTypes:
    - struct tty*
    - struct colour_palette*
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2807
      start: 2740
    functionDepth: 1
    functionLinenumber: 2740
    functionLinenumberEnd: 2807
    functionName: tty_check_fg
    functionSourceFile: /src/tmux/tty.c
    functionUses: 1
    functionsReached:
    - tty_term_has
    - colour_find_rgb
    - colour_256to16
    - colour_split_rgb
    - colour_palette_get
    - tty_term_number
    linkageType: ''
    returnType: void
    signature: "void tty_check_fg(struct tty *tty, struct colour_palette *palette,\n
      \   struct grid_cell *gc)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: colour_palette_get
      Src: /src/tmux/tty.c:2819,1
    - Dst: colour_split_rgb
      Src: /src/tmux/tty.c:2828,1
    - Dst: colour_find_rgb
      Src: /src/tmux/tty.c:2829,1
    - Dst: tty_term_number
      Src: /src/tmux/tty.c:2836,1
    - Dst: colour_256to16
      Src: /src/tmux/tty.c:2847,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 3
    argNames:
    - tty
    - palette
    - gc
    argTypes:
    - struct tty*
    - struct colour_palette*
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2859
      start: 2809
    functionDepth: 1
    functionLinenumber: 2809
    functionLinenumberEnd: 2859
    functionName: tty_check_bg
    functionSourceFile: /src/tmux/tty.c
    functionUses: 1
    functionsReached:
    - colour_find_rgb
    - colour_256to16
    - colour_split_rgb
    - colour_palette_get
    - tty_term_number
    linkageType: ''
    returnType: void
    signature: "void tty_check_bg(struct tty *tty, struct colour_palette *palette,\n
      \   struct grid_cell *gc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: colour_palette_get
      Src: /src/tmux/tty.c:2869,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:2874,1
    - Dst: colour_force_rgb
      Src: /src/tmux/tty.c:2875,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - tty
    - palette
    - gc
    argTypes:
    - __unused*
    - struct colour_palette*
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2880
      start: 2861
    functionDepth: 1
    functionLinenumber: 2861
    functionLinenumberEnd: 2880
    functionName: tty_check_us
    functionSourceFile: /src/tmux/tty.c
    functionUses: 1
    functionsReached:
    - colour_palette_get
    - tty_term_has
    - colour_force_rgb
    linkageType: ''
    returnType: void
    signature: "void tty_check_us(__unused struct tty *tty, struct colour_palette
      *palette,\n    struct grid_cell *gc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tty_reset
      Src: /src/tmux/tty.c:2895,1
    - Dst: tty_try_colour
      Src: /src/tmux/tty.c:2899,1
    - Dst: xsnprintf
      Src: /src/tmux/tty.c:2908,1
    - Dst: tty_puts
      Src: /src/tmux/tty.c:2909,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:2911,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:2916,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 2
    argNames:
    - tty
    - gc
    argTypes:
    - struct tty*
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2921
      start: 2882
    functionDepth: 3
    functionLinenumber: 2882
    functionLinenumberEnd: 2921
    functionName: tty_colours_fg
    functionSourceFile: /src/tmux/tty.c
    functionUses: 1
    functionsReached:
    - tty_puts
    - tty_reset
    - xsnprintf
    - tty_try_colour
    - tty_putcode_i
    linkageType: ''
    returnType: void
    signature: void tty_colours_fg(struct tty *tty, const struct grid_cell *gc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tty_try_colour
      Src: /src/tmux/tty.c:2931,1
    - Dst: xsnprintf
      Src: /src/tmux/tty.c:2940,1
    - Dst: tty_puts
      Src: /src/tmux/tty.c:2941,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:2943,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:2948,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - tty
    - gc
    argTypes:
    - struct tty*
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2953
      start: 2923
    functionDepth: 3
    functionLinenumber: 2923
    functionLinenumberEnd: 2953
    functionName: tty_colours_bg
    functionSourceFile: /src/tmux/tty.c
    functionUses: 1
    functionsReached:
    - tty_puts
    - tty_putcode_i
    - xsnprintf
    - tty_try_colour
    linkageType: ''
    returnType: void
    signature: void tty_colours_bg(struct tty *tty, const struct grid_cell *gc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: COLOUR_DEFAULT
      Src: /src/tmux/tty.c:2963,1
    - Dst: tty_putcode
      Src: /src/tmux/tty.c:2964,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:2976,1
    - Dst: colour_split_rgb
      Src: /src/tmux/tty.c:2984,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:2991,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:2992,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:2993,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:2994,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:2995,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - tty
    - gc
    argTypes:
    - struct tty*
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3000
      start: 2955
    functionDepth: 2
    functionLinenumber: 2955
    functionLinenumberEnd: 3000
    functionName: tty_colours_us
    functionSourceFile: /src/tmux/tty.c
    functionUses: 1
    functionsReached:
    - COLOUR_DEFAULT
    - tty_term_has
    - colour_split_rgb
    - tty_putcode
    - tty_putcode_i
    linkageType: ''
    returnType: void
    signature: void tty_colours_us(struct tty *tty, const struct grid_cell *gc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:3008,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:3009,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:3010,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty.c:3011,1
    - Dst: colour_split_rgb
      Src: /src/tmux/tty.c:3016,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:3017,1
    - Dst: tty_putcode_iii
      Src: /src/tmux/tty.c:3018,1
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:3019,1
    - Dst: tty_putcode_iii
      Src: /src/tmux/tty.c:3020,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - tty
    - colour
    - type
    argTypes:
    - struct tty*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3025
      start: 3002
    functionDepth: 2
    functionLinenumber: 3002
    functionLinenumberEnd: 3025
    functionName: tty_try_colour
    functionSourceFile: /src/tmux/tty.c
    functionUses: 2
    functionsReached:
    - tty_putcode_i
    - tty_term_has
    - tty_putcode_iii
    - colour_split_rgb
    linkageType: ''
    returnType: int
    signature: int tty_try_colour(struct tty *tty, int colour, const char *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/tty.c:3030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - gc
    - wp
    argTypes:
    - struct grid_cell*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3033
      start: 3027
    functionDepth: 0
    functionLinenumber: 3027
    functionLinenumberEnd: 3033
    functionName: tty_window_default_style
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void tty_window_default_style(struct grid_cell *gc, struct window_pane
      *wp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/tty.c:3041,1
    - Dst: format_create
      Src: /src/tmux/tty.c:3044,1
    - Dst: format_defaults
      Src: /src/tmux/tty.c:3045,1
    - Dst: tty_window_default_style
      Src: /src/tmux/tty.c:3047,1
    - Dst: style_add
      Src: /src/tmux/tty.c:3048,1
    - Dst: tty_window_default_style
      Src: /src/tmux/tty.c:3050,1
    - Dst: style_add
      Src: /src/tmux/tty.c:3051,1
    - Dst: format_free
      Src: /src/tmux/tty.c:3053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3054
      start: 3035
    functionDepth: 1
    functionLinenumber: 3035
    functionLinenumberEnd: 3054
    functionName: tty_style_changed
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_window_default_style
    - format_free
    - format_defaults
    - style_add
    - format_create
    - log_debug
    linkageType: ''
    returnType: void
    signature: void tty_style_changed(struct window_pane *wp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tty_style_changed
      Src: /src/tmux/tty.c:3060,1
    - Dst: memcpy
      Src: /src/tmux/tty.c:3062,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - gc
    - wp
    argTypes:
    - struct grid_cell*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3071
      start: 3056
    functionDepth: 2
    functionLinenumber: 3056
    functionLinenumberEnd: 3071
    functionName: tty_default_colours
    functionSourceFile: /src/tmux/tty.c
    functionUses: 1
    functionsReached:
    - tty_style_changed
    - memcpy
    linkageType: ''
    returnType: void
    signature: void tty_default_colours(struct grid_cell *gc, struct window_pane *wp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/tty.c:3079,1
    - Dst: tty_attributes
      Src: /src/tmux/tty.c:3081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - tty
    - defaults
    - palette
    - bg
    - hl
    argTypes:
    - struct tty*
    - struct grid_cell*
    - struct colour_palette*
    - u_int
    - struct hyperlinks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3082
      start: 3073
    functionDepth: 4
    functionLinenumber: 3073
    functionLinenumberEnd: 3082
    functionName: tty_default_attributes
    functionSourceFile: /src/tmux/tty.c
    functionUses: 15
    functionsReached:
    - memcpy
    - tty_attributes
    linkageType: ''
    returnType: void
    signature: "void tty_default_attributes(struct tty *tty, const struct grid_cell
      *defaults,\n    struct colour_palette *palette, u_int bg, struct hyperlinks
      *hl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - int
    - events
    - data
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3090
      start: 3084
    functionDepth: 0
    functionLinenumber: 3084
    functionLinenumberEnd: 3090
    functionName: tty_clipboard_query_callback
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tty_clipboard_query_callback(__unused int fd, __unused short events,
      void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_putcode_ss
      Src: /src/tmux/tty.c:3098,1
    - Dst: evtimer_add
      Src: /src/tmux/tty.c:3100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - tty
    argTypes:
    - struct tty*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3102
      start: 3092
    functionDepth: 2
    functionLinenumber: 3092
    functionLinenumberEnd: 3102
    functionName: tty_clipboard_query
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - evtimer_add
    - tty_putcode_ss
    linkageType: ''
    returnType: void
    signature: void tty_clipboard_query(struct tty *tty)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_term_has
      Src: /src/tmux/tty.c:3107,1
    - Dst: tty_putcode_ii
      Src: /src/tmux/tty.c:3108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - tty
    - pb
    argTypes:
    - struct tty*
    - struct progress_bar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3109
      start: 3104
    functionDepth: 2
    functionLinenumber: 3104
    functionLinenumberEnd: 3109
    functionName: tty_set_progress_bar
    functionSourceFile: /src/tmux/tty.c
    functionUses: 0
    functionsReached:
    - tty_term_has
    - tty_putcode_ii
    linkageType: ''
    returnType: void
    signature: void tty_set_progress_bar(struct tty *tty, struct progress_bar *pb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/alerts.c:47,1
    - Dst: alerts_queue
      Src: /src/tmux/alerts.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - int
    - events
    - arg
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: alerts_timer
    functionSourceFile: /src/tmux/alerts.c
    functionUses: 0
    functionsReached:
    - log_debug
    - alerts_queue
    linkageType: ''
    returnType: void
    signature: void alerts_timer(__unused int fd, __unused short events, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/alerts.c:57,1
    - Dst: alerts_check_all
      Src: /src/tmux/alerts.c:58,1
    - Dst: log_debug
      Src: /src/tmux/alerts.c:59,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/alerts.c:62,1
    - Dst: window_remove_ref
      Src: /src/tmux/alerts.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - int
    - events
    - arg
    argTypes:
    - __unused
    - __unused short
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 68
    functionName: alerts_callback
    functionSourceFile: /src/tmux/alerts.c
    functionUses: 0
    functionsReached:
    - window_remove_ref
    - TAILQ_FOREACH_SAFE
    - alerts_check_all
    - log_debug
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void alerts_callback(__unused int fd, __unused short events, __unused
      void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/alerts.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - wl
    - name
    argTypes:
    - struct winlink*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 89
    functionName: alerts_action_applies
    functionSourceFile: /src/tmux/alerts.c
    functionUses: 0
    functionsReached:
    - options_get_number
    linkageType: ''
    returnType: int
    signature: int alerts_action_applies(struct winlink *wl, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alerts_check_bell
      Src: /src/tmux/alerts.c:96,1
    - Dst: alerts_check_activity
      Src: /src/tmux/alerts.c:97,1
    - Dst: alerts_check_silence
      Src: /src/tmux/alerts.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: alerts_check_all
    functionSourceFile: /src/tmux/alerts.c
    functionUses: 1
    functionsReached:
    - alerts_check_silence
    - alerts_check_bell
    - alerts_check_activity
    linkageType: ''
    returnType: int
    signature: int alerts_check_all(struct window *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/alerts.c:107,1
    - Dst: alerts_check_all
      Src: /src/tmux/alerts.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: alerts_check_session
    functionSourceFile: /src/tmux/alerts.c
    functionUses: 0
    functionsReached:
    - RB_FOREACH
    - alerts_check_all
    linkageType: ''
    returnType: void
    signature: void alerts_check_session(struct session *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/alerts.c:115,1
    - Dst: options_get_number
      Src: /src/tmux/alerts.c:119,1
    - Dst: options_get_number
      Src: /src/tmux/alerts.c:123,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - w
    - flags
    argTypes:
    - struct window*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 127
    functionName: alerts_enabled
    functionSourceFile: /src/tmux/alerts.c
    functionUses: 0
    functionsReached:
    - options_get_number
    linkageType: ''
    returnType: int
    signature: int alerts_enabled(struct window *w, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/alerts.c:134,1
    - Dst: alerts_reset
      Src: /src/tmux/alerts.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: alerts_reset_all
    functionSourceFile: /src/tmux/alerts.c
    functionUses: 0
    functionsReached:
    - alerts_reset
    - RB_FOREACH
    linkageType: ''
    returnType: void
    signature: void alerts_reset_all(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_initialized
      Src: /src/tmux/alerts.c:143,1
    - Dst: evtimer_set
      Src: /src/tmux/alerts.c:144,1
    - Dst: event_del
      Src: /src/tmux/alerts.c:147,1
    - Dst: timerclear
      Src: /src/tmux/alerts.c:149,1
    - Dst: options_get_number
      Src: /src/tmux/alerts.c:150,1
    - Dst: log_debug
      Src: /src/tmux/alerts.c:152,1
    - Dst: event_add
      Src: /src/tmux/alerts.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 155
    functionName: alerts_reset
    functionSourceFile: /src/tmux/alerts.c
    functionUses: 1
    functionsReached:
    - event_del
    - log_debug
    - timerclear
    - event_add
    - evtimer_set
    - options_get_number
    - event_initialized
    linkageType: ''
    returnType: void
    signature: void alerts_reset(struct window *w)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: alerts_reset
      Src: /src/tmux/alerts.c:160,1
    - Dst: log_debug
      Src: /src/tmux/alerts.c:164,1
    - Dst: alerts_enabled
      Src: /src/tmux/alerts.c:167,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/alerts.c:170,1
    - Dst: window_add_ref
      Src: /src/tmux/alerts.c:171,1
    - Dst: log_debug
      Src: /src/tmux/alerts.c:175,1
    - Dst: event_once
      Src: /src/tmux/alerts.c:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - w
    - flags
    argTypes:
    - struct window*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 180
    functionName: alerts_queue
    functionSourceFile: /src/tmux/alerts.c
    functionUses: 2
    functionsReached:
    - log_debug
    - alerts_enabled
    - window_add_ref
    - alerts_reset
    - event_once
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: void
    signature: void alerts_queue(struct window *w, int flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/alerts.c:190,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/alerts.c:193,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/alerts.c:196,1
    - Dst: server_status_session
      Src: /src/tmux/alerts.c:204,1
    - Dst: alerts_action_applies
      Src: /src/tmux/alerts.c:206,1
    - Dst: notify_winlink
      Src: /src/tmux/alerts.c:208,1
    - Dst: alerts_set_message
      Src: /src/tmux/alerts.c:214,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 218
    functionName: alerts_check_bell
    functionSourceFile: /src/tmux/alerts.c
    functionUses: 1
    functionsReached:
    - notify_winlink
    - alerts_action_applies
    - TAILQ_FOREACH
    - server_status_session
    - options_get_number
    - alerts_set_message
    linkageType: ''
    returnType: int
    signature: int alerts_check_bell(struct window *w)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/alerts.c:228,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/alerts.c:231,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/alerts.c:234,1
    - Dst: server_status_session
      Src: /src/tmux/alerts.c:240,1
    - Dst: alerts_action_applies
      Src: /src/tmux/alerts.c:242,1
    - Dst: notify_winlink
      Src: /src/tmux/alerts.c:244,1
    - Dst: alerts_set_message
      Src: /src/tmux/alerts.c:250,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 254
    functionName: alerts_check_activity
    functionSourceFile: /src/tmux/alerts.c
    functionUses: 1
    functionsReached:
    - notify_winlink
    - alerts_action_applies
    - TAILQ_FOREACH
    - server_status_session
    - options_get_number
    - alerts_set_message
    linkageType: ''
    returnType: int
    signature: int alerts_check_activity(struct window *w)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/alerts.c:264,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/alerts.c:267,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/alerts.c:270,1
    - Dst: server_status_session
      Src: /src/tmux/alerts.c:276,1
    - Dst: alerts_action_applies
      Src: /src/tmux/alerts.c:278,1
    - Dst: notify_winlink
      Src: /src/tmux/alerts.c:280,1
    - Dst: alerts_set_message
      Src: /src/tmux/alerts.c:286,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 290
    functionName: alerts_check_silence
    functionSourceFile: /src/tmux/alerts.c
    functionUses: 1
    functionsReached:
    - notify_winlink
    - alerts_action_applies
    - TAILQ_FOREACH
    - server_status_session
    - options_get_number
    - alerts_set_message
    linkageType: ''
    returnType: int
    signature: int alerts_check_silence(struct window *w)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/alerts.c:308,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/alerts.c:309,1
    - Dst: tty_putcode
      Src: /src/tmux/alerts.c:314,1
    - Dst: status_message_set
      Src: /src/tmux/alerts.c:318,1
    - Dst: status_message_set
      Src: /src/tmux/alerts.c:321,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - wl
    - type
    - option
    argTypes:
    - struct winlink*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 325
    functionName: alerts_set_message
    functionSourceFile: /src/tmux/alerts.c
    functionUses: 3
    functionsReached:
    - status_message_set
    - options_get_number
    - tty_putcode
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void alerts_set_message(struct winlink *wl, const char *type, const
      char *option)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-rotate-window.c:46,1
    - Dst: cmdq_get_current
      Src: /src/tmux/cmd-rotate-window.c:47,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-rotate-window.c:48,1
    - Dst: window_push_zoom
      Src: /src/tmux/cmd-rotate-window.c:55,1
    - Dst: args_has
      Src: /src/tmux/cmd-rotate-window.c:55,1
    - Dst: args_has
      Src: /src/tmux/cmd-rotate-window.c:57,1
    - Dst: TAILQ_LAST
      Src: /src/tmux/cmd-rotate-window.c:58,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/cmd-rotate-window.c:59,1
    - Dst: TAILQ_INSERT_HEAD
      Src: /src/tmux/cmd-rotate-window.c:60,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/cmd-rotate-window.c:65,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/cmd-rotate-window.c:66,1
    - Dst: window_pane_resize
      Src: /src/tmux/cmd-rotate-window.c:72,1
    - Dst: window_pane_resize
      Src: /src/tmux/cmd-rotate-window.c:78,1
    - Dst: TAILQ_PREV
      Src: /src/tmux/cmd-rotate-window.c:80,1
    - Dst: TAILQ_LAST
      Src: /src/tmux/cmd-rotate-window.c:81,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/cmd-rotate-window.c:83,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/cmd-rotate-window.c:84,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/cmd-rotate-window.c:85,1
    - Dst: TAILQ_FOREACH_REVERSE
      Src: /src/tmux/cmd-rotate-window.c:90,1
    - Dst: TAILQ_PREV
      Src: /src/tmux/cmd-rotate-window.c:91,1
    - Dst: window_pane_resize
      Src: /src/tmux/cmd-rotate-window.c:97,1
    - Dst: window_pane_resize
      Src: /src/tmux/cmd-rotate-window.c:103,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/cmd-rotate-window.c:105,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/cmd-rotate-window.c:106,1
    - Dst: window_set_active_pane
      Src: /src/tmux/cmd-rotate-window.c:109,1
    - Dst: cmd_find_from_winlink_pane
      Src: /src/tmux/cmd-rotate-window.c:110,1
    - Dst: window_pop_zoom
      Src: /src/tmux/cmd-rotate-window.c:111,1
    - Dst: server_redraw_window
      Src: /src/tmux/cmd-rotate-window.c:112,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 62
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 43
    functionDepth: 5
    functionLinenumber: 43
    functionLinenumberEnd: 115
    functionName: cmd_rotate_window_exec
    functionSourceFile: /src/tmux/cmd-rotate-window.c
    functionUses: 0
    functionsReached:
    - TAILQ_INSERT_HEAD
    - TAILQ_PREV
    - server_redraw_window
    - args_has
    - cmdq_get_current
    - window_push_zoom
    - window_pane_resize
    - window_pop_zoom
    - TAILQ_INSERT_TAIL
    - cmd_get_args
    - TAILQ_FIRST
    - TAILQ_FOREACH_REVERSE
    - TAILQ_NEXT
    - cmd_find_from_winlink_pane
    - TAILQ_LAST
    - cmdq_get_target
    - TAILQ_REMOVE
    - TAILQ_FOREACH
    - window_set_active_pane
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_rotate_window_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nitems
      Src: /src/tmux/layout-set.c:58,1
    - Dst: strcmp
      Src: /src/tmux/layout-set.c:59,1
    - Dst: nitems
      Src: /src/tmux/layout-set.c:62,1
    - Dst: strncmp
      Src: /src/tmux/layout-set.c:63,1
    - Dst: strlen
      Src: /src/tmux/layout-set.c:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 71
    functionName: layout_set_lookup
    functionSourceFile: /src/tmux/layout-set.c
    functionUses: 0
    functionsReached:
    - strlen
    - nitems
    - strncmp
    - strcmp
    linkageType: ''
    returnType: int
    signature: int layout_set_lookup(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nitems
      Src: /src/tmux/layout-set.c:76,1
    - Dst: nitems
      Src: /src/tmux/layout-set.c:77,1
    - Dst: arrange
      Src: /src/tmux/layout-set.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - w
    - layout
    argTypes:
    - struct window*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 84
    functionName: layout_set_select
    functionSourceFile: /src/tmux/layout-set.c
    functionUses: 0
    functionsReached:
    - arrange
    - nitems
    linkageType: ''
    returnType: u_int
    signature: u_int layout_set_select(struct window *w, u_int layout)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nitems
      Src: /src/tmux/layout-set.c:95,1
    - Dst: arrange
      Src: /src/tmux/layout-set.c:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 103
    functionName: layout_set_next
    functionSourceFile: /src/tmux/layout-set.c
    functionUses: 0
    functionsReached:
    - arrange
    - nitems
    linkageType: ''
    returnType: u_int
    signature: u_int layout_set_next(struct window *w)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nitems
      Src: /src/tmux/layout-set.c:111,1
    - Dst: nitems
      Src: /src/tmux/layout-set.c:115,1
    - Dst: arrange
      Src: /src/tmux/layout-set.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 124
    functionName: layout_set_previous
    functionSourceFile: /src/tmux/layout-set.c
    functionUses: 0
    functionsReached:
    - arrange
    - nitems
    linkageType: ''
    returnType: u_int
    signature: u_int layout_set_previous(struct window *w)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout-set.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 136
    functionName: layout_first_tiled
    functionSourceFile: /src/tmux/layout-set.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH
    linkageType: ''
    returnType: struct window_pane
    signature: 'struct window_pane *

      layout_first_tiled(struct window *w)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: layout_print_cell
      Src: /src/tmux/layout-set.c:145,1
    - Dst: window_count_panes
      Src: /src/tmux/layout-set.c:148,1
    - Dst: layout_free
      Src: /src/tmux/layout-set.c:153,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout-set.c:154,1
    - Dst: layout_set_size
      Src: /src/tmux/layout-set.c:166,1
    - Dst: layout_make_node
      Src: /src/tmux/layout-set.c:167,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout-set.c:170,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout-set.c:173,1
    - Dst: layout_make_leaf
      Src: /src/tmux/layout-set.c:174,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/layout-set.c:177,1
    - Dst: layout_spread_cell
      Src: /src/tmux/layout-set.c:181,1
    - Dst: layout_fix_offsets
      Src: /src/tmux/layout-set.c:184,1
    - Dst: layout_fix_panes
      Src: /src/tmux/layout-set.c:185,1
    - Dst: layout_print_cell
      Src: /src/tmux/layout-set.c:187,1
    - Dst: window_resize
      Src: /src/tmux/layout-set.c:189,1
    - Dst: notify_window
      Src: /src/tmux/layout-set.c:190,1
    - Dst: server_redraw_window
      Src: /src/tmux/layout-set.c:191,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 2
    argNames:
    - w
    - type
    argTypes:
    - struct window*
    - enum layout_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 138
    functionDepth: 5
    functionLinenumber: 138
    functionLinenumberEnd: 192
    functionName: layout_set_even
    functionSourceFile: /src/tmux/layout-set.c
    functionUses: 0
    functionsReached:
    - layout_fix_panes
    - layout_print_cell
    - layout_spread_cell
    - TAILQ_FOREACH
    - notify_window
    - layout_set_size
    - layout_fix_offsets
    - window_count_panes
    - window_resize
    - server_redraw_window
    - layout_make_leaf
    - layout_create_cell
    - layout_make_node
    - TAILQ_INSERT_TAIL
    - layout_free
    linkageType: ''
    returnType: void
    signature: void layout_set_even(struct window *w, enum layout_type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: layout_set_even
      Src: /src/tmux/layout-set.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 6
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: layout_set_even_h
    functionSourceFile: /src/tmux/layout-set.c
    functionUses: 0
    functionsReached:
    - layout_set_even
    linkageType: ''
    returnType: void
    signature: void layout_set_even_h(struct window *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: layout_set_even
      Src: /src/tmux/layout-set.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 200
    functionDepth: 6
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: layout_set_even_v
    functionSourceFile: /src/tmux/layout-set.c
    functionUses: 0
    functionsReached:
    - layout_set_even
    linkageType: ''
    returnType: void
    signature: void layout_set_even_v(struct window *w)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: layout_print_cell
      Src: /src/tmux/layout-set.c:215,1
    - Dst: window_count_panes
      Src: /src/tmux/layout-set.c:218,1
    - Dst: options_get_string
      Src: /src/tmux/layout-set.c:227,1
    - Dst: args_string_percentage
      Src: /src/tmux/layout-set.c:228,1
    - Dst: free
      Src: /src/tmux/layout-set.c:231,1
    - Dst: options_get_string
      Src: /src/tmux/layout-set.c:242,1
    - Dst: args_string_percentage
      Src: /src/tmux/layout-set.c:243,1
    - Dst: free
      Src: /src/tmux/layout-set.c:246,1
    - Dst: layout_free
      Src: /src/tmux/layout-set.c:259,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout-set.c:260,1
    - Dst: layout_set_size
      Src: /src/tmux/layout-set.c:261,1
    - Dst: layout_make_node
      Src: /src/tmux/layout-set.c:262,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout-set.c:265,1
    - Dst: layout_set_size
      Src: /src/tmux/layout-set.c:266,1
    - Dst: layout_make_leaf
      Src: /src/tmux/layout-set.c:267,1
    - Dst: layout_first_tiled
      Src: /src/tmux/layout-set.c:267,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/layout-set.c:268,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout-set.c:271,1
    - Dst: layout_set_size
      Src: /src/tmux/layout-set.c:272,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/layout-set.c:274,1
    - Dst: layout_first_tiled
      Src: /src/tmux/layout-set.c:274,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/layout-set.c:276,1
    - Dst: layout_make_leaf
      Src: /src/tmux/layout-set.c:277,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/layout-set.c:278,1
    - Dst: layout_make_node
      Src: /src/tmux/layout-set.c:280,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/layout-set.c:281,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout-set.c:284,1
    - Dst: layout_first_tiled
      Src: /src/tmux/layout-set.c:287,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout-set.c:289,1
    - Dst: layout_set_size
      Src: /src/tmux/layout-set.c:290,1
    - Dst: layout_make_leaf
      Src: /src/tmux/layout-set.c:291,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/layout-set.c:292,1
    - Dst: layout_spread_cell
      Src: /src/tmux/layout-set.c:294,1
    - Dst: layout_fix_offsets
      Src: /src/tmux/layout-set.c:298,1
    - Dst: layout_fix_panes
      Src: /src/tmux/layout-set.c:299,1
    - Dst: layout_print_cell
      Src: /src/tmux/layout-set.c:301,1
    - Dst: window_resize
      Src: /src/tmux/layout-set.c:303,1
    - Dst: notify_window
      Src: /src/tmux/layout-set.c:304,1
    - Dst: server_redraw_window
      Src: /src/tmux/layout-set.c:305,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 69
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 206
    functionDepth: 5
    functionLinenumber: 206
    functionLinenumberEnd: 306
    functionName: layout_set_main_h
    functionSourceFile: /src/tmux/layout-set.c
    functionUses: 0
    functionsReached:
    - layout_fix_offsets
    - server_redraw_window
    - layout_spread_cell
    - options_get_string
    - layout_first_tiled
    - notify_window
    - layout_create_cell
    - layout_make_node
    - TAILQ_INSERT_TAIL
    - layout_free
    - args_string_percentage
    - window_count_panes
    - TAILQ_NEXT
    - layout_fix_panes
    - layout_print_cell
    - TAILQ_FOREACH
    - layout_set_size
    - free
    - layout_make_leaf
    - window_resize
    linkageType: ''
    returnType: void
    signature: void layout_set_main_h(struct window *w)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: layout_print_cell
      Src: /src/tmux/layout-set.c:317,1
    - Dst: window_count_panes
      Src: /src/tmux/layout-set.c:320,1
    - Dst: options_get_string
      Src: /src/tmux/layout-set.c:329,1
    - Dst: args_string_percentage
      Src: /src/tmux/layout-set.c:330,1
    - Dst: free
      Src: /src/tmux/layout-set.c:333,1
    - Dst: options_get_string
      Src: /src/tmux/layout-set.c:344,1
    - Dst: args_string_percentage
      Src: /src/tmux/layout-set.c:345,1
    - Dst: free
      Src: /src/tmux/layout-set.c:348,1
    - Dst: layout_free
      Src: /src/tmux/layout-set.c:361,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout-set.c:362,1
    - Dst: layout_set_size
      Src: /src/tmux/layout-set.c:363,1
    - Dst: layout_make_node
      Src: /src/tmux/layout-set.c:364,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout-set.c:367,1
    - Dst: layout_set_size
      Src: /src/tmux/layout-set.c:368,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/layout-set.c:370,1
    - Dst: layout_first_tiled
      Src: /src/tmux/layout-set.c:370,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/layout-set.c:372,1
    - Dst: layout_make_leaf
      Src: /src/tmux/layout-set.c:373,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/layout-set.c:374,1
    - Dst: layout_make_node
      Src: /src/tmux/layout-set.c:376,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/layout-set.c:377,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout-set.c:380,1
    - Dst: layout_first_tiled
      Src: /src/tmux/layout-set.c:383,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout-set.c:385,1
    - Dst: layout_set_size
      Src: /src/tmux/layout-set.c:386,1
    - Dst: layout_make_leaf
      Src: /src/tmux/layout-set.c:387,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/layout-set.c:388,1
    - Dst: layout_spread_cell
      Src: /src/tmux/layout-set.c:390,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout-set.c:394,1
    - Dst: layout_set_size
      Src: /src/tmux/layout-set.c:395,1
    - Dst: layout_make_leaf
      Src: /src/tmux/layout-set.c:396,1
    - Dst: layout_first_tiled
      Src: /src/tmux/layout-set.c:396,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/layout-set.c:397,1
    - Dst: layout_fix_offsets
      Src: /src/tmux/layout-set.c:400,1
    - Dst: layout_fix_panes
      Src: /src/tmux/layout-set.c:401,1
    - Dst: layout_print_cell
      Src: /src/tmux/layout-set.c:403,1
    - Dst: window_resize
      Src: /src/tmux/layout-set.c:405,1
    - Dst: notify_window
      Src: /src/tmux/layout-set.c:406,1
    - Dst: server_redraw_window
      Src: /src/tmux/layout-set.c:407,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 69
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 308
    functionDepth: 5
    functionLinenumber: 308
    functionLinenumberEnd: 408
    functionName: layout_set_main_h_mirrored
    functionSourceFile: /src/tmux/layout-set.c
    functionUses: 0
    functionsReached:
    - layout_fix_offsets
    - server_redraw_window
    - layout_spread_cell
    - options_get_string
    - layout_first_tiled
    - notify_window
    - layout_create_cell
    - layout_make_node
    - TAILQ_INSERT_TAIL
    - layout_free
    - args_string_percentage
    - window_count_panes
    - TAILQ_NEXT
    - layout_fix_panes
    - layout_print_cell
    - TAILQ_FOREACH
    - layout_set_size
    - free
    - layout_make_leaf
    - window_resize
    linkageType: ''
    returnType: void
    signature: void layout_set_main_h_mirrored(struct window *w)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: layout_print_cell
      Src: /src/tmux/layout-set.c:419,1
    - Dst: window_count_panes
      Src: /src/tmux/layout-set.c:422,1
    - Dst: options_get_string
      Src: /src/tmux/layout-set.c:431,1
    - Dst: args_string_percentage
      Src: /src/tmux/layout-set.c:432,1
    - Dst: free
      Src: /src/tmux/layout-set.c:435,1
    - Dst: options_get_string
      Src: /src/tmux/layout-set.c:446,1
    - Dst: args_string_percentage
      Src: /src/tmux/layout-set.c:447,1
    - Dst: free
      Src: /src/tmux/layout-set.c:450,1
    - Dst: layout_free
      Src: /src/tmux/layout-set.c:463,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout-set.c:464,1
    - Dst: layout_set_size
      Src: /src/tmux/layout-set.c:465,1
    - Dst: layout_make_node
      Src: /src/tmux/layout-set.c:466,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout-set.c:469,1
    - Dst: layout_set_size
      Src: /src/tmux/layout-set.c:470,1
    - Dst: layout_make_leaf
      Src: /src/tmux/layout-set.c:471,1
    - Dst: layout_first_tiled
      Src: /src/tmux/layout-set.c:471,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/layout-set.c:472,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout-set.c:475,1
    - Dst: layout_set_size
      Src: /src/tmux/layout-set.c:476,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/layout-set.c:478,1
    - Dst: layout_first_tiled
      Src: /src/tmux/layout-set.c:478,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/layout-set.c:480,1
    - Dst: layout_make_leaf
      Src: /src/tmux/layout-set.c:481,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/layout-set.c:482,1
    - Dst: layout_make_node
      Src: /src/tmux/layout-set.c:484,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/layout-set.c:485,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout-set.c:488,1
    - Dst: layout_first_tiled
      Src: /src/tmux/layout-set.c:491,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout-set.c:493,1
    - Dst: layout_set_size
      Src: /src/tmux/layout-set.c:494,1
    - Dst: layout_make_leaf
      Src: /src/tmux/layout-set.c:495,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/layout-set.c:496,1
    - Dst: layout_spread_cell
      Src: /src/tmux/layout-set.c:498,1
    - Dst: layout_fix_offsets
      Src: /src/tmux/layout-set.c:502,1
    - Dst: layout_fix_panes
      Src: /src/tmux/layout-set.c:503,1
    - Dst: layout_print_cell
      Src: /src/tmux/layout-set.c:505,1
    - Dst: window_resize
      Src: /src/tmux/layout-set.c:507,1
    - Dst: notify_window
      Src: /src/tmux/layout-set.c:508,1
    - Dst: server_redraw_window
      Src: /src/tmux/layout-set.c:509,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 69
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 410
    functionDepth: 5
    functionLinenumber: 410
    functionLinenumberEnd: 510
    functionName: layout_set_main_v
    functionSourceFile: /src/tmux/layout-set.c
    functionUses: 0
    functionsReached:
    - layout_fix_offsets
    - server_redraw_window
    - layout_spread_cell
    - options_get_string
    - layout_first_tiled
    - notify_window
    - layout_create_cell
    - layout_make_node
    - TAILQ_INSERT_TAIL
    - layout_free
    - args_string_percentage
    - window_count_panes
    - TAILQ_NEXT
    - layout_fix_panes
    - layout_print_cell
    - TAILQ_FOREACH
    - layout_set_size
    - free
    - layout_make_leaf
    - window_resize
    linkageType: ''
    returnType: void
    signature: void layout_set_main_v(struct window *w)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: layout_print_cell
      Src: /src/tmux/layout-set.c:521,1
    - Dst: window_count_panes
      Src: /src/tmux/layout-set.c:524,1
    - Dst: options_get_string
      Src: /src/tmux/layout-set.c:533,1
    - Dst: args_string_percentage
      Src: /src/tmux/layout-set.c:534,1
    - Dst: free
      Src: /src/tmux/layout-set.c:537,1
    - Dst: options_get_string
      Src: /src/tmux/layout-set.c:548,1
    - Dst: args_string_percentage
      Src: /src/tmux/layout-set.c:549,1
    - Dst: free
      Src: /src/tmux/layout-set.c:552,1
    - Dst: layout_free
      Src: /src/tmux/layout-set.c:565,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout-set.c:566,1
    - Dst: layout_set_size
      Src: /src/tmux/layout-set.c:567,1
    - Dst: layout_make_node
      Src: /src/tmux/layout-set.c:568,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout-set.c:571,1
    - Dst: layout_set_size
      Src: /src/tmux/layout-set.c:572,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/layout-set.c:574,1
    - Dst: layout_first_tiled
      Src: /src/tmux/layout-set.c:574,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/layout-set.c:576,1
    - Dst: layout_make_leaf
      Src: /src/tmux/layout-set.c:577,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/layout-set.c:578,1
    - Dst: layout_make_node
      Src: /src/tmux/layout-set.c:580,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/layout-set.c:581,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout-set.c:584,1
    - Dst: layout_first_tiled
      Src: /src/tmux/layout-set.c:587,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout-set.c:589,1
    - Dst: layout_set_size
      Src: /src/tmux/layout-set.c:590,1
    - Dst: layout_make_leaf
      Src: /src/tmux/layout-set.c:591,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/layout-set.c:592,1
    - Dst: layout_spread_cell
      Src: /src/tmux/layout-set.c:594,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout-set.c:598,1
    - Dst: layout_set_size
      Src: /src/tmux/layout-set.c:599,1
    - Dst: layout_make_leaf
      Src: /src/tmux/layout-set.c:600,1
    - Dst: layout_first_tiled
      Src: /src/tmux/layout-set.c:600,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/layout-set.c:601,1
    - Dst: layout_fix_offsets
      Src: /src/tmux/layout-set.c:604,1
    - Dst: layout_fix_panes
      Src: /src/tmux/layout-set.c:605,1
    - Dst: layout_print_cell
      Src: /src/tmux/layout-set.c:607,1
    - Dst: window_resize
      Src: /src/tmux/layout-set.c:609,1
    - Dst: notify_window
      Src: /src/tmux/layout-set.c:610,1
    - Dst: server_redraw_window
      Src: /src/tmux/layout-set.c:611,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 69
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 512
    functionDepth: 5
    functionLinenumber: 512
    functionLinenumberEnd: 612
    functionName: layout_set_main_v_mirrored
    functionSourceFile: /src/tmux/layout-set.c
    functionUses: 0
    functionsReached:
    - layout_fix_offsets
    - server_redraw_window
    - layout_spread_cell
    - options_get_string
    - layout_first_tiled
    - notify_window
    - layout_create_cell
    - layout_make_node
    - TAILQ_INSERT_TAIL
    - layout_free
    - args_string_percentage
    - window_count_panes
    - TAILQ_NEXT
    - layout_fix_panes
    - layout_print_cell
    - TAILQ_FOREACH
    - layout_set_size
    - free
    - layout_make_leaf
    - window_resize
    linkageType: ''
    returnType: void
    signature: void layout_set_main_v_mirrored(struct window *w)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: layout_print_cell
      Src: /src/tmux/layout-set.c:623,1
    - Dst: window_count_panes
      Src: /src/tmux/layout-set.c:626,1
    - Dst: options_get_number
      Src: /src/tmux/layout-set.c:631,1
    - Dst: layout_free
      Src: /src/tmux/layout-set.c:651,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout-set.c:652,1
    - Dst: layout_set_size
      Src: /src/tmux/layout-set.c:659,1
    - Dst: layout_make_node
      Src: /src/tmux/layout-set.c:660,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/layout-set.c:663,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/layout-set.c:665,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout-set.c:672,1
    - Dst: layout_set_size
      Src: /src/tmux/layout-set.c:673,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/layout-set.c:674,1
    - Dst: layout_make_leaf
      Src: /src/tmux/layout-set.c:678,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/layout-set.c:679,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/layout-set.c:681,1
    - Dst: layout_make_node
      Src: /src/tmux/layout-set.c:686,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout-set.c:689,1
    - Dst: layout_set_size
      Src: /src/tmux/layout-set.c:690,1
    - Dst: layout_make_leaf
      Src: /src/tmux/layout-set.c:691,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/layout-set.c:692,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/layout-set.c:695,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/layout-set.c:697,1
    - Dst: TAILQ_LAST
      Src: /src/tmux/layout-set.c:711,1
    - Dst: layout_resize_adjust
      Src: /src/tmux/layout-set.c:712,1
    - Dst: TAILQ_LAST
      Src: /src/tmux/layout-set.c:719,1
    - Dst: layout_resize_adjust
      Src: /src/tmux/layout-set.c:720,1
    - Dst: layout_fix_offsets
      Src: /src/tmux/layout-set.c:725,1
    - Dst: layout_fix_panes
      Src: /src/tmux/layout-set.c:726,1
    - Dst: layout_print_cell
      Src: /src/tmux/layout-set.c:728,1
    - Dst: window_resize
      Src: /src/tmux/layout-set.c:730,1
    - Dst: notify_window
      Src: /src/tmux/layout-set.c:731,1
    - Dst: server_redraw_window
      Src: /src/tmux/layout-set.c:732,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 75
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 614
    functionDepth: 4
    functionLinenumber: 614
    functionLinenumberEnd: 733
    functionName: layout_set_tiled
    functionSourceFile: /src/tmux/layout-set.c
    functionUses: 0
    functionsReached:
    - layout_fix_panes
    - layout_print_cell
    - layout_make_leaf
    - notify_window
    - layout_set_size
    - layout_fix_offsets
    - window_count_panes
    - TAILQ_FIRST
    - window_resize
    - server_redraw_window
    - layout_resize_adjust
    - TAILQ_NEXT
    - TAILQ_LAST
    - options_get_number
    - layout_create_cell
    - layout_make_node
    - TAILQ_INSERT_TAIL
    - layout_free
    linkageType: ''
    returnType: void
    signature: void layout_set_tiled(struct window *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - int
    - tty
    argTypes:
    - __unused
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: osdep_get_name
    functionSourceFile: /src/tmux/osdep-hpux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      osdep_get_name(__unused int fd, __unused char *tty)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - int
    argTypes:
    - __unused
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: osdep_get_cwd
    functionSourceFile: /src/tmux/osdep-hpux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      osdep_get_cwd(__unused int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_init
      Src: /src/tmux/osdep-hpux.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: osdep_event_init
    functionSourceFile: /src/tmux/osdep-hpux.c
    functionUses: 0
    functionsReached:
    - event_init
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      osdep_event_init(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_error
      Src: /src/tmux/cmd-save-buffer.c:68,1
    - Dst: strerror
      Src: /src/tmux/cmd-save-buffer.c:68,1
    - Dst: cmdq_continue
      Src: /src/tmux/cmd-save-buffer.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - c
    - path
    - error
    - closed
    - buffer
    - data
    argTypes:
    - __unused*
    - char*
    - int
    - __unused
    - __unused*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: cmd_save_buffer_done
    functionSourceFile: /src/tmux/cmd-save-buffer.c
    functionUses: 0
    functionsReached:
    - cmdq_continue
    - strerror
    - cmdq_error
    linkageType: ''
    returnType: void
    signature: "void cmd_save_buffer_done(__unused struct client *c, const char *path,
      int error,\n    __unused int closed, __unused struct evbuffer *buffer, void
      *data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-save-buffer.c:75,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-save-buffer.c:76,1
    - Dst: args_get
      Src: /src/tmux/cmd-save-buffer.c:79,1
    - Dst: paste_get_top
      Src: /src/tmux/cmd-save-buffer.c:85,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-save-buffer.c:86,1
    - Dst: paste_get_name
      Src: /src/tmux/cmd-save-buffer.c:90,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-save-buffer.c:92,1
    - Dst: paste_buffer_data
      Src: /src/tmux/cmd-save-buffer.c:96,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-save-buffer.c:98,1
    - Dst: evbuffer_new
      Src: /src/tmux/cmd-save-buffer.c:100,1
    - Dst: fatalx
      Src: /src/tmux/cmd-save-buffer.c:102,1
    - Dst: evbuffer_add
      Src: /src/tmux/cmd-save-buffer.c:103,1
    - Dst: cmdq_print_data
      Src: /src/tmux/cmd-save-buffer.c:104,1
    - Dst: evbuffer_free
      Src: /src/tmux/cmd-save-buffer.c:105,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-save-buffer.c:108,1
    - Dst: format_single_from_target
      Src: /src/tmux/cmd-save-buffer.c:110,1
    - Dst: args_string
      Src: /src/tmux/cmd-save-buffer.c:110,1
    - Dst: args_has
      Src: /src/tmux/cmd-save-buffer.c:111,1
    - Dst: file_write
      Src: /src/tmux/cmd-save-buffer.c:115,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-save-buffer.c:115,1
    - Dst: free
      Src: /src/tmux/cmd-save-buffer.c:117,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 120
    functionName: cmd_save_buffer_exec
    functionSourceFile: /src/tmux/cmd-save-buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    - evbuffer_free
    - cmdq_print_data
    - cmdq_get_client
    - file_write
    - args_has
    - args_string
    - paste_buffer_data
    - format_single_from_target
    - args_get
    - xstrdup
    - cmd_get_args
    - cmd_get_entry
    - paste_get_top
    - cmdq_error
    - fatalx
    - paste_get_name
    - free
    - evbuffer_new
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_save_buffer_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - user1
    - user2
    argTypes:
    - struct server_acl_user*
    - struct server_acl_user*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: server_acl_cmp
    functionSourceFile: /src/tmux/server-acl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int server_acl_cmp(struct server_acl_user *user1, struct server_acl_user
      *user2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_INIT
      Src: /src/tmux/server-acl.c:56,1
    - Dst: getuid
      Src: /src/tmux/server-acl.c:58,1
    - Dst: server_acl_user_allow
      Src: /src/tmux/server-acl.c:59,1
    - Dst: server_acl_user_allow
      Src: /src/tmux/server-acl.c:60,1
    - Dst: getuid
      Src: /src/tmux/server-acl.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: server_acl_init
    functionSourceFile: /src/tmux/server-acl.c
    functionUses: 0
    functionsReached:
    - RB_INIT
    - getuid
    - server_acl_user_allow
    linkageType: ''
    returnType: void
    signature: void server_acl_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FIND
      Src: /src/tmux/server-acl.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uid
    argTypes:
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: server_acl_user_find
    functionSourceFile: /src/tmux/server-acl.c
    functionUses: 0
    functionsReached:
    - RB_FIND
    linkageType: ''
    returnType: struct server_acl_user
    signature: 'struct server_acl_user *

      server_acl_user_find(uid_t uid)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/server-acl.c:80,1
    - Dst: getpwuid
      Src: /src/tmux/server-acl.c:83,1
    - Dst: cmdq_print
      Src: /src/tmux/server-acl.c:88,1
    - Dst: cmdq_print
      Src: /src/tmux/server-acl.c:90,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 92
    functionName: server_acl_display
    functionSourceFile: /src/tmux/server-acl.c
    functionUses: 0
    functionsReached:
    - getpwuid
    - cmdq_print
    - RB_FOREACH
    linkageType: ''
    returnType: void
    signature: void server_acl_display(struct cmdq_item *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: server_acl_user_find
      Src: /src/tmux/server-acl.c:100,1
    - Dst: xcalloc
      Src: /src/tmux/server-acl.c:102,1
    - Dst: RB_INSERT
      Src: /src/tmux/server-acl.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - uid
    argTypes:
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 106
    functionName: server_acl_user_allow
    functionSourceFile: /src/tmux/server-acl.c
    functionUses: 1
    functionsReached:
    - xcalloc
    - server_acl_user_find
    - RB_INSERT
    linkageType: ''
    returnType: void
    signature: void server_acl_user_allow(uid_t uid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: server_acl_user_find
      Src: /src/tmux/server-acl.c:114,1
    - Dst: RB_REMOVE
      Src: /src/tmux/server-acl.c:116,1
    - Dst: free
      Src: /src/tmux/server-acl.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - uid
    argTypes:
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 119
    functionName: server_acl_user_deny
    functionSourceFile: /src/tmux/server-acl.c
    functionUses: 0
    functionsReached:
    - free
    - RB_REMOVE
    - server_acl_user_find
    linkageType: ''
    returnType: void
    signature: void server_acl_user_deny(uid_t uid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: server_acl_user_find
      Src: /src/tmux/server-acl.c:128,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-acl.c:133,1
    - Dst: proc_get_peer_uid
      Src: /src/tmux/server-acl.c:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - uid
    argTypes:
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 138
    functionName: server_acl_user_allow_write
    functionSourceFile: /src/tmux/server-acl.c
    functionUses: 0
    functionsReached:
    - proc_get_peer_uid
    - server_acl_user_find
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void server_acl_user_allow_write(uid_t uid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: server_acl_user_find
      Src: /src/tmux/server-acl.c:147,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-acl.c:152,1
    - Dst: proc_get_peer_uid
      Src: /src/tmux/server-acl.c:153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - uid
    argTypes:
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 157
    functionName: server_acl_user_deny_write
    functionSourceFile: /src/tmux/server-acl.c
    functionUses: 0
    functionsReached:
    - proc_get_peer_uid
    - server_acl_user_find
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void server_acl_user_deny_write(uid_t uid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: proc_get_peer_uid
      Src: /src/tmux/server-acl.c:169,1
    - Dst: server_acl_user_find
      Src: /src/tmux/server-acl.c:173,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 179
    functionName: server_acl_join
    functionSourceFile: /src/tmux/server-acl.c
    functionUses: 0
    functionsReached:
    - proc_get_peer_uid
    - server_acl_user_find
    linkageType: ''
    returnType: int
    signature: int server_acl_join(struct client *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - user
    argTypes:
    - struct server_acl_user*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: server_acl_get_uid
    functionSourceFile: /src/tmux/server-acl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uid_t
    signature: uid_t server_acl_get_uid(struct server_acl_user *user)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-join-pane.c:65,1
    - Dst: cmdq_get_current
      Src: /src/tmux/cmd-join-pane.c:66,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-join-pane.c:67,1
    - Dst: cmdq_get_source
      Src: /src/tmux/cmd-join-pane.c:68,1
    - Dst: server_unzoom_window
      Src: /src/tmux/cmd-join-pane.c:85,1
    - Dst: server_unzoom_window
      Src: /src/tmux/cmd-join-pane.c:90,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-join-pane.c:93,1
    - Dst: args_has
      Src: /src/tmux/cmd-join-pane.c:98,1
    - Dst: args_has
      Src: /src/tmux/cmd-join-pane.c:102,1
    - Dst: args_has
      Src: /src/tmux/cmd-join-pane.c:102,1
    - Dst: args_has
      Src: /src/tmux/cmd-join-pane.c:103,1
    - Dst: args_has
      Src: /src/tmux/cmd-join-pane.c:117,1
    - Dst: args_percentage_and_expand
      Src: /src/tmux/cmd-join-pane.c:118,1
    - Dst: args_has
      Src: /src/tmux/cmd-join-pane.c:120,1
    - Dst: args_strtonum_and_expand
      Src: /src/tmux/cmd-join-pane.c:121,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-join-pane.c:127,1
    - Dst: free
      Src: /src/tmux/cmd-join-pane.c:128,1
    - Dst: args_has
      Src: /src/tmux/cmd-join-pane.c:133,1
    - Dst: args_has
      Src: /src/tmux/cmd-join-pane.c:135,1
    - Dst: layout_split_pane
      Src: /src/tmux/cmd-join-pane.c:138,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-join-pane.c:140,1
    - Dst: layout_close_pane
      Src: /src/tmux/cmd-join-pane.c:144,1
    - Dst: server_client_remove_pane
      Src: /src/tmux/cmd-join-pane.c:146,1
    - Dst: window_lost_pane
      Src: /src/tmux/cmd-join-pane.c:147,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/cmd-join-pane.c:148,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/cmd-join-pane.c:149,1
    - Dst: options_set_parent
      Src: /src/tmux/cmd-join-pane.c:152,1
    - Dst: TAILQ_INSERT_BEFORE
      Src: /src/tmux/cmd-join-pane.c:155,1
    - Dst: TAILQ_INSERT_BEFORE
      Src: /src/tmux/cmd-join-pane.c:156,1
    - Dst: TAILQ_INSERT_AFTER
      Src: /src/tmux/cmd-join-pane.c:158,1
    - Dst: TAILQ_INSERT_AFTER
      Src: /src/tmux/cmd-join-pane.c:159,1
    - Dst: layout_assign_pane
      Src: /src/tmux/cmd-join-pane.c:161,1
    - Dst: colour_palette_from_option
      Src: /src/tmux/cmd-join-pane.c:162,1
    - Dst: recalculate_sizes
      Src: /src/tmux/cmd-join-pane.c:164,1
    - Dst: server_redraw_window
      Src: /src/tmux/cmd-join-pane.c:166,1
    - Dst: server_redraw_window
      Src: /src/tmux/cmd-join-pane.c:167,1
    - Dst: args_has
      Src: /src/tmux/cmd-join-pane.c:169,1
    - Dst: window_set_active_pane
      Src: /src/tmux/cmd-join-pane.c:170,1
    - Dst: session_select
      Src: /src/tmux/cmd-join-pane.c:171,1
    - Dst: cmd_find_from_session
      Src: /src/tmux/cmd-join-pane.c:172,1
    - Dst: server_redraw_session
      Src: /src/tmux/cmd-join-pane.c:173,1
    - Dst: server_status_session
      Src: /src/tmux/cmd-join-pane.c:175,1
    - Dst: window_count_panes
      Src: /src/tmux/cmd-join-pane.c:177,1
    - Dst: server_kill_window
      Src: /src/tmux/cmd-join-pane.c:178,1
    - Dst: notify_window
      Src: /src/tmux/cmd-join-pane.c:180,1
    - Dst: notify_window
      Src: /src/tmux/cmd-join-pane.c:181,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 85
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 62
    functionDepth: 6
    functionLinenumber: 62
    functionLinenumberEnd: 184
    functionName: cmd_join_pane_exec
    functionSourceFile: /src/tmux/cmd-join-pane.c
    functionUses: 0
    functionsReached:
    - layout_assign_pane
    - server_redraw_window
    - colour_palette_from_option
    - args_percentage_and_expand
    - args_has
    - cmdq_get_current
    - session_select
    - notify_window
    - recalculate_sizes
    - server_unzoom_window
    - cmdq_get_source
    - server_client_remove_pane
    - args_strtonum_and_expand
    - cmd_get_args
    - window_count_panes
    - server_kill_window
    - cmd_find_from_session
    - cmdq_get_target
    - TAILQ_REMOVE
    - layout_close_pane
    - cmdq_error
    - window_lost_pane
    - options_set_parent
    - layout_split_pane
    - TAILQ_INSERT_BEFORE
    - free
    - server_status_session
    - TAILQ_INSERT_AFTER
    - server_redraw_session
    - window_set_active_pane
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_join_pane_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-new-window.c:55,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-new-window.c:56,1
    - Dst: cmdq_get_current
      Src: /src/tmux/cmd-new-window.c:57,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-new-window.c:58,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/cmd-new-window.c:60,1
    - Dst: args_get
      Src: /src/tmux/cmd-new-window.c:73,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-window.c:74,1
    - Dst: format_single
      Src: /src/tmux/cmd-new-window.c:75,1
    - Dst: RB_FOREACH
      Src: /src/tmux/cmd-new-window.c:76,1
    - Dst: strcmp
      Src: /src/tmux/cmd-new-window.c:77,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-new-window.c:83,1
    - Dst: free
      Src: /src/tmux/cmd-new-window.c:84,1
    - Dst: free
      Src: /src/tmux/cmd-new-window.c:87,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-window.c:89,1
    - Dst: session_set_current
      Src: /src/tmux/cmd-new-window.c:91,1
    - Dst: server_redraw_session
      Src: /src/tmux/cmd-new-window.c:92,1
    - Dst: recalculate_sizes
      Src: /src/tmux/cmd-new-window.c:95,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-window.c:100,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-window.c:101,1
    - Dst: winlink_shuffle_up
      Src: /src/tmux/cmd-new-window.c:102,1
    - Dst: args_get
      Src: /src/tmux/cmd-new-window.c:111,1
    - Dst: args_to_vector
      Src: /src/tmux/cmd-new-window.c:112,1
    - Dst: environ_create
      Src: /src/tmux/cmd-new-window.c:113,1
    - Dst: args_first_value
      Src: /src/tmux/cmd-new-window.c:115,1
    - Dst: environ_put
      Src: /src/tmux/cmd-new-window.c:117,1
    - Dst: args_next_value
      Src: /src/tmux/cmd-new-window.c:118,1
    - Dst: args_get
      Src: /src/tmux/cmd-new-window.c:122,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-window.c:125,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-window.c:127,1
    - Dst: spawn_window
      Src: /src/tmux/cmd-new-window.c:130,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-new-window.c:131,1
    - Dst: free
      Src: /src/tmux/cmd-new-window.c:132,1
    - Dst: cmd_free_argv
      Src: /src/tmux/cmd-new-window.c:134,1
    - Dst: environ_free
      Src: /src/tmux/cmd-new-window.c:135,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-window.c:138,1
    - Dst: cmd_find_from_winlink
      Src: /src/tmux/cmd-new-window.c:139,1
    - Dst: server_redraw_session_group
      Src: /src/tmux/cmd-new-window.c:140,1
    - Dst: server_status_session_group
      Src: /src/tmux/cmd-new-window.c:142,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-window.c:144,1
    - Dst: format_single
      Src: /src/tmux/cmd-new-window.c:147,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-new-window.c:149,1
    - Dst: free
      Src: /src/tmux/cmd-new-window.c:150,1
    - Dst: cmd_find_from_winlink
      Src: /src/tmux/cmd-new-window.c:153,1
    - Dst: cmdq_insert_hook
      Src: /src/tmux/cmd-new-window.c:154,1
    - Dst: cmd_free_argv
      Src: /src/tmux/cmd-new-window.c:157,1
    - Dst: environ_free
      Src: /src/tmux/cmd-new-window.c:158,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 77
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 160
    functionName: cmd_new_window_exec
    functionSourceFile: /src/tmux/cmd-new-window.c
    functionUses: 0
    functionsReached:
    - winlink_shuffle_up
    - args_first_value
    - cmdq_get_client
    - session_set_current
    - cmd_free_argv
    - args_has
    - cmdq_get_current
    - environ_put
    - recalculate_sizes
    - args_to_vector
    - RB_FOREACH
    - cmdq_get_target_client
    - args_get
    - cmd_find_from_winlink
    - cmdq_insert_hook
    - cmdq_print
    - cmd_get_args
    - args_next_value
    - environ_create
    - cmdq_get_target
    - environ_free
    - spawn_window
    - server_status_session_group
    - cmdq_error
    - server_redraw_session_group
    - strcmp
    - format_single
    - free
    - server_redraw_session
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_new_window_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: CONTROL_SHOULD_NOTIFY_CLIENT
    functionSourceFile: /src/tmux/control-notify.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONTROL_SHOULD_NOTIFY_CLIENT(c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/control-notify.c:35,1
    - Dst: CONTROL_SHOULD_NOTIFY_CLIENT
      Src: /src/tmux/control-notify.c:36,1
    - Dst: control_write
      Src: /src/tmux/control-notify.c:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pane
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: control_notify_pane_mode_changed
    functionSourceFile: /src/tmux/control-notify.c
    functionUses: 0
    functionsReached:
    - CONTROL_SHOULD_NOTIFY_CLIENT
    - control_write
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void control_notify_pane_mode_changed(int pane)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/control-notify.c:60,1
    - Dst: format_single
      Src: /src/tmux/control-notify.c:63,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/control-notify.c:65,1
    - Dst: CONTROL_SHOULD_NOTIFY_CLIENT
      Src: /src/tmux/control-notify.c:66,1
    - Dst: winlink_find_by_window_id
      Src: /src/tmux/control-notify.c:69,1
    - Dst: control_write
      Src: /src/tmux/control-notify.c:70,1
    - Dst: free
      Src: /src/tmux/control-notify.c:72,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 73
    functionName: control_notify_window_layout_changed
    functionSourceFile: /src/tmux/control-notify.c
    functionUses: 0
    functionsReached:
    - winlink_find_by_window_id
    - TAILQ_FOREACH
    - CONTROL_SHOULD_NOTIFY_CLIENT
    - TAILQ_FIRST
    - format_single
    - free
    - control_write
    linkageType: ''
    returnType: void
    signature: void control_notify_window_layout_changed(struct window *w)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/control-notify.c:82,1
    - Dst: CONTROL_SHOULD_NOTIFY_CLIENT
      Src: /src/tmux/control-notify.c:83,1
    - Dst: control_write
      Src: /src/tmux/control-notify.c:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 89
    functionName: control_notify_window_pane_changed
    functionSourceFile: /src/tmux/control-notify.c
    functionUses: 0
    functionsReached:
    - CONTROL_SHOULD_NOTIFY_CLIENT
    - control_write
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void control_notify_window_pane_changed(struct window *w)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/control-notify.c:97,1
    - Dst: CONTROL_SHOULD_NOTIFY_CLIENT
      Src: /src/tmux/control-notify.c:98,1
    - Dst: winlink_find_by_window_id
      Src: /src/tmux/control-notify.c:102,1
    - Dst: control_write
      Src: /src/tmux/control-notify.c:103,1
    - Dst: control_write
      Src: /src/tmux/control-notify.c:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - s
    - w
    argTypes:
    - __unused*
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 107
    functionName: control_notify_window_unlinked
    functionSourceFile: /src/tmux/control-notify.c
    functionUses: 0
    functionsReached:
    - winlink_find_by_window_id
    - CONTROL_SHOULD_NOTIFY_CLIENT
    - control_write
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void control_notify_window_unlinked(__unused struct session *s, struct
      window *w)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/control-notify.c:115,1
    - Dst: CONTROL_SHOULD_NOTIFY_CLIENT
      Src: /src/tmux/control-notify.c:116,1
    - Dst: winlink_find_by_window_id
      Src: /src/tmux/control-notify.c:120,1
    - Dst: control_write
      Src: /src/tmux/control-notify.c:121,1
    - Dst: control_write
      Src: /src/tmux/control-notify.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - s
    - w
    argTypes:
    - __unused*
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 125
    functionName: control_notify_window_linked
    functionSourceFile: /src/tmux/control-notify.c
    functionUses: 0
    functionsReached:
    - winlink_find_by_window_id
    - CONTROL_SHOULD_NOTIFY_CLIENT
    - control_write
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void control_notify_window_linked(__unused struct session *s, struct
      window *w)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/control-notify.c:133,1
    - Dst: CONTROL_SHOULD_NOTIFY_CLIENT
      Src: /src/tmux/control-notify.c:134,1
    - Dst: winlink_find_by_window_id
      Src: /src/tmux/control-notify.c:138,1
    - Dst: control_write
      Src: /src/tmux/control-notify.c:139,1
    - Dst: control_write
      Src: /src/tmux/control-notify.c:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 146
    functionName: control_notify_window_renamed
    functionSourceFile: /src/tmux/control-notify.c
    functionUses: 0
    functionsReached:
    - winlink_find_by_window_id
    - CONTROL_SHOULD_NOTIFY_CLIENT
    - control_write
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void control_notify_window_renamed(struct window *w)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/control-notify.c:158,1
    - Dst: CONTROL_SHOULD_NOTIFY_CLIENT
      Src: /src/tmux/control-notify.c:159,1
    - Dst: control_write
      Src: /src/tmux/control-notify.c:163,1
    - Dst: control_write
      Src: /src/tmux/control-notify.c:166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - cc
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 170
    functionName: control_notify_client_session_changed
    functionSourceFile: /src/tmux/control-notify.c
    functionUses: 0
    functionsReached:
    - CONTROL_SHOULD_NOTIFY_CLIENT
    - control_write
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void control_notify_client_session_changed(struct client *cc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/control-notify.c:177,1
    - Dst: CONTROL_SHOULD_NOTIFY_CLIENT
      Src: /src/tmux/control-notify.c:178,1
    - Dst: control_write
      Src: /src/tmux/control-notify.c:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cc
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 181
    functionName: control_notify_client_detached
    functionSourceFile: /src/tmux/control-notify.c
    functionUses: 0
    functionsReached:
    - CONTROL_SHOULD_NOTIFY_CLIENT
    - control_write
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void control_notify_client_detached(struct client *cc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/control-notify.c:188,1
    - Dst: CONTROL_SHOULD_NOTIFY_CLIENT
      Src: /src/tmux/control-notify.c:189,1
    - Dst: control_write
      Src: /src/tmux/control-notify.c:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 194
    functionName: control_notify_session_renamed
    functionSourceFile: /src/tmux/control-notify.c
    functionUses: 0
    functionsReached:
    - CONTROL_SHOULD_NOTIFY_CLIENT
    - control_write
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void control_notify_session_renamed(struct session *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/control-notify.c:201,1
    - Dst: CONTROL_SHOULD_NOTIFY_CLIENT
      Src: /src/tmux/control-notify.c:202,1
    - Dst: control_write
      Src: /src/tmux/control-notify.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 207
    functionName: control_notify_session_created
    functionSourceFile: /src/tmux/control-notify.c
    functionUses: 0
    functionsReached:
    - CONTROL_SHOULD_NOTIFY_CLIENT
    - control_write
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void control_notify_session_created(__unused struct session *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/control-notify.c:214,1
    - Dst: CONTROL_SHOULD_NOTIFY_CLIENT
      Src: /src/tmux/control-notify.c:215,1
    - Dst: control_write
      Src: /src/tmux/control-notify.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 220
    functionName: control_notify_session_closed
    functionSourceFile: /src/tmux/control-notify.c
    functionUses: 0
    functionsReached:
    - CONTROL_SHOULD_NOTIFY_CLIENT
    - control_write
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void control_notify_session_closed(__unused struct session *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/control-notify.c:227,1
    - Dst: CONTROL_SHOULD_NOTIFY_CLIENT
      Src: /src/tmux/control-notify.c:228,1
    - Dst: control_write
      Src: /src/tmux/control-notify.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 234
    functionName: control_notify_session_window_changed
    functionSourceFile: /src/tmux/control-notify.c
    functionUses: 0
    functionsReached:
    - CONTROL_SHOULD_NOTIFY_CLIENT
    - control_write
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void control_notify_session_window_changed(struct session *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/control-notify.c:241,1
    - Dst: CONTROL_SHOULD_NOTIFY_CLIENT
      Src: /src/tmux/control-notify.c:242,1
    - Dst: control_write
      Src: /src/tmux/control-notify.c:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 247
    functionName: control_notify_paste_buffer_changed
    functionSourceFile: /src/tmux/control-notify.c
    functionUses: 0
    functionsReached:
    - CONTROL_SHOULD_NOTIFY_CLIENT
    - control_write
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void control_notify_paste_buffer_changed(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/control-notify.c:254,1
    - Dst: CONTROL_SHOULD_NOTIFY_CLIENT
      Src: /src/tmux/control-notify.c:255,1
    - Dst: control_write
      Src: /src/tmux/control-notify.c:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 260
    functionName: control_notify_paste_buffer_deleted
    functionSourceFile: /src/tmux/control-notify.c
    functionUses: 0
    functionsReached:
    - CONTROL_SHOULD_NOTIFY_CLIENT
    - control_write
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void control_notify_paste_buffer_deleted(const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-list-panes.c:54,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-list-panes.c:55,1
    - Dst: sort_order_from_string
      Src: /src/tmux/cmd-list-panes.c:60,1
    - Dst: args_get
      Src: /src/tmux/cmd-list-panes.c:60,1
    - Dst: args_has
      Src: /src/tmux/cmd-list-panes.c:61,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-list-panes.c:62,1
    - Dst: args_has
      Src: /src/tmux/cmd-list-panes.c:66,1
    - Dst: cmd_list_panes_server
      Src: /src/tmux/cmd-list-panes.c:67,1
    - Dst: args_has
      Src: /src/tmux/cmd-list-panes.c:68,1
    - Dst: cmd_list_panes_session
      Src: /src/tmux/cmd-list-panes.c:69,1
    - Dst: cmd_list_panes_window
      Src: /src/tmux/cmd-list-panes.c:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 74
    functionName: cmd_list_panes_exec
    functionSourceFile: /src/tmux/cmd-list-panes.c
    functionUses: 0
    functionsReached:
    - cmd_list_panes_server
    - cmdq_error
    - cmd_get_args
    - cmd_list_panes_session
    - cmd_list_panes_window
    - sort_order_from_string
    - args_get
    - cmdq_get_target
    - args_has
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_list_panes_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/cmd-list-panes.c:81,1
    - Dst: cmd_list_panes_session
      Src: /src/tmux/cmd-list-panes.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: cmd_list_panes_server
    functionSourceFile: /src/tmux/cmd-list-panes.c
    functionUses: 1
    functionsReached:
    - RB_FOREACH
    - cmd_list_panes_session
    linkageType: ''
    returnType: void
    signature: void cmd_list_panes_server(struct cmd *self, struct cmdq_item *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/cmd-list-panes.c:91,1
    - Dst: cmd_list_panes_window
      Src: /src/tmux/cmd-list-panes.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - self
    - s
    - item
    - type
    argTypes:
    - struct cmd*
    - struct session*
    - struct cmdq_item*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: cmd_list_panes_session
    functionSourceFile: /src/tmux/cmd-list-panes.c
    functionUses: 2
    functionsReached:
    - RB_FOREACH
    - cmd_list_panes_window
    linkageType: ''
    returnType: void
    signature: "void cmd_list_panes_session(struct cmd *self, struct session *s,\n
      \   struct cmdq_item *item, int type)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-list-panes.c:99,1
    - Dst: args_get
      Src: /src/tmux/cmd-list-panes.c:134,1
    - Dst: sort_order_from_string
      Src: /src/tmux/cmd-list-panes.c:136,1
    - Dst: args_get
      Src: /src/tmux/cmd-list-panes.c:136,1
    - Dst: args_has
      Src: /src/tmux/cmd-list-panes.c:137,1
    - Dst: sort_get_panes_window
      Src: /src/tmux/cmd-list-panes.c:139,1
    - Dst: format_create
      Src: /src/tmux/cmd-list-panes.c:142,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-list-panes.c:142,1
    - Dst: format_add
      Src: /src/tmux/cmd-list-panes.c:143,1
    - Dst: format_defaults
      Src: /src/tmux/cmd-list-panes.c:144,1
    - Dst: format_expand
      Src: /src/tmux/cmd-list-panes.c:147,1
    - Dst: format_true
      Src: /src/tmux/cmd-list-panes.c:148,1
    - Dst: free
      Src: /src/tmux/cmd-list-panes.c:149,1
    - Dst: format_expand
      Src: /src/tmux/cmd-list-panes.c:153,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-list-panes.c:154,1
    - Dst: free
      Src: /src/tmux/cmd-list-panes.c:155,1
    - Dst: format_free
      Src: /src/tmux/cmd-list-panes.c:158,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 5
    argNames:
    - self
    - s
    - wl
    - item
    - type
    argTypes:
    - struct cmd*
    - struct session*
    - struct winlink*
    - struct cmdq_item*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 160
    functionName: cmd_list_panes_window
    functionSourceFile: /src/tmux/cmd-list-panes.c
    functionUses: 2
    functionsReached:
    - cmdq_print
    - format_expand
    - cmd_get_args
    - format_true
    - format_defaults
    - format_free
    - sort_get_panes_window
    - free
    - sort_order_from_string
    - args_get
    - format_create
    - cmdq_get_client
    - format_add
    - args_has
    linkageType: ''
    returnType: void
    signature: "void cmd_list_panes_window(struct cmd *self, struct session *s, struct
      winlink *wl,\n    struct cmdq_item *item, int type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: server_acl_user_find
      Src: /src/tmux/cmd-server-access.c:54,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-server-access.c:55,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/cmd-server-access.c:58,1
    - Dst: proc_get_peer_uid
      Src: /src/tmux/cmd-server-access.c:59,1
    - Dst: server_acl_get_uid
      Src: /src/tmux/cmd-server-access.c:60,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-server-access.c:61,1
    - Dst: server_acl_user_deny
      Src: /src/tmux/cmd-server-access.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - item
    - pw
    argTypes:
    - struct cmdq_item*
    - struct passwd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 68
    functionName: cmd_server_access_deny
    functionSourceFile: /src/tmux/cmd-server-access.c
    functionUses: 0
    functionsReached:
    - proc_get_peer_uid
    - TAILQ_FOREACH
    - cmdq_error
    - server_acl_get_uid
    - server_acl_user_deny
    - xstrdup
    - server_acl_user_find
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_server_access_deny(struct cmdq_item *item, struct
      passwd *pw)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-server-access.c:74,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/cmd-server-access.c:75,1
    - Dst: args_has
      Src: /src/tmux/cmd-server-access.c:79,1
    - Dst: server_acl_display
      Src: /src/tmux/cmd-server-access.c:80,1
    - Dst: args_count
      Src: /src/tmux/cmd-server-access.c:83,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-server-access.c:84,1
    - Dst: format_single
      Src: /src/tmux/cmd-server-access.c:88,1
    - Dst: args_string
      Src: /src/tmux/cmd-server-access.c:88,1
    - Dst: getpwnam
      Src: /src/tmux/cmd-server-access.c:90,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-server-access.c:92,1
    - Dst: free
      Src: /src/tmux/cmd-server-access.c:93,1
    - Dst: free
      Src: /src/tmux/cmd-server-access.c:96,1
    - Dst: getuid
      Src: /src/tmux/cmd-server-access.c:98,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-server-access.c:99,1
    - Dst: args_has
      Src: /src/tmux/cmd-server-access.c:104,1
    - Dst: args_has
      Src: /src/tmux/cmd-server-access.c:104,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-server-access.c:105,1
    - Dst: args_has
      Src: /src/tmux/cmd-server-access.c:108,1
    - Dst: args_has
      Src: /src/tmux/cmd-server-access.c:108,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-server-access.c:109,1
    - Dst: args_has
      Src: /src/tmux/cmd-server-access.c:113,1
    - Dst: cmd_server_access_deny
      Src: /src/tmux/cmd-server-access.c:114,1
    - Dst: args_has
      Src: /src/tmux/cmd-server-access.c:115,1
    - Dst: server_acl_user_find
      Src: /src/tmux/cmd-server-access.c:116,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-server-access.c:117,1
    - Dst: server_acl_user_allow
      Src: /src/tmux/cmd-server-access.c:121,1
    - Dst: args_has
      Src: /src/tmux/cmd-server-access.c:123,1
    - Dst: args_has
      Src: /src/tmux/cmd-server-access.c:123,1
    - Dst: server_acl_user_find
      Src: /src/tmux/cmd-server-access.c:125,1
    - Dst: server_acl_user_allow
      Src: /src/tmux/cmd-server-access.c:126,1
    - Dst: args_has
      Src: /src/tmux/cmd-server-access.c:129,1
    - Dst: server_acl_user_find
      Src: /src/tmux/cmd-server-access.c:130,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-server-access.c:131,1
    - Dst: server_acl_user_allow_write
      Src: /src/tmux/cmd-server-access.c:134,1
    - Dst: args_has
      Src: /src/tmux/cmd-server-access.c:138,1
    - Dst: server_acl_user_find
      Src: /src/tmux/cmd-server-access.c:139,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-server-access.c:140,1
    - Dst: server_acl_user_deny_write
      Src: /src/tmux/cmd-server-access.c:143,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 148
    functionName: cmd_server_access_exec
    functionSourceFile: /src/tmux/cmd-server-access.c
    functionUses: 0
    functionsReached:
    - server_acl_user_allow
    - cmdq_error
    - args_string
    - cmd_server_access_deny
    - cmd_get_args
    - server_acl_user_allow_write
    - format_single
    - server_acl_display
    - cmdq_get_target_client
    - getpwnam
    - free
    - getuid
    - args_count
    - server_acl_user_find
    - args_has
    - server_acl_user_deny_write
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_server_access_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: menu_add_item
      Src: /src/tmux/menu.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 5
    argNames:
    - menu
    - items
    - qitem
    - c
    - fs
    argTypes:
    - struct menu*
    - struct menu_item*
    - struct cmdq_item*
    - struct client*
    - struct cmd_find_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: menu_add_items
    functionSourceFile: /src/tmux/menu.c
    functionUses: 0
    functionsReached:
    - menu_add_item
    linkageType: ''
    returnType: void
    signature: "void menu_add_items(struct menu *menu, const struct menu_item *items,\n
      \   struct cmdq_item *qitem, struct client *c, struct cmd_find_state *fs)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xreallocarray
      Src: /src/tmux/menu.c:80,1
    - Dst: memset
      Src: /src/tmux/menu.c:83,1
    - Dst: format_single_from_state
      Src: /src/tmux/menu.c:89,1
    - Dst: format_single
      Src: /src/tmux/menu.c:91,1
    - Dst: free
      Src: /src/tmux/menu.c:93,1
    - Dst: strlen
      Src: /src/tmux/menu.c:99,1
    - Dst: key_string_lookup_key
      Src: /src/tmux/menu.c:101,1
    - Dst: strlen
      Src: /src/tmux/menu.c:102,1
    - Dst: format_trim_right
      Src: /src/tmux/menu.c:119,1
    - Dst: xasprintf
      Src: /src/tmux/menu.c:121,1
    - Dst: xasprintf
      Src: /src/tmux/menu.c:124,1
    - Dst: free
      Src: /src/tmux/menu.c:125,1
    - Dst: free
      Src: /src/tmux/menu.c:128,1
    - Dst: format_single_from_state
      Src: /src/tmux/menu.c:133,1
    - Dst: format_single
      Src: /src/tmux/menu.c:135,1
    - Dst: format_width
      Src: /src/tmux/menu.c:141,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 5
    argNames:
    - menu
    - item
    - qitem
    - c
    - fs
    argTypes:
    - struct menu*
    - struct menu_item*
    - struct cmdq_item*
    - struct client*
    - struct cmd_find_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 146
    functionName: menu_add_item
    functionSourceFile: /src/tmux/menu.c
    functionUses: 1
    functionsReached:
    - format_width
    - xasprintf
    - format_single_from_state
    - format_trim_right
    - memset
    - key_string_lookup_key
    - format_single
    - free
    - xreallocarray
    - strlen
    linkageType: ''
    returnType: void
    signature: "void menu_add_item(struct menu *menu, const struct menu_item *item,\n
      \   struct cmdq_item *qitem, struct client *c, struct cmd_find_state *fs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/menu.c:153,1
    - Dst: xstrdup
      Src: /src/tmux/menu.c:154,1
    - Dst: format_width
      Src: /src/tmux/menu.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - title
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 158
    functionName: menu_create
    functionSourceFile: /src/tmux/menu.c
    functionUses: 0
    functionsReached:
    - format_width
    - xcalloc
    - xstrdup
    linkageType: ''
    returnType: struct menu
    signature: 'struct menu *

      menu_create(const char *title)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/menu.c:169,1
    - Dst: free
      Src: /src/tmux/menu.c:170,1
    - Dst: free
      Src: /src/tmux/menu.c:172,1
    - Dst: free
      Src: /src/tmux/menu.c:174,1
    - Dst: free
      Src: /src/tmux/menu.c:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 176
    functionName: menu_free
    functionSourceFile: /src/tmux/menu.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void menu_free(struct menu *menu)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - c
    - data
    - cx
    - cy
    argTypes:
    - __unused*
    - void*
    - u_int*
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 190
    functionName: menu_mode_cb
    functionSourceFile: /src/tmux/menu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct screen
    signature: 'struct screen *

      menu_mode_cb(__unused struct client *c, void *data, u_int *cx, u_int *cy)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: server_client_overlay_range
      Src: /src/tmux/menu.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - c
    - data
    - px
    - py
    - nx
    argTypes:
    - __unused*
    - void*
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 203
    functionName: menu_check_cb
    functionSourceFile: /src/tmux/menu.c
    functionUses: 0
    functionsReached:
    - server_client_overlay_range
    linkageType: ''
    returnType: struct visible_ranges
    signature: "struct visible_ranges *\nmenu_check_cb(__unused struct client *c,
      void *data, u_int px, u_int py,\n    u_int nx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: format_create_defaults
      Src: /src/tmux/menu.c:217,1
    - Dst: memcpy
      Src: /src/tmux/menu.c:220,1
    - Dst: style_apply
      Src: /src/tmux/menu.c:221,1
    - Dst: style_set
      Src: /src/tmux/menu.c:223,1
    - Dst: style_parse
      Src: /src/tmux/menu.c:224,1
    - Dst: memcpy
      Src: /src/tmux/menu.c:231,1
    - Dst: style_apply
      Src: /src/tmux/menu.c:233,1
    - Dst: style_set
      Src: /src/tmux/menu.c:235,1
    - Dst: style_parse
      Src: /src/tmux/menu.c:236,1
    - Dst: memcpy
      Src: /src/tmux/menu.c:244,1
    - Dst: style_apply
      Src: /src/tmux/menu.c:246,1
    - Dst: style_set
      Src: /src/tmux/menu.c:248,1
    - Dst: style_parse
      Src: /src/tmux/menu.c:249,1
    - Dst: format_free
      Src: /src/tmux/menu.c:256,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - md
    - c
    argTypes:
    - struct menu_data*
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 257
    functionName: menu_reapply_styles
    functionSourceFile: /src/tmux/menu.c
    functionUses: 0
    functionsReached:
    - style_apply
    - format_free
    - style_parse
    - style_set
    - memcpy
    - format_create_defaults
    linkageType: ''
    returnType: void
    signature: void menu_reapply_styles(struct menu_data *md, struct client *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: menu_reapply_styles
      Src: /src/tmux/menu.c:270,1
    - Dst: screen_write_start
      Src: /src/tmux/menu.c:272,1
    - Dst: screen_write_clearscreen
      Src: /src/tmux/menu.c:273,1
    - Dst: screen_write_box
      Src: /src/tmux/menu.c:276,1
    - Dst: screen_write_menu
      Src: /src/tmux/menu.c:280,1
    - Dst: screen_write_stop
      Src: /src/tmux/menu.c:282,1
    - Dst: screen_size_y
      Src: /src/tmux/menu.c:284,1
    - Dst: tty_draw_line
      Src: /src/tmux/menu.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - c
    - data
    - rctx
    argTypes:
    - struct client*
    - void*
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 288
    functionName: menu_draw_cb
    functionSourceFile: /src/tmux/menu.c
    functionUses: 0
    functionsReached:
    - screen_write_box
    - screen_size_y
    - screen_write_clearscreen
    - tty_draw_line
    - screen_write_menu
    - menu_reapply_styles
    - screen_write_start
    - screen_write_stop
    linkageType: ''
    returnType: void
    signature: "void menu_draw_cb(struct client *c, void *data,\n    __unused struct
      screen_redraw_ctx *rctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_continue
      Src: /src/tmux/menu.c:296,1
    - Dst: struct menu_data*::cb
      Src: /src/tmux/menu.c:299,1
    - Dst: free
      Src: /src/tmux/menu.c:301,1
    - Dst: screen_free
      Src: /src/tmux/menu.c:302,1
    - Dst: menu_free
      Src: /src/tmux/menu.c:304,1
    - Dst: free
      Src: /src/tmux/menu.c:305,1
    - Dst: free
      Src: /src/tmux/menu.c:306,1
    - Dst: free
      Src: /src/tmux/menu.c:307,1
    - Dst: free
      Src: /src/tmux/menu.c:308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - c
    - data
    argTypes:
    - __unused*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 309
    functionName: menu_free_cb
    functionSourceFile: /src/tmux/menu.c
    functionUses: 0
    functionsReached:
    - cmdq_continue
    - screen_free
    - menu_free
    - struct menu_data*::cb
    - free
    linkageType: ''
    returnType: void
    signature: void menu_free_cb(__unused struct client *c, void *data)
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: KEYC_IS_MOUSE
      Src: /src/tmux/menu.c:325,1
    - Dst: MOUSE_BUTTONS
      Src: /src/tmux/menu.c:327,1
    - Dst: MOUSE_RELEASE
      Src: /src/tmux/menu.c:336,1
    - Dst: MOUSE_RELEASE
      Src: /src/tmux/menu.c:339,1
    - Dst: MOUSE_WHEEL
      Src: /src/tmux/menu.c:340,1
    - Dst: MOUSE_DRAG
      Src: /src/tmux/menu.c:341,1
    - Dst: MOUSE_RELEASE
      Src: /src/tmux/menu.c:351,1
    - Dst: MOUSE_WHEEL
      Src: /src/tmux/menu.c:354,1
    - Dst: MOUSE_DRAG
      Src: /src/tmux/menu.c:354,1
    - Dst: struct menu_data*::cb
      Src: /src/tmux/menu.c:492,1
    - Dst: cmdq_get_event
      Src: /src/tmux/menu.c:498,1
    - Dst: cmdq_new_state
      Src: /src/tmux/menu.c:501,1
    - Dst: cmd_parse_and_append
      Src: /src/tmux/menu.c:503,1
    - Dst: cmdq_append
      Src: /src/tmux/menu.c:505,1
    - Dst: cmdq_get_error
      Src: /src/tmux/menu.c:505,1
    - Dst: free
      Src: /src/tmux/menu.c:506,1
    - Dst: cmdq_free_state
      Src: /src/tmux/menu.c:508,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 176
    argCount: 3
    argNames:
    - c
    - data
    - event
    argTypes:
    - struct client*
    - void*
    - struct key_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 511
    functionName: menu_key_cb
    functionSourceFile: /src/tmux/menu.c
    functionUses: 0
    functionsReached:
    - KEYC_IS_MOUSE
    - cmdq_get_event
    - MOUSE_WHEEL
    - cmdq_new_state
    - cmdq_append
    - cmdq_free_state
    - MOUSE_RELEASE
    - struct menu_data*::cb
    - free
    - cmdq_get_error
    - MOUSE_DRAG
    - cmd_parse_and_append
    - MOUSE_BUTTONS
    linkageType: ''
    returnType: int
    signature: int menu_key_cb(struct client *c, void *data, struct key_event *event)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - c
    - data
    argTypes:
    - struct client*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 543
    functionName: menu_resize_cb
    functionSourceFile: /src/tmux/menu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void menu_resize_cb(struct client *c, void *data)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/menu.c:565,1
    - Dst: xcalloc
      Src: /src/tmux/menu.c:567,1
    - Dst: xstrdup
      Src: /src/tmux/menu.c:573,1
    - Dst: xstrdup
      Src: /src/tmux/menu.c:575,1
    - Dst: xstrdup
      Src: /src/tmux/menu.c:577,1
    - Dst: cmd_find_copy_state
      Src: /src/tmux/menu.c:580,1
    - Dst: screen_init
      Src: /src/tmux/menu.c:581,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 63
    argCount: 14
    argNames:
    - menu
    - flags
    - starting_choice
    - item
    - px
    - py
    - c
    - lines
    - style
    - selected_style
    - border_style
    - fs
    - cb
    - data
    argTypes:
    - struct menu*
    - int
    - int
    - struct cmdq_item*
    - u_int
    - u_int
    - struct client*
    - enum box_lines
    - char*
    - char*
    - char*
    - struct cmd_find_state*
    - menu_choice_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 626
    functionName: menu_prepare
    functionSourceFile: /src/tmux/menu.c
    functionUses: 0
    functionsReached:
    - screen_init
    - cmd_find_copy_state
    - xcalloc
    - options_get_number
    - xstrdup
    linkageType: ''
    returnType: struct menu_data
    signature: "struct menu_data *\nmenu_prepare(struct menu *menu, int flags, int
      starting_choice,\n    struct cmdq_item *item, u_int px, u_int py, struct client
      *c,\n    enum box_lines lines, const char *style, const char *selected_style,\n
      \   const char *border_style, struct cmd_find_state *fs, menu_choice_cb cb,\n
      \   void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: menu_prepare
      Src: /src/tmux/menu.c:637,1
    - Dst: server_client_set_overlay
      Src: /src/tmux/menu.c:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 14
    argNames:
    - menu
    - flags
    - starting_choice
    - item
    - px
    - py
    - c
    - lines
    - style
    - selected_style
    - border_style
    - fs
    - cb
    - data
    argTypes:
    - struct menu*
    - int
    - int
    - struct cmdq_item*
    - u_int
    - u_int
    - struct client*
    - enum box_lines
    - char*
    - char*
    - char*
    - struct cmd_find_state*
    - menu_choice_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 628
    functionDepth: 2
    functionLinenumber: 628
    functionLinenumberEnd: 644
    functionName: menu_display
    functionSourceFile: /src/tmux/menu.c
    functionUses: 0
    functionsReached:
    - menu_prepare
    - server_client_set_overlay
    linkageType: ''
    returnType: int
    signature: "int menu_display(struct menu *menu, int flags, int starting_choice,\n
      \   struct cmdq_item *item, u_int px, u_int py, struct client *c,\n    enum
      box_lines lines, const char *style, const char *selected_style,\n    const char
      *border_style, struct cmd_find_state *fs, menu_choice_cb cb,\n    void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-lock-server.c:67,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/cmd-lock-server.c:68,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-lock-server.c:70,1
    - Dst: server_lock
      Src: /src/tmux/cmd-lock-server.c:71,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-lock-server.c:72,1
    - Dst: server_lock_session
      Src: /src/tmux/cmd-lock-server.c:73,1
    - Dst: server_lock_client
      Src: /src/tmux/cmd-lock-server.c:75,1
    - Dst: recalculate_sizes
      Src: /src/tmux/cmd-lock-server.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 79
    functionName: cmd_lock_server_exec
    functionSourceFile: /src/tmux/cmd-lock-server.c
    functionUses: 0
    functionsReached:
    - cmdq_get_target
    - server_lock_client
    - recalculate_sizes
    - cmd_get_entry
    - cmdq_get_target_client
    - server_lock
    - server_lock_session
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_lock_server_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - gr
    - gd
    - cx
    - cy
    argTypes:
    - struct grid_reader*
    - struct grid*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: grid_reader_start
    functionSourceFile: /src/tmux/grid-reader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void grid_reader_start(struct grid_reader *gr, struct grid *gd, u_int
      cx, u_int cy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - gr
    - cx
    - cy
    argTypes:
    - struct grid_reader*
    - u_int*
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: grid_reader_get_cursor
    functionSourceFile: /src/tmux/grid-reader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void grid_reader_get_cursor(struct grid_reader *gr, u_int *cx, u_int
      *cy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grid_line_length
      Src: /src/tmux/grid-reader.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gr
    argTypes:
    - struct grid_reader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: grid_reader_line_length
    functionSourceFile: /src/tmux/grid-reader.c
    functionUses: 0
    functionsReached:
    - grid_line_length
    linkageType: ''
    returnType: u_int
    signature: u_int grid_reader_line_length(struct grid_reader *gr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: grid_reader_line_length
      Src: /src/tmux/grid-reader.c:56,1
    - Dst: grid_reader_line_length
      Src: /src/tmux/grid-reader.c:58,1
    - Dst: grid_reader_cursor_start_of_line
      Src: /src/tmux/grid-reader.c:64,1
    - Dst: grid_reader_cursor_down
      Src: /src/tmux/grid-reader.c:65,1
    - Dst: grid_get_cell
      Src: /src/tmux/grid-reader.c:69,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 4
    argNames:
    - gr
    - wrap
    - all
    - onemore
    argTypes:
    - struct grid_reader*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 75
    functionName: grid_reader_cursor_right
    functionSourceFile: /src/tmux/grid-reader.c
    functionUses: 0
    functionsReached:
    - grid_reader_cursor_down
    - grid_reader_line_length
    - grid_get_cell
    - grid_reader_cursor_start_of_line
    linkageType: ''
    returnType: void
    signature: void grid_reader_cursor_right(struct grid_reader *gr, int wrap, int
      all, int onemore)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_cell
      Src: /src/tmux/grid-reader.c:84,1
    - Dst: grid_get_line
      Src: /src/tmux/grid-reader.c:91,1
    - Dst: grid_reader_cursor_up
      Src: /src/tmux/grid-reader.c:92,1
    - Dst: grid_reader_cursor_end_of_line
      Src: /src/tmux/grid-reader.c:93,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - gr
    - wrap
    argTypes:
    - struct grid_reader*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 96
    functionName: grid_reader_cursor_left
    functionSourceFile: /src/tmux/grid-reader.c
    functionUses: 0
    functionsReached:
    - grid_reader_cursor_end_of_line
    - grid_get_line
    - grid_get_cell
    - grid_reader_cursor_up
    linkageType: ''
    returnType: void
    signature: void grid_reader_cursor_left(struct grid_reader *gr, int wrap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_cell
      Src: /src/tmux/grid-reader.c:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - gr
    argTypes:
    - struct grid_reader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 112
    functionName: grid_reader_cursor_down
    functionSourceFile: /src/tmux/grid-reader.c
    functionUses: 1
    functionsReached:
    - grid_get_cell
    linkageType: ''
    returnType: void
    signature: void grid_reader_cursor_down(struct grid_reader *gr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_cell
      Src: /src/tmux/grid-reader.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - gr
    argTypes:
    - struct grid_reader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 128
    functionName: grid_reader_cursor_up
    functionSourceFile: /src/tmux/grid-reader.c
    functionUses: 1
    functionsReached:
    - grid_get_cell
    linkageType: ''
    returnType: void
    signature: void grid_reader_cursor_up(struct grid_reader *gr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_line
      Src: /src/tmux/grid-reader.c:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - gr
    - wrap
    argTypes:
    - struct grid_reader*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 141
    functionName: grid_reader_cursor_start_of_line
    functionSourceFile: /src/tmux/grid-reader.c
    functionUses: 1
    functionsReached:
    - grid_get_line
    linkageType: ''
    returnType: void
    signature: void grid_reader_cursor_start_of_line(struct grid_reader *gr, int wrap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_line
      Src: /src/tmux/grid-reader.c:151,1
    - Dst: grid_reader_line_length
      Src: /src/tmux/grid-reader.c:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - gr
    - wrap
    - all
    argTypes:
    - struct grid_reader*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 159
    functionName: grid_reader_cursor_end_of_line
    functionSourceFile: /src/tmux/grid-reader.c
    functionUses: 1
    functionsReached:
    - grid_get_line
    - grid_reader_line_length
    linkageType: ''
    returnType: void
    signature: void grid_reader_cursor_end_of_line(struct grid_reader *gr, int wrap,
      int all)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: grid_reader_cursor_start_of_line
      Src: /src/tmux/grid-reader.c:173,1
    - Dst: grid_reader_cursor_down
      Src: /src/tmux/grid-reader.c:174,1
    - Dst: grid_get_line
      Src: /src/tmux/grid-reader.c:176,1
    - Dst: grid_reader_line_length
      Src: /src/tmux/grid-reader.c:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - gr
    - xx
    - yy
    argTypes:
    - struct grid_reader*
    - u_int*
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 182
    functionName: grid_reader_handle_wrap
    functionSourceFile: /src/tmux/grid-reader.c
    functionUses: 0
    functionsReached:
    - grid_get_line
    - grid_reader_cursor_down
    - grid_reader_cursor_start_of_line
    - grid_reader_line_length
    linkageType: ''
    returnType: int
    signature: int grid_reader_handle_wrap(struct grid_reader *gr, u_int *xx, u_int
      *yy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grid_in_set
      Src: /src/tmux/grid-reader.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gr
    - set
    argTypes:
    - struct grid_reader*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 189
    functionName: grid_reader_in_set
    functionSourceFile: /src/tmux/grid-reader.c
    functionUses: 0
    functionsReached:
    - grid_in_set
    linkageType: ''
    returnType: int
    signature: int grid_reader_in_set(struct grid_reader *gr, const char *set)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_line
      Src: /src/tmux/grid-reader.c:198,1
    - Dst: grid_reader_line_length
      Src: /src/tmux/grid-reader.c:201,1
    - Dst: grid_reader_handle_wrap
      Src: /src/tmux/grid-reader.c:214,1
    - Dst: grid_reader_in_set
      Src: /src/tmux/grid-reader.c:216,1
    - Dst: grid_reader_in_set
      Src: /src/tmux/grid-reader.c:217,1
    - Dst: grid_reader_handle_wrap
      Src: /src/tmux/grid-reader.c:220,1
    - Dst: grid_reader_in_set
      Src: /src/tmux/grid-reader.c:221,1
    - Dst: grid_reader_in_set
      Src: /src/tmux/grid-reader.c:222,1
    - Dst: grid_reader_handle_wrap
      Src: /src/tmux/grid-reader.c:226,1
    - Dst: grid_reader_in_set
      Src: /src/tmux/grid-reader.c:227,1
    - Dst: grid_reader_in_set
      Src: /src/tmux/grid-reader.c:228,1
    - Dst: grid_reader_handle_wrap
      Src: /src/tmux/grid-reader.c:231,1
    - Dst: grid_reader_in_set
      Src: /src/tmux/grid-reader.c:232,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 2
    argNames:
    - gr
    - separators
    argTypes:
    - struct grid_reader*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 234
    functionName: grid_reader_cursor_next_word
    functionSourceFile: /src/tmux/grid-reader.c
    functionUses: 0
    functionsReached:
    - grid_get_line
    - grid_reader_in_set
    - grid_reader_handle_wrap
    - grid_reader_line_length
    linkageType: ''
    returnType: void
    signature: void grid_reader_cursor_next_word(struct grid_reader *gr, const char
      *separators)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_line
      Src: /src/tmux/grid-reader.c:243,1
    - Dst: grid_reader_line_length
      Src: /src/tmux/grid-reader.c:246,1
    - Dst: grid_reader_handle_wrap
      Src: /src/tmux/grid-reader.c:260,1
    - Dst: grid_reader_in_set
      Src: /src/tmux/grid-reader.c:261,1
    - Dst: grid_reader_in_set
      Src: /src/tmux/grid-reader.c:263,1
    - Dst: grid_reader_handle_wrap
      Src: /src/tmux/grid-reader.c:266,1
    - Dst: grid_reader_in_set
      Src: /src/tmux/grid-reader.c:267,1
    - Dst: grid_reader_in_set
      Src: /src/tmux/grid-reader.c:268,1
    - Dst: grid_reader_handle_wrap
      Src: /src/tmux/grid-reader.c:273,1
    - Dst: grid_reader_in_set
      Src: /src/tmux/grid-reader.c:274,1
    - Dst: grid_reader_in_set
      Src: /src/tmux/grid-reader.c:275,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 2
    argNames:
    - gr
    - separators
    argTypes:
    - struct grid_reader*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 279
    functionName: grid_reader_cursor_next_word_end
    functionSourceFile: /src/tmux/grid-reader.c
    functionUses: 0
    functionsReached:
    - grid_get_line
    - grid_reader_in_set
    - grid_reader_handle_wrap
    - grid_reader_line_length
    linkageType: ''
    returnType: void
    signature: void grid_reader_cursor_next_word_end(struct grid_reader *gr, const
      char *separators)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: grid_reader_in_set
      Src: /src/tmux/grid-reader.c:289,1
    - Dst: grid_reader_in_set
      Src: /src/tmux/grid-reader.c:293,1
    - Dst: grid_reader_in_set
      Src: /src/tmux/grid-reader.c:295,1
    - Dst: grid_reader_cursor_up
      Src: /src/tmux/grid-reader.c:301,1
    - Dst: grid_reader_cursor_end_of_line
      Src: /src/tmux/grid-reader.c:302,1
    - Dst: grid_reader_in_set
      Src: /src/tmux/grid-reader.c:308,1
    - Dst: grid_reader_in_set
      Src: /src/tmux/grid-reader.c:319,1
    - Dst: grid_get_line
      Src: /src/tmux/grid-reader.c:327,1
    - Dst: grid_reader_cursor_up
      Src: /src/tmux/grid-reader.c:330,1
    - Dst: grid_reader_cursor_end_of_line
      Src: /src/tmux/grid-reader.c:331,1
    - Dst: grid_reader_in_set
      Src: /src/tmux/grid-reader.c:335,1
    - Dst: grid_reader_in_set
      Src: /src/tmux/grid-reader.c:336,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 4
    argNames:
    - gr
    - separators
    - already
    - stop_at_eol
    argTypes:
    - struct grid_reader*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 282
    functionDepth: 3
    functionLinenumber: 282
    functionLinenumberEnd: 339
    functionName: grid_reader_cursor_previous_word
    functionSourceFile: /src/tmux/grid-reader.c
    functionUses: 0
    functionsReached:
    - grid_reader_cursor_end_of_line
    - grid_get_line
    - grid_reader_in_set
    - grid_reader_cursor_up
    linkageType: ''
    returnType: void
    signature: "void grid_reader_cursor_previous_word(struct grid_reader *gr, const
      char *separators,\n    int already, int stop_at_eol)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/tmux/grid-reader.c:352,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - gc
    - ud
    argTypes:
    - struct grid_cell*
    - struct utf8_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 353
    functionName: grid_reader_cell_equals_data
    functionSourceFile: /src/tmux/grid-reader.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int grid_reader_cell_equals_data(const struct grid_cell *gc,\n    const
      struct utf8_data *ud)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: grid_line_length
      Src: /src/tmux/grid-reader.c:366,1
    - Dst: grid_get_cell
      Src: /src/tmux/grid-reader.c:368,1
    - Dst: grid_reader_cell_equals_data
      Src: /src/tmux/grid-reader.c:369,1
    - Dst: grid_get_line
      Src: /src/tmux/grid-reader.c:378,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - gr
    - jc
    argTypes:
    - struct grid_reader*
    - struct utf8_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 383
    functionName: grid_reader_cursor_jump
    functionSourceFile: /src/tmux/grid-reader.c
    functionUses: 0
    functionsReached:
    - grid_get_line
    - grid_line_length
    - grid_get_cell
    - grid_reader_cell_equals_data
    linkageType: ''
    returnType: int
    signature: int grid_reader_cursor_jump(struct grid_reader *gr, const struct utf8_data
      *jc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_cell
      Src: /src/tmux/grid-reader.c:396,1
    - Dst: grid_reader_cell_equals_data
      Src: /src/tmux/grid-reader.c:397,1
    - Dst: grid_get_line
      Src: /src/tmux/grid-reader.c:405,1
    - Dst: grid_line_length
      Src: /src/tmux/grid-reader.c:407,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - gr
    - jc
    argTypes:
    - struct grid_reader*
    - struct utf8_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 410
    functionName: grid_reader_cursor_jump_back
    functionSourceFile: /src/tmux/grid-reader.c
    functionUses: 0
    functionsReached:
    - grid_get_line
    - grid_get_cell
    - grid_reader_cell_equals_data
    - grid_line_length
    linkageType: ''
    returnType: int
    signature: int grid_reader_cursor_jump_back(struct grid_reader *gr, const struct
      utf8_data *jc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: grid_reader_cursor_start_of_line
      Src: /src/tmux/grid-reader.c:422,1
    - Dst: grid_line_length
      Src: /src/tmux/grid-reader.c:425,1
    - Dst: grid_get_cell
      Src: /src/tmux/grid-reader.c:427,1
    - Dst: grid_get_line
      Src: /src/tmux/grid-reader.c:436,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - gr
    argTypes:
    - struct grid_reader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 441
    functionName: grid_reader_cursor_back_to_indentation
    functionSourceFile: /src/tmux/grid-reader.c
    functionUses: 0
    functionsReached:
    - grid_get_line
    - grid_line_length
    - grid_get_cell
    - grid_reader_cursor_start_of_line
    linkageType: ''
    returnType: void
    signature: void grid_reader_cursor_back_to_indentation(struct grid_reader *gr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/session.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - struct session*
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: session_cmp
    functionSourceFile: /src/tmux/session.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int session_cmp(struct session *s1, struct session *s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/session.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - struct session_group*
    - struct session_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: session_group_cmp
    functionSourceFile: /src/tmux/session.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int session_group_cmp(struct session_group *s1, struct session_group
      *s2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/session.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: session_alive
    functionSourceFile: /src/tmux/session.c
    functionUses: 2
    functionsReached:
    - RB_FOREACH
    linkageType: ''
    returnType: int
    signature: int session_alive(struct session *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FIND
      Src: /src/tmux/session.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: session_find
    functionSourceFile: /src/tmux/session.c
    functionUses: 1
    functionsReached:
    - RB_FIND
    linkageType: ''
    returnType: struct session
    signature: 'struct session *

      session_find(const char *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtonum
      Src: /src/tmux/session.c:90,1
    - Dst: session_find_by_id
      Src: /src/tmux/session.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: session_find_by_id_str
    functionSourceFile: /src/tmux/session.c
    functionUses: 1
    functionsReached:
    - strtonum
    - session_find_by_id
    linkageType: ''
    returnType: struct session
    signature: 'struct session *

      session_find_by_id_str(const char *s)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/session.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - id
    argTypes:
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 107
    functionName: session_find_by_id
    functionSourceFile: /src/tmux/session.c
    functionUses: 1
    functionsReached:
    - RB_FOREACH
    linkageType: ''
    returnType: struct session
    signature: 'struct session *

      session_find_by_id(u_int id)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/session.c:116,1
    - Dst: xstrdup
      Src: /src/tmux/session.c:120,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/session.c:122,1
    - Dst: RB_INIT
      Src: /src/tmux/session.c:123,1
    - Dst: status_update_cache
      Src: /src/tmux/session.c:128,1
    - Dst: xmalloc
      Src: /src/tmux/session.c:132,1
    - Dst: memcpy
      Src: /src/tmux/session.c:133,1
    - Dst: xstrdup
      Src: /src/tmux/session.c:137,1
    - Dst: free
      Src: /src/tmux/session.c:142,1
    - Dst: xasprintf
      Src: /src/tmux/session.c:144,1
    - Dst: xasprintf
      Src: /src/tmux/session.c:146,1
    - Dst: RB_FIND
      Src: /src/tmux/session.c:147,1
    - Dst: RB_INSERT
      Src: /src/tmux/session.c:149,1
    - Dst: log_debug
      Src: /src/tmux/session.c:151,1
    - Dst: gettimeofday
      Src: /src/tmux/session.c:153,1
    - Dst: fatal
      Src: /src/tmux/session.c:154,1
    - Dst: session_update_activity
      Src: /src/tmux/session.c:155,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 6
    argNames:
    - prefix
    - name
    - cwd
    - env
    - oo
    - tio
    argTypes:
    - char*
    - char*
    - char*
    - struct environ*
    - struct options*
    - struct termios*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 158
    functionName: session_create
    functionSourceFile: /src/tmux/session.c
    functionUses: 0
    functionsReached:
    - RB_INIT
    - xasprintf
    - status_update_cache
    - RB_INSERT
    - session_update_activity
    - fatal
    - xcalloc
    - xmalloc
    - free
    - gettimeofday
    - memcpy
    - log_debug
    - xstrdup
    - TAILQ_INIT
    - RB_FIND
    linkageType: ''
    returnType: struct session
    signature: "struct session *\nsession_create(const char *prefix, const char *name,
      const char *cwd,\n    struct environ *env, struct options *oo, struct termios
      *tio)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/session.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - from
    argTypes:
    - struct session*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 166
    functionName: session_add_ref
    functionSourceFile: /src/tmux/session.c
    functionUses: 0
    functionsReached:
    - log_debug
    linkageType: ''
    returnType: void
    signature: void session_add_ref(struct session *s, const char *from)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/session.c:173,1
    - Dst: event_once
      Src: /src/tmux/session.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - from
    argTypes:
    - struct session*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 177
    functionName: session_remove_ref
    functionSourceFile: /src/tmux/session.c
    functionUses: 0
    functionsReached:
    - log_debug
    - event_once
    linkageType: ''
    returnType: void
    signature: void session_remove_ref(struct session *s, const char *from)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/session.c:185,1
    - Dst: environ_free
      Src: /src/tmux/session.c:188,1
    - Dst: options_free
      Src: /src/tmux/session.c:189,1
    - Dst: free
      Src: /src/tmux/session.c:191,1
    - Dst: free
      Src: /src/tmux/session.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - int
    - events
    - arg
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 194
    functionName: session_free
    functionSourceFile: /src/tmux/session.c
    functionUses: 0
    functionsReached:
    - log_debug
    - options_free
    - environ_free
    - free
    linkageType: ''
    returnType: void
    signature: void session_free(__unused int fd, __unused short events, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/session.c:202,1
    - Dst: RB_REMOVE
      Src: /src/tmux/session.c:208,1
    - Dst: notify_session
      Src: /src/tmux/session.c:210,1
    - Dst: free
      Src: /src/tmux/session.c:212,1
    - Dst: event_initialized
      Src: /src/tmux/session.c:214,1
    - Dst: event_del
      Src: /src/tmux/session.c:215,1
    - Dst: session_group_remove
      Src: /src/tmux/session.c:217,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/session.c:219,1
    - Dst: winlink_stack_remove
      Src: /src/tmux/session.c:220,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/session.c:220,1
    - Dst: RB_EMPTY
      Src: /src/tmux/session.c:221,1
    - Dst: RB_ROOT
      Src: /src/tmux/session.c:222,1
    - Dst: notify_session_window
      Src: /src/tmux/session.c:223,1
    - Dst: winlink_remove
      Src: /src/tmux/session.c:224,1
    - Dst: free
      Src: /src/tmux/session.c:227,1
    - Dst: session_remove_ref
      Src: /src/tmux/session.c:229,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - s
    - notify
    - from
    argTypes:
    - struct session*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 230
    functionName: session_destroy
    functionSourceFile: /src/tmux/session.c
    functionUses: 3
    functionsReached:
    - notify_session
    - session_remove_ref
    - event_del
    - TAILQ_EMPTY
    - TAILQ_FIRST
    - session_group_remove
    - winlink_remove
    - free
    - RB_EMPTY
    - log_debug
    - RB_ROOT
    - notify_session_window
    - RB_REMOVE
    - event_initialized
    - winlink_stack_remove
    linkageType: ''
    returnType: void
    signature: void session_destroy(struct session *s, int notify, const char *from)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/session.c:241,1
    - Dst: server_lock_session
      Src: /src/tmux/session.c:244,1
    - Dst: recalculate_sizes
      Src: /src/tmux/session.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - int
    - events
    - arg
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 246
    functionName: session_lock_timer
    functionSourceFile: /src/tmux/session.c
    functionUses: 0
    functionsReached:
    - log_debug
    - recalculate_sizes
    - server_lock_session
    linkageType: ''
    returnType: void
    signature: void session_lock_timer(__unused int fd, __unused short events, void
      *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/tmux/session.c:255,1
    - Dst: memcpy
      Src: /src/tmux/session.c:257,1
    - Dst: log_debug
      Src: /src/tmux/session.c:259,1
    - Dst: evtimer_initialized
      Src: /src/tmux/session.c:263,1
    - Dst: evtimer_del
      Src: /src/tmux/session.c:264,1
    - Dst: evtimer_set
      Src: /src/tmux/session.c:266,1
    - Dst: timerclear
      Src: /src/tmux/session.c:269,1
    - Dst: options_get_number
      Src: /src/tmux/session.c:270,1
    - Dst: evtimer_add
      Src: /src/tmux/session.c:272,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - s
    - from
    argTypes:
    - struct session*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 274
    functionName: session_update_activity
    functionSourceFile: /src/tmux/session.c
    functionUses: 1
    functionsReached:
    - evtimer_initialized
    - evtimer_add
    - evtimer_del
    - gettimeofday
    - memcpy
    - timerclear
    - log_debug
    - options_get_number
    - evtimer_set
    linkageType: ''
    returnType: void
    signature: void session_update_activity(struct session *s, struct timeval *from)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RB_EMPTY
      Src: /src/tmux/session.c:283,1
    - Dst: session_alive
      Src: /src/tmux/session.c:283,1
    - Dst: sort_get_sessions
      Src: /src/tmux/session.c:286,1
    - Dst: fatalx
      Src: /src/tmux/session.c:292,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - s
    - sort_crit
    argTypes:
    - struct session*
    - struct sort_criteria*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 297
    functionName: session_next_session
    functionSourceFile: /src/tmux/session.c
    functionUses: 2
    functionsReached:
    - sort_get_sessions
    - RB_EMPTY
    - session_alive
    - fatalx
    linkageType: ''
    returnType: struct session
    signature: 'struct session *

      session_next_session(struct session *s, struct sort_criteria *sort_crit)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RB_EMPTY
      Src: /src/tmux/session.c:306,1
    - Dst: session_alive
      Src: /src/tmux/session.c:306,1
    - Dst: sort_get_sessions
      Src: /src/tmux/session.c:309,1
    - Dst: fatalx
      Src: /src/tmux/session.c:315,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - s
    - sort_crit
    argTypes:
    - struct session*
    - struct sort_criteria*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 320
    functionName: session_previous_session
    functionSourceFile: /src/tmux/session.c
    functionUses: 2
    functionsReached:
    - sort_get_sessions
    - RB_EMPTY
    - session_alive
    - fatalx
    linkageType: ''
    returnType: struct session
    signature: 'struct session *

      session_previous_session(struct session *s, struct sort_criteria *sort_crit)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: winlink_add
      Src: /src/tmux/session.c:328,1
    - Dst: xasprintf
      Src: /src/tmux/session.c:329,1
    - Dst: winlink_set_window
      Src: /src/tmux/session.c:333,1
    - Dst: notify_session_window
      Src: /src/tmux/session.c:334,1
    - Dst: session_group_synchronize_from
      Src: /src/tmux/session.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - s
    - w
    - idx
    - cause
    argTypes:
    - struct session*
    - struct window*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 323
    functionDepth: 4
    functionLinenumber: 323
    functionLinenumberEnd: 338
    functionName: session_attach
    functionSourceFile: /src/tmux/session.c
    functionUses: 2
    functionsReached:
    - xasprintf
    - session_group_synchronize_from
    - winlink_set_window
    - winlink_add
    - notify_session_window
    linkageType: ''
    returnType: struct winlink
    signature: 'struct winlink *

      session_attach(struct session *s, struct window *w, int idx, char **cause)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: session_last
      Src: /src/tmux/session.c:345,1
    - Dst: session_previous
      Src: /src/tmux/session.c:346,1
    - Dst: session_next
      Src: /src/tmux/session.c:347,1
    - Dst: notify_session_window
      Src: /src/tmux/session.c:350,1
    - Dst: winlink_stack_remove
      Src: /src/tmux/session.c:351,1
    - Dst: winlink_remove
      Src: /src/tmux/session.c:352,1
    - Dst: session_group_synchronize_from
      Src: /src/tmux/session.c:354,1
    - Dst: RB_EMPTY
      Src: /src/tmux/session.c:356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - s
    - wl
    argTypes:
    - struct session*
    - struct winlink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 359
    functionName: session_detach
    functionSourceFile: /src/tmux/session.c
    functionUses: 2
    functionsReached:
    - session_next
    - session_group_synchronize_from
    - session_last
    - winlink_remove
    - RB_EMPTY
    - session_previous
    - notify_session_window
    - winlink_stack_remove
    linkageType: ''
    returnType: int
    signature: int session_detach(struct session *s, struct winlink *wl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/session.c:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - w
    argTypes:
    - struct session*
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 372
    functionName: session_has
    functionSourceFile: /src/tmux/session.c
    functionUses: 10
    functionsReached:
    - TAILQ_FOREACH
    linkageType: ''
    returnType: int
    signature: int session_has(struct session *s, struct window *w)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: session_group_contains
      Src: /src/tmux/session.c:383,1
    - Dst: session_group_count
      Src: /src/tmux/session.c:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - w
    argTypes:
    - struct session*
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 386
    functionName: session_is_linked
    functionSourceFile: /src/tmux/session.c
    functionUses: 0
    functionsReached:
    - session_group_count
    - session_group_contains
    linkageType: ''
    returnType: int
    signature: int session_is_linked(struct session *s, struct window *w)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: winlink_next
      Src: /src/tmux/session.c:394,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - wl
    argTypes:
    - struct winlink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 397
    functionName: session_next_alert
    functionSourceFile: /src/tmux/session.c
    functionUses: 0
    functionsReached:
    - winlink_next
    linkageType: ''
    returnType: struct winlink
    signature: 'struct winlink *

      session_next_alert(struct winlink *wl)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: winlink_next
      Src: /src/tmux/session.c:408,1
    - Dst: session_next_alert
      Src: /src/tmux/session.c:410,1
    - Dst: RB_MIN
      Src: /src/tmux/session.c:412,1
    - Dst: session_next_alert
      Src: /src/tmux/session.c:413,1
    - Dst: session_set_current
      Src: /src/tmux/session.c:416,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - s
    - alert
    argTypes:
    - struct session*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 417
    functionName: session_next
    functionSourceFile: /src/tmux/session.c
    functionUses: 1
    functionsReached:
    - session_set_current
    - winlink_next
    - session_next_alert
    - RB_MIN
    linkageType: ''
    returnType: int
    signature: int session_next(struct session *s, int alert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: winlink_previous
      Src: /src/tmux/session.c:425,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - wl
    argTypes:
    - struct winlink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 419
    functionDepth: 2
    functionLinenumber: 419
    functionLinenumberEnd: 428
    functionName: session_previous_alert
    functionSourceFile: /src/tmux/session.c
    functionUses: 0
    functionsReached:
    - winlink_previous
    linkageType: ''
    returnType: struct winlink
    signature: 'struct winlink *

      session_previous_alert(struct winlink *wl)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: winlink_previous
      Src: /src/tmux/session.c:439,1
    - Dst: session_previous_alert
      Src: /src/tmux/session.c:441,1
    - Dst: RB_MAX
      Src: /src/tmux/session.c:443,1
    - Dst: session_previous_alert
      Src: /src/tmux/session.c:444,1
    - Dst: session_set_current
      Src: /src/tmux/session.c:447,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - s
    - alert
    argTypes:
    - struct session*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 431
    functionDepth: 3
    functionLinenumber: 431
    functionLinenumberEnd: 448
    functionName: session_previous
    functionSourceFile: /src/tmux/session.c
    functionUses: 1
    functionsReached:
    - session_previous_alert
    - RB_MAX
    - session_set_current
    - winlink_previous
    linkageType: ''
    returnType: int
    signature: int session_previous(struct session *s, int alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: winlink_find_by_index
      Src: /src/tmux/session.c:456,1
    - Dst: session_set_current
      Src: /src/tmux/session.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - idx
    argTypes:
    - struct session*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 458
    functionName: session_select
    functionSourceFile: /src/tmux/session.c
    functionUses: 3
    functionsReached:
    - winlink_find_by_index
    - session_set_current
    linkageType: ''
    returnType: int
    signature: int session_select(struct session *s, int idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/session.c:466,1
    - Dst: session_set_current
      Src: /src/tmux/session.c:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 473
    functionName: session_last
    functionSourceFile: /src/tmux/session.c
    functionUses: 1
    functionsReached:
    - session_set_current
    - TAILQ_FIRST
    linkageType: ''
    returnType: int
    signature: int session_last(struct session *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: winlink_stack_remove
      Src: /src/tmux/session.c:486,1
    - Dst: winlink_stack_push
      Src: /src/tmux/session.c:487,1
    - Dst: options_get_number
      Src: /src/tmux/session.c:489,1
    - Dst: window_update_focus
      Src: /src/tmux/session.c:491,1
    - Dst: window_update_focus
      Src: /src/tmux/session.c:492,1
    - Dst: winlink_clear_flags
      Src: /src/tmux/session.c:494,1
    - Dst: window_update_activity
      Src: /src/tmux/session.c:495,1
    - Dst: tty_update_window_offset
      Src: /src/tmux/session.c:496,1
    - Dst: notify_session
      Src: /src/tmux/session.c:497,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - s
    - wl
    argTypes:
    - struct session*
    - struct winlink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 499
    functionName: session_set_current
    functionSourceFile: /src/tmux/session.c
    functionUses: 6
    functionsReached:
    - notify_session
    - winlink_stack_push
    - window_update_focus
    - winlink_clear_flags
    - options_get_number
    - tty_update_window_offset
    - window_update_activity
    - winlink_stack_remove
    linkageType: ''
    returnType: int
    signature: int session_set_current(struct session *s, struct winlink *wl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/session.c:508,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/session.c:509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - target
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 515
    functionName: session_group_contains
    functionSourceFile: /src/tmux/session.c
    functionUses: 7
    functionsReached:
    - RB_FOREACH
    - TAILQ_FOREACH
    linkageType: ''
    returnType: struct session_group
    signature: 'struct session_group *

      session_group_contains(struct session *target)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FIND
      Src: /src/tmux/session.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 525
    functionName: session_group_find
    functionSourceFile: /src/tmux/session.c
    functionUses: 0
    functionsReached:
    - RB_FIND
    linkageType: ''
    returnType: struct session_group
    signature: 'struct session_group *

      session_group_find(const char *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: session_group_find
      Src: /src/tmux/session.c:533,1
    - Dst: xcalloc
      Src: /src/tmux/session.c:536,1
    - Dst: xstrdup
      Src: /src/tmux/session.c:537,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/session.c:538,1
    - Dst: RB_INSERT
      Src: /src/tmux/session.c:540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 542
    functionName: session_group_new
    functionSourceFile: /src/tmux/session.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - session_group_find
    - xstrdup
    - TAILQ_INIT
    - RB_INSERT
    linkageType: ''
    returnType: struct session_group
    signature: 'struct session_group *

      session_group_new(const char *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: session_group_contains
      Src: /src/tmux/session.c:548,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/session.c:549,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - sg
    - s
    argTypes:
    - struct session_group*
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 550
    functionName: session_group_add
    functionSourceFile: /src/tmux/session.c
    functionUses: 0
    functionsReached:
    - session_group_contains
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: void
    signature: void session_group_add(struct session_group *sg, struct session *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: session_group_contains
      Src: /src/tmux/session.c:558,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/session.c:560,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/session.c:561,1
    - Dst: RB_REMOVE
      Src: /src/tmux/session.c:562,1
    - Dst: free
      Src: /src/tmux/session.c:563,1
    - Dst: free
      Src: /src/tmux/session.c:564,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 566
    functionName: session_group_remove
    functionSourceFile: /src/tmux/session.c
    functionUses: 1
    functionsReached:
    - session_group_contains
    - free
    - TAILQ_EMPTY
    - RB_REMOVE
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void session_group_remove(struct session *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/session.c:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sg
    argTypes:
    - struct session_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 579
    functionName: session_group_count
    functionSourceFile: /src/tmux/session.c
    functionUses: 2
    functionsReached:
    - TAILQ_FOREACH
    linkageType: ''
    returnType: u_int
    signature: u_int session_group_count(struct session_group *sg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/session.c:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sg
    argTypes:
    - struct session_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 592
    functionName: session_group_attached_count
    functionSourceFile: /src/tmux/session.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH
    linkageType: ''
    returnType: u_int
    signature: u_int session_group_attached_count(struct session_group *sg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: session_group_contains
      Src: /src/tmux/session.c:601,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/session.c:605,1
    - Dst: session_group_synchronize1
      Src: /src/tmux/session.c:610,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 611
    functionName: session_group_synchronize_to
    functionSourceFile: /src/tmux/session.c
    functionUses: 0
    functionsReached:
    - session_group_contains
    - session_group_synchronize1
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void session_group_synchronize_to(struct session *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: session_group_contains
      Src: /src/tmux/session.c:620,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/session.c:623,1
    - Dst: session_group_synchronize1
      Src: /src/tmux/session.c:625,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - target
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 627
    functionName: session_group_synchronize_from
    functionSourceFile: /src/tmux/session.c
    functionUses: 2
    functionsReached:
    - session_group_contains
    - session_group_synchronize1
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void session_group_synchronize_from(struct session *target)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RB_EMPTY
      Src: /src/tmux/session.c:643,1
    - Dst: winlink_find_by_index
      Src: /src/tmux/session.c:648,1
    - Dst: session_last
      Src: /src/tmux/session.c:649,1
    - Dst: session_previous
      Src: /src/tmux/session.c:649,1
    - Dst: session_next
      Src: /src/tmux/session.c:650,1
    - Dst: memcpy
      Src: /src/tmux/session.c:653,1
    - Dst: RB_INIT
      Src: /src/tmux/session.c:654,1
    - Dst: winlink_add
      Src: /src/tmux/session.c:658,1
    - Dst: winlink_set_window
      Src: /src/tmux/session.c:660,1
    - Dst: notify_session_window
      Src: /src/tmux/session.c:661,1
    - Dst: winlink_find_by_index
      Src: /src/tmux/session.c:667,1
    - Dst: winlink_find_by_index
      Src: /src/tmux/session.c:669,1
    - Dst: memcpy
      Src: /src/tmux/session.c:672,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/session.c:673,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/session.c:674,1
    - Dst: winlink_find_by_index
      Src: /src/tmux/session.c:675,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/session.c:677,1
    - Dst: RB_EMPTY
      Src: /src/tmux/session.c:683,1
    - Dst: RB_ROOT
      Src: /src/tmux/session.c:684,1
    - Dst: winlink_find_by_window_id
      Src: /src/tmux/session.c:685,1
    - Dst: notify_session_window
      Src: /src/tmux/session.c:687,1
    - Dst: winlink_remove
      Src: /src/tmux/session.c:688,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - target
    - s
    argTypes:
    - struct session*
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 634
    functionDepth: 4
    functionLinenumber: 634
    functionLinenumberEnd: 690
    functionName: session_group_synchronize1
    functionSourceFile: /src/tmux/session.c
    functionUses: 2
    functionsReached:
    - RB_INIT
    - winlink_find_by_window_id
    - TAILQ_FOREACH
    - session_next
    - session_last
    - winlink_remove
    - winlink_set_window
    - RB_EMPTY
    - memcpy
    - session_previous
    - winlink_add
    - RB_ROOT
    - notify_session_window
    - winlink_find_by_index
    - TAILQ_INIT
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: void
    signature: void session_group_synchronize1(struct session *target, struct session
      *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: winlink_add
      Src: /src/tmux/session.c:658,1
    - Dst: winlink_set_window
      Src: /src/tmux/session.c:660,1
    - Dst: notify_session_window
      Src: /src/tmux/session.c:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 657
    functionDepth: 4
    functionLinenumber: 657
    functionLinenumberEnd: 663
    functionName: RB_FOREACH
    functionSourceFile: /src/tmux/session.c
    functionUses: 23
    functionsReached:
    - winlink_set_window
    - notify_session_window
    - winlink_add
    linkageType: ''
    returnType: void
    signature: void RB_FOREACH(wl, winlinks, ww)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/session.c:702,1
    - Dst: RB_INIT
      Src: /src/tmux/session.c:703,1
    - Dst: options_get_number
      Src: /src/tmux/session.c:706,1
    - Dst: RB_FOREACH
      Src: /src/tmux/session.c:710,1
    - Dst: winlink_add
      Src: /src/tmux/session.c:711,1
    - Dst: winlink_set_window
      Src: /src/tmux/session.c:713,1
    - Dst: memcpy
      Src: /src/tmux/session.c:725,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/session.c:726,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/session.c:727,1
    - Dst: winlink_find_by_window
      Src: /src/tmux/session.c:729,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/session.c:731,1
    - Dst: winlink_find_by_index
      Src: /src/tmux/session.c:738,1
    - Dst: server_clear_marked
      Src: /src/tmux/session.c:740,1
    - Dst: winlink_find_by_index
      Src: /src/tmux/session.c:742,1
    - Dst: RB_FOREACH_SAFE
      Src: /src/tmux/session.c:745,1
    - Dst: winlink_remove
      Src: /src/tmux/session.c:746,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 693
    functionDepth: 4
    functionLinenumber: 693
    functionLinenumberEnd: 747
    functionName: session_renumber_windows
    functionSourceFile: /src/tmux/session.c
    functionUses: 1
    functionsReached:
    - RB_INIT
    - winlink_find_by_index
    - TAILQ_FOREACH
    - server_clear_marked
    - winlink_remove
    - RB_FOREACH
    - winlink_set_window
    - RB_FOREACH_SAFE
    - memcpy
    - winlink_add
    - options_get_number
    - TAILQ_INIT
    - TAILQ_INSERT_TAIL
    - winlink_find_by_window
    linkageType: ''
    returnType: void
    signature: void session_renumber_windows(struct session *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/session.c:757,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/session.c:758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 762
    functionName: session_theme_changed
    functionSourceFile: /src/tmux/session.c
    functionUses: 0
    functionsReached:
    - RB_FOREACH
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void session_theme_changed(struct session *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/session.c:773,1
    - Dst: RB_FOREACH
      Src: /src/tmux/session.c:774,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/session.c:775,1
    - Dst: grid_collect_history
      Src: /src/tmux/session.c:780,1
    - Dst: log_debug
      Src: /src/tmux/session.c:783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 788
    functionName: session_update_history
    functionSourceFile: /src/tmux/session.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH
    - grid_collect_history
    - RB_FOREACH
    - log_debug
    - options_get_number
    linkageType: ''
    returnType: void
    signature: void session_update_history(struct session *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xrecallocarray
      Src: /src/tmux/image-sixel.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - si
    - y
    argTypes:
    - struct sixel_image*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 79
    functionName: sixel_parse_expand_lines
    functionSourceFile: /src/tmux/image-sixel.c
    functionUses: 0
    functionsReached:
    - xrecallocarray
    linkageType: ''
    returnType: int
    signature: int sixel_parse_expand_lines(struct sixel_image *si, u_int y)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xrecallocarray
      Src: /src/tmux/image-sixel.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - si
    - sl
    - x
    argTypes:
    - struct sixel_image*
    - struct sixel_line*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 93
    functionName: sixel_parse_expand_line
    functionSourceFile: /src/tmux/image-sixel.c
    functionUses: 0
    functionsReached:
    - xrecallocarray
    linkageType: ''
    returnType: int
    signature: int sixel_parse_expand_line(struct sixel_image *si, struct sixel_line
      *sl, u_int x)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - si
    - x
    - y
    argTypes:
    - struct sixel_image*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 106
    functionName: sixel_get_pixel
    functionSourceFile: /src/tmux/image-sixel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int
    signature: u_int sixel_get_pixel(struct sixel_image *si, u_int x, u_int y)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sixel_parse_expand_lines
      Src: /src/tmux/image-sixel.c:113,1
    - Dst: sixel_parse_expand_line
      Src: /src/tmux/image-sixel.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - si
    - x
    - y
    - c
    argTypes:
    - struct sixel_image*
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 120
    functionName: sixel_set_pixel
    functionSourceFile: /src/tmux/image-sixel.c
    functionUses: 0
    functionsReached:
    - sixel_parse_expand_lines
    - sixel_parse_expand_line
    linkageType: ''
    returnType: int
    signature: int sixel_set_pixel(struct sixel_image *si, u_int x, u_int y, u_int
      c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sixel_set_pixel
      Src: /src/tmux/image-sixel.c:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - si
    - ch
    argTypes:
    - struct sixel_image*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 134
    functionName: sixel_parse_write
    functionSourceFile: /src/tmux/image-sixel.c
    functionUses: 0
    functionsReached:
    - sixel_set_pixel
    linkageType: ''
    returnType: int
    signature: int sixel_parse_write(struct sixel_image *si, u_int ch)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/tmux/image-sixel.c:149,1
    - Dst: strtoul
      Src: /src/tmux/image-sixel.c:152,1
    - Dst: log_debug
      Src: /src/tmux/image-sixel.c:156,1
    - Dst: strtoul
      Src: /src/tmux/image-sixel.c:160,1
    - Dst: log_debug
      Src: /src/tmux/image-sixel.c:162,1
    - Dst: log_debug
      Src: /src/tmux/image-sixel.c:166,1
    - Dst: strtoul
      Src: /src/tmux/image-sixel.c:169,1
    - Dst: log_debug
      Src: /src/tmux/image-sixel.c:171,1
    - Dst: log_debug
      Src: /src/tmux/image-sixel.c:175,1
    - Dst: sixel_parse_expand_lines
      Src: /src/tmux/image-sixel.c:180,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 3
    argNames:
    - si
    - cp
    - end
    argTypes:
    - struct sixel_image*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 187
    functionName: sixel_parse_attributes
    functionSourceFile: /src/tmux/image-sixel.c
    functionUses: 0
    functionsReached:
    - log_debug
    - strtoul
    - sixel_parse_expand_lines
    linkageType: ''
    returnType: char
    signature: 'char *

      sixel_parse_attributes(struct sixel_image *si, const char *cp, const char *end)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/tmux/image-sixel.c:203,1
    - Dst: log_debug
      Src: /src/tmux/image-sixel.c:205,1
    - Dst: strtoul
      Src: /src/tmux/image-sixel.c:214,1
    - Dst: log_debug
      Src: /src/tmux/image-sixel.c:216,1
    - Dst: strtoul
      Src: /src/tmux/image-sixel.c:219,1
    - Dst: log_debug
      Src: /src/tmux/image-sixel.c:221,1
    - Dst: strtoul
      Src: /src/tmux/image-sixel.c:224,1
    - Dst: log_debug
      Src: /src/tmux/image-sixel.c:226,1
    - Dst: strtoul
      Src: /src/tmux/image-sixel.c:229,1
    - Dst: log_debug
      Src: /src/tmux/image-sixel.c:231,1
    - Dst: log_debug
      Src: /src/tmux/image-sixel.c:238,1
    - Dst: xrecallocarray
      Src: /src/tmux/image-sixel.c:244,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 47
    argCount: 3
    argNames:
    - si
    - cp
    - end
    argTypes:
    - struct sixel_image*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 250
    functionName: sixel_parse_colour
    functionSourceFile: /src/tmux/image-sixel.c
    functionUses: 0
    functionsReached:
    - log_debug
    - xrecallocarray
    - strtoul
    linkageType: ''
    returnType: char
    signature: 'char *

      sixel_parse_colour(struct sixel_image *si, const char *cp, const char *end)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/image-sixel.c:266,1
    - Dst: log_debug
      Src: /src/tmux/image-sixel.c:271,1
    - Dst: strtonum
      Src: /src/tmux/image-sixel.c:276,1
    - Dst: log_debug
      Src: /src/tmux/image-sixel.c:278,1
    - Dst: sixel_parse_write
      Src: /src/tmux/image-sixel.c:284,1
    - Dst: log_debug
      Src: /src/tmux/image-sixel.c:285,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 3
    argNames:
    - si
    - cp
    - end
    argTypes:
    - struct sixel_image*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 252
    functionDepth: 4
    functionLinenumber: 252
    functionLinenumberEnd: 291
    functionName: sixel_parse_repeat
    functionSourceFile: /src/tmux/image-sixel.c
    functionUses: 0
    functionsReached:
    - log_debug
    - strtonum
    - sixel_parse_write
    linkageType: ''
    returnType: char
    signature: 'char *

      sixel_parse_repeat(struct sixel_image *si, const char *cp, const char *end)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/image-sixel.c:301,1
    - Dst: xcalloc
      Src: /src/tmux/image-sixel.c:305,1
    - Dst: sixel_parse_attributes
      Src: /src/tmux/image-sixel.c:314,1
    - Dst: sixel_parse_colour
      Src: /src/tmux/image-sixel.c:319,1
    - Dst: sixel_parse_repeat
      Src: /src/tmux/image-sixel.c:324,1
    - Dst: sixel_parse_write
      Src: /src/tmux/image-sixel.c:340,1
    - Dst: log_debug
      Src: /src/tmux/image-sixel.c:341,1
    - Dst: sixel_free
      Src: /src/tmux/image-sixel.c:354,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 60
    argCount: 5
    argNames:
    - buf
    - len
    - p2
    - xpixel
    - ypixel
    argTypes:
    - char*
    - size_t
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 293
    functionDepth: 5
    functionLinenumber: 293
    functionLinenumberEnd: 356
    functionName: sixel_parse
    functionSourceFile: /src/tmux/image-sixel.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - sixel_parse_colour
    - sixel_free
    - sixel_parse_attributes
    - sixel_parse_repeat
    - log_debug
    - sixel_parse_write
    linkageType: ''
    returnType: struct sixel_image
    signature: 'struct sixel_image *

      sixel_parse(const char *buf, size_t len, u_int p2, u_int xpixel, u_int ypixel)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/image-sixel.c:364,1
    - Dst: free
      Src: /src/tmux/image-sixel.c:365,1
    - Dst: free
      Src: /src/tmux/image-sixel.c:367,1
    - Dst: free
      Src: /src/tmux/image-sixel.c:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - si
    argTypes:
    - struct sixel_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 369
    functionName: sixel_free
    functionSourceFile: /src/tmux/image-sixel.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void sixel_free(struct sixel_image *si)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sixel_size_in_cells
      Src: /src/tmux/image-sixel.c:378,1
    - Dst: log_debug
      Src: /src/tmux/image-sixel.c:379,1
    - Dst: log_debug
      Src: /src/tmux/image-sixel.c:381,1
    - Dst: log_debug
      Src: /src/tmux/image-sixel.c:393,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - si
    argTypes:
    - struct sixel_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 395
    functionName: sixel_log
    functionSourceFile: /src/tmux/image-sixel.c
    functionUses: 0
    functionsReached:
    - log_debug
    - sixel_size_in_cells
    linkageType: ''
    returnType: void
    signature: void sixel_log(struct sixel_image *si)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - si
    - x
    - y
    argTypes:
    - struct sixel_image*
    - u_int*
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 408
    functionName: sixel_size_in_cells
    functionSourceFile: /src/tmux/image-sixel.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sixel_size_in_cells(struct sixel_image *si, u_int *x, u_int *y)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sixel_size_in_cells
      Src: /src/tmux/image-sixel.c:423,1
    - Dst: xcalloc::xcalloc
      Src: /src/tmux/image-sixel.c:446,1
    - Dst: ra_x::ra_x
      Src: /src/tmux/image-sixel.c:453,1
    - Dst: ra_x::ra_x
      Src: /src/tmux/image-sixel.c:453,1
    - Dst: ra_y::ra_y
      Src: /src/tmux/image-sixel.c:454,1
    - Dst: ra_y::ra_y
      Src: /src/tmux/image-sixel.c:454,1
    - Dst: ra_x::ra_x
      Src: /src/tmux/image-sixel.c:459,1
    - Dst: ra_y::ra_y
      Src: /src/tmux/image-sixel.c:460,1
    - Dst: xmalloc
      Src: /src/tmux/image-sixel.c:472,1
    - Dst: colours::colours
      Src: /src/tmux/image-sixel.c:472,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 8
    argNames:
    - si
    - xpixel
    - ypixel
    - ox
    - oy
    - sx
    - sy
    - colours
    argTypes:
    - struct sixel_image*
    - u_int
    - u_int
    - u_int
    - u_int
    - u_int
    - u_int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 478
    functionName: sixel_scale
    functionSourceFile: /src/tmux/image-sixel.c
    functionUses: 1
    functionsReached:
    - ra_y::ra_y
    - xmalloc
    - sixel_size_in_cells
    - xcalloc::xcalloc
    - colours::colours
    - ra_x::ra_x
    linkageType: ''
    returnType: struct sixel_image
    signature: "struct sixel_image *\nsixel_scale(struct sixel_image *si, u_int xpixel,
      u_int ypixel, u_int ox,\n    u_int oy, u_int sx, u_int sy, int colours)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xreallocarray
      Src: /src/tmux/image-sixel.c:485,1
    - Dst: memcpy
      Src: /src/tmux/image-sixel.c:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - buf
    - len
    - used
    - s
    - slen
    argTypes:
    - char**
    - size_t*
    - size_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 490
    functionName: sixel_print_add
    functionSourceFile: /src/tmux/image-sixel.c
    functionUses: 0
    functionsReached:
    - memcpy
    - xreallocarray
    linkageType: ''
    returnType: void
    signature: "void sixel_print_add(char **buf, size_t *len, size_t *used, const
      char *s,\n    size_t slen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sixel_print_add
      Src: /src/tmux/image-sixel.c:499,1
    - Dst: sixel_print_add
      Src: /src/tmux/image-sixel.c:501,1
    - Dst: sixel_print_add
      Src: /src/tmux/image-sixel.c:502,1
    - Dst: sixel_print_add
      Src: /src/tmux/image-sixel.c:504,1
    - Dst: sixel_print_add
      Src: /src/tmux/image-sixel.c:505,1
    - Dst: sixel_print_add
      Src: /src/tmux/image-sixel.c:506,1
    - Dst: xsnprintf
      Src: /src/tmux/image-sixel.c:508,1
    - Dst: sixel_print_add
      Src: /src/tmux/image-sixel.c:509,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - buf
    - len
    - used
    - count
    - ch
    argTypes:
    - char**
    - size_t*
    - size_t*
    - u_int
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 511
    functionName: sixel_print_repeat
    functionSourceFile: /src/tmux/image-sixel.c
    functionUses: 0
    functionsReached:
    - sixel_print_add
    - xsnprintf
    linkageType: ''
    returnType: void
    signature: void sixel_print_repeat(char **buf, size_t *len, size_t *used, u_int
      count, char ch)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sixel_print_repeat
      Src: /src/tmux/image-sixel.c:550,1
    - Dst: sixel_print_repeat
      Src: /src/tmux/image-sixel.c:553,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 5
    argNames:
    - si
    - chunks
    - y
    - active
    - nactive
    argTypes:
    - struct sixel_image*
    - struct sixel_chunk*
    - u_int
    - u_int*
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 513
    functionDepth: 3
    functionLinenumber: 513
    functionLinenumberEnd: 563
    functionName: sixel_print_compress_colors
    functionSourceFile: /src/tmux/image-sixel.c
    functionUses: 0
    functionsReached:
    - sixel_print_repeat
    linkageType: ''
    returnType: void
    signature: "void sixel_print_compress_colors(struct sixel_image *si, struct sixel_chunk
      *chunks,\n    u_int y, u_int *active, u_int *nactive)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/tmux/image-sixel.c:587,1
    - Dst: xsnprintf
      Src: /src/tmux/image-sixel.c:589,1
    - Dst: sixel_print_add
      Src: /src/tmux/image-sixel.c:590,1
    - Dst: xsnprintf
      Src: /src/tmux/image-sixel.c:593,1
    - Dst: sixel_print_add
      Src: /src/tmux/image-sixel.c:595,1
    - Dst: xcalloc
      Src: /src/tmux/image-sixel.c:598,1
    - Dst: xcalloc
      Src: /src/tmux/image-sixel.c:599,1
    - Dst: xsnprintf
      Src: /src/tmux/image-sixel.c:603,1
    - Dst: sixel_print_add
      Src: /src/tmux/image-sixel.c:605,1
    - Dst: xmalloc
      Src: /src/tmux/image-sixel.c:611,1
    - Dst: sixel_print_compress_colors
      Src: /src/tmux/image-sixel.c:616,1
    - Dst: xsnprintf
      Src: /src/tmux/image-sixel.c:621,1
    - Dst: sixel_print_add
      Src: /src/tmux/image-sixel.c:622,1
    - Dst: sixel_print_add
      Src: /src/tmux/image-sixel.c:623,1
    - Dst: sixel_print_repeat
      Src: /src/tmux/image-sixel.c:625,1
    - Dst: sixel_print_add
      Src: /src/tmux/image-sixel.c:627,1
    - Dst: sixel_print_add
      Src: /src/tmux/image-sixel.c:633,1
    - Dst: sixel_print_add
      Src: /src/tmux/image-sixel.c:638,1
    - Dst: free
      Src: /src/tmux/image-sixel.c:645,1
    - Dst: free
      Src: /src/tmux/image-sixel.c:646,1
    - Dst: free
      Src: /src/tmux/image-sixel.c:647,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 59
    argCount: 3
    argNames:
    - si
    - map
    - size
    argTypes:
    - struct sixel_image*
    - struct sixel_image*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 565
    functionDepth: 4
    functionLinenumber: 565
    functionLinenumberEnd: 650
    functionName: sixel_print
    functionSourceFile: /src/tmux/image-sixel.c
    functionUses: 1
    functionsReached:
    - sixel_print_repeat
    - sixel_print_add
    - xcalloc
    - xmalloc
    - sixel_print_compress_colors
    - xsnprintf
    - free
    linkageType: ''
    returnType: char
    signature: 'char *

      sixel_print(struct sixel_image *si, struct sixel_image *map, size_t *size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sixel_size_in_cells
      Src: /src/tmux/image-sixel.c:660,1
    - Dst: xmalloc
      Src: /src/tmux/image-sixel.c:662,1
    - Dst: screen_init
      Src: /src/tmux/image-sixel.c:663,1
    - Dst: memcpy
      Src: /src/tmux/image-sixel.c:665,1
    - Dst: utf8_set
      Src: /src/tmux/image-sixel.c:667,1
    - Dst: screen_write_start
      Src: /src/tmux/image-sixel.c:669,1
    - Dst: grid_view_set_cell
      Src: /src/tmux/image-sixel.c:673,1
    - Dst: screen_write_box
      Src: /src/tmux/image-sixel.c:676,1
    - Dst: grid_view_set_cell
      Src: /src/tmux/image-sixel.c:679,1
    - Dst: screen_write_stop
      Src: /src/tmux/image-sixel.c:682,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - si
    argTypes:
    - struct sixel_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 684
    functionName: sixel_to_screen
    functionSourceFile: /src/tmux/image-sixel.c
    functionUses: 0
    functionsReached:
    - screen_write_box
    - screen_init
    - grid_view_set_cell
    - xmalloc
    - sixel_size_in_cells
    - memcpy
    - screen_write_stop
    - screen_write_start
    - utf8_set
    linkageType: ''
    returnType: struct screen
    signature: 'struct screen *

      sixel_to_screen(struct sixel_image *si)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/hyperlinks.c:92,1
    - Dst: strcmp
      Src: /src/tmux/hyperlinks.c:95,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - struct hyperlinks_uri*
    - struct hyperlinks_uri*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 96
    functionName: hyperlinks_by_uri_cmp
    functionSourceFile: /src/tmux/hyperlinks.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int hyperlinks_by_uri_cmp(struct hyperlinks_uri *left, struct hyperlinks_uri
      *right)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - struct hyperlinks_uri*
    - struct hyperlinks_uri*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: hyperlinks_by_inner_cmp
    functionSourceFile: /src/tmux/hyperlinks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int hyperlinks_by_inner_cmp(struct hyperlinks_uri *left,\n    struct
      hyperlinks_uri *right)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/hyperlinks.c:119,1
    - Dst: RB_REMOVE
      Src: /src/tmux/hyperlinks.c:122,1
    - Dst: RB_REMOVE
      Src: /src/tmux/hyperlinks.c:123,1
    - Dst: free
      Src: /src/tmux/hyperlinks.c:125,1
    - Dst: free
      Src: /src/tmux/hyperlinks.c:126,1
    - Dst: free
      Src: /src/tmux/hyperlinks.c:127,1
    - Dst: free
      Src: /src/tmux/hyperlinks.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - hlu
    argTypes:
    - struct hyperlinks_uri*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 129
    functionName: hyperlinks_remove
    functionSourceFile: /src/tmux/hyperlinks.c
    functionUses: 0
    functionsReached:
    - free
    - RB_REMOVE
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void hyperlinks_remove(struct hyperlinks_uri *hlu)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: utf8_stravis
      Src: /src/tmux/hyperlinks.c:147,1
    - Dst: utf8_stravis
      Src: /src/tmux/hyperlinks.c:148,1
    - Dst: RB_FIND
      Src: /src/tmux/hyperlinks.c:154,1
    - Dst: free
      Src: /src/tmux/hyperlinks.c:156,1
    - Dst: free
      Src: /src/tmux/hyperlinks.c:157,1
    - Dst: xasprintf
      Src: /src/tmux/hyperlinks.c:161,1
    - Dst: xcalloc
      Src: /src/tmux/hyperlinks.c:163,1
    - Dst: RB_INSERT
      Src: /src/tmux/hyperlinks.c:169,1
    - Dst: RB_INSERT
      Src: /src/tmux/hyperlinks.c:170,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/hyperlinks.c:172,1
    - Dst: hyperlinks_remove
      Src: /src/tmux/hyperlinks.c:174,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/hyperlinks.c:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 3
    argNames:
    - hl
    - uri_in
    - internal_id_in
    argTypes:
    - struct hyperlinks*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 177
    functionName: hyperlinks_put
    functionSourceFile: /src/tmux/hyperlinks.c
    functionUses: 0
    functionsReached:
    - utf8_stravis
    - xasprintf
    - hyperlinks_remove
    - xcalloc
    - TAILQ_FIRST
    - free
    - RB_FIND
    - TAILQ_INSERT_TAIL
    - RB_INSERT
    linkageType: ''
    returnType: u_int
    signature: "u_int hyperlinks_put(struct hyperlinks *hl, const char *uri_in,\n
      \   const char *internal_id_in)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RB_FIND
      Src: /src/tmux/hyperlinks.c:188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - hl
    - inner
    - uri_out
    - internal_id_out
    - external_id_out
    argTypes:
    - struct hyperlinks*
    - u_int
    - char**
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 197
    functionName: hyperlinks_get
    functionSourceFile: /src/tmux/hyperlinks.c
    functionUses: 1
    functionsReached:
    - RB_FIND
    linkageType: ''
    returnType: int
    signature: "int hyperlinks_get(struct hyperlinks *hl, u_int inner, const char
      **uri_out,\n    const char **internal_id_out, const char **external_id_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/hyperlinks.c:205,1
    - Dst: RB_INIT
      Src: /src/tmux/hyperlinks.c:207,1
    - Dst: RB_INIT
      Src: /src/tmux/hyperlinks.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 211
    functionName: hyperlinks_init
    functionSourceFile: /src/tmux/hyperlinks.c
    functionUses: 0
    functionsReached:
    - RB_INIT
    - xcalloc
    linkageType: ''
    returnType: struct hyperlinks
    signature: 'struct hyperlinks *

      hyperlinks_init(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hl
    argTypes:
    - struct hyperlinks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 219
    functionName: hyperlinks_copy
    functionSourceFile: /src/tmux/hyperlinks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct hyperlinks
    signature: 'struct hyperlinks *

      hyperlinks_copy(struct hyperlinks *hl)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH_SAFE
      Src: /src/tmux/hyperlinks.c:227,1
    - Dst: hyperlinks_remove
      Src: /src/tmux/hyperlinks.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hl
    argTypes:
    - struct hyperlinks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 229
    functionName: hyperlinks_reset
    functionSourceFile: /src/tmux/hyperlinks.c
    functionUses: 0
    functionsReached:
    - hyperlinks_remove
    - RB_FOREACH_SAFE
    linkageType: ''
    returnType: void
    signature: void hyperlinks_reset(struct hyperlinks *hl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hyperlinks_reset
      Src: /src/tmux/hyperlinks.c:236,1
    - Dst: free
      Src: /src/tmux/hyperlinks.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hl
    argTypes:
    - struct hyperlinks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 239
    functionName: hyperlinks_free
    functionSourceFile: /src/tmux/hyperlinks.c
    functionUses: 0
    functionsReached:
    - free
    - hyperlinks_reset
    linkageType: ''
    returnType: void
    signature: void hyperlinks_free(struct hyperlinks *hl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/tmux/cmd.c:242,1
    - Dst: xvasprintf
      Src: /src/tmux/cmd.c:243,1
    - Dst: va_end
      Src: /src/tmux/cmd.c:244,1
    - Dst: log_debug
      Src: /src/tmux/cmd.c:247,1
    - Dst: free
      Src: /src/tmux/cmd.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - argc
    - argv
    - fmt
    argTypes:
    - int
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 249
    functionName: cmd_log_argv
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached:
    - xvasprintf
    - free
    - va_end
    - va_start
    - log_debug
    linkageType: ''
    returnType: void
    signature: void cmd_log_argv(int argc, char **argv, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xreallocarray
      Src: /src/tmux/cmd.c:258,1
    - Dst: xstrdup
      Src: /src/tmux/cmd.c:259,1
    - Dst: free
      Src: /src/tmux/cmd.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - argc
    - argv
    - arg
    argTypes:
    - int*
    - char***
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 266
    functionName: cmd_prepend_argv
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached:
    - free
    - xstrdup
    - xreallocarray
    linkageType: ''
    returnType: void
    signature: void cmd_prepend_argv(int *argc, char ***argv, const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xreallocarray
      Src: /src/tmux/cmd.c:272,1
    - Dst: xstrdup
      Src: /src/tmux/cmd.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - argc
    - argv
    - arg
    argTypes:
    - int*
    - char***
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 274
    functionName: cmd_append_argv
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - xreallocarray
    linkageType: ''
    returnType: void
    signature: void cmd_append_argv(int *argc, char ***argv, const char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmd_log_argv
      Src: /src/tmux/cmd.c:285,1
    - Dst: strlcpy
      Src: /src/tmux/cmd.c:289,1
    - Dst: strlen
      Src: /src/tmux/cmd.c:291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - argc
    - argv
    - buf
    - len
    argTypes:
    - int
    - char**
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 297
    functionName: cmd_pack_argv
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached:
    - strlen
    - cmd_log_argv
    - strlcpy
    linkageType: ''
    returnType: int
    signature: int cmd_pack_argv(int argc, char **argv, char *buf, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/cmd.c:310,1
    - Dst: cmd_free_argv
      Src: /src/tmux/cmd.c:315,1
    - Dst: strlen
      Src: /src/tmux/cmd.c:319,1
    - Dst: xstrdup
      Src: /src/tmux/cmd.c:320,1
    - Dst: cmd_log_argv
      Src: /src/tmux/cmd.c:325,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - buf
    - len
    - argc
    - argv
    argTypes:
    - char*
    - size_t
    - int
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 328
    functionName: cmd_unpack_argv
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached:
    - cmd_log_argv
    - xcalloc
    - strlen
    - xstrdup
    - cmd_free_argv
    linkageType: ''
    returnType: int
    signature: int cmd_unpack_argv(char *buf, size_t len, int argc, char ***argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/cmd.c:339,1
    - Dst: xstrdup
      Src: /src/tmux/cmd.c:342,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 345
    functionName: cmd_copy_argv
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - xstrdup
    linkageType: ''
    returnType: char
    signature: 'char **

      cmd_copy_argv(int argc, char **argv)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/cmd.c:356,1
    - Dst: free
      Src: /src/tmux/cmd.c:357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 358
    functionName: cmd_free_argv
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 3
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cmd_free_argv(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/cmd.c:369,1
    - Dst: args_escape
      Src: /src/tmux/cmd.c:372,1
    - Dst: log_debug
      Src: /src/tmux/cmd.c:373,1
    - Dst: strlen
      Src: /src/tmux/cmd.c:375,1
    - Dst: xrealloc
      Src: /src/tmux/cmd.c:376,1
    - Dst: strlcat
      Src: /src/tmux/cmd.c:381,1
    - Dst: strlcat
      Src: /src/tmux/cmd.c:382,1
    - Dst: free
      Src: /src/tmux/cmd.c:384,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 387
    functionName: cmd_stringify_argv
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached:
    - args_escape
    - strlcat
    - free
    - xrealloc
    - log_debug
    - strlen
    - xstrdup
    linkageType: ''
    returnType: char
    signature: 'char *

      cmd_stringify_argv(int argc, char **argv)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - struct cmd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 394
    functionName: cmd_get_entry
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: struct cmd_entry
    signature: 'struct cmd_entry *

      cmd_get_entry(struct cmd *cmd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - struct cmd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 401
    functionName: cmd_get_args
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: struct args
    signature: 'struct args *

      cmd_get_args(struct cmd *cmd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - struct cmd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 408
    functionName: cmd_get_group
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int
    signature: u_int cmd_get_group(struct cmd *cmd)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - file
    - line
    argTypes:
    - struct cmd*
    - char**
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 418
    functionName: cmd_get_source
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cmd_get_source(struct cmd *cmd, const char **file, u_int *line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - struct cmd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 425
    functionName: cmd_get_parse_flags
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmd_get_parse_flags(struct cmd *cmd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: options_get_only
      Src: /src/tmux/cmd.c:437,1
    - Dst: strlen
      Src: /src/tmux/cmd.c:440,1
    - Dst: options_array_first
      Src: /src/tmux/cmd.c:442,1
    - Dst: options_array_item_value
      Src: /src/tmux/cmd.c:444,1
    - Dst: strchr
      Src: /src/tmux/cmd.c:446,1
    - Dst: strncmp
      Src: /src/tmux/cmd.c:449,1
    - Dst: xstrdup
      Src: /src/tmux/cmd.c:450,1
    - Dst: options_array_next
      Src: /src/tmux/cmd.c:453,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 456
    functionName: cmd_get_alias
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached:
    - options_array_first
    - strncmp
    - options_get_only
    - strchr
    - strlen
    - xstrdup
    - options_array_item_value
    - options_array_next
    linkageType: ''
    returnType: char
    signature: 'char *

      cmd_get_alias(const char *name)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/cmd.c:469,1
    - Dst: strncmp
      Src: /src/tmux/cmd.c:475,1
    - Dst: strlen
      Src: /src/tmux/cmd.c:475,1
    - Dst: strcmp
      Src: /src/tmux/cmd.c:481,1
    - Dst: xasprintf
      Src: /src/tmux/cmd.c:487,1
    - Dst: strncmp
      Src: /src/tmux/cmd.c:496,1
    - Dst: strlen
      Src: /src/tmux/cmd.c:496,1
    - Dst: strlcat
      Src: /src/tmux/cmd.c:498,1
    - Dst: strlcat
      Src: /src/tmux/cmd.c:500,1
    - Dst: strlen
      Src: /src/tmux/cmd.c:503,1
    - Dst: xasprintf
      Src: /src/tmux/cmd.c:504,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 2
    argNames:
    - name
    - cause
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 506
    functionName: cmd_find
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - strncmp
    - strlcat
    - strcmp
    - strlen
    linkageType: ''
    returnType: struct cmd_entry
    signature: 'struct cmd_entry *

      cmd_find(const char *name, char **cause)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/tmux/cmd.c:519,1
    - Dst: cmd_find
      Src: /src/tmux/cmd.c:522,1
    - Dst: args_parse
      Src: /src/tmux/cmd.c:526,1
    - Dst: xasprintf
      Src: /src/tmux/cmd.c:528,1
    - Dst: xasprintf
      Src: /src/tmux/cmd.c:532,1
    - Dst: free
      Src: /src/tmux/cmd.c:533,1
    - Dst: xcalloc
      Src: /src/tmux/cmd.c:537,1
    - Dst: xstrdup
      Src: /src/tmux/cmd.c:543,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 6
    argNames:
    - values
    - count
    - file
    - line
    - parse_flags
    - cause
    argTypes:
    - struct args_value*
    - u_int
    - char*
    - u_int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 509
    functionDepth: 2
    functionLinenumber: 509
    functionLinenumberEnd: 547
    functionName: cmd_parse
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - xcalloc
    - args_parse
    - cmd_find
    - free
    - xstrdup
    linkageType: ''
    returnType: struct cmd
    signature: "struct cmd *\ncmd_parse(struct args_value *values, u_int count, const
      char *file, u_int line,\n    int parse_flags, char **cause)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/cmd.c:553,1
    - Dst: args_free
      Src: /src/tmux/cmd.c:555,1
    - Dst: free
      Src: /src/tmux/cmd.c:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - struct cmd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 557
    functionName: cmd_free
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached:
    - free
    - args_free
    linkageType: ''
    returnType: void
    signature: void cmd_free(struct cmd *cmd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/cmd.c:565,1
    - Dst: args_copy
      Src: /src/tmux/cmd.c:567,1
    - Dst: xstrdup
      Src: /src/tmux/cmd.c:570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - cmd
    - argc
    - argv
    argTypes:
    - struct cmd*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 574
    functionName: cmd_copy
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached:
    - args_copy
    - xcalloc
    - xstrdup
    linkageType: ''
    returnType: struct cmd
    signature: 'struct cmd *

      cmd_copy(struct cmd *cmd, int argc, char **argv)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: args_print
      Src: /src/tmux/cmd.c:582,1
    - Dst: xasprintf
      Src: /src/tmux/cmd.c:584,1
    - Dst: xstrdup
      Src: /src/tmux/cmd.c:586,1
    - Dst: free
      Src: /src/tmux/cmd.c:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - struct cmd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 590
    functionName: cmd_print
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached:
    - args_print
    - free
    - xstrdup
    - xasprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      cmd_print(struct cmd *cmd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/cmd.c:598,1
    - Dst: xcalloc
      Src: /src/tmux/cmd.c:601,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/cmd.c:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 604
    functionName: cmd_list_new
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - TAILQ_INIT
    linkageType: ''
    returnType: struct cmd_list
    signature: 'struct cmd_list *

      cmd_list_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/cmd.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cmdlist
    - cmd
    argTypes:
    - struct cmd_list*
    - struct cmd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 612
    functionName: cmd_list_append
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached:
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: void
    signature: void cmd_list_append(struct cmd_list *cmdlist, struct cmd *cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/cmd.c:620,1
    - Dst: TAILQ_CONCAT
      Src: /src/tmux/cmd.c:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cmdlist
    - from
    argTypes:
    - struct cmd_list*
    - struct cmd_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 623
    functionName: cmd_list_append_all
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached:
    - TAILQ_CONCAT
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void cmd_list_append_all(struct cmd_list *cmdlist, struct cmd_list
      *from)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_CONCAT
      Src: /src/tmux/cmd.c:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cmdlist
    - from
    argTypes:
    - struct cmd_list*
    - struct cmd_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 631
    functionName: cmd_list_move
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached:
    - TAILQ_CONCAT
    linkageType: ''
    returnType: void
    signature: void cmd_list_move(struct cmd_list *cmdlist, struct cmd_list *from)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/cmd.c:642,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/cmd.c:643,1
    - Dst: cmd_free
      Src: /src/tmux/cmd.c:644,1
    - Dst: free
      Src: /src/tmux/cmd.c:646,1
    - Dst: free
      Src: /src/tmux/cmd.c:647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - cmdlist
    argTypes:
    - struct cmd_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 648
    functionName: cmd_list_free
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached:
    - cmd_free
    - TAILQ_FOREACH_SAFE
    - free
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void cmd_list_free(struct cmd_list *cmdlist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmd_list_print
      Src: /src/tmux/cmd.c:660,1
    - Dst: log_debug
      Src: /src/tmux/cmd.c:661,1
    - Dst: free
      Src: /src/tmux/cmd.c:662,1
    - Dst: cmd_list_new
      Src: /src/tmux/cmd.c:664,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/cmd.c:665,1
    - Dst: cmd_copy
      Src: /src/tmux/cmd.c:670,1
    - Dst: cmd_list_append
      Src: /src/tmux/cmd.c:671,1
    - Dst: cmd_list_print
      Src: /src/tmux/cmd.c:674,1
    - Dst: log_debug
      Src: /src/tmux/cmd.c:675,1
    - Dst: free
      Src: /src/tmux/cmd.c:676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - cmdlist
    - argc
    - argv
    argTypes:
    - struct cmd_list*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 651
    functionDepth: 2
    functionLinenumber: 651
    functionLinenumberEnd: 679
    functionName: cmd_list_copy
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached:
    - cmd_list_print
    - TAILQ_FOREACH
    - cmd_copy
    - free
    - log_debug
    - cmd_list_new
    - cmd_list_append
    linkageType: ''
    returnType: struct cmd_list
    signature: 'struct cmd_list *

      cmd_list_copy(const struct cmd_list *cmdlist, int argc, char **argv)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/cmd.c:695,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/cmd.c:697,1
    - Dst: cmd_print
      Src: /src/tmux/cmd.c:698,1
    - Dst: strlen
      Src: /src/tmux/cmd.c:700,1
    - Dst: xrealloc
      Src: /src/tmux/cmd.c:701,1
    - Dst: strlcat
      Src: /src/tmux/cmd.c:703,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/cmd.c:705,1
    - Dst: strlcat
      Src: /src/tmux/cmd.c:711,1
    - Dst: free
      Src: /src/tmux/cmd.c:714,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - cmdlist
    - flags
    argTypes:
    - struct cmd_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 682
    functionDepth: 2
    functionLinenumber: 682
    functionLinenumberEnd: 718
    functionName: cmd_list_print
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 1
    functionsReached:
    - cmd_print
    - TAILQ_FOREACH
    - xcalloc
    - strlcat
    - free
    - xrealloc
    - strlen
    - TAILQ_NEXT
    linkageType: ''
    returnType: char
    signature: 'char *

      cmd_list_print(const struct cmd_list *cmdlist, int flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/cmd.c:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cmdlist
    argTypes:
    - struct cmd_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 725
    functionName: cmd_list_first
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    linkageType: ''
    returnType: struct cmd
    signature: 'struct cmd *

      cmd_list_first(struct cmd_list *cmdlist)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_NEXT
      Src: /src/tmux/cmd.c:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - struct cmd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 732
    functionName: cmd_list_next
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached:
    - TAILQ_NEXT
    linkageType: ''
    returnType: struct cmd
    signature: 'struct cmd *

      cmd_list_next(struct cmd *cmd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/cmd.c:740,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cmdlist
    - flag
    argTypes:
    - struct cmd_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 735
    functionDepth: 0
    functionLinenumber: 735
    functionLinenumberEnd: 745
    functionName: cmd_list_all_have
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH
    linkageType: ''
    returnType: int
    signature: int cmd_list_all_have(struct cmd_list *cmdlist, int flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/cmd.c:753,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cmdlist
    - flag
    argTypes:
    - struct cmd_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 758
    functionName: cmd_list_any_have
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH
    linkageType: ''
    returnType: int
    signature: int cmd_list_any_have(struct cmd_list *cmdlist, int flag)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/cmd.c:774,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 5
    argNames:
    - wp
    - m
    - xp
    - yp
    - last
    argTypes:
    - struct window_pane*
    - struct mouse_event*
    - u_int*
    - u_int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 789
    functionName: cmd_mouse_at
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached:
    - log_debug
    linkageType: ''
    returnType: int
    signature: "int cmd_mouse_at(struct window_pane *wp, struct mouse_event *m, u_int
      *xp,\n    u_int *yp, int last)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: session_find_by_id
      Src: /src/tmux/cmd.c:801,1
    - Dst: window_find_by_id
      Src: /src/tmux/cmd.c:806,1
    - Dst: winlink_find_by_window
      Src: /src/tmux/cmd.c:808,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - m
    - sp
    argTypes:
    - struct mouse_event*
    - struct session**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 813
    functionName: cmd_mouse_window
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 1
    functionsReached:
    - session_find_by_id
    - window_find_by_id
    - winlink_find_by_window
    linkageType: ''
    returnType: struct winlink
    signature: 'struct winlink *

      cmd_mouse_window(struct mouse_event *m, struct session **sp)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cmd_mouse_window
      Src: /src/tmux/cmd.c:823,1
    - Dst: window_pane_find_by_id
      Src: /src/tmux/cmd.c:828,1
    - Dst: window_has_pane
      Src: /src/tmux/cmd.c:830,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - m
    - sp
    - wlp
    argTypes:
    - struct mouse_event*
    - struct session**
    - struct winlink**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 816
    functionDepth: 2
    functionLinenumber: 816
    functionLinenumberEnd: 837
    functionName: cmd_mouse_pane
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 2
    functionsReached:
    - window_pane_find_by_id
    - window_has_pane
    - cmd_mouse_window
    linkageType: ''
    returnType: struct window_pane
    signature: "struct window_pane *\ncmd_mouse_pane(struct mouse_event *m, struct
      session **sp,\n    struct winlink **wlp)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/tmux/cmd.c:848,1
    - Dst: xstrdup
      Src: /src/tmux/cmd.c:849,1
    - Dst: xmalloc
      Src: /src/tmux/cmd.c:851,1
    - Dst: xrealloc
      Src: /src/tmux/cmd.c:871,1
    - Dst: strlen
      Src: /src/tmux/cmd.c:871,1
    - Dst: strchr
      Src: /src/tmux/cmd.c:873,1
    - Dst: xrealloc
      Src: /src/tmux/cmd.c:880,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 2
    argNames:
    - s
    - idx
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 840
    functionDepth: 1
    functionLinenumber: 840
    functionLinenumberEnd: 886
    functionName: cmd_template_replace
    functionSourceFile: /src/tmux/cmd.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - strchr
    - xrealloc
    - strlen
    - xstrdup
    linkageType: ''
    returnType: char
    signature: 'char *

      cmd_template_replace(const char *template, const char *s, int idx)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get_name
      Src: /src/tmux/spawn.c:57,1
    - Dst: log_debug
      Src: /src/tmux/spawn.c:60,1
    - Dst: xsnprintf
      Src: /src/tmux/spawn.c:63,1
    - Dst: xsnprintf
      Src: /src/tmux/spawn.c:65,1
    - Dst: xsnprintf
      Src: /src/tmux/spawn.c:67,1
    - Dst: xsnprintf
      Src: /src/tmux/spawn.c:69,1
    - Dst: log_debug
      Src: /src/tmux/spawn.c:70,1
    - Dst: log_debug
      Src: /src/tmux/spawn.c:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - from
    - sc
    argTypes:
    - char*
    - struct spawn_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 72
    functionName: spawn_log
    functionSourceFile: /src/tmux/spawn.c
    functionUses: 0
    functionsReached:
    - log_debug
    - xsnprintf
    - cmdq_get_name
    linkageType: ''
    returnType: void
    signature: void spawn_log(const char *from, struct spawn_context *sc)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get_client
      Src: /src/tmux/spawn.c:78,1
    - Dst: spawn_log
      Src: /src/tmux/spawn.c:87,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/spawn.c:96,1
    - Dst: xasprintf
      Src: /src/tmux/spawn.c:101,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/spawn.c:107,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/spawn.c:108,1
    - Dst: layout_free
      Src: /src/tmux/spawn.c:110,1
    - Dst: window_destroy_panes
      Src: /src/tmux/spawn.c:111,1
    - Dst: TAILQ_INSERT_HEAD
      Src: /src/tmux/spawn.c:113,1
    - Dst: window_pane_resize
      Src: /src/tmux/spawn.c:114,1
    - Dst: layout_init
      Src: /src/tmux/spawn.c:116,1
    - Dst: window_set_active_pane
      Src: /src/tmux/spawn.c:118,1
    - Dst: winlink_find_by_index
      Src: /src/tmux/spawn.c:126,1
    - Dst: xasprintf
      Src: /src/tmux/spawn.c:128,1
    - Dst: notify_session_window
      Src: /src/tmux/spawn.c:137,1
    - Dst: winlink_stack_remove
      Src: /src/tmux/spawn.c:138,1
    - Dst: winlink_remove
      Src: /src/tmux/spawn.c:139,1
    - Dst: options_get_number
      Src: /src/tmux/spawn.c:151,1
    - Dst: winlink_add
      Src: /src/tmux/spawn.c:152,1
    - Dst: xasprintf
      Src: /src/tmux/spawn.c:153,1
    - Dst: default_window_size
      Src: /src/tmux/spawn.c:156,1
    - Dst: window_create
      Src: /src/tmux/spawn.c:158,1
    - Dst: winlink_remove
      Src: /src/tmux/spawn.c:159,1
    - Dst: xasprintf
      Src: /src/tmux/spawn.c:160,1
    - Dst: winlink_set_window
      Src: /src/tmux/spawn.c:167,1
    - Dst: spawn_pane
      Src: /src/tmux/spawn.c:173,1
    - Dst: winlink_remove
      Src: /src/tmux/spawn.c:176,1
    - Dst: free
      Src: /src/tmux/spawn.c:182,1
    - Dst: format_single
      Src: /src/tmux/spawn.c:184,1
    - Dst: clean_name
      Src: /src/tmux/spawn.c:185,1
    - Dst: free
      Src: /src/tmux/spawn.c:186,1
    - Dst: xstrdup
      Src: /src/tmux/spawn.c:188,1
    - Dst: options_set_number
      Src: /src/tmux/spawn.c:189,1
    - Dst: default_window_name
      Src: /src/tmux/spawn.c:191,1
    - Dst: session_select
      Src: /src/tmux/spawn.c:196,1
    - Dst: notify_session_window
      Src: /src/tmux/spawn.c:200,1
    - Dst: session_group_synchronize_from
      Src: /src/tmux/spawn.c:202,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 86
    argCount: 2
    argNames:
    - sc
    - cause
    argTypes:
    - struct spawn_context*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 74
    functionDepth: 4
    functionLinenumber: 74
    functionLinenumberEnd: 204
    functionName: spawn_window
    functionSourceFile: /src/tmux/spawn.c
    functionUses: 1
    functionsReached:
    - TAILQ_INSERT_HEAD
    - window_create
    - cmdq_get_client
    - winlink_stack_remove
    - session_select
    - default_window_name
    - window_pane_resize
    - session_group_synchronize_from
    - default_window_size
    - spawn_pane
    - xstrdup
    - layout_free
    - clean_name
    - TAILQ_FIRST
    - winlink_set_window
    - notify_session_window
    - winlink_find_by_index
    - window_destroy_panes
    - TAILQ_REMOVE
    - xasprintf
    - spawn_log
    - layout_init
    - TAILQ_FOREACH
    - winlink_remove
    - free
    - format_single
    - options_set_number
    - winlink_add
    - options_get_number
    - window_set_active_pane
    linkageType: ''
    returnType: struct winlink
    signature: 'struct winlink *

      spawn_window(struct spawn_context *sc, char **cause)'
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get_target
      Src: /src/tmux/spawn.c:210,1
    - Dst: cmdq_get_client
      Src: /src/tmux/spawn.c:211,1
    - Dst: find_home
      Src: /src/tmux/spawn.c:219,1
    - Dst: spawn_log
      Src: /src/tmux/spawn.c:229,1
    - Dst: format_single
      Src: /src/tmux/spawn.c:236,1
    - Dst: xasprintf
      Src: /src/tmux/spawn.c:238,1
    - Dst: server_client_get_cwd
      Src: /src/tmux/spawn.c:239,1
    - Dst: free
      Src: /src/tmux/spawn.c:241,1
    - Dst: xstrdup
      Src: /src/tmux/spawn.c:245,1
    - Dst: server_client_get_cwd
      Src: /src/tmux/spawn.c:245,1
    - Dst: options_get_number
      Src: /src/tmux/spawn.c:253,1
    - Dst: window_pane_index
      Src: /src/tmux/spawn.c:256,1
    - Dst: xasprintf
      Src: /src/tmux/spawn.c:257,1
    - Dst: free
      Src: /src/tmux/spawn.c:259,1
    - Dst: bufferevent_free
      Src: /src/tmux/spawn.c:263,1
    - Dst: close
      Src: /src/tmux/spawn.c:264,1
    - Dst: window_pane_reset_mode_all
      Src: /src/tmux/spawn.c:266,1
    - Dst: screen_reinit
      Src: /src/tmux/spawn.c:267,1
    - Dst: input_free
      Src: /src/tmux/spawn.c:268,1
    - Dst: window_add_pane
      Src: /src/tmux/spawn.c:273,1
    - Dst: layout_init
      Src: /src/tmux/spawn.c:274,1
    - Dst: window_add_pane
      Src: /src/tmux/spawn.c:276,1
    - Dst: layout_assign_pane
      Src: /src/tmux/spawn.c:278,1
    - Dst: layout_assign_pane
      Src: /src/tmux/spawn.c:280,1
    - Dst: options_get_string
      Src: /src/tmux/spawn.c:296,1
    - Dst: free
      Src: /src/tmux/spawn.c:309,1
    - Dst: cmd_free_argv
      Src: /src/tmux/spawn.c:318,1
    - Dst: cmd_copy_argv
      Src: /src/tmux/spawn.c:320,1
    - Dst: environ_for_session
      Src: /src/tmux/spawn.c:324,1
    - Dst: environ_copy
      Src: /src/tmux/spawn.c:326,1
    - Dst: environ_set
      Src: /src/tmux/spawn.c:327,1
    - Dst: environ_find
      Src: /src/tmux/spawn.c:335,1
    - Dst: environ_set
      Src: /src/tmux/spawn.c:337,1
    - Dst: environ_find
      Src: /src/tmux/spawn.c:339,1
    - Dst: environ_set
      Src: /src/tmux/spawn.c:340,1
    - Dst: options_get_string
      Src: /src/tmux/spawn.c:344,1
    - Dst: checkshell
      Src: /src/tmux/spawn.c:345,1
    - Dst: free
      Src: /src/tmux/spawn.c:347,1
    - Dst: xstrdup
      Src: /src/tmux/spawn.c:348,1
    - Dst: environ_set
      Src: /src/tmux/spawn.c:350,1
    - Dst: log_debug
      Src: /src/tmux/spawn.c:353,1
    - Dst: cmd_stringify_argv
      Src: /src/tmux/spawn.c:355,1
    - Dst: log_debug
      Src: /src/tmux/spawn.c:356,1
    - Dst: free
      Src: /src/tmux/spawn.c:357,1
    - Dst: log_debug
      Src: /src/tmux/spawn.c:359,1
    - Dst: cmd_log_argv
      Src: /src/tmux/spawn.c:360,1
    - Dst: environ_log
      Src: /src/tmux/spawn.c:361,1
    - Dst: memset
      Src: /src/tmux/spawn.c:364,1
    - Dst: screen_size_x
      Src: /src/tmux/spawn.c:365,1
    - Dst: screen_size_y
      Src: /src/tmux/spawn.c:366,1
    - Dst: sigfillset
      Src: /src/tmux/spawn.c:371,1
    - Dst: sigprocmask
      Src: /src/tmux/spawn.c:372,1
    - Dst: getcwd
      Src: /src/tmux/spawn.c:383,1
    - Dst: chdir
      Src: /src/tmux/spawn.c:384,1
    - Dst: chdir
      Src: /src/tmux/spawn.c:386,1
    - Dst: chdir
      Src: /src/tmux/spawn.c:388,1
    - Dst: fdforkpty
      Src: /src/tmux/spawn.c:393,1
    - Dst: xasprintf
      Src: /src/tmux/spawn.c:395,1
    - Dst: strerror
      Src: /src/tmux/spawn.c:395,1
    - Dst: server_client_remove_pane
      Src: /src/tmux/spawn.c:398,1
    - Dst: layout_close_pane
      Src: /src/tmux/spawn.c:399,1
    - Dst: window_remove_pane
      Src: /src/tmux/spawn.c:400,1
    - Dst: sigprocmask
      Src: /src/tmux/spawn.c:402,1
    - Dst: environ_free
      Src: /src/tmux/spawn.c:403,1
    - Dst: chdir
      Src: /src/tmux/spawn.c:413,1
    - Dst: chdir
      Src: /src/tmux/spawn.c:414,1
    - Dst: chdir
      Src: /src/tmux/spawn.c:415,1
    - Dst: systemd_move_to_new_cgroup
      Src: /src/tmux/spawn.c:423,1
    - Dst: log_debug
      Src: /src/tmux/spawn.c:424,1
    - Dst: free
      Src: /src/tmux/spawn.c:426,1
    - Dst: environ_set
      Src: /src/tmux/spawn.c:433,1
    - Dst: tcgetattr
      Src: /src/tmux/spawn.c:439,1
    - Dst: _exit
      Src: /src/tmux/spawn.c:440,1
    - Dst: memcpy
      Src: /src/tmux/spawn.c:442,1
    - Dst: options_get_number
      Src: /src/tmux/spawn.c:443,1
    - Dst: tcsetattr
      Src: /src/tmux/spawn.c:451,1
    - Dst: _exit
      Src: /src/tmux/spawn.c:452,1
    - Dst: proc_clear_signals
      Src: /src/tmux/spawn.c:455,1
    - Dst: closefrom
      Src: /src/tmux/spawn.c:456,1
    - Dst: sigprocmask
      Src: /src/tmux/spawn.c:457,1
    - Dst: log_close
      Src: /src/tmux/spawn.c:458,1
    - Dst: environ_push
      Src: /src/tmux/spawn.c:459,1
    - Dst: cmd_copy_argv
      Src: /src/tmux/spawn.c:466,1
    - Dst: execvp
      Src: /src/tmux/spawn.c:467,1
    - Dst: _exit
      Src: /src/tmux/spawn.c:468,1
    - Dst: strrchr
      Src: /src/tmux/spawn.c:475,1
    - Dst: xasprintf
      Src: /src/tmux/spawn.c:479,1
    - Dst: xasprintf
      Src: /src/tmux/spawn.c:481,1
    - Dst: execl
      Src: /src/tmux/spawn.c:482,1
    - Dst: _exit
      Src: /src/tmux/spawn.c:483,1
    - Dst: xasprintf
      Src: /src/tmux/spawn.c:486,1
    - Dst: xasprintf
      Src: /src/tmux/spawn.c:488,1
    - Dst: execl
      Src: /src/tmux/spawn.c:489,1
    - Dst: _exit
      Src: /src/tmux/spawn.c:490,1
    - Dst: xasprintf
      Src: /src/tmux/spawn.c:495,1
    - Dst: getpid
      Src: /src/tmux/spawn.c:495,1
    - Dst: utempter_add_record
      Src: /src/tmux/spawn.c:496,1
    - Dst: kill
      Src: /src/tmux/spawn.c:497,1
    - Dst: getpid
      Src: /src/tmux/spawn.c:497,1
    - Dst: free
      Src: /src/tmux/spawn.c:498,1
    - Dst: sigprocmask
      Src: /src/tmux/spawn.c:504,1
    - Dst: window_pane_set_event
      Src: /src/tmux/spawn.c:505,1
    - Dst: environ_free
      Src: /src/tmux/spawn.c:507,1
    - Dst: window_set_active_pane
      Src: /src/tmux/spawn.c:513,1
    - Dst: window_set_active_pane
      Src: /src/tmux/spawn.c:515,1
    - Dst: notify_window
      Src: /src/tmux/spawn.c:518,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 198
    argCount: 2
    argNames:
    - sc
    - cause
    argTypes:
    - struct spawn_context*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 206
    functionDepth: 6
    functionLinenumber: 206
    functionLinenumberEnd: 520
    functionName: spawn_pane
    functionSourceFile: /src/tmux/spawn.c
    functionUses: 1
    functionsReached:
    - getcwd
    - layout_assign_pane
    - closefrom
    - environ_log
    - screen_size_x
    - bufferevent_free
    - input_free
    - environ_for_session
    - cmdq_get_client
    - getpid
    - cmd_free_argv
    - window_pane_index
    - find_home
    - fdforkpty
    - screen_size_y
    - execl
    - notify_window
    - tcgetattr
    - cmd_log_argv
    - kill
    - sigfillset
    - environ_set
    - proc_clear_signals
    - cmd_stringify_argv
    - strerror
    - memcpy
    - log_debug
    - cmd_copy_argv
    - _exit
    - server_client_remove_pane
    - xstrdup
    - systemd_move_to_new_cgroup
    - window_remove_pane
    - close
    - environ_find
    - environ_push
    - log_close
    - checkshell
    - memset
    - window_add_pane
    - window_pane_set_event
    - environ_copy
    - cmdq_get_target
    - xasprintf
    - spawn_log
    - screen_reinit
    - layout_init
    - sigprocmask
    - chdir
    - layout_close_pane
    - environ_free
    - execvp
    - strrchr
    - server_client_get_cwd
    - tcsetattr
    - window_pane_reset_mode_all
    - format_single
    - free
    - utempter_add_record
    - options_get_number
    - options_get_string
    - window_set_active_pane
    linkageType: ''
    returnType: struct window_pane
    signature: 'struct window_pane *

      spawn_pane(struct spawn_context *sc, char **cause)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tcgetpgrp
      Src: /src/tmux/osdep-haiku.c:32,1
    - Dst: get_team_info
      Src: /src/tmux/osdep-haiku.c:35,1
    - Dst: xstrdup
      Src: /src/tmux/osdep-haiku.c:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - tty
    argTypes:
    - int
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 40
    functionName: osdep_get_name
    functionSourceFile: /src/tmux/osdep-haiku.c
    functionUses: 0
    functionsReached:
    - get_team_info
    - tcgetpgrp
    - xstrdup
    linkageType: ''
    returnType: char
    signature: 'char *

      osdep_get_name(int fd, __unused char *tty)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - int
    argTypes:
    - __unused
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: osdep_get_cwd
    functionSourceFile: /src/tmux/osdep-haiku.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      osdep_get_cwd(__unused int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_init
      Src: /src/tmux/osdep-haiku.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: osdep_event_init
    functionSourceFile: /src/tmux/osdep-haiku.c
    functionUses: 0
    functionsReached:
    - event_init
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      osdep_event_init(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - gce
    - gc
    - c
    argTypes:
    - struct grid_cell_entry*
    - struct grid_cell*
    - u_char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 76
    functionName: grid_store_cell
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void grid_store_cell(struct grid_cell_entry *gce, const struct grid_cell
      *gc,\n    u_char c)"
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - gce
    - gc
    argTypes:
    - struct grid_cell_entry*
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 98
    functionName: grid_need_extended_cell
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int grid_need_extended_cell(const struct grid_cell_entry *gce,\n    const
      struct grid_cell *gc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xreallocarray
      Src: /src/tmux/grid.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - gl
    - gce
    - flags
    argTypes:
    - struct grid_line*
    - struct grid_cell_entry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: grid_get_extended_cell
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - xreallocarray
    linkageType: ''
    returnType: void
    signature: "void grid_get_extended_cell(struct grid_line *gl, struct grid_cell_entry
      *gce,\n    int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_extended_cell
      Src: /src/tmux/grid.c:124,1
    - Dst: fatalx
      Src: /src/tmux/grid.c:126,1
    - Dst: utf8_from_data
      Src: /src/tmux/grid.c:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - gl
    - gce
    - gc
    argTypes:
    - struct grid_line*
    - struct grid_cell_entry*
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 143
    functionName: grid_extended_cell
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - utf8_from_data
    - grid_get_extended_cell
    - fatalx
    linkageType: ''
    returnType: struct grid_extd_entry
    signature: "struct grid_extd_entry *\ngrid_extended_cell(struct grid_line *gl,
      struct grid_cell_entry *gce,\n    const struct grid_cell *gc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/grid.c:165,1
    - Dst: xreallocarray
      Src: /src/tmux/grid.c:170,1
    - Dst: memcpy
      Src: /src/tmux/grid.c:177,1
    - Dst: free
      Src: /src/tmux/grid.c:182,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - gl
    argTypes:
    - struct grid_line*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 185
    functionName: grid_compact_line
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - free
    - memcpy
    - xreallocarray
    linkageType: ''
    returnType: void
    signature: void grid_compact_line(struct grid_line *gl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gd
    - line
    argTypes:
    - struct grid*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: grid_get_line
    functionSourceFile: /src/tmux/grid.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: struct grid_line
    signature: 'struct grid_line *

      grid_get_line(struct grid *gd, u_int line)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xreallocarray
      Src: /src/tmux/grid.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gd
    - lines
    argTypes:
    - struct grid*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: grid_adjust_lines
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - xreallocarray
    linkageType: ''
    returnType: void
    signature: void grid_adjust_lines(struct grid *gd, u_int lines)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/grid.c:211,1
    - Dst: grid_extended_cell
      Src: /src/tmux/grid.c:215,1
    - Dst: grid_get_extended_cell
      Src: /src/tmux/grid.c:220,1
    - Dst: grid_extended_cell
      Src: /src/tmux/grid.c:221,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 5
    argNames:
    - gd
    - px
    - py
    - bg
    - moved
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - u_int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 229
    functionName: grid_clear_cell
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - grid_extended_cell
    - grid_get_extended_cell
    - memcpy
    linkageType: ''
    returnType: void
    signature: void grid_clear_cell(struct grid *gd, u_int px, u_int py, u_int bg,
      int moved)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/grid.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - gd
    - from
    - py
    argTypes:
    - struct grid*
    - char*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 240
    functionName: grid_check_y
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - log_debug
    linkageType: ''
    returnType: int
    signature: int grid_check_y(struct grid *gd, const char *from, u_int py)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - gc1
    - gc2
    argTypes:
    - struct grid_cell*
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 257
    functionName: grid_cells_look_equal
    functionSourceFile: /src/tmux/grid.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int grid_cells_look_equal(const struct grid_cell *gc1, const struct
      grid_cell *gc2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: grid_cells_look_equal
      Src: /src/tmux/grid.c:263,1
    - Dst: memcmp
      Src: /src/tmux/grid.c:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - gc1
    - gc2
    argTypes:
    - struct grid_cell*
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 270
    functionName: grid_cells_equal
    functionSourceFile: /src/tmux/grid.c
    functionUses: 1
    functionsReached:
    - grid_cells_look_equal
    - memcmp
    linkageType: ''
    returnType: int
    signature: int grid_cells_equal(const struct grid_cell *gc1, const struct grid_cell
      *gc2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/tmux/grid.c:276,1
    - Dst: memset
      Src: /src/tmux/grid.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - gc
    - width
    argTypes:
    - struct grid_cell*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 281
    functionName: grid_set_tab
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void grid_set_tab(struct grid_cell *gc, u_int width)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/grid.c:287,1
    - Dst: free
      Src: /src/tmux/grid.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - gd
    - py
    argTypes:
    - struct grid*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 291
    functionName: grid_free_line
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void grid_free_line(struct grid *gd, u_int py)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grid_free_line
      Src: /src/tmux/grid.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - gd
    - py
    - ny
    argTypes:
    - struct grid*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 301
    functionName: grid_free_lines
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - grid_free_line
    linkageType: ''
    returnType: void
    signature: void grid_free_lines(struct grid *gd, u_int py, u_int ny)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/tmux/grid.c:309,1
    - Dst: xcalloc
      Src: /src/tmux/grid.c:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - sx
    - sy
    - hlimit
    argTypes:
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 328
    functionName: grid_create
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - xmalloc
    linkageType: ''
    returnType: struct grid
    signature: 'struct grid *

      grid_create(u_int sx, u_int sy, u_int hlimit)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grid_free_lines
      Src: /src/tmux/grid.c:334,1
    - Dst: free
      Src: /src/tmux/grid.c:336,1
    - Dst: free
      Src: /src/tmux/grid.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - gd
    argTypes:
    - struct grid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 339
    functionName: grid_destroy
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - free
    - grid_free_lines
    linkageType: ''
    returnType: void
    signature: void grid_destroy(struct grid *gd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_cell
      Src: /src/tmux/grid.c:358,1
    - Dst: grid_get_cell
      Src: /src/tmux/grid.c:359,1
    - Dst: grid_cells_equal
      Src: /src/tmux/grid.c:360,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - ga
    - gb
    argTypes:
    - struct grid*
    - struct grid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 366
    functionName: grid_compare
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - grid_get_cell
    - grid_cells_equal
    linkageType: ''
    returnType: int
    signature: int grid_compare(struct grid *ga, struct grid *gb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grid_free_lines
      Src: /src/tmux/grid.c:374,1
    - Dst: memmove
      Src: /src/tmux/grid.c:376,1
    - Dst: memset
      Src: /src/tmux/grid.c:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - gd
    - ny
    argTypes:
    - struct grid*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 379
    functionName: grid_trim_history
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - memmove
    - memset
    - grid_free_lines
    linkageType: ''
    returnType: void
    signature: void grid_trim_history(struct grid *gd, u_int ny)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: grid_trim_history
      Src: /src/tmux/grid.c:406,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - gd
    - all
    argTypes:
    - struct grid*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 411
    functionName: grid_collect_history
    functionSourceFile: /src/tmux/grid.c
    functionUses: 1
    functionsReached:
    - grid_trim_history
    linkageType: ''
    returnType: void
    signature: void grid_collect_history(struct grid *gd, int all)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: grid_free_line
      Src: /src/tmux/grid.c:422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - gd
    - ny
    argTypes:
    - struct grid*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 424
    functionName: grid_remove_history
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - grid_free_line
    linkageType: ''
    returnType: void
    signature: void grid_remove_history(struct grid *gd, u_int ny)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xreallocarray
      Src: /src/tmux/grid.c:436,1
    - Dst: grid_empty_line
      Src: /src/tmux/grid.c:438,1
    - Dst: grid_compact_line
      Src: /src/tmux/grid.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - gd
    - bg
    argTypes:
    - struct grid*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 444
    functionName: grid_scroll_history
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - grid_empty_line
    - xreallocarray
    - grid_compact_line
    linkageType: ''
    returnType: void
    signature: void grid_scroll_history(struct grid *gd, u_int bg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grid_trim_history
      Src: /src/tmux/grid.c:450,1
    - Dst: xreallocarray
      Src: /src/tmux/grid.c:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - gd
    argTypes:
    - struct grid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 447
    functionDepth: 3
    functionLinenumber: 447
    functionLinenumberEnd: 457
    functionName: grid_clear_history
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - grid_trim_history
    - xreallocarray
    linkageType: ''
    returnType: void
    signature: void grid_clear_history(struct grid *gd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xreallocarray
      Src: /src/tmux/grid.c:468,1
    - Dst: memmove
      Src: /src/tmux/grid.c:473,1
    - Dst: memcpy
      Src: /src/tmux/grid.c:481,1
    - Dst: memmove
      Src: /src/tmux/grid.c:485,1
    - Dst: grid_empty_line
      Src: /src/tmux/grid.c:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 4
    argNames:
    - gd
    - upper
    - lower
    - bg
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 491
    functionName: grid_scroll_history_region
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - memmove
    - grid_empty_line
    - memcpy
    - xreallocarray
    linkageType: ''
    returnType: void
    signature: void grid_scroll_history_region(struct grid *gd, u_int upper, u_int
      lower, u_int bg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xreallocarray
      Src: /src/tmux/grid.c:511,1
    - Dst: memset
      Src: /src/tmux/grid.c:514,1
    - Dst: grid_clear_cell
      Src: /src/tmux/grid.c:518,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - gd
    - py
    - sx
    - bg
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 494
    functionDepth: 4
    functionLinenumber: 494
    functionLinenumberEnd: 520
    functionName: grid_expand_line
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - memset
    - grid_clear_cell
    - xreallocarray
    linkageType: ''
    returnType: void
    signature: void grid_expand_line(struct grid *gd, u_int py, u_int sx, u_int bg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/tmux/grid.c:526,1
    - Dst: COLOUR_DEFAULT
      Src: /src/tmux/grid.c:527,1
    - Dst: grid_expand_line
      Src: /src/tmux/grid.c:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - gd
    - py
    - bg
    argTypes:
    - struct grid*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 523
    functionDepth: 5
    functionLinenumber: 523
    functionLinenumberEnd: 529
    functionName: grid_empty_line
    functionSourceFile: /src/tmux/grid.c
    functionUses: 2
    functionsReached:
    - memset
    - grid_expand_line
    - COLOUR_DEFAULT
    linkageType: ''
    returnType: void
    signature: void grid_empty_line(struct grid *gd, u_int py, u_int bg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: grid_check_y
      Src: /src/tmux/grid.c:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - gd
    - py
    argTypes:
    - struct grid*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 538
    functionName: grid_peek_line
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - grid_check_y
    linkageType: ''
    returnType: struct grid_line
    signature: 'struct grid_line *

      grid_peek_line(struct grid *gd, u_int py)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/grid.c:549,1
    - Dst: grid_set_tab
      Src: /src/tmux/grid.c:560,1
    - Dst: utf8_to_data
      Src: /src/tmux/grid.c:562,1
    - Dst: utf8_set
      Src: /src/tmux/grid.c:576,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - gl
    - px
    - gc
    argTypes:
    - struct grid_line*
    - u_int
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 578
    functionName: grid_get_cell1
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - grid_set_tab
    - utf8_to_data
    - memcpy
    - utf8_set
    linkageType: ''
    returnType: void
    signature: void grid_get_cell1(struct grid_line *gl, u_int px, struct grid_cell
      *gc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: grid_check_y
      Src: /src/tmux/grid.c:584,1
    - Dst: memcpy
      Src: /src/tmux/grid.c:586,1
    - Dst: grid_get_cell1
      Src: /src/tmux/grid.c:588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - gd
    - px
    - py
    - gc
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 581
    functionDepth: 2
    functionLinenumber: 581
    functionLinenumberEnd: 589
    functionName: grid_get_cell
    functionSourceFile: /src/tmux/grid.c
    functionUses: 8
    functionsReached:
    - grid_check_y
    - memcpy
    - grid_get_cell1
    linkageType: ''
    returnType: void
    signature: void grid_get_cell(struct grid *gd, u_int px, u_int py, struct grid_cell
      *gc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: grid_check_y
      Src: /src/tmux/grid.c:598,1
    - Dst: grid_expand_line
      Src: /src/tmux/grid.c:601,1
    - Dst: grid_need_extended_cell
      Src: /src/tmux/grid.c:608,1
    - Dst: grid_extended_cell
      Src: /src/tmux/grid.c:609,1
    - Dst: grid_store_cell
      Src: /src/tmux/grid.c:611,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - gd
    - px
    - py
    - gc
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 592
    functionDepth: 5
    functionLinenumber: 592
    functionLinenumberEnd: 612
    functionName: grid_set_cell
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - grid_extended_cell
    - grid_check_y
    - grid_expand_line
    - grid_store_cell
    - grid_need_extended_cell
    linkageType: ''
    returnType: void
    signature: void grid_set_cell(struct grid *gd, u_int px, u_int py, const struct
      grid_cell *gc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grid_set_cell
      Src: /src/tmux/grid.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gd
    - px
    - py
    argTypes:
    - struct grid*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 615
    functionDepth: 6
    functionLinenumber: 615
    functionLinenumberEnd: 619
    functionName: grid_set_padding
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - grid_set_cell
    linkageType: ''
    returnType: void
    signature: void grid_set_padding(struct grid *gd, u_int px, u_int py)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: grid_check_y
      Src: /src/tmux/grid.c:631,1
    - Dst: grid_expand_line
      Src: /src/tmux/grid.c:634,1
    - Dst: grid_need_extended_cell
      Src: /src/tmux/grid.c:642,1
    - Dst: grid_extended_cell
      Src: /src/tmux/grid.c:643,1
    - Dst: utf8_build_one
      Src: /src/tmux/grid.c:644,1
    - Dst: grid_store_cell
      Src: /src/tmux/grid.c:646,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - gd
    - px
    - py
    - gc
    - s
    - slen
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - struct grid_cell*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 622
    functionDepth: 5
    functionLinenumber: 622
    functionLinenumberEnd: 648
    functionName: grid_set_cells
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - grid_extended_cell
    - grid_check_y
    - utf8_build_one
    - grid_expand_line
    - grid_store_cell
    - grid_need_extended_cell
    linkageType: ''
    returnType: void
    signature: "void grid_set_cells(struct grid *gd, u_int px, u_int py, const struct
      grid_cell *gc,\n    const char *s, size_t slen)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: grid_clear_lines
      Src: /src/tmux/grid.c:661,1
    - Dst: grid_check_y
      Src: /src/tmux/grid.c:665,1
    - Dst: grid_check_y
      Src: /src/tmux/grid.c:667,1
    - Dst: COLOUR_DEFAULT
      Src: /src/tmux/grid.c:677,1
    - Dst: grid_expand_line
      Src: /src/tmux/grid.c:684,1
    - Dst: grid_clear_cell
      Src: /src/tmux/grid.c:686,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 6
    argNames:
    - gd
    - px
    - py
    - nx
    - ny
    - bg
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 651
    functionDepth: 5
    functionLinenumber: 651
    functionLinenumberEnd: 688
    functionName: grid_clear
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - grid_check_y
    - grid_clear_lines
    - COLOUR_DEFAULT
    - grid_expand_line
    - grid_clear_cell
    linkageType: ''
    returnType: void
    signature: void grid_clear(struct grid *gd, u_int px, u_int py, u_int nx, u_int
      ny, u_int bg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: grid_check_y
      Src: /src/tmux/grid.c:699,1
    - Dst: grid_check_y
      Src: /src/tmux/grid.c:701,1
    - Dst: grid_free_line
      Src: /src/tmux/grid.c:705,1
    - Dst: grid_empty_line
      Src: /src/tmux/grid.c:706,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - gd
    - py
    - ny
    - bg
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 691
    functionDepth: 6
    functionLinenumber: 691
    functionLinenumberEnd: 710
    functionName: grid_clear_lines
    functionSourceFile: /src/tmux/grid.c
    functionUses: 1
    functionsReached:
    - grid_free_line
    - grid_empty_line
    - grid_check_y
    linkageType: ''
    returnType: void
    signature: void grid_clear_lines(struct grid *gd, u_int py, u_int ny, u_int bg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: grid_check_y
      Src: /src/tmux/grid.c:721,1
    - Dst: grid_check_y
      Src: /src/tmux/grid.c:723,1
    - Dst: grid_check_y
      Src: /src/tmux/grid.c:725,1
    - Dst: grid_check_y
      Src: /src/tmux/grid.c:727,1
    - Dst: grid_free_line
      Src: /src/tmux/grid.c:734,1
    - Dst: memmove
      Src: /src/tmux/grid.c:739,1
    - Dst: grid_empty_line
      Src: /src/tmux/grid.c:748,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 25
    argCount: 5
    argNames:
    - gd
    - dy
    - py
    - ny
    - bg
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 713
    functionDepth: 6
    functionLinenumber: 713
    functionLinenumberEnd: 752
    functionName: grid_move_lines
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - grid_free_line
    - grid_empty_line
    - grid_check_y
    - memmove
    linkageType: ''
    returnType: void
    signature: void grid_move_lines(struct grid *gd, u_int dy, u_int py, u_int ny,
      u_int bg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: grid_check_y
      Src: /src/tmux/grid.c:765,1
    - Dst: grid_expand_line
      Src: /src/tmux/grid.c:769,1
    - Dst: grid_expand_line
      Src: /src/tmux/grid.c:770,1
    - Dst: memmove
      Src: /src/tmux/grid.c:771,1
    - Dst: grid_clear_cell
      Src: /src/tmux/grid.c:780,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 6
    argNames:
    - gd
    - dx
    - px
    - py
    - nx
    - bg
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 755
    functionDepth: 5
    functionLinenumber: 755
    functionLinenumberEnd: 782
    functionName: grid_move_cells
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - memmove
    - grid_clear_cell
    - grid_check_y
    - grid_expand_line
    linkageType: ''
    returnType: void
    signature: "void grid_move_cells(struct grid *gd, u_int dx, u_int px, u_int py,
      u_int nx,\n    u_int bg)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: colour_split_rgb
      Src: /src/tmux/grid.c:799,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 2
    argNames:
    - gc
    - values
    argTypes:
    - struct grid_cell*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 831
    functionName: grid_string_cells_fg
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - colour_split_rgb
    linkageType: ''
    returnType: size_t
    signature: size_t grid_string_cells_fg(const struct grid_cell *gc, int *values)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: colour_split_rgb
      Src: /src/tmux/grid.c:848,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 2
    argNames:
    - gc
    - values
    argTypes:
    - struct grid_cell*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 880
    functionName: grid_string_cells_bg
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - colour_split_rgb
    linkageType: ''
    returnType: size_t
    signature: size_t grid_string_cells_bg(const struct grid_cell *gc, int *values)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: colour_split_rgb
      Src: /src/tmux/grid.c:897,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - gc
    - values
    argTypes:
    - struct grid_cell*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 883
    functionDepth: 1
    functionLinenumber: 883
    functionLinenumberEnd: 903
    functionName: grid_string_cells_us
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - colour_split_rgb
    linkageType: ''
    returnType: size_t
    signature: size_t grid_string_cells_us(const struct grid_cell *gc, int *values)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/tmux/grid.c:918,1
    - Dst: strlcat
      Src: /src/tmux/grid.c:924,1
    - Dst: strlcat
      Src: /src/tmux/grid.c:926,1
    - Dst: xsnprintf
      Src: /src/tmux/grid.c:929,1
    - Dst: xsnprintf
      Src: /src/tmux/grid.c:931,1
    - Dst: strlcat
      Src: /src/tmux/grid.c:932,1
    - Dst: strlcat
      Src: /src/tmux/grid.c:934,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 9
    argNames:
    - buf
    - len
    - n
    - s
    - newc
    - oldc
    - nnewc
    - noldc
    - flags
    argTypes:
    - char*
    - size_t
    - u_int
    - int*
    - int*
    - int*
    - size_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 935
    functionName: grid_string_cells_add_code
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - xsnprintf
    - strlcat
    - memcmp
    linkageType: ''
    returnType: void
    signature: "void grid_string_cells_add_code(char *buf, size_t len, u_int n, int
      *s, int *newc,\n    int *oldc, size_t nnewc, size_t noldc, int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/tmux/grid.c:943,1
    - Dst: strlen
      Src: /src/tmux/grid.c:943,1
    - Dst: strlcat
      Src: /src/tmux/grid.c:947,1
    - Dst: strlcat
      Src: /src/tmux/grid.c:949,1
    - Dst: xasprintf
      Src: /src/tmux/grid.c:951,1
    - Dst: strlcat
      Src: /src/tmux/grid.c:952,1
    - Dst: free
      Src: /src/tmux/grid.c:953,1
    - Dst: strlcat
      Src: /src/tmux/grid.c:955,1
    - Dst: strlcat
      Src: /src/tmux/grid.c:956,1
    - Dst: strlcat
      Src: /src/tmux/grid.c:958,1
    - Dst: strlcat
      Src: /src/tmux/grid.c:960,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - buf
    - len
    - id
    - uri
    - flags
    argTypes:
    - char*
    - size_t
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 937
    functionDepth: 1
    functionLinenumber: 937
    functionLinenumberEnd: 962
    functionName: grid_string_cells_add_hyperlink
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - strlen
    - xasprintf
    - free
    - strlcat
    linkageType: ''
    returnType: int
    signature: "int grid_string_cells_add_hyperlink(char *buf, size_t len, const char
      *id,\n    const char *uri, int flags)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: nitems
      Src: /src/tmux/grid.c:1000,1
    - Dst: nitems
      Src: /src/tmux/grid.c:1010,1
    - Dst: strlcat
      Src: /src/tmux/grid.c:1019,1
    - Dst: strlcat
      Src: /src/tmux/grid.c:1021,1
    - Dst: xsnprintf
      Src: /src/tmux/grid.c:1024,1
    - Dst: xsnprintf
      Src: /src/tmux/grid.c:1026,1
    - Dst: strlcat
      Src: /src/tmux/grid.c:1029,1
    - Dst: strlcat
      Src: /src/tmux/grid.c:1031,1
    - Dst: strlcat
      Src: /src/tmux/grid.c:1033,1
    - Dst: grid_string_cells_fg
      Src: /src/tmux/grid.c:1037,1
    - Dst: grid_string_cells_fg
      Src: /src/tmux/grid.c:1038,1
    - Dst: grid_string_cells_add_code
      Src: /src/tmux/grid.c:1039,1
    - Dst: grid_string_cells_bg
      Src: /src/tmux/grid.c:1043,1
    - Dst: grid_string_cells_bg
      Src: /src/tmux/grid.c:1044,1
    - Dst: grid_string_cells_add_code
      Src: /src/tmux/grid.c:1045,1
    - Dst: grid_string_cells_us
      Src: /src/tmux/grid.c:1049,1
    - Dst: grid_string_cells_us
      Src: /src/tmux/grid.c:1050,1
    - Dst: grid_string_cells_add_code
      Src: /src/tmux/grid.c:1051,1
    - Dst: strlcat
      Src: /src/tmux/grid.c:1057,1
    - Dst: strlcat
      Src: /src/tmux/grid.c:1059,1
    - Dst: strlcat
      Src: /src/tmux/grid.c:1063,1
    - Dst: strlcat
      Src: /src/tmux/grid.c:1065,1
    - Dst: hyperlinks_get
      Src: /src/tmux/grid.c:1070,1
    - Dst: grid_string_cells_add_hyperlink
      Src: /src/tmux/grid.c:1071,1
    - Dst: grid_string_cells_add_hyperlink
      Src: /src/tmux/grid.c:1074,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 57
    argCount: 7
    argNames:
    - lastgc
    - gc
    - buf
    - len
    - flags
    - sc
    - has_link
    argTypes:
    - struct grid_cell*
    - struct grid_cell*
    - char*
    - size_t
    - int
    - struct screen*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 968
    functionDepth: 2
    functionLinenumber: 968
    functionLinenumberEnd: 1079
    functionName: grid_string_cells_code
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - grid_string_cells_us
    - grid_string_cells_add_code
    - grid_string_cells_bg
    - nitems
    - strlcat
    - hyperlinks_get
    - grid_string_cells_fg
    - xsnprintf
    - grid_string_cells_add_hyperlink
    linkageType: ''
    returnType: void
    signature: "void grid_string_cells_code(const struct grid_cell *lastgc,\n    const
      struct grid_cell *gc, char *buf, size_t len, int flags,\n    struct screen *sc,
      int *has_link)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/grid.c:1096,1
    - Dst: xmalloc
      Src: /src/tmux/grid.c:1101,1
    - Dst: grid_peek_line
      Src: /src/tmux/grid.c:1104,1
    - Dst: grid_get_cell
      Src: /src/tmux/grid.c:1116,1
    - Dst: grid_string_cells_code
      Src: /src/tmux/grid.c:1121,1
    - Dst: strlen
      Src: /src/tmux/grid.c:1123,1
    - Dst: memcpy
      Src: /src/tmux/grid.c:1124,1
    - Dst: xreallocarray
      Src: /src/tmux/grid.c:1143,1
    - Dst: memcpy
      Src: /src/tmux/grid.c:1148,1
    - Dst: memcpy
      Src: /src/tmux/grid.c:1151,1
    - Dst: grid_string_cells_add_hyperlink
      Src: /src/tmux/grid.c:1156,1
    - Dst: strlen
      Src: /src/tmux/grid.c:1158,1
    - Dst: xreallocarray
      Src: /src/tmux/grid.c:1160,1
    - Dst: memcpy
      Src: /src/tmux/grid.c:1163,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 66
    argCount: 7
    argNames:
    - gd
    - px
    - py
    - nx
    - lastgc
    - flags
    - s
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - u_int
    - struct grid_cell**
    - int
    - struct screen*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1082
    functionDepth: 3
    functionLinenumber: 1082
    functionLinenumberEnd: 1174
    functionName: grid_string_cells
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - grid_peek_line
    - grid_string_cells_code
    - xmalloc
    - grid_get_cell
    - memcpy
    - xreallocarray
    - strlen
    - grid_string_cells_add_hyperlink
    linkageType: ''
    returnType: char
    signature: "char *\ngrid_string_cells(struct grid *gd, u_int px, u_int py, u_int
      nx,\n    struct grid_cell **lastgc, int flags, struct screen *s)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: grid_free_lines
      Src: /src/tmux/grid.c:1191,1
    - Dst: memcpy
      Src: /src/tmux/grid.c:1197,1
    - Dst: xreallocarray
      Src: /src/tmux/grid.c:1199,1
    - Dst: memcpy
      Src: /src/tmux/grid.c:1201,1
    - Dst: xreallocarray
      Src: /src/tmux/grid.c:1207,1
    - Dst: memcpy
      Src: /src/tmux/grid.c:1209,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 5
    argNames:
    - dst
    - dy
    - src
    - sy
    - ny
    argTypes:
    - struct grid*
    - u_int
    - struct grid*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1180
    functionDepth: 2
    functionLinenumber: 1180
    functionLinenumberEnd: 1217
    functionName: grid_duplicate_lines
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - memcpy
    - grid_free_lines
    - xreallocarray
    linkageType: ''
    returnType: void
    signature: "void grid_duplicate_lines(struct grid *dst, u_int dy, struct grid
      *src, u_int sy,\n    u_int ny)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/tmux/grid.c:1223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - gl
    argTypes:
    - struct grid_line*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1220
    functionDepth: 0
    functionLinenumber: 1220
    functionLinenumberEnd: 1225
    functionName: grid_reflow_dead
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void grid_reflow_dead(struct grid_line *gl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xreallocarray
      Src: /src/tmux/grid.c:1234,1
    - Dst: memset
      Src: /src/tmux/grid.c:1236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - gd
    - n
    argTypes:
    - struct grid*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1228
    functionDepth: 1
    functionLinenumber: 1228
    functionLinenumberEnd: 1239
    functionName: grid_reflow_add
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - memset
    - xreallocarray
    linkageType: ''
    returnType: struct grid_line
    signature: 'struct grid_line *

      grid_reflow_add(struct grid *gd, u_int n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grid_reflow_add
      Src: /src/tmux/grid.c:1247,1
    - Dst: memcpy
      Src: /src/tmux/grid.c:1248,1
    - Dst: grid_reflow_dead
      Src: /src/tmux/grid.c:1249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - gd
    - from
    argTypes:
    - struct grid*
    - struct grid_line*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1242
    functionDepth: 2
    functionLinenumber: 1242
    functionLinenumberEnd: 1251
    functionName: grid_reflow_move
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - grid_reflow_dead
    - memcpy
    - grid_reflow_add
    linkageType: ''
    returnType: struct grid_line
    signature: 'struct grid_line *

      grid_reflow_move(struct grid *gd, struct grid_line *from)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: grid_reflow_move
      Src: /src/tmux/grid.c:1269,1
    - Dst: grid_get_cell1
      Src: /src/tmux/grid.c:1304,1
    - Dst: grid_set_cell
      Src: /src/tmux/grid.c:1308,1
    - Dst: grid_get_cell1
      Src: /src/tmux/grid.c:1314,1
    - Dst: grid_set_cell
      Src: /src/tmux/grid.c:1319,1
    - Dst: grid_move_cells
      Src: /src/tmux/grid.c:1341,1
    - Dst: free
      Src: /src/tmux/grid.c:1349,1
    - Dst: free
      Src: /src/tmux/grid.c:1350,1
    - Dst: grid_reflow_dead
      Src: /src/tmux/grid.c:1351,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 60
    argCount: 6
    argNames:
    - target
    - gd
    - sx
    - yy
    - width
    - already
    argTypes:
    - struct grid*
    - struct grid*
    - u_int
    - u_int
    - u_int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1254
    functionDepth: 6
    functionLinenumber: 1254
    functionLinenumberEnd: 1359
    functionName: grid_reflow_join
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - grid_get_cell1
    - grid_reflow_move
    - grid_move_cells
    - free
    - grid_reflow_dead
    - grid_set_cell
    linkageType: ''
    returnType: void
    signature: "void grid_reflow_join(struct grid *target, struct grid *gd, u_int
      sx, u_int yy,\n    u_int width, int already)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_cell1
      Src: /src/tmux/grid.c:1379,1
    - Dst: grid_reflow_add
      Src: /src/tmux/grid.c:1390,1
    - Dst: grid_get_cell1
      Src: /src/tmux/grid.c:1396,1
    - Dst: grid_set_cell
      Src: /src/tmux/grid.c:1405,1
    - Dst: memcpy
      Src: /src/tmux/grid.c:1414,1
    - Dst: grid_reflow_dead
      Src: /src/tmux/grid.c:1415,1
    - Dst: grid_reflow_join
      Src: /src/tmux/grid.c:1426,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 5
    argNames:
    - target
    - gd
    - sx
    - yy
    - at
    argTypes:
    - struct grid*
    - struct grid*
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1362
    functionDepth: 7
    functionLinenumber: 1362
    functionLinenumberEnd: 1427
    functionName: grid_reflow_split
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - grid_get_cell1
    - grid_reflow_dead
    - memcpy
    - grid_set_cell
    - grid_reflow_add
    - grid_reflow_join
    linkageType: ''
    returnType: void
    signature: "void grid_reflow_split(struct grid *target, struct grid *gd, u_int
      sx, u_int yy,\n    u_int at)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: grid_create
      Src: /src/tmux/grid.c:1442,1
    - Dst: grid_get_cell1
      Src: /src/tmux/grid.c:1466,1
    - Dst: grid_reflow_move
      Src: /src/tmux/grid.c:1478,1
    - Dst: grid_reflow_split
      Src: /src/tmux/grid.c:1487,1
    - Dst: grid_reflow_join
      Src: /src/tmux/grid.c:1496,1
    - Dst: grid_reflow_move
      Src: /src/tmux/grid.c:1498,1
    - Dst: grid_reflow_add
      Src: /src/tmux/grid.c:1505,1
    - Dst: free
      Src: /src/tmux/grid.c:1509,1
    - Dst: free
      Src: /src/tmux/grid.c:1511,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 2
    argNames:
    - gd
    - sx
    argTypes:
    - struct grid*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1430
    functionDepth: 8
    functionLinenumber: 1430
    functionLinenumberEnd: 1512
    functionName: grid_reflow
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached:
    - grid_reflow_split
    - grid_get_cell1
    - grid_reflow_move
    - grid_reflow_add
    - grid_create
    - free
    - grid_reflow_join
    linkageType: ''
    returnType: void
    signature: void grid_reflow(struct grid *gd, u_int sx)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - gd
    - px
    - py
    - wx
    - wy
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - u_int*
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1515
    functionDepth: 0
    functionLinenumber: 1515
    functionLinenumberEnd: 1534
    functionName: grid_wrap_position
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void grid_wrap_position(struct grid *gd, u_int px, u_int py, u_int
      *wx, u_int *wy)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 5
    argNames:
    - gd
    - px
    - py
    - wx
    - wy
    argTypes:
    - struct grid*
    - u_int*
    - u_int*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1537
    functionDepth: 0
    functionLinenumber: 1537
    functionLinenumberEnd: 1567
    functionName: grid_unwrap_position
    functionSourceFile: /src/tmux/grid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void grid_unwrap_position(struct grid *gd, u_int *px, u_int *py, u_int
      wx, u_int wy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_line
      Src: /src/tmux/grid.c:1576,1
    - Dst: grid_get_cell
      Src: /src/tmux/grid.c:1580,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - gd
    - py
    argTypes:
    - struct grid*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1570
    functionDepth: 3
    functionLinenumber: 1570
    functionLinenumberEnd: 1588
    functionName: grid_line_length
    functionSourceFile: /src/tmux/grid.c
    functionUses: 4
    functionsReached:
    - grid_get_line
    - grid_get_cell
    linkageType: ''
    returnType: u_int
    signature: u_int grid_line_length(struct grid *gd, u_int py)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_cell
      Src: /src/tmux/grid.c:1597,1
    - Dst: strchr
      Src: /src/tmux/grid.c:1598,1
    - Dst: grid_get_cell
      Src: /src/tmux/grid.c:1602,1
    - Dst: utf8_cstrhas
      Src: /src/tmux/grid.c:1611,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - gd
    - px
    - py
    - set
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1591
    functionDepth: 3
    functionLinenumber: 1591
    functionLinenumberEnd: 1612
    functionName: grid_in_set
    functionSourceFile: /src/tmux/grid.c
    functionUses: 1
    functionsReached:
    - grid_get_cell
    - utf8_cstrhas
    - strchr
    linkageType: ''
    returnType: int
    signature: int grid_in_set(struct grid *gd, u_int px, u_int py, const char *set)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ike1
    - ike2
    argTypes:
    - struct input_key_entry*
    - struct input_key_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 338
    functionName: input_key_cmp
    functionSourceFile: /src/tmux/input-keys.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int input_key_cmp(struct input_key_entry *ike1, struct input_key_entry
      *ike2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FIND
      Src: /src/tmux/input-keys.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - key_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 347
    functionName: input_key_get
    functionSourceFile: /src/tmux/input-keys.c
    functionUses: 0
    functionsReached:
    - RB_FIND
    linkageType: ''
    returnType: struct input_key_entry
    signature: 'struct input_key_entry *

      input_key_get(key_code key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - c
    - dst
    argTypes:
    - u_int
    - u_char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 360
    functionName: input_key_split2
    functionSourceFile: /src/tmux/input-keys.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t input_key_split2(u_int c, u_char *dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nitems
      Src: /src/tmux/input-keys.c:371,1
    - Dst: RB_INSERT
      Src: /src/tmux/input-keys.c:374,1
    - Dst: nitems
      Src: /src/tmux/input-keys.c:378,1
    - Dst: xstrdup
      Src: /src/tmux/input-keys.c:380,1
    - Dst: strcspn
      Src: /src/tmux/input-keys.c:381,1
    - Dst: xcalloc::xcalloc
      Src: /src/tmux/input-keys.c:383,1
    - Dst: RB_INSERT
      Src: /src/tmux/input-keys.c:386,1
    - Dst: RB_FOREACH
      Src: /src/tmux/input-keys.c:390,1
    - Dst: log_debug
      Src: /src/tmux/input-keys.c:391,1
    - Dst: key_string_lookup_key
      Src: /src/tmux/input-keys.c:392,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 394
    functionName: input_key_build
    functionSourceFile: /src/tmux/input-keys.c
    functionUses: 0
    functionsReached:
    - nitems
    - xcalloc::xcalloc
    - strcspn
    - RB_FOREACH
    - key_string_lookup_key
    - log_debug
    - xstrdup
    - RB_INSERT
    linkageType: ''
    returnType: void
    signature: void input_key_build(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_get_level
      Src: /src/tmux/input-keys.c:400,1
    - Dst: log_debug
      Src: /src/tmux/input-keys.c:401,1
    - Dst: key_string_lookup_key
      Src: /src/tmux/input-keys.c:402,1
    - Dst: KEYC_IS_MOUSE
      Src: /src/tmux/input-keys.c:405,1
    - Dst: input_key_mouse
      Src: /src/tmux/input-keys.c:407,1
    - Dst: input_key
      Src: /src/tmux/input-keys.c:410,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - wp
    - key
    - m
    argTypes:
    - struct window_pane*
    - key_code
    - struct mouse_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 411
    functionName: input_key_pane
    functionSourceFile: /src/tmux/input-keys.c
    functionUses: 2
    functionsReached:
    - KEYC_IS_MOUSE
    - log_get_level
    - input_key_mouse
    - key_string_lookup_key
    - log_debug
    - input_key
    linkageType: ''
    returnType: int
    signature: int input_key_pane(struct window_pane *wp, key_code key, struct mouse_event
      *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/input-keys.c:417,1
    - Dst: bufferevent_write
      Src: /src/tmux/input-keys.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - from
    - bev
    - data
    - size
    argTypes:
    - char*
    - struct bufferevent*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 419
    functionName: input_key_write
    functionSourceFile: /src/tmux/input-keys.c
    functionUses: 0
    functionsReached:
    - log_debug
    - bufferevent_write
    linkageType: ''
    returnType: void
    signature: "void input_key_write(const char *from, struct bufferevent *bev, const
      char *data,\n    size_t size)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: KEYC_IS_UNICODE
      Src: /src/tmux/input-keys.c:458,1
    - Dst: utf8_to_data
      Src: /src/tmux/input-keys.c:459,1
    - Dst: utf8_towc
      Src: /src/tmux/input-keys.c:460,1
    - Dst: options_get_number
      Src: /src/tmux/input-keys.c:467,1
    - Dst: xsnprintf
      Src: /src/tmux/input-keys.c:468,1
    - Dst: xsnprintf
      Src: /src/tmux/input-keys.c:470,1
    - Dst: input_key_write
      Src: /src/tmux/input-keys.c:472,1
    - Dst: strlen
      Src: /src/tmux/input-keys.c:472,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 2
    argNames:
    - bev
    - key
    argTypes:
    - struct bufferevent*
    - key_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 425
    functionDepth: 2
    functionLinenumber: 425
    functionLinenumberEnd: 474
    functionName: input_key_extended
    functionSourceFile: /src/tmux/input-keys.c
    functionUses: 0
    functionsReached:
    - utf8_towc
    - utf8_to_data
    - KEYC_IS_UNICODE
    - input_key_write
    - xsnprintf
    - strlen
    - options_get_number
    linkageType: ''
    returnType: int
    signature: int input_key_extended(struct bufferevent *bev, key_code key)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/input-keys.c:492,1
    - Dst: input_key_write
      Src: /src/tmux/input-keys.c:495,1
    - Dst: KEYC_IS_UNICODE
      Src: /src/tmux/input-keys.c:501,1
    - Dst: utf8_to_data
      Src: /src/tmux/input-keys.c:502,1
    - Dst: input_key_write
      Src: /src/tmux/input-keys.c:503,1
    - Dst: strchr
      Src: /src/tmux/input-keys.c:525,1
    - Dst: log_debug
      Src: /src/tmux/input-keys.c:536,1
    - Dst: input_key_write
      Src: /src/tmux/input-keys.c:539,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - bev
    - key
    argTypes:
    - struct bufferevent*
    - key_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 541
    functionName: input_key_vt10x
    functionSourceFile: /src/tmux/input-keys.c
    functionUses: 0
    functionsReached:
    - utf8_to_data
    - KEYC_IS_UNICODE
    - strchr
    - input_key_write
    - log_debug
    linkageType: ''
    returnType: int
    signature: int input_key_vt10x(struct bufferevent *bev, key_code key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/input-keys.c:549,1
    - Dst: input_key_vt10x
      Src: /src/tmux/input-keys.c:553,1
    - Dst: input_key_vt10x
      Src: /src/tmux/input-keys.c:567,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 8
    argCount: 2
    argNames:
    - bev
    - key
    argTypes:
    - struct bufferevent*
    - key_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 544
    functionDepth: 3
    functionLinenumber: 544
    functionLinenumberEnd: 570
    functionName: input_key_mode1
    functionSourceFile: /src/tmux/input-keys.c
    functionUses: 0
    functionsReached:
    - log_debug
    - input_key_vt10x
    linkageType: ''
    returnType: int
    signature: int input_key_mode1(struct bufferevent *bev, key_code key)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: KEYC_IS_MOUSE
      Src: /src/tmux/input-keys.c:581,1
    - Dst: input_key_write
      Src: /src/tmux/input-keys.c:587,1
    - Dst: options_get_number
      Src: /src/tmux/input-keys.c:593,1
    - Dst: log_debug
      Src: /src/tmux/input-keys.c:594,1
    - Dst: input_key_write
      Src: /src/tmux/input-keys.c:610,1
    - Dst: input_key_write
      Src: /src/tmux/input-keys.c:638,1
    - Dst: KEYC_IS_UNICODE
      Src: /src/tmux/input-keys.c:641,1
    - Dst: utf8_to_data
      Src: /src/tmux/input-keys.c:642,1
    - Dst: input_key_write
      Src: /src/tmux/input-keys.c:643,1
    - Dst: input_key_get
      Src: /src/tmux/input-keys.c:657,1
    - Dst: input_key_get
      Src: /src/tmux/input-keys.c:659,1
    - Dst: input_key_get
      Src: /src/tmux/input-keys.c:661,1
    - Dst: input_key_get
      Src: /src/tmux/input-keys.c:663,1
    - Dst: log_debug
      Src: /src/tmux/input-keys.c:665,1
    - Dst: KEYC_IS_PASTE
      Src: /src/tmux/input-keys.c:667,1
    - Dst: input_key_write
      Src: /src/tmux/input-keys.c:670,1
    - Dst: input_key_write
      Src: /src/tmux/input-keys.c:671,1
    - Dst: strlen
      Src: /src/tmux/input-keys.c:671,1
    - Dst: KEYC_IS_USER
      Src: /src/tmux/input-keys.c:676,1
    - Dst: KEYC_IS_SPECIAL
      Src: /src/tmux/input-keys.c:676,1
    - Dst: KEYC_IS_MOUSE
      Src: /src/tmux/input-keys.c:676,1
    - Dst: log_debug
      Src: /src/tmux/input-keys.c:677,1
    - Dst: input_key_extended
      Src: /src/tmux/input-keys.c:696,1
    - Dst: input_key_mode1
      Src: /src/tmux/input-keys.c:702,1
    - Dst: input_key_extended
      Src: /src/tmux/input-keys.c:703,1
    - Dst: input_key_vt10x
      Src: /src/tmux/input-keys.c:707,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 84
    argCount: 3
    argNames:
    - s
    - bev
    - key
    argTypes:
    - struct screen*
    - struct bufferevent*
    - key_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 573
    functionDepth: 4
    functionLinenumber: 573
    functionLinenumberEnd: 709
    functionName: input_key
    functionSourceFile: /src/tmux/input-keys.c
    functionUses: 1
    functionsReached:
    - KEYC_IS_MOUSE
    - input_key_vt10x
    - utf8_to_data
    - KEYC_IS_PASTE
    - input_key_mode1
    - input_key_extended
    - KEYC_IS_UNICODE
    - input_key_get
    - input_key_write
    - log_debug
    - strlen
    - options_get_number
    - KEYC_IS_USER
    - KEYC_IS_SPECIAL
    linkageType: ''
    returnType: int
    signature: int input_key(struct screen *s, struct bufferevent *bev, key_code key)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: MOUSE_DRAG
      Src: /src/tmux/input-keys.c:723,1
    - Dst: MOUSE_DRAG
      Src: /src/tmux/input-keys.c:735,1
    - Dst: MOUSE_RELEASE
      Src: /src/tmux/input-keys.c:736,1
    - Dst: MOUSE_DRAG
      Src: /src/tmux/input-keys.c:740,1
    - Dst: MOUSE_RELEASE
      Src: /src/tmux/input-keys.c:741,1
    - Dst: MOUSE_RELEASE
      Src: /src/tmux/input-keys.c:742,1
    - Dst: xsnprintf
      Src: /src/tmux/input-keys.c:757,1
    - Dst: xsnprintf
      Src: /src/tmux/input-keys.c:764,1
    - Dst: input_key_split2
      Src: /src/tmux/input-keys.c:765,1
    - Dst: input_key_split2
      Src: /src/tmux/input-keys.c:766,1
    - Dst: input_key_split2
      Src: /src/tmux/input-keys.c:767,1
    - Dst: xsnprintf
      Src: /src/tmux/input-keys.c:772,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 39
    argCount: 6
    argNames:
    - s
    - m
    - x
    - y
    - rbuf
    - rlen
    argTypes:
    - struct screen*
    - struct mouse_event*
    - u_int
    - u_int
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 793
    functionName: input_key_get_mouse
    functionSourceFile: /src/tmux/input-keys.c
    functionUses: 0
    functionsReached:
    - MOUSE_RELEASE
    - xsnprintf
    - input_key_split2
    - MOUSE_DRAG
    linkageType: ''
    returnType: int
    signature: "int input_key_get_mouse(struct screen *s, struct mouse_event *m, u_int
      x, u_int y,\n    const char **rbuf, size_t *rlen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cmd_mouse_at
      Src: /src/tmux/input-keys.c:807,1
    - Dst: window_pane_visible
      Src: /src/tmux/input-keys.c:809,1
    - Dst: input_key_get_mouse
      Src: /src/tmux/input-keys.c:811,1
    - Dst: log_debug
      Src: /src/tmux/input-keys.c:813,1
    - Dst: input_key_write
      Src: /src/tmux/input-keys.c:814,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - wp
    - m
    argTypes:
    - struct window_pane*
    - struct mouse_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 796
    functionDepth: 2
    functionLinenumber: 796
    functionLinenumberEnd: 815
    functionName: input_key_mouse
    functionSourceFile: /src/tmux/input-keys.c
    functionUses: 1
    functionsReached:
    - input_key_get_mouse
    - cmd_mouse_at
    - input_key_write
    - window_pane_visible
    - log_debug
    linkageType: ''
    returnType: void
    signature: void input_key_mouse(struct window_pane *wp, struct mouse_event *m)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-swap-window.c:48,1
    - Dst: cmdq_get_source
      Src: /src/tmux/cmd-swap-window.c:49,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-swap-window.c:50,1
    - Dst: session_group_contains
      Src: /src/tmux/cmd-swap-window.c:56,1
    - Dst: session_group_contains
      Src: /src/tmux/cmd-swap-window.c:57,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-swap-window.c:63,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/cmd-swap-window.c:71,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/cmd-swap-window.c:73,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/cmd-swap-window.c:76,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/cmd-swap-window.c:78,1
    - Dst: args_has
      Src: /src/tmux/cmd-swap-window.c:82,1
    - Dst: session_select
      Src: /src/tmux/cmd-swap-window.c:83,1
    - Dst: session_select
      Src: /src/tmux/cmd-swap-window.c:85,1
    - Dst: session_group_synchronize_from
      Src: /src/tmux/cmd-swap-window.c:87,1
    - Dst: server_redraw_session_group
      Src: /src/tmux/cmd-swap-window.c:88,1
    - Dst: session_group_synchronize_from
      Src: /src/tmux/cmd-swap-window.c:90,1
    - Dst: server_redraw_session_group
      Src: /src/tmux/cmd-swap-window.c:91,1
    - Dst: recalculate_sizes
      Src: /src/tmux/cmd-swap-window.c:93,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 96
    functionName: cmd_swap_window_exec
    functionSourceFile: /src/tmux/cmd-swap-window.c
    functionUses: 0
    functionsReached:
    - session_select
    - session_group_contains
    - args_has
    - cmdq_error
    - session_group_synchronize_from
    - server_redraw_session_group
    - cmd_get_args
    - recalculate_sizes
    - cmdq_get_source
    - cmdq_get_target
    - TAILQ_INSERT_TAIL
    - TAILQ_REMOVE
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_swap_window_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/cmd-wait-for.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wc1
    - wc2
    argTypes:
    - struct wait_channel*
    - struct wait_channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: wait_channel_cmp
    functionSourceFile: /src/tmux/cmd-wait-for.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int wait_channel_cmp(struct wait_channel *wc1, struct wait_channel
      *wc2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/tmux/cmd-wait-for.c:88,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-wait-for.c:89,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/cmd-wait-for.c:94,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/cmd-wait-for.c:95,1
    - Dst: RB_INSERT
      Src: /src/tmux/cmd-wait-for.c:97,1
    - Dst: log_debug
      Src: /src/tmux/cmd-wait-for.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 102
    functionName: cmd_wait_for_add
    functionSourceFile: /src/tmux/cmd-wait-for.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - log_debug
    - xstrdup
    - TAILQ_INIT
    - RB_INSERT
    linkageType: ''
    returnType: struct wait_channel
    signature: 'struct wait_channel *

      cmd_wait_for_add(const char *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/cmd-wait-for.c:109,1
    - Dst: log_debug
      Src: /src/tmux/cmd-wait-for.c:112,1
    - Dst: RB_REMOVE
      Src: /src/tmux/cmd-wait-for.c:114,1
    - Dst: free
      Src: /src/tmux/cmd-wait-for.c:116,1
    - Dst: free
      Src: /src/tmux/cmd-wait-for.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - wc
    argTypes:
    - struct wait_channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 118
    functionName: cmd_wait_for_remove
    functionSourceFile: /src/tmux/cmd-wait-for.c
    functionUses: 0
    functionsReached:
    - TAILQ_EMPTY
    - free
    - RB_REMOVE
    - log_debug
    linkageType: ''
    returnType: void
    signature: void cmd_wait_for_remove(struct wait_channel *wc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-wait-for.c:123,1
    - Dst: args_string
      Src: /src/tmux/cmd-wait-for.c:124,1
    - Dst: RB_FIND
      Src: /src/tmux/cmd-wait-for.c:128,1
    - Dst: args_has
      Src: /src/tmux/cmd-wait-for.c:130,1
    - Dst: cmd_wait_for_signal
      Src: /src/tmux/cmd-wait-for.c:131,1
    - Dst: args_has
      Src: /src/tmux/cmd-wait-for.c:132,1
    - Dst: cmd_wait_for_lock
      Src: /src/tmux/cmd-wait-for.c:133,1
    - Dst: args_has
      Src: /src/tmux/cmd-wait-for.c:134,1
    - Dst: cmd_wait_for_unlock
      Src: /src/tmux/cmd-wait-for.c:135,1
    - Dst: cmd_wait_for_wait
      Src: /src/tmux/cmd-wait-for.c:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 137
    functionName: cmd_wait_for_exec
    functionSourceFile: /src/tmux/cmd-wait-for.c
    functionUses: 0
    functionsReached:
    - cmd_wait_for_signal
    - args_string
    - cmd_wait_for_lock
    - cmd_get_args
    - cmd_wait_for_wait
    - cmd_wait_for_unlock
    - RB_FIND
    - args_has
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_wait_for_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmd_wait_for_add
      Src: /src/tmux/cmd-wait-for.c:146,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/cmd-wait-for.c:148,1
    - Dst: log_debug
      Src: /src/tmux/cmd-wait-for.c:149,1
    - Dst: log_debug
      Src: /src/tmux/cmd-wait-for.c:153,1
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/cmd-wait-for.c:155,1
    - Dst: cmdq_continue
      Src: /src/tmux/cmd-wait-for.c:156,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/cmd-wait-for.c:158,1
    - Dst: free
      Src: /src/tmux/cmd-wait-for.c:159,1
    - Dst: cmd_wait_for_remove
      Src: /src/tmux/cmd-wait-for.c:162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - item
    - name
    - wc
    argTypes:
    - __unused*
    - char*
    - struct wait_channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 164
    functionName: cmd_wait_for_signal
    functionSourceFile: /src/tmux/cmd-wait-for.c
    functionUses: 1
    functionsReached:
    - cmd_wait_for_remove
    - cmdq_continue
    - log_debug
    - cmd_wait_for_add
    - TAILQ_FOREACH_SAFE
    - free
    - TAILQ_EMPTY
    - TAILQ_REMOVE
    linkageType: ''
    returnType: enum cmd_retval
    signature: "enum cmd_retval cmd_wait_for_signal(__unused struct cmdq_item *item,
      const char *name,\n    struct wait_channel *wc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-wait-for.c:170,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-wait-for.c:174,1
    - Dst: cmd_wait_for_add
      Src: /src/tmux/cmd-wait-for.c:179,1
    - Dst: log_debug
      Src: /src/tmux/cmd-wait-for.c:182,1
    - Dst: cmd_wait_for_remove
      Src: /src/tmux/cmd-wait-for.c:183,1
    - Dst: log_debug
      Src: /src/tmux/cmd-wait-for.c:186,1
    - Dst: xcalloc
      Src: /src/tmux/cmd-wait-for.c:188,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/cmd-wait-for.c:190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - item
    - name
    - wc
    argTypes:
    - struct cmdq_item*
    - char*
    - struct wait_channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 193
    functionName: cmd_wait_for_wait
    functionSourceFile: /src/tmux/cmd-wait-for.c
    functionUses: 1
    functionsReached:
    - log_debug
    - cmdq_error
    - xcalloc
    - cmd_wait_for_add
    - cmdq_get_client
    - cmd_wait_for_remove
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: enum cmd_retval
    signature: "enum cmd_retval cmd_wait_for_wait(struct cmdq_item *item, const char
      *name,\n    struct wait_channel *wc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-wait-for.c:201,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-wait-for.c:202,1
    - Dst: cmd_wait_for_add
      Src: /src/tmux/cmd-wait-for.c:207,1
    - Dst: xcalloc
      Src: /src/tmux/cmd-wait-for.c:210,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/cmd-wait-for.c:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - item
    - name
    - wc
    argTypes:
    - struct cmdq_item*
    - char*
    - struct wait_channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 218
    functionName: cmd_wait_for_lock
    functionSourceFile: /src/tmux/cmd-wait-for.c
    functionUses: 1
    functionsReached:
    - cmdq_error
    - xcalloc
    - cmd_wait_for_add
    - cmdq_get_client
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: enum cmd_retval
    signature: "enum cmd_retval cmd_wait_for_lock(struct cmdq_item *item, const char
      *name,\n    struct wait_channel *wc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_error
      Src: /src/tmux/cmd-wait-for.c:227,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/cmd-wait-for.c:231,1
    - Dst: cmdq_continue
      Src: /src/tmux/cmd-wait-for.c:232,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/cmd-wait-for.c:233,1
    - Dst: free
      Src: /src/tmux/cmd-wait-for.c:234,1
    - Dst: cmd_wait_for_remove
      Src: /src/tmux/cmd-wait-for.c:237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - item
    - name
    - wc
    argTypes:
    - struct cmdq_item*
    - char*
    - struct wait_channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 241
    functionName: cmd_wait_for_unlock
    functionSourceFile: /src/tmux/cmd-wait-for.c
    functionUses: 1
    functionsReached:
    - cmdq_continue
    - cmdq_error
    - TAILQ_FIRST
    - free
    - cmd_wait_for_remove
    - TAILQ_REMOVE
    linkageType: ''
    returnType: enum cmd_retval
    signature: "enum cmd_retval cmd_wait_for_unlock(struct cmdq_item *item, const
      char *name,\n    struct wait_channel *wc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH_SAFE
      Src: /src/tmux/cmd-wait-for.c:249,1
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/cmd-wait-for.c:250,1
    - Dst: cmdq_continue
      Src: /src/tmux/cmd-wait-for.c:251,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/cmd-wait-for.c:252,1
    - Dst: free
      Src: /src/tmux/cmd-wait-for.c:253,1
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/cmd-wait-for.c:256,1
    - Dst: cmdq_continue
      Src: /src/tmux/cmd-wait-for.c:257,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/cmd-wait-for.c:258,1
    - Dst: free
      Src: /src/tmux/cmd-wait-for.c:259,1
    - Dst: cmd_wait_for_remove
      Src: /src/tmux/cmd-wait-for.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 264
    functionName: cmd_wait_for_flush
    functionSourceFile: /src/tmux/cmd-wait-for.c
    functionUses: 0
    functionsReached:
    - cmdq_continue
    - TAILQ_FOREACH_SAFE
    - free
    - RB_FOREACH_SAFE
    - cmd_wait_for_remove
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void cmd_wait_for_flush(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: imsgbuf_read
      Src: /src/tmux/proc.c:81,1
    - Dst: struct tmuxpeer*::dispatchcb
      Src: /src/tmux/proc.c:82,1
    - Dst: imsg_get
      Src: /src/tmux/proc.c:86,1
    - Dst: struct tmuxpeer*::dispatchcb
      Src: /src/tmux/proc.c:87,1
    - Dst: log_debug
      Src: /src/tmux/proc.c:92,1
    - Dst: peer_check_version
      Src: /src/tmux/proc.c:94,1
    - Dst: imsg_free
      Src: /src/tmux/proc.c:95,1
    - Dst: struct tmuxpeer*::dispatchcb
      Src: /src/tmux/proc.c:99,1
    - Dst: imsg_free
      Src: /src/tmux/proc.c:100,1
    - Dst: imsgbuf_write
      Src: /src/tmux/proc.c:105,1
    - Dst: struct tmuxpeer*::dispatchcb
      Src: /src/tmux/proc.c:106,1
    - Dst: imsgbuf_queuelen
      Src: /src/tmux/proc.c:111,1
    - Dst: struct tmuxpeer*::dispatchcb
      Src: /src/tmux/proc.c:112,1
    - Dst: proc_update_event
      Src: /src/tmux/proc.c:116,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 3
    argNames:
    - int
    - events
    - arg
    argTypes:
    - __unused
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 117
    functionName: proc_event_cb
    functionSourceFile: /src/tmux/proc.c
    functionUses: 0
    functionsReached:
    - log_debug
    - struct tmuxpeer*::dispatchcb
    - imsgbuf_write
    - imsgbuf_queuelen
    - imsg_get
    - imsgbuf_read
    - imsg_free
    - peer_check_version
    - proc_update_event
    linkageType: ''
    returnType: void
    signature: void proc_event_cb(__unused int fd, short events, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct tmuxproc*::signalcb
      Src: /src/tmux/proc.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - signo
    - events
    - arg
    argTypes:
    - int
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: proc_signal_cb
    functionSourceFile: /src/tmux/proc.c
    functionUses: 0
    functionsReached:
    - struct tmuxproc*::signalcb
    linkageType: ''
    returnType: void
    signature: void proc_signal_cb(int signo, __unused short events, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/proc.c:134,1
    - Dst: proc_send
      Src: /src/tmux/proc.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - peer
    - imsg
    argTypes:
    - struct tmuxpeer*
    - struct imsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 142
    functionName: peer_check_version
    functionSourceFile: /src/tmux/proc.c
    functionUses: 1
    functionsReached:
    - log_debug
    - proc_send
    linkageType: ''
    returnType: int
    signature: int peer_check_version(struct tmuxpeer *peer, struct imsg *imsg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_del
      Src: /src/tmux/proc.c:149,1
    - Dst: imsgbuf_queuelen
      Src: /src/tmux/proc.c:152,1
    - Dst: event_set
      Src: /src/tmux/proc.c:154,1
    - Dst: event_add
      Src: /src/tmux/proc.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - peer
    argTypes:
    - struct tmuxpeer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 157
    functionName: proc_update_event
    functionSourceFile: /src/tmux/proc.c
    functionUses: 1
    functionsReached:
    - event_set
    - event_add
    - event_del
    - imsgbuf_queuelen
    linkageType: ''
    returnType: void
    signature: void proc_update_event(struct tmuxpeer *peer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/proc.c:169,1
    - Dst: imsg_compose
      Src: /src/tmux/proc.c:171,1
    - Dst: proc_update_event
      Src: /src/tmux/proc.c:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - peer
    - type
    - fd
    - buf
    - len
    argTypes:
    - struct tmuxpeer*
    - enum msgtype
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 176
    functionName: proc_send
    functionSourceFile: /src/tmux/proc.c
    functionUses: 13
    functionsReached:
    - log_debug
    - imsg_compose
    - proc_update_event
    linkageType: ''
    returnType: int
    signature: "int proc_send(struct tmuxpeer *peer, enum msgtype type, int fd, const
      void *buf,\n    size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_open
      Src: /src/tmux/proc.c:184,1
    - Dst: setproctitle
      Src: /src/tmux/proc.c:185,1
    - Dst: uname
      Src: /src/tmux/proc.c:187,1
    - Dst: memset
      Src: /src/tmux/proc.c:188,1
    - Dst: log_debug
      Src: /src/tmux/proc.c:190,1
    - Dst: getpid
      Src: /src/tmux/proc.c:191,1
    - Dst: getversion
      Src: /src/tmux/proc.c:191,1
    - Dst: log_debug
      Src: /src/tmux/proc.c:192,1
    - Dst: log_debug
      Src: /src/tmux/proc.c:193,1
    - Dst: event_get_version
      Src: /src/tmux/proc.c:193,1
    - Dst: event_get_method
      Src: /src/tmux/proc.c:193,1
    - Dst: log_debug
      Src: /src/tmux/proc.c:195,1
    - Dst: utf8proc_version
      Src: /src/tmux/proc.c:195,1
    - Dst: log_debug
      Src: /src/tmux/proc.c:198,1
    - Dst: xcalloc
      Src: /src/tmux/proc.c:201,1
    - Dst: xstrdup
      Src: /src/tmux/proc.c:202,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/proc.c:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 206
    functionName: proc_start
    functionSourceFile: /src/tmux/proc.c
    functionUses: 0
    functionsReached:
    - utf8proc_version
    - getversion
    - xcalloc
    - log_open
    - TAILQ_INIT
    - memset
    - getpid
    - log_debug
    - event_get_method
    - xstrdup
    - setproctitle
    - uname
    - event_get_version
    linkageType: ''
    returnType: struct tmuxproc
    signature: 'struct tmuxproc *

      proc_start(const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/proc.c:211,1
    - Dst: event_loop
      Src: /src/tmux/proc.c:213,1
    - Dst: loopcb
      Src: /src/tmux/proc.c:214,1
    - Dst: log_debug
      Src: /src/tmux/proc.c:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - tp
    argTypes:
    - struct tmuxproc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 216
    functionName: proc_loop
    functionSourceFile: /src/tmux/proc.c
    functionUses: 0
    functionsReached:
    - log_debug
    - event_loop
    - loopcb
    linkageType: ''
    returnType: void
    signature: void proc_loop(struct tmuxproc *tp, int (*loopcb)(void))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/proc.c:223,1
    - Dst: imsgbuf_flush
      Src: /src/tmux/proc.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tp
    argTypes:
    - struct tmuxproc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 226
    functionName: proc_exit
    functionSourceFile: /src/tmux/proc.c
    functionUses: 0
    functionsReached:
    - imsgbuf_flush
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void proc_exit(struct tmuxproc *tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/tmux/proc.c:235,1
    - Dst: sigemptyset
      Src: /src/tmux/proc.c:236,1
    - Dst: sigaction
      Src: /src/tmux/proc.c:240,1
    - Dst: sigaction
      Src: /src/tmux/proc.c:241,1
    - Dst: sigaction
      Src: /src/tmux/proc.c:242,1
    - Dst: sigaction
      Src: /src/tmux/proc.c:243,1
    - Dst: sigaction
      Src: /src/tmux/proc.c:244,1
    - Dst: signal_set
      Src: /src/tmux/proc.c:246,1
    - Dst: signal_add
      Src: /src/tmux/proc.c:247,1
    - Dst: signal_set
      Src: /src/tmux/proc.c:248,1
    - Dst: signal_add
      Src: /src/tmux/proc.c:249,1
    - Dst: signal_set
      Src: /src/tmux/proc.c:250,1
    - Dst: signal_add
      Src: /src/tmux/proc.c:251,1
    - Dst: signal_set
      Src: /src/tmux/proc.c:252,1
    - Dst: signal_add
      Src: /src/tmux/proc.c:253,1
    - Dst: signal_set
      Src: /src/tmux/proc.c:254,1
    - Dst: signal_add
      Src: /src/tmux/proc.c:255,1
    - Dst: signal_set
      Src: /src/tmux/proc.c:256,1
    - Dst: signal_add
      Src: /src/tmux/proc.c:257,1
    - Dst: signal_set
      Src: /src/tmux/proc.c:258,1
    - Dst: signal_add
      Src: /src/tmux/proc.c:259,1
    - Dst: signal_set
      Src: /src/tmux/proc.c:260,1
    - Dst: signal_add
      Src: /src/tmux/proc.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 1
    argNames:
    - tp
    argTypes:
    - struct tmuxproc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 262
    functionName: proc_set_signals
    functionSourceFile: /src/tmux/proc.c
    functionUses: 0
    functionsReached:
    - sigaction
    - signal_add
    - signal_set
    - sigemptyset
    - memset
    linkageType: ''
    returnType: void
    signature: void proc_set_signals(struct tmuxproc *tp, void (*signalcb)(int))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/tmux/proc.c:269,1
    - Dst: sigemptyset
      Src: /src/tmux/proc.c:270,1
    - Dst: sigaction
      Src: /src/tmux/proc.c:274,1
    - Dst: sigaction
      Src: /src/tmux/proc.c:275,1
    - Dst: signal_del
      Src: /src/tmux/proc.c:277,1
    - Dst: signal_del
      Src: /src/tmux/proc.c:278,1
    - Dst: signal_del
      Src: /src/tmux/proc.c:279,1
    - Dst: signal_del
      Src: /src/tmux/proc.c:280,1
    - Dst: signal_del
      Src: /src/tmux/proc.c:281,1
    - Dst: signal_del
      Src: /src/tmux/proc.c:282,1
    - Dst: signal_del
      Src: /src/tmux/proc.c:283,1
    - Dst: signal_del
      Src: /src/tmux/proc.c:284,1
    - Dst: sigaction
      Src: /src/tmux/proc.c:287,1
    - Dst: sigaction
      Src: /src/tmux/proc.c:288,1
    - Dst: sigaction
      Src: /src/tmux/proc.c:289,1
    - Dst: sigaction
      Src: /src/tmux/proc.c:290,1
    - Dst: sigaction
      Src: /src/tmux/proc.c:291,1
    - Dst: sigaction
      Src: /src/tmux/proc.c:292,1
    - Dst: sigaction
      Src: /src/tmux/proc.c:293,1
    - Dst: sigaction
      Src: /src/tmux/proc.c:294,1
    - Dst: sigaction
      Src: /src/tmux/proc.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 2
    argNames:
    - tp
    - defaults
    argTypes:
    - struct tmuxproc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 297
    functionName: proc_clear_signals
    functionSourceFile: /src/tmux/proc.c
    functionUses: 1
    functionsReached:
    - signal_del
    - memset
    - sigaction
    - sigemptyset
    linkageType: ''
    returnType: void
    signature: void proc_clear_signals(struct tmuxproc *tp, int defaults)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/proc.c:306,1
    - Dst: imsgbuf_init
      Src: /src/tmux/proc.c:312,1
    - Dst: fatal
      Src: /src/tmux/proc.c:313,1
    - Dst: imsgbuf_allow_fdpass
      Src: /src/tmux/proc.c:314,1
    - Dst: event_set
      Src: /src/tmux/proc.c:315,1
    - Dst: getpeereid
      Src: /src/tmux/proc.c:317,1
    - Dst: log_debug
      Src: /src/tmux/proc.c:320,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/proc.c:321,1
    - Dst: proc_update_event
      Src: /src/tmux/proc.c:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - tp
    - fd
    - arg
    argTypes:
    - struct tmuxproc*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 325
    functionName: proc_add_peer
    functionSourceFile: /src/tmux/proc.c
    functionUses: 0
    functionsReached:
    - event_set
    - getpeereid
    - fatal
    - imsgbuf_allow_fdpass
    - xcalloc
    - imsgbuf_init
    - log_debug
    - TAILQ_INSERT_TAIL
    - proc_update_event
    linkageType: ''
    returnType: struct tmuxpeer
    signature: "struct tmuxpeer *\nproc_add_peer(struct tmuxproc *tp, int fd,\n    void
      (*dispatchcb)(struct imsg *, void *), void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/proc.c:330,1
    - Dst: log_debug
      Src: /src/tmux/proc.c:331,1
    - Dst: event_del
      Src: /src/tmux/proc.c:333,1
    - Dst: imsgbuf_clear
      Src: /src/tmux/proc.c:334,1
    - Dst: close
      Src: /src/tmux/proc.c:336,1
    - Dst: free
      Src: /src/tmux/proc.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - peer
    argTypes:
    - struct tmuxpeer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 338
    functionName: proc_remove_peer
    functionSourceFile: /src/tmux/proc.c
    functionUses: 0
    functionsReached:
    - imsgbuf_clear
    - close
    - event_del
    - free
    - log_debug
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void proc_remove_peer(struct tmuxpeer *peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - peer
    argTypes:
    - struct tmuxpeer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 344
    functionName: proc_kill_peer
    functionSourceFile: /src/tmux/proc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void proc_kill_peer(struct tmuxpeer *peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: imsgbuf_flush
      Src: /src/tmux/proc.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - peer
    argTypes:
    - struct tmuxpeer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 350
    functionName: proc_flush_peer
    functionSourceFile: /src/tmux/proc.c
    functionUses: 0
    functionsReached:
    - imsgbuf_flush
    linkageType: ''
    returnType: void
    signature: void proc_flush_peer(struct tmuxpeer *peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_toggle
      Src: /src/tmux/proc.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tp
    argTypes:
    - struct tmuxproc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 356
    functionName: proc_toggle_log
    functionSourceFile: /src/tmux/proc.c
    functionUses: 0
    functionsReached:
    - log_toggle
    linkageType: ''
    returnType: void
    signature: void proc_toggle_log(struct tmuxproc *tp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: socketpair
      Src: /src/tmux/proc.c:364,1
    - Dst: fatal
      Src: /src/tmux/proc.c:365,1
    - Dst: fork
      Src: /src/tmux/proc.c:366,1
    - Dst: fatal
      Src: /src/tmux/proc.c:368,1
    - Dst: close
      Src: /src/tmux/proc.c:370,1
    - Dst: daemon
      Src: /src/tmux/proc.c:372,1
    - Dst: fatal
      Src: /src/tmux/proc.c:373,1
    - Dst: close
      Src: /src/tmux/proc.c:376,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 380
    functionName: proc_fork_and_daemon
    functionSourceFile: /src/tmux/proc.c
    functionUses: 0
    functionsReached:
    - close
    - socketpair
    - fatal
    - fork
    - daemon
    linkageType: ''
    returnType: pid_t
    signature: pid_t proc_fork_and_daemon(int *fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - peer
    argTypes:
    - struct tmuxpeer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 386
    functionName: proc_get_peer_uid
    functionSourceFile: /src/tmux/proc.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: uid_t
    signature: uid_t proc_get_peer_uid(struct tmuxpeer *peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: evbuffer_readln
    functionSourceFile: /src/tmux/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evbuffer_readln(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: pledge
    functionSourceFile: /src/tmux/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pledge(s, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mhdr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: CMSG_FIRSTHDR
    functionSourceFile: /src/tmux/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMSG_FIRSTHDR(mhdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: CMSG_ALIGN
    functionSourceFile: /src/tmux/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMSG_ALIGN(len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: CMSG_SPACE
    functionSourceFile: /src/tmux/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMSG_SPACE(len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: CMSG_LEN
    functionSourceFile: /src/tmux/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMSG_LEN(len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sun
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    functionName: SUN_LEN
    functionSourceFile: /src/tmux/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUN_LEN(sun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tvp
    - ','
    - uvp
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: timercmp
    functionSourceFile: /src/tmux/compat.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: timercmp(tvp, uvp, cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tvp
    - ','
    - uvp
    - ','
    - vvp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 254
    functionName: timeradd
    functionSourceFile: /src/tmux/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: timeradd(tvp, uvp, vvp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tvp
    - ','
    - uvp
    - ','
    - vvp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: timersub
    functionSourceFile: /src/tmux/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: timersub(tvp, uvp, vvp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fd
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 288
    functionName: flock
    functionSourceFile: /src/tmux/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flock(fd, op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - preg
    - ','
    - pattern
    - ','
    - cflags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 467
    functionName: regcomp
    functionSourceFile: /src/tmux/compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: regcomp(preg, pattern, cflags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - preg
    - ','
    - string
    - ','
    - nmatch
    - ','
    - pmatch
    - ','
    - eflags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 468
    functionName: regexec
    functionSourceFile: /src/tmux/compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: regexec(preg, string, nmatch, pmatch, eflags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - preg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 469
    functionName: regfree
    functionSourceFile: /src/tmux/compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: regfree(preg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ac
    - ','
    - av
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 479
    functionName: getopt
    functionSourceFile: /src/tmux/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: getopt(ac, av, o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/input.c:776,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 777
    functionName: input_table_compare
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int input_table_compare(const void *key, const void *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utf8_copy
      Src: /src/tmux/input.c:787,1
    - Dst: screen_write_collect_add
      Src: /src/tmux/input.c:788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 791
    functionName: input_stop_utf8
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - screen_write_collect_add
    - utf8_copy
    linkageType: ''
    returnType: void
    signature: void input_stop_utf8(struct input_ctx *ictx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/input.c:802,1
    - Dst: input_reset
      Src: /src/tmux/input.c:803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - int
    - events
    - arg
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 804
    functionName: input_ground_timer_callback
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - log_debug
    - input_reset
    linkageType: ''
    returnType: void
    signature: void input_ground_timer_callback(__unused int fd, __unused short events,
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_del
      Src: /src/tmux/input.c:812,1
    - Dst: event_add
      Src: /src/tmux/input.c:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 814
    functionName: input_start_ground_timer
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - event_add
    - event_del
    linkageType: ''
    returnType: void
    signature: void input_start_ground_timer(struct input_ctx *ictx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/input.c:820,1
    - Dst: memcpy
      Src: /src/tmux/input.c:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 827
    functionName: input_reset_cell
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void input_reset_cell(struct input_ctx *ictx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/input.c:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 840
    functionName: input_save_state
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void input_save_state(struct input_ctx *ictx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/input.c:848,1
    - Dst: screen_write_mode_set
      Src: /src/tmux/input.c:850,1
    - Dst: screen_write_mode_clear
      Src: /src/tmux/input.c:852,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/input.c:853,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 854
    functionName: input_restore_state
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - screen_write_cursormove
    - memcpy
    - screen_write_mode_clear
    - screen_write_mode_set
    linkageType: ''
    returnType: void
    signature: void input_restore_state(struct input_ctx *ictx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/input.c:863,1
    - Dst: xmalloc
      Src: /src/tmux/input.c:870,1
    - Dst: evbuffer_new
      Src: /src/tmux/input.c:872,1
    - Dst: fatalx
      Src: /src/tmux/input.c:874,1
    - Dst: evtimer_set
      Src: /src/tmux/input.c:875,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/input.c:877,1
    - Dst: evtimer_set
      Src: /src/tmux/input.c:878,1
    - Dst: input_reset
      Src: /src/tmux/input.c:880,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - wp
    - bev
    - palette
    - c
    argTypes:
    - struct window_pane*
    - struct bufferevent*
    - struct colour_palette*
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 857
    functionDepth: 1
    functionLinenumber: 857
    functionLinenumberEnd: 882
    functionName: input_init
    functionSourceFile: /src/tmux/input.c
    functionUses: 1
    functionsReached:
    - xmalloc
    - xcalloc
    - fatalx
    - TAILQ_INIT
    - input_reset
    - evtimer_set
    - evbuffer_new
    linkageType: ''
    returnType: struct input_ctx
    signature: "struct input_ctx *\ninput_init(struct window_pane *wp, struct bufferevent
      *bev,\n    struct colour_palette *palette, struct client *c)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/input.c:893,1
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/input.c:896,1
    - Dst: input_free_request
      Src: /src/tmux/input.c:897,1
    - Dst: event_del
      Src: /src/tmux/input.c:898,1
    - Dst: free
      Src: /src/tmux/input.c:900,1
    - Dst: evbuffer_free
      Src: /src/tmux/input.c:901,1
    - Dst: event_del
      Src: /src/tmux/input.c:902,1
    - Dst: screen_write_stop_sync
      Src: /src/tmux/input.c:904,1
    - Dst: free
      Src: /src/tmux/input.c:906,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 885
    functionDepth: 1
    functionLinenumber: 885
    functionLinenumberEnd: 907
    functionName: input_free
    functionSourceFile: /src/tmux/input.c
    functionUses: 2
    functionsReached:
    - input_free_request
    - event_del
    - evbuffer_free
    - TAILQ_FOREACH_SAFE
    - free
    - screen_write_stop_sync
    linkageType: ''
    returnType: void
    signature: void input_free(struct input_ctx *ictx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: input_reset_cell
      Src: /src/tmux/input.c:916,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/input.c:919,1
    - Dst: screen_write_start_pane
      Src: /src/tmux/input.c:920,1
    - Dst: screen_write_start
      Src: /src/tmux/input.c:922,1
    - Dst: screen_write_reset
      Src: /src/tmux/input.c:923,1
    - Dst: screen_write_stop
      Src: /src/tmux/input.c:924,1
    - Dst: input_clear
      Src: /src/tmux/input.c:927,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ictx
    - clear
    argTypes:
    - struct input_ctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 910
    functionDepth: 1
    functionLinenumber: 910
    functionLinenumberEnd: 931
    functionName: input_reset
    functionSourceFile: /src/tmux/input.c
    functionUses: 2
    functionsReached:
    - screen_write_start_pane
    - input_clear
    - screen_write_reset
    - TAILQ_EMPTY
    - input_reset_cell
    - screen_write_start
    - screen_write_stop
    linkageType: ''
    returnType: void
    signature: void input_reset(struct input_ctx *ictx, int clear)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 934
    functionDepth: 0
    functionLinenumber: 934
    functionLinenumberEnd: 938
    functionName: input_pending
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evbuffer
    signature: 'struct evbuffer *

      input_pending(struct input_ctx *ictx)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct input_ctx*::state::exit
      Src: /src/tmux/input.c:945,1
    - Dst: struct input_ctx*::state::enter
      Src: /src/tmux/input.c:948,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ictx
    - itr
    argTypes:
    - struct input_ctx*
    - struct input_transition*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 949
    functionName: input_set_state
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - struct input_ctx*::state::exit
    - struct input_ctx*::state::enter
    linkageType: ''
    returnType: void
    signature: void input_set_state(struct input_ctx *ictx, const struct input_transition
      *itr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fatalx
      Src: /src/tmux/input.c:978,1
    - Dst: screen_write_collect_end
      Src: /src/tmux/input.c:991,1
    - Dst: struct input_transition*::handler
      Src: /src/tmux/input.c:997,1
    - Dst: input_set_state
      Src: /src/tmux/input.c:1002,1
    - Dst: evbuffer_add
      Src: /src/tmux/input.c:1006,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 24
    argCount: 3
    argNames:
    - ictx
    - buf
    - len
    argTypes:
    - struct input_ctx*
    - u_char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 952
    functionDepth: 1
    functionLinenumber: 952
    functionLinenumberEnd: 1008
    functionName: input_parse
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    - fatalx
    - screen_write_collect_end
    - input_set_state
    - struct input_transition*::handler
    linkageType: ''
    returnType: void
    signature: void input_parse(struct input_ctx *ictx, const u_char *buf, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_pane_get_new_data
      Src: /src/tmux/input.c:1017,1
    - Dst: input_parse_buffer
      Src: /src/tmux/input.c:1018,1
    - Dst: window_pane_update_used_data
      Src: /src/tmux/input.c:1019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1011
    functionDepth: 2
    functionLinenumber: 1011
    functionLinenumberEnd: 1020
    functionName: input_parse_pane
    functionSourceFile: /src/tmux/input.c
    functionUses: 1
    functionsReached:
    - window_pane_update_used_data
    - input_parse_buffer
    - window_pane_get_new_data
    linkageType: ''
    returnType: void
    signature: void input_parse_pane(struct window_pane *wp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: window_update_activity
      Src: /src/tmux/input.c:1032,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/input.c:1036,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/input.c:1040,1
    - Dst: screen_write_start_pane
      Src: /src/tmux/input.c:1041,1
    - Dst: screen_write_start
      Src: /src/tmux/input.c:1043,1
    - Dst: log_debug
      Src: /src/tmux/input.c:1045,1
    - Dst: input_parse
      Src: /src/tmux/input.c:1048,1
    - Dst: screen_write_stop
      Src: /src/tmux/input.c:1049,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - wp
    - buf
    - len
    argTypes:
    - struct window_pane*
    - u_char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1023
    functionDepth: 2
    functionLinenumber: 1023
    functionLinenumberEnd: 1050
    functionName: input_parse_buffer
    functionSourceFile: /src/tmux/input.c
    functionUses: 2
    functionsReached:
    - log_debug
    - screen_write_start_pane
    - input_parse
    - TAILQ_EMPTY
    - screen_write_start
    - screen_write_stop
    - window_update_activity
    linkageType: ''
    returnType: void
    signature: void input_parse_buffer(struct window_pane *wp, const u_char *buf,
      size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_start_callback
      Src: /src/tmux/input.c:1062,1
    - Dst: input_parse
      Src: /src/tmux/input.c:1063,1
    - Dst: screen_write_stop
      Src: /src/tmux/input.c:1064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - ictx
    - s
    - cb
    - arg
    - buf
    - len
    argTypes:
    - struct input_ctx*
    - struct screen*
    - screen_write_init_ctx_cb
    - void*
    - u_char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1053
    functionDepth: 2
    functionLinenumber: 1053
    functionLinenumberEnd: 1065
    functionName: input_parse_screen
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - input_parse
    - screen_write_stop
    - screen_write_start_callback
    linkageType: ''
    returnType: void
    signature: "void input_parse_screen(struct input_ctx *ictx, struct screen *s,\n
      \   screen_write_init_ctx_cb cb, void *arg, const u_char *buf, size_t len)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/input.c:1078,1
    - Dst: strsep
      Src: /src/tmux/input.c:1087,1
    - Dst: strchr
      Src: /src/tmux/input.c:1091,1
    - Dst: xstrdup
      Src: /src/tmux/input.c:1093,1
    - Dst: strtonum
      Src: /src/tmux/input.c:1096,1
    - Dst: nitems
      Src: /src/tmux/input.c:1102,1
    - Dst: log_debug
      Src: /src/tmux/input.c:1109,1
    - Dst: log_debug
      Src: /src/tmux/input.c:1111,1
    - Dst: log_debug
      Src: /src/tmux/input.c:1113,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1068
    functionDepth: 1
    functionLinenumber: 1068
    functionLinenumberEnd: 1117
    functionName: input_split
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - strtonum
    - nitems
    - strchr
    - strsep
    - free
    - log_debug
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int input_split(struct input_ctx *ictx)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - ictx
    - validx
    - minval
    - defval
    argTypes:
    - struct input_ctx*
    - u_int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1120
    functionDepth: 0
    functionLinenumber: 1120
    functionLinenumberEnd: 1137
    functionName: input_get
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int input_get(struct input_ctx *ictx, u_int validx, int minval, int
      defval)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/input.c:1144,1
    - Dst: bufferevent_write
      Src: /src/tmux/input.c:1145,1
    - Dst: strlen
      Src: /src/tmux/input.c:1145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ictx
    - reply
    argTypes:
    - struct input_ctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1140
    functionDepth: 1
    functionLinenumber: 1140
    functionLinenumberEnd: 1147
    functionName: input_send_reply
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - log_debug
    - bufferevent_write
    - strlen
    linkageType: ''
    returnType: void
    signature: void input_send_reply(struct input_ctx *ictx, const char *reply)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/tmux/input.c:1157,1
    - Dst: xvasprintf
      Src: /src/tmux/input.c:1158,1
    - Dst: va_end
      Src: /src/tmux/input.c:1159,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/input.c:1161,1
    - Dst: input_make_request
      Src: /src/tmux/input.c:1162,1
    - Dst: input_send_reply
      Src: /src/tmux/input.c:1165,1
    - Dst: free
      Src: /src/tmux/input.c:1166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ictx
    - add
    - fmt
    argTypes:
    - struct input_ctx*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1151
    functionDepth: 2
    functionLinenumber: 1151
    functionLinenumberEnd: 1168
    functionName: input_reply
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - xvasprintf
    - free
    - input_send_reply
    - input_make_request
    - va_end
    - va_start
    - TAILQ_EMPTY
    linkageType: ''
    returnType: void
    signature: void input_reply(struct input_ctx *ictx, int add, const char *fmt,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_del
      Src: /src/tmux/input.c:1174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1171
    functionDepth: 1
    functionLinenumber: 1171
    functionLinenumberEnd: 1188
    functionName: input_clear
    functionSourceFile: /src/tmux/input.c
    functionUses: 1
    functionsReached:
    - event_del
    linkageType: ''
    returnType: void
    signature: void input_clear(struct input_ctx *ictx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_del
      Src: /src/tmux/input.c:1194,1
    - Dst: evbuffer_drain
      Src: /src/tmux/input.c:1195,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/input.c:1195,1
    - Dst: xrealloc
      Src: /src/tmux/input.c:1199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1191
    functionDepth: 1
    functionLinenumber: 1191
    functionLinenumberEnd: 1201
    functionName: input_ground
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - xrealloc
    - event_del
    - evbuffer_drain
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: void input_ground(struct input_ctx *ictx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: input_stop_utf8
      Src: /src/tmux/input.c:1210,1
    - Dst: utf8_set
      Src: /src/tmux/input.c:1217,1
    - Dst: screen_write_collect_add
      Src: /src/tmux/input.c:1218,1
    - Dst: utf8_copy
      Src: /src/tmux/input.c:1220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1204
    functionDepth: 2
    functionLinenumber: 1204
    functionLinenumberEnd: 1226
    functionName: input_print
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - input_stop_utf8
    - utf8_set
    - screen_write_collect_add
    - utf8_copy
    linkageType: ''
    returnType: int
    signature: int input_print(struct input_ctx *ictx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1229
    functionDepth: 0
    functionLinenumber: 1229
    functionLinenumberEnd: 1240
    functionName: input_intermediate
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int input_intermediate(struct input_ctx *ictx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1243
    functionDepth: 0
    functionLinenumber: 1243
    functionLinenumberEnd: 1254
    functionName: input_parameter
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int input_parameter(struct input_ctx *ictx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xrealloc
      Src: /src/tmux/input.c:1269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1257
    functionDepth: 1
    functionLinenumber: 1257
    functionLinenumberEnd: 1276
    functionName: input_input
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - xrealloc
    linkageType: ''
    returnType: int
    signature: int input_input(struct input_ctx *ictx)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: input_stop_utf8
      Src: /src/tmux/input.c:1290,1
    - Dst: log_debug
      Src: /src/tmux/input.c:1292,1
    - Dst: alerts_queue
      Src: /src/tmux/input.c:1299,1
    - Dst: screen_write_backspace
      Src: /src/tmux/input.c:1302,1
    - Dst: screen_size_x
      Src: /src/tmux/input.c:1307,1
    - Dst: grid_get_cell
      Src: /src/tmux/input.c:1312,1
    - Dst: grid_get_cell
      Src: /src/tmux/input.c:1315,1
    - Dst: grid_cells_look_equal
      Src: /src/tmux/input.c:1318,1
    - Dst: bit_test
      Src: /src/tmux/input.c:1322,1
    - Dst: screen_size_x
      Src: /src/tmux/input.c:1324,1
    - Dst: grid_get_cell
      Src: /src/tmux/input.c:1330,1
    - Dst: grid_set_tab
      Src: /src/tmux/input.c:1331,1
    - Dst: screen_write_collect_add
      Src: /src/tmux/input.c:1332,1
    - Dst: screen_write_linefeed
      Src: /src/tmux/input.c:1338,1
    - Dst: screen_write_carriagereturn
      Src: /src/tmux/input.c:1340,1
    - Dst: screen_write_carriagereturn
      Src: /src/tmux/input.c:1343,1
    - Dst: log_debug
      Src: /src/tmux/input.c:1352,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1279
    functionDepth: 3
    functionLinenumber: 1279
    functionLinenumberEnd: 1358
    functionName: input_c0_dispatch
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - input_stop_utf8
    - alerts_queue
    - screen_write_carriagereturn
    - screen_write_backspace
    - screen_size_x
    - bit_test
    - screen_write_collect_add
    - grid_cells_look_equal
    - grid_get_cell
    - screen_write_linefeed
    - log_debug
    - grid_set_tab
    linkageType: ''
    returnType: int
    signature: int input_c0_dispatch(struct input_ctx *ictx)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/input.c:1370,1
    - Dst: bsearch
      Src: /src/tmux/input.c:1372,1
    - Dst: nitems
      Src: /src/tmux/input.c:1372,1
    - Dst: log_debug
      Src: /src/tmux/input.c:1375,1
    - Dst: colour_palette_clear
      Src: /src/tmux/input.c:1381,1
    - Dst: input_reset_cell
      Src: /src/tmux/input.c:1382,1
    - Dst: screen_write_reset
      Src: /src/tmux/input.c:1383,1
    - Dst: screen_write_fullredraw
      Src: /src/tmux/input.c:1384,1
    - Dst: screen_write_linefeed
      Src: /src/tmux/input.c:1387,1
    - Dst: screen_write_carriagereturn
      Src: /src/tmux/input.c:1390,1
    - Dst: screen_write_linefeed
      Src: /src/tmux/input.c:1391,1
    - Dst: screen_size_x
      Src: /src/tmux/input.c:1394,1
    - Dst: bit_set
      Src: /src/tmux/input.c:1395,1
    - Dst: screen_write_reverseindex
      Src: /src/tmux/input.c:1398,1
    - Dst: screen_write_mode_set
      Src: /src/tmux/input.c:1401,1
    - Dst: screen_write_mode_clear
      Src: /src/tmux/input.c:1404,1
    - Dst: input_save_state
      Src: /src/tmux/input.c:1407,1
    - Dst: input_restore_state
      Src: /src/tmux/input.c:1410,1
    - Dst: screen_write_alignmenttest
      Src: /src/tmux/input.c:1413,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 62
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1361
    functionDepth: 2
    functionLinenumber: 1361
    functionLinenumberEnd: 1434
    functionName: input_esc_dispatch
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - screen_write_carriagereturn
    - screen_write_mode_clear
    - screen_size_x
    - nitems
    - input_restore_state
    - screen_write_alignmenttest
    - screen_write_reverseindex
    - screen_write_fullredraw
    - screen_write_reset
    - screen_write_linefeed
    - bsearch
    - screen_write_mode_set
    - log_debug
    - input_reset_cell
    - bit_set
    - colour_palette_clear
    - input_save_state
    linkageType: ''
    returnType: int
    signature: int input_esc_dispatch(struct input_ctx *ictx)
  - BBCount: 112
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/input.c:1450,1
    - Dst: input_split
      Src: /src/tmux/input.c:1453,1
    - Dst: bsearch
      Src: /src/tmux/input.c:1456,1
    - Dst: nitems
      Src: /src/tmux/input.c:1456,1
    - Dst: log_debug
      Src: /src/tmux/input.c:1459,1
    - Dst: screen_size_x
      Src: /src/tmux/input.c:1467,1
    - Dst: screen_size_x
      Src: /src/tmux/input.c:1468,1
    - Dst: input_get
      Src: /src/tmux/input.c:1469,1
    - Dst: bit_test
      Src: /src/tmux/input.c:1475,1
    - Dst: input_get
      Src: /src/tmux/input.c:1480,1
    - Dst: screen_write_cursorleft
      Src: /src/tmux/input.c:1482,1
    - Dst: input_get
      Src: /src/tmux/input.c:1485,1
    - Dst: screen_write_cursordown
      Src: /src/tmux/input.c:1487,1
    - Dst: input_get
      Src: /src/tmux/input.c:1490,1
    - Dst: screen_write_cursorright
      Src: /src/tmux/input.c:1492,1
    - Dst: input_get
      Src: /src/tmux/input.c:1495,1
    - Dst: input_get
      Src: /src/tmux/input.c:1496,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/input.c:1498,1
    - Dst: input_get
      Src: /src/tmux/input.c:1501,1
    - Dst: input_get
      Src: /src/tmux/input.c:1504,1
    - Dst: options_get_number
      Src: /src/tmux/input.c:1510,1
    - Dst: screen_write_mode_clear
      Src: /src/tmux/input.c:1513,1
    - Dst: screen_write_mode_set
      Src: /src/tmux/input.c:1515,1
    - Dst: screen_write_mode_set
      Src: /src/tmux/input.c:1517,1
    - Dst: input_get
      Src: /src/tmux/input.c:1520,1
    - Dst: screen_write_mode_clear
      Src: /src/tmux/input.c:1528,1
    - Dst: options_get_number
      Src: /src/tmux/input.c:1530,1
    - Dst: screen_write_mode_set
      Src: /src/tmux/input.c:1531,1
    - Dst: input_csi_dispatch_winops
      Src: /src/tmux/input.c:1534,1
    - Dst: input_get
      Src: /src/tmux/input.c:1537,1
    - Dst: screen_write_cursorup
      Src: /src/tmux/input.c:1539,1
    - Dst: input_get
      Src: /src/tmux/input.c:1542,1
    - Dst: screen_write_carriagereturn
      Src: /src/tmux/input.c:1544,1
    - Dst: screen_write_cursordown
      Src: /src/tmux/input.c:1545,1
    - Dst: input_get
      Src: /src/tmux/input.c:1549,1
    - Dst: screen_write_carriagereturn
      Src: /src/tmux/input.c:1551,1
    - Dst: screen_write_cursorup
      Src: /src/tmux/input.c:1552,1
    - Dst: input_get
      Src: /src/tmux/input.c:1556,1
    - Dst: input_reply
      Src: /src/tmux/input.c:1561,1
    - Dst: input_reply
      Src: /src/tmux/input.c:1563,1
    - Dst: log_debug
      Src: /src/tmux/input.c:1567,1
    - Dst: input_get
      Src: /src/tmux/input.c:1572,1
    - Dst: input_reply
      Src: /src/tmux/input.c:1576,1
    - Dst: log_debug
      Src: /src/tmux/input.c:1579,1
    - Dst: input_get
      Src: /src/tmux/input.c:1584,1
    - Dst: screen_write_clearcharacter
      Src: /src/tmux/input.c:1586,1
    - Dst: input_get
      Src: /src/tmux/input.c:1589,1
    - Dst: screen_write_deletecharacter
      Src: /src/tmux/input.c:1591,1
    - Dst: input_get
      Src: /src/tmux/input.c:1594,1
    - Dst: input_get
      Src: /src/tmux/input.c:1595,1
    - Dst: screen_size_y
      Src: /src/tmux/input.c:1595,1
    - Dst: screen_write_scrollregion
      Src: /src/tmux/input.c:1597,1
    - Dst: input_get
      Src: /src/tmux/input.c:1600,1
    - Dst: screen_write_deleteline
      Src: /src/tmux/input.c:1602,1
    - Dst: input_get
      Src: /src/tmux/input.c:1605,1
    - Dst: input_report_current_theme
      Src: /src/tmux/input.c:1607,1
    - Dst: input_get
      Src: /src/tmux/input.c:1612,1
    - Dst: options_get_number
      Src: /src/tmux/input.c:1622,1
    - Dst: input_reply
      Src: /src/tmux/input.c:1627,1
    - Dst: input_reply
      Src: /src/tmux/input.c:1631,1
    - Dst: input_reply
      Src: /src/tmux/input.c:1635,1
    - Dst: input_reply
      Src: /src/tmux/input.c:1639,1
    - Dst: input_reply
      Src: /src/tmux/input.c:1643,1
    - Dst: input_reply
      Src: /src/tmux/input.c:1646,1
    - Dst: input_get
      Src: /src/tmux/input.c:1651,1
    - Dst: input_reply
      Src: /src/tmux/input.c:1655,1
    - Dst: input_reply
      Src: /src/tmux/input.c:1658,1
    - Dst: log_debug
      Src: /src/tmux/input.c:1662,1
    - Dst: input_get
      Src: /src/tmux/input.c:1667,1
    - Dst: screen_write_clearendofscreen
      Src: /src/tmux/input.c:1671,1
    - Dst: screen_write_clearstartofscreen
      Src: /src/tmux/input.c:1674,1
    - Dst: screen_write_clearscreen
      Src: /src/tmux/input.c:1677,1
    - Dst: input_get
      Src: /src/tmux/input.c:1680,1
    - Dst: screen_write_clearhistory
      Src: /src/tmux/input.c:1685,1
    - Dst: log_debug
      Src: /src/tmux/input.c:1689,1
    - Dst: input_get
      Src: /src/tmux/input.c:1694,1
    - Dst: screen_write_clearendofline
      Src: /src/tmux/input.c:1698,1
    - Dst: screen_write_clearstartofline
      Src: /src/tmux/input.c:1701,1
    - Dst: screen_write_clearline
      Src: /src/tmux/input.c:1704,1
    - Dst: log_debug
      Src: /src/tmux/input.c:1707,1
    - Dst: input_get
      Src: /src/tmux/input.c:1712,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/input.c:1714,1
    - Dst: input_get
      Src: /src/tmux/input.c:1717,1
    - Dst: screen_write_insertcharacter
      Src: /src/tmux/input.c:1719,1
    - Dst: input_get
      Src: /src/tmux/input.c:1722,1
    - Dst: screen_write_insertline
      Src: /src/tmux/input.c:1724,1
    - Dst: input_get
      Src: /src/tmux/input.c:1727,1
    - Dst: screen_size_x
      Src: /src/tmux/input.c:1731,1
    - Dst: utf8_copy
      Src: /src/tmux/input.c:1743,1
    - Dst: screen_write_collect_add
      Src: /src/tmux/input.c:1745,1
    - Dst: input_restore_state
      Src: /src/tmux/input.c:1748,1
    - Dst: input_csi_dispatch_rm
      Src: /src/tmux/input.c:1751,1
    - Dst: input_csi_dispatch_rm_private
      Src: /src/tmux/input.c:1754,1
    - Dst: input_save_state
      Src: /src/tmux/input.c:1757,1
    - Dst: input_csi_dispatch_sgr
      Src: /src/tmux/input.c:1760,1
    - Dst: input_csi_dispatch_sm
      Src: /src/tmux/input.c:1763,1
    - Dst: input_csi_dispatch_sm_private
      Src: /src/tmux/input.c:1766,1
    - Dst: input_csi_dispatch_sm_graphics
      Src: /src/tmux/input.c:1769,1
    - Dst: input_get
      Src: /src/tmux/input.c:1772,1
    - Dst: screen_write_scrollup
      Src: /src/tmux/input.c:1774,1
    - Dst: input_get
      Src: /src/tmux/input.c:1777,1
    - Dst: screen_write_scrolldown
      Src: /src/tmux/input.c:1779,1
    - Dst: input_get
      Src: /src/tmux/input.c:1782,1
    - Dst: screen_size_x
      Src: /src/tmux/input.c:1786,1
    - Dst: bit_clear
      Src: /src/tmux/input.c:1787,1
    - Dst: bit_nclear
      Src: /src/tmux/input.c:1790,1
    - Dst: screen_size_x
      Src: /src/tmux/input.c:1790,1
    - Dst: log_debug
      Src: /src/tmux/input.c:1793,1
    - Dst: input_get
      Src: /src/tmux/input.c:1798,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/input.c:1800,1
    - Dst: input_get
      Src: /src/tmux/input.c:1803,1
    - Dst: screen_set_cursor_style
      Src: /src/tmux/input.c:1806,1
    - Dst: screen_write_mode_clear
      Src: /src/tmux/input.c:1809,1
    - Dst: input_get
      Src: /src/tmux/input.c:1813,1
    - Dst: input_reply
      Src: /src/tmux/input.c:1815,1
    - Dst: getversion
      Src: /src/tmux/input.c:1816,1
    CyclomaticComplexity: 138
    EdgeCount: 138
    ICount: 338
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1824
      start: 1437
    functionDepth: 3
    functionLinenumber: 1437
    functionLinenumberEnd: 1824
    functionName: input_csi_dispatch
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - input_csi_dispatch_winops
    - screen_write_clearcharacter
    - input_csi_dispatch_sm_graphics
    - screen_write_insertcharacter
    - input_csi_dispatch_rm_private
    - screen_size_x
    - input_get
    - screen_set_cursor_style
    - input_csi_dispatch_sm
    - screen_write_scrollup
    - input_split
    - input_save_state
    - screen_write_clearhistory
    - screen_size_y
    - getversion
    - input_csi_dispatch_sgr
    - screen_write_scrollregion
    - screen_write_collect_add
    - input_csi_dispatch_rm
    - input_report_current_theme
    - screen_write_deleteline
    - screen_write_mode_set
    - log_debug
    - utf8_copy
    - screen_write_cursorleft
    - screen_write_scrolldown
    - bit_clear
    - screen_write_carriagereturn
    - nitems
    - input_reply
    - screen_write_cursorup
    - screen_write_clearendofscreen
    - bit_nclear
    - screen_write_clearstartofscreen
    - screen_write_cursordown
    - input_restore_state
    - screen_write_clearstartofline
    - screen_write_cursorright
    - screen_write_mode_clear
    - screen_write_insertline
    - bit_test
    - screen_write_cursormove
    - screen_write_clearscreen
    - screen_write_clearline
    - input_csi_dispatch_sm_private
    - bsearch
    - screen_write_deletecharacter
    - screen_write_clearendofline
    - options_get_number
    linkageType: ''
    returnType: int
    signature: int input_csi_dispatch(struct input_ctx *ictx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: input_get
      Src: /src/tmux/input.c:1834,1
    - Dst: screen_write_mode_clear
      Src: /src/tmux/input.c:1838,1
    - Dst: screen_write_mode_set
      Src: /src/tmux/input.c:1841,1
    - Dst: log_debug
      Src: /src/tmux/input.c:1844,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1848
      start: 1827
    functionDepth: 1
    functionLinenumber: 1827
    functionLinenumberEnd: 1848
    functionName: input_csi_dispatch_rm
    functionSourceFile: /src/tmux/input.c
    functionUses: 1
    functionsReached:
    - log_debug
    - input_get
    - screen_write_mode_clear
    - screen_write_mode_set
    linkageType: ''
    returnType: void
    signature: void input_csi_dispatch_rm(struct input_ctx *ictx)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: input_get
      Src: /src/tmux/input.c:1859,1
    - Dst: screen_write_mode_clear
      Src: /src/tmux/input.c:1863,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/input.c:1866,1
    - Dst: screen_write_clearscreen
      Src: /src/tmux/input.c:1867,1
    - Dst: screen_write_mode_clear
      Src: /src/tmux/input.c:1870,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/input.c:1871,1
    - Dst: screen_write_mode_clear
      Src: /src/tmux/input.c:1874,1
    - Dst: screen_write_mode_clear
      Src: /src/tmux/input.c:1877,1
    - Dst: screen_write_mode_set
      Src: /src/tmux/input.c:1878,1
    - Dst: screen_write_mode_clear
      Src: /src/tmux/input.c:1881,1
    - Dst: screen_write_mode_clear
      Src: /src/tmux/input.c:1887,1
    - Dst: screen_write_mode_clear
      Src: /src/tmux/input.c:1890,1
    - Dst: screen_write_mode_clear
      Src: /src/tmux/input.c:1893,1
    - Dst: screen_write_mode_clear
      Src: /src/tmux/input.c:1896,1
    - Dst: screen_write_alternateoff
      Src: /src/tmux/input.c:1900,1
    - Dst: screen_write_alternateoff
      Src: /src/tmux/input.c:1903,1
    - Dst: screen_write_mode_clear
      Src: /src/tmux/input.c:1906,1
    - Dst: screen_write_mode_clear
      Src: /src/tmux/input.c:1909,1
    - Dst: screen_write_stop_sync
      Src: /src/tmux/input.c:1914,1
    - Dst: log_debug
      Src: /src/tmux/input.c:1919,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 66
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1923
      start: 1851
    functionDepth: 1
    functionLinenumber: 1851
    functionLinenumberEnd: 1923
    functionName: input_csi_dispatch_rm_private
    functionSourceFile: /src/tmux/input.c
    functionUses: 1
    functionsReached:
    - screen_write_mode_clear
    - log_debug
    - input_get
    - screen_write_cursormove
    - screen_write_clearscreen
    - screen_write_mode_set
    - screen_write_stop_sync
    - screen_write_alternateoff
    linkageType: ''
    returnType: void
    signature: void input_csi_dispatch_rm_private(struct input_ctx *ictx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: input_get
      Src: /src/tmux/input.c:1933,1
    - Dst: screen_write_mode_set
      Src: /src/tmux/input.c:1937,1
    - Dst: screen_write_mode_clear
      Src: /src/tmux/input.c:1940,1
    - Dst: log_debug
      Src: /src/tmux/input.c:1943,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1926
    functionDepth: 1
    functionLinenumber: 1926
    functionLinenumberEnd: 1947
    functionName: input_csi_dispatch_sm
    functionSourceFile: /src/tmux/input.c
    functionUses: 1
    functionsReached:
    - log_debug
    - input_get
    - screen_write_mode_clear
    - screen_write_mode_set
    linkageType: ''
    returnType: void
    signature: void input_csi_dispatch_sm(struct input_ctx *ictx)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: input_get
      Src: /src/tmux/input.c:1958,1
    - Dst: screen_write_mode_set
      Src: /src/tmux/input.c:1962,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/input.c:1965,1
    - Dst: screen_write_clearscreen
      Src: /src/tmux/input.c:1966,1
    - Dst: screen_write_mode_set
      Src: /src/tmux/input.c:1969,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/input.c:1970,1
    - Dst: screen_write_mode_set
      Src: /src/tmux/input.c:1973,1
    - Dst: screen_write_mode_set
      Src: /src/tmux/input.c:1976,1
    - Dst: screen_write_mode_set
      Src: /src/tmux/input.c:1977,1
    - Dst: screen_write_mode_set
      Src: /src/tmux/input.c:1980,1
    - Dst: screen_write_mode_clear
      Src: /src/tmux/input.c:1983,1
    - Dst: screen_write_mode_set
      Src: /src/tmux/input.c:1984,1
    - Dst: screen_write_mode_clear
      Src: /src/tmux/input.c:1987,1
    - Dst: screen_write_mode_set
      Src: /src/tmux/input.c:1988,1
    - Dst: screen_write_mode_clear
      Src: /src/tmux/input.c:1991,1
    - Dst: screen_write_mode_set
      Src: /src/tmux/input.c:1992,1
    - Dst: screen_write_mode_set
      Src: /src/tmux/input.c:1995,1
    - Dst: screen_write_mode_set
      Src: /src/tmux/input.c:1998,1
    - Dst: screen_write_mode_set
      Src: /src/tmux/input.c:2001,1
    - Dst: screen_write_alternateon
      Src: /src/tmux/input.c:2005,1
    - Dst: screen_write_alternateon
      Src: /src/tmux/input.c:2008,1
    - Dst: screen_write_mode_set
      Src: /src/tmux/input.c:2011,1
    - Dst: screen_write_mode_set
      Src: /src/tmux/input.c:2014,1
    - Dst: window_pane_get_theme
      Src: /src/tmux/input.c:2016,1
    - Dst: screen_write_start_sync
      Src: /src/tmux/input.c:2021,1
    - Dst: log_debug
      Src: /src/tmux/input.c:2024,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 72
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2028
      start: 1950
    functionDepth: 3
    functionLinenumber: 1950
    functionLinenumberEnd: 2028
    functionName: input_csi_dispatch_sm_private
    functionSourceFile: /src/tmux/input.c
    functionUses: 1
    functionsReached:
    - screen_write_alternateon
    - screen_write_mode_clear
    - screen_write_start_sync
    - input_get
    - screen_write_cursormove
    - screen_write_clearscreen
    - window_pane_get_theme
    - screen_write_mode_set
    - log_debug
    linkageType: ''
    returnType: void
    signature: void input_csi_dispatch_sm_private(struct input_ctx *ictx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: input_get
      Src: /src/tmux/input.c:2039,1
    - Dst: input_get
      Src: /src/tmux/input.c:2040,1
    - Dst: input_get
      Src: /src/tmux/input.c:2041,1
    - Dst: input_reply
      Src: /src/tmux/input.c:2044,1
    - Dst: input_reply
      Src: /src/tmux/input.c:2047,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2049
      start: 2031
    functionDepth: 3
    functionLinenumber: 2031
    functionLinenumberEnd: 2049
    functionName: input_csi_dispatch_sm_graphics
    functionSourceFile: /src/tmux/input.c
    functionUses: 1
    functionsReached:
    - input_get
    - input_reply
    linkageType: ''
    returnType: void
    signature: void input_csi_dispatch_sm_graphics(__unused struct input_ctx *ictx)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/input.c:2059,1
    - Dst: screen_size_y
      Src: /src/tmux/input.c:2059,1
    - Dst: input_get
      Src: /src/tmux/input.c:2066,1
    - Dst: input_get
      Src: /src/tmux/input.c:2083,1
    - Dst: input_get
      Src: /src/tmux/input.c:2089,1
    - Dst: input_reply
      Src: /src/tmux/input.c:2095,1
    - Dst: input_reply
      Src: /src/tmux/input.c:2101,1
    - Dst: input_reply
      Src: /src/tmux/input.c:2107,1
    - Dst: input_reply
      Src: /src/tmux/input.c:2111,1
    - Dst: input_reply
      Src: /src/tmux/input.c:2114,1
    - Dst: input_get
      Src: /src/tmux/input.c:2118,1
    - Dst: screen_push_title
      Src: /src/tmux/input.c:2123,1
    - Dst: input_get
      Src: /src/tmux/input.c:2129,1
    - Dst: screen_pop_title
      Src: /src/tmux/input.c:2134,1
    - Dst: notify_pane
      Src: /src/tmux/input.c:2137,1
    - Dst: server_redraw_window_borders
      Src: /src/tmux/input.c:2138,1
    - Dst: server_status_window
      Src: /src/tmux/input.c:2139,1
    - Dst: log_debug
      Src: /src/tmux/input.c:2144,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 83
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 2052
    functionDepth: 3
    functionLinenumber: 2052
    functionLinenumberEnd: 2149
    functionName: input_csi_dispatch_winops
    functionSourceFile: /src/tmux/input.c
    functionUses: 1
    functionsReached:
    - screen_push_title
    - screen_size_y
    - log_debug
    - screen_size_x
    - input_get
    - input_reply
    - notify_pane
    - server_status_window
    - server_redraw_window_borders
    - screen_pop_title
    linkageType: ''
    returnType: void
    signature: void input_csi_dispatch_winops(struct input_ctx *ictx)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - ictx
    - fgbg
    - c
    argTypes:
    - struct input_ctx*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2171
      start: 2152
    functionDepth: 0
    functionLinenumber: 2152
    functionLinenumberEnd: 2171
    functionName: input_csi_dispatch_sgr_256_do
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int input_csi_dispatch_sgr_256_do(struct input_ctx *ictx, int fgbg,
      int c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: input_get
      Src: /src/tmux/input.c:2179,1
    - Dst: input_csi_dispatch_sgr_256_do
      Src: /src/tmux/input.c:2180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ictx
    - fgbg
    - i
    argTypes:
    - struct input_ctx*
    - int
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2182
      start: 2174
    functionDepth: 1
    functionLinenumber: 2174
    functionLinenumberEnd: 2182
    functionName: input_csi_dispatch_sgr_256
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - input_get
    - input_csi_dispatch_sgr_256_do
    linkageType: ''
    returnType: void
    signature: void input_csi_dispatch_sgr_256(struct input_ctx *ictx, int fgbg, u_int
      *i)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: colour_join_rgb
      Src: /src/tmux/input.c:2199,1
    - Dst: colour_join_rgb
      Src: /src/tmux/input.c:2201,1
    - Dst: colour_join_rgb
      Src: /src/tmux/input.c:2203,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 5
    argNames:
    - ictx
    - fgbg
    - r
    - g
    - b
    argTypes:
    - struct input_ctx*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2205
      start: 2185
    functionDepth: 1
    functionLinenumber: 2185
    functionLinenumberEnd: 2205
    functionName: input_csi_dispatch_sgr_rgb_do
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - colour_join_rgb
    linkageType: ''
    returnType: int
    signature: "int input_csi_dispatch_sgr_rgb_do(struct input_ctx *ictx, int fgbg,
      int r, int g,\n    int b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: input_get
      Src: /src/tmux/input.c:2213,1
    - Dst: input_get
      Src: /src/tmux/input.c:2214,1
    - Dst: input_get
      Src: /src/tmux/input.c:2215,1
    - Dst: input_csi_dispatch_sgr_rgb_do
      Src: /src/tmux/input.c:2216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ictx
    - fgbg
    - i
    argTypes:
    - struct input_ctx*
    - int
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2218
      start: 2208
    functionDepth: 2
    functionLinenumber: 2208
    functionLinenumberEnd: 2218
    functionName: input_csi_dispatch_sgr_rgb
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - input_get
    - input_csi_dispatch_sgr_rgb_do
    linkageType: ''
    returnType: void
    signature: void input_csi_dispatch_sgr_rgb(struct input_ctx *ictx, int fgbg, u_int
      *i)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: nitems
      Src: /src/tmux/input.c:2230,1
    - Dst: xstrdup
      Src: /src/tmux/input.c:2234,1
    - Dst: strsep
      Src: /src/tmux/input.c:2235,1
    - Dst: strtonum
      Src: /src/tmux/input.c:2237,1
    - Dst: nitems
      Src: /src/tmux/input.c:2238,1
    - Dst: free
      Src: /src/tmux/input.c:2239,1
    - Dst: nitems
      Src: /src/tmux/input.c:2244,1
    - Dst: free
      Src: /src/tmux/input.c:2245,1
    - Dst: log_debug
      Src: /src/tmux/input.c:2249,1
    - Dst: free
      Src: /src/tmux/input.c:2251,1
    - Dst: input_csi_dispatch_sgr_rgb_do
      Src: /src/tmux/input.c:2297,1
    - Dst: input_csi_dispatch_sgr_256_do
      Src: /src/tmux/input.c:2303,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 73
    argCount: 2
    argNames:
    - ictx
    - i
    argTypes:
    - struct input_ctx*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2306
      start: 2221
    functionDepth: 2
    functionLinenumber: 2221
    functionLinenumberEnd: 2306
    functionName: input_csi_dispatch_sgr_colon
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - strtonum
    - nitems
    - strsep
    - free
    - input_csi_dispatch_sgr_rgb_do
    - log_debug
    - xstrdup
    - input_csi_dispatch_sgr_256_do
    linkageType: ''
    returnType: void
    signature: void input_csi_dispatch_sgr_colon(struct input_ctx *ictx, u_int i)
  - BBCount: 62
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/input.c:2317,1
    - Dst: input_csi_dispatch_sgr_colon
      Src: /src/tmux/input.c:2323,1
    - Dst: input_get
      Src: /src/tmux/input.c:2326,1
    - Dst: input_get
      Src: /src/tmux/input.c:2332,1
    - Dst: input_csi_dispatch_sgr_rgb
      Src: /src/tmux/input.c:2334,1
    - Dst: input_csi_dispatch_sgr_256
      Src: /src/tmux/input.c:2337,1
    - Dst: memcpy
      Src: /src/tmux/input.c:2346,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 139
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2457
      start: 2309
    functionDepth: 3
    functionLinenumber: 2309
    functionLinenumberEnd: 2457
    functionName: input_csi_dispatch_sgr
    functionSourceFile: /src/tmux/input.c
    functionUses: 1
    functionsReached:
    - input_csi_dispatch_sgr_colon
    - input_get
    - input_csi_dispatch_sgr_rgb
    - memcpy
    - input_csi_dispatch_sgr_256
    linkageType: ''
    returnType: void
    signature: void input_csi_dispatch_sgr(struct input_ctx *ictx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/input.c:2463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2468
      start: 2460
    functionDepth: 1
    functionLinenumber: 2460
    functionLinenumberEnd: 2468
    functionName: input_end_bel
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - log_debug
    linkageType: ''
    returnType: int
    signature: int input_end_bel(struct input_ctx *ictx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/input.c:2474,1
    - Dst: input_clear
      Src: /src/tmux/input.c:2476,1
    - Dst: input_start_ground_timer
      Src: /src/tmux/input.c:2477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2479
      start: 2471
    functionDepth: 2
    functionLinenumber: 2471
    functionLinenumberEnd: 2479
    functionName: input_enter_dcs
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - log_debug
    - input_start_ground_timer
    - input_clear
    linkageType: ''
    returnType: void
    signature: void input_enter_dcs(struct input_ctx *ictx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/input.c:2527,1
    - Dst: log_debug
      Src: /src/tmux/input.c:2535,1
    - Dst: input_reply
      Src: /src/tmux/input.c:2538,1
    - Dst: input_reply
      Src: /src/tmux/input.c:2543,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2545
      start: 2482
    functionDepth: 3
    functionLinenumber: 2482
    functionLinenumberEnd: 2545
    functionName: input_handle_decrqss
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - log_debug
    - options_get_number
    - input_reply
    linkageType: ''
    returnType: int
    signature: int input_handle_decrqss(struct input_ctx *ictx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/input.c:2571,1
    - Dst: input_split
      Src: /src/tmux/input.c:2578,1
    - Dst: input_get
      Src: /src/tmux/input.c:2580,1
    - Dst: sixel_parse
      Src: /src/tmux/input.c:2583,1
    - Dst: screen_write_sixelimage
      Src: /src/tmux/input.c:2585,1
    - Dst: input_handle_decrqss
      Src: /src/tmux/input.c:2593,1
    - Dst: options_get_number
      Src: /src/tmux/input.c:2602,1
    - Dst: log_debug
      Src: /src/tmux/input.c:2605,1
    - Dst: strncmp
      Src: /src/tmux/input.c:2607,1
    - Dst: screen_write_rawstring
      Src: /src/tmux/input.c:2608,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2613
      start: 2548
    functionDepth: 6
    functionLinenumber: 2548
    functionLinenumberEnd: 2613
    functionName: input_dcs_dispatch
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - input_handle_decrqss
    - input_get
    - strncmp
    - sixel_parse
    - log_debug
    - options_get_number
    - screen_write_sixelimage
    - input_split
    - screen_write_rawstring
    linkageType: ''
    returnType: int
    signature: int input_dcs_dispatch(struct input_ctx *ictx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/input.c:2619,1
    - Dst: input_clear
      Src: /src/tmux/input.c:2621,1
    - Dst: input_start_ground_timer
      Src: /src/tmux/input.c:2622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2624
      start: 2616
    functionDepth: 2
    functionLinenumber: 2616
    functionLinenumberEnd: 2624
    functionName: input_enter_osc
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - log_debug
    - input_start_ground_timer
    - input_clear
    linkageType: ''
    returnType: void
    signature: void input_enter_osc(struct input_ctx *ictx)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/input.c:2640,1
    - Dst: options_get_number
      Src: /src/tmux/input.c:2655,1
    - Dst: screen_set_title
      Src: /src/tmux/input.c:2656,1
    - Dst: notify_pane
      Src: /src/tmux/input.c:2657,1
    - Dst: server_redraw_window_borders
      Src: /src/tmux/input.c:2658,1
    - Dst: server_status_window
      Src: /src/tmux/input.c:2659,1
    - Dst: input_osc_4
      Src: /src/tmux/input.c:2663,1
    - Dst: screen_set_path
      Src: /src/tmux/input.c:2666,1
    - Dst: server_redraw_window_borders
      Src: /src/tmux/input.c:2667,1
    - Dst: server_status_window
      Src: /src/tmux/input.c:2668,1
    - Dst: input_osc_8
      Src: /src/tmux/input.c:2672,1
    - Dst: input_osc_9
      Src: /src/tmux/input.c:2675,1
    - Dst: input_osc_10
      Src: /src/tmux/input.c:2678,1
    - Dst: input_osc_11
      Src: /src/tmux/input.c:2681,1
    - Dst: input_osc_12
      Src: /src/tmux/input.c:2684,1
    - Dst: input_osc_52
      Src: /src/tmux/input.c:2687,1
    - Dst: input_osc_104
      Src: /src/tmux/input.c:2690,1
    - Dst: input_osc_110
      Src: /src/tmux/input.c:2693,1
    - Dst: input_osc_111
      Src: /src/tmux/input.c:2696,1
    - Dst: input_osc_112
      Src: /src/tmux/input.c:2699,1
    - Dst: input_osc_133
      Src: /src/tmux/input.c:2702,1
    - Dst: log_debug
      Src: /src/tmux/input.c:2705,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 68
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2708
      start: 2627
    functionDepth: 3
    functionLinenumber: 2627
    functionLinenumberEnd: 2708
    functionName: input_exit_osc
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - input_osc_4
    - input_osc_110
    - input_osc_9
    - screen_set_title
    - input_osc_104
    - input_osc_10
    - server_status_window
    - log_debug
    - input_osc_133
    - screen_set_path
    - input_osc_112
    - input_osc_12
    - input_osc_8
    - notify_pane
    - server_redraw_window_borders
    - input_osc_11
    - input_osc_111
    - options_get_number
    - input_osc_52
    linkageType: ''
    returnType: void
    signature: void input_exit_osc(struct input_ctx *ictx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/input.c:2714,1
    - Dst: input_clear
      Src: /src/tmux/input.c:2716,1
    - Dst: input_start_ground_timer
      Src: /src/tmux/input.c:2717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2719
      start: 2711
    functionDepth: 2
    functionLinenumber: 2711
    functionLinenumberEnd: 2719
    functionName: input_enter_apc
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - log_debug
    - input_start_ground_timer
    - input_clear
    linkageType: ''
    returnType: void
    signature: void input_enter_apc(struct input_ctx *ictx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/input.c:2730,1
    - Dst: options_get_number
      Src: /src/tmux/input.c:2733,1
    - Dst: screen_set_title
      Src: /src/tmux/input.c:2734,1
    - Dst: notify_pane
      Src: /src/tmux/input.c:2735,1
    - Dst: server_redraw_window_borders
      Src: /src/tmux/input.c:2736,1
    - Dst: server_status_window
      Src: /src/tmux/input.c:2737,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2739
      start: 2722
    functionDepth: 3
    functionLinenumber: 2722
    functionLinenumberEnd: 2739
    functionName: input_exit_apc
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - server_status_window
    - notify_pane
    - log_debug
    - server_redraw_window_borders
    - screen_set_title
    - options_get_number
    linkageType: ''
    returnType: void
    signature: void input_exit_apc(struct input_ctx *ictx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/input.c:2745,1
    - Dst: input_clear
      Src: /src/tmux/input.c:2747,1
    - Dst: input_start_ground_timer
      Src: /src/tmux/input.c:2748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2750
      start: 2742
    functionDepth: 2
    functionLinenumber: 2742
    functionLinenumberEnd: 2750
    functionName: input_enter_rename
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - log_debug
    - input_start_ground_timer
    - input_clear
    linkageType: ''
    returnType: void
    signature: void input_enter_rename(struct input_ctx *ictx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/input.c:2764,1
    - Dst: log_debug
      Src: /src/tmux/input.c:2766,1
    - Dst: utf8_isvalid
      Src: /src/tmux/input.c:2768,1
    - Dst: options_get_only
      Src: /src/tmux/input.c:2773,1
    - Dst: options_remove_or_default
      Src: /src/tmux/input.c:2775,1
    - Dst: options_get_number
      Src: /src/tmux/input.c:2776,1
    - Dst: window_set_name
      Src: /src/tmux/input.c:2777,1
    - Dst: options_set_number
      Src: /src/tmux/input.c:2779,1
    - Dst: window_set_name
      Src: /src/tmux/input.c:2780,1
    - Dst: server_redraw_window_borders
      Src: /src/tmux/input.c:2782,1
    - Dst: server_status_window
      Src: /src/tmux/input.c:2783,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2784
      start: 2753
    functionDepth: 3
    functionLinenumber: 2753
    functionLinenumberEnd: 2784
    functionName: input_exit_rename
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - server_status_window
    - window_set_name
    - options_get_only
    - utf8_isvalid
    - server_redraw_window_borders
    - options_set_number
    - log_debug
    - options_get_number
    - options_remove_or_default
    linkageType: ''
    returnType: void
    signature: void input_exit_rename(struct input_ctx *ictx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: utf8_open
      Src: /src/tmux/input.c:2797,1
    - Dst: input_stop_utf8
      Src: /src/tmux/input.c:2798,1
    - Dst: utf8_append
      Src: /src/tmux/input.c:2802,1
    - Dst: input_stop_utf8
      Src: /src/tmux/input.c:2806,1
    - Dst: log_debug
      Src: /src/tmux/input.c:2813,1
    - Dst: utf8_copy
      Src: /src/tmux/input.c:2816,1
    - Dst: screen_write_collect_add
      Src: /src/tmux/input.c:2817,1
    - Dst: utf8_copy
      Src: /src/tmux/input.c:2819,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2823
      start: 2787
    functionDepth: 2
    functionLinenumber: 2787
    functionLinenumberEnd: 2823
    functionName: input_top_bit_set
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - input_stop_utf8
    - utf8_open
    - screen_write_collect_add
    - utf8_append
    - utf8_copy
    - log_debug
    linkageType: ''
    returnType: int
    signature: int input_top_bit_set(struct input_ctx *ictx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: colour_force_rgb
      Src: /src/tmux/input.c:2834,1
    - Dst: colour_split_rgb
      Src: /src/tmux/input.c:2837,1
    - Dst: input_reply
      Src: /src/tmux/input.c:2845,1
    - Dst: input_reply
      Src: /src/tmux/input.c:2849,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 6
    argNames:
    - ictx
    - add
    - n
    - idx
    - c
    - end_type
    argTypes:
    - struct input_ctx*
    - int
    - u_int
    - int
    - int
    - enum input_end_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2853
      start: 2826
    functionDepth: 3
    functionLinenumber: 2826
    functionLinenumberEnd: 2853
    functionName: input_osc_colour_reply
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - input_reply
    - colour_force_rgb
    - colour_split_rgb
    linkageType: ''
    returnType: void
    signature: "void input_osc_colour_reply(struct input_ctx *ictx, int add, u_int
      n, int idx, int c,\n    enum input_end_type end_type)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/input.c:2864,1
    - Dst: strtol
      Src: /src/tmux/input.c:2866,1
    - Dst: strsep
      Src: /src/tmux/input.c:2876,1
    - Dst: strcmp
      Src: /src/tmux/input.c:2877,1
    - Dst: colour_palette_get
      Src: /src/tmux/input.c:2878,1
    - Dst: input_osc_colour_reply
      Src: /src/tmux/input.c:2880,1
    - Dst: input_add_request
      Src: /src/tmux/input.c:2885,1
    - Dst: colour_parseX11
      Src: /src/tmux/input.c:2889,1
    - Dst: colour_palette_set
      Src: /src/tmux/input.c:2893,1
    - Dst: log_debug
      Src: /src/tmux/input.c:2898,1
    - Dst: screen_write_fullredraw
      Src: /src/tmux/input.c:2900,1
    - Dst: free
      Src: /src/tmux/input.c:2901,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 2
    argNames:
    - ictx
    - p
    argTypes:
    - struct input_ctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2902
      start: 2856
    functionDepth: 4
    functionLinenumber: 2856
    functionLinenumberEnd: 2902
    functionName: input_osc_4
    functionSourceFile: /src/tmux/input.c
    functionUses: 1
    functionsReached:
    - input_osc_colour_reply
    - input_add_request
    - colour_palette_set
    - colour_parseX11
    - strcmp
    - screen_write_fullredraw
    - strsep
    - free
    - strtol
    - log_debug
    - colour_palette_get
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void input_osc_4(struct input_ctx *ictx, const char *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strpbrk
      Src: /src/tmux/input.c:2913,1
    - Dst: strncmp
      Src: /src/tmux/input.c:2914,1
    - Dst: xstrndup
      Src: /src/tmux/input.c:2917,1
    - Dst: free
      Src: /src/tmux/input.c:2929,1
    - Dst: hyperlinks_put
      Src: /src/tmux/input.c:2932,1
    - Dst: log_debug
      Src: /src/tmux/input.c:2934,1
    - Dst: log_debug
      Src: /src/tmux/input.c:2936,1
    - Dst: free
      Src: /src/tmux/input.c:2937,1
    - Dst: log_debug
      Src: /src/tmux/input.c:2941,1
    - Dst: free
      Src: /src/tmux/input.c:2942,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 2
    argNames:
    - ictx
    - p
    argTypes:
    - struct input_ctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2943
      start: 2905
    functionDepth: 2
    functionLinenumber: 2905
    functionLinenumberEnd: 2943
    functionName: input_osc_8
    functionSourceFile: /src/tmux/input.c
    functionUses: 1
    functionsReached:
    - xstrndup
    - hyperlinks_put
    - strncmp
    - strpbrk
    - free
    - log_debug
    linkageType: ''
    returnType: void
    signature: void input_osc_8(struct input_ctx *ictx, const char *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: screen_set_progress_bar
      Src: /src/tmux/input.c:2950,1
    - Dst: server_redraw_window_borders
      Src: /src/tmux/input.c:2952,1
    - Dst: server_status_window
      Src: /src/tmux/input.c:2953,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ictx
    - state
    - p
    argTypes:
    - struct input_ctx*
    - enum progress_bar_state
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2955
      start: 2946
    functionDepth: 3
    functionLinenumber: 2946
    functionLinenumberEnd: 2955
    functionName: input_set_progress_bar
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - server_status_window
    - screen_set_progress_bar
    - server_redraw_window_borders
    linkageType: ''
    returnType: void
    signature: "void input_set_progress_bar(struct input_ctx *ictx, enum progress_bar_state
      state,\n    int p)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: input_set_progress_bar
      Src: /src/tmux/input.c:2977,1
    - Dst: input_set_progress_bar
      Src: /src/tmux/input.c:2990,1
    - Dst: log_debug
      Src: /src/tmux/input.c:2994,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 32
    argCount: 2
    argNames:
    - ictx
    - p
    argTypes:
    - struct input_ctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2995
      start: 2958
    functionDepth: 4
    functionLinenumber: 2958
    functionLinenumberEnd: 2995
    functionName: input_osc_9
    functionSourceFile: /src/tmux/input.c
    functionUses: 1
    functionsReached:
    - log_debug
    - input_set_progress_bar
    linkageType: ''
    returnType: void
    signature: void input_osc_9(struct input_ctx *ictx, const char *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/input.c:3005,1
    - Dst: window_pane_get_fg_control_client
      Src: /src/tmux/input.c:3008,1
    - Dst: tty_default_colours
      Src: /src/tmux/input.c:3010,1
    - Dst: COLOUR_DEFAULT
      Src: /src/tmux/input.c:3011,1
    - Dst: window_pane_get_fg
      Src: /src/tmux/input.c:3012,1
    - Dst: input_osc_colour_reply
      Src: /src/tmux/input.c:3016,1
    - Dst: colour_parseX11
      Src: /src/tmux/input.c:3020,1
    - Dst: log_debug
      Src: /src/tmux/input.c:3021,1
    - Dst: screen_write_fullredraw
      Src: /src/tmux/input.c:3028,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - ictx
    - p
    argTypes:
    - struct input_ctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3030
      start: 2998
    functionDepth: 4
    functionLinenumber: 2998
    functionLinenumberEnd: 3030
    functionName: input_osc_10
    functionSourceFile: /src/tmux/input.c
    functionUses: 1
    functionsReached:
    - input_osc_colour_reply
    - window_pane_get_fg_control_client
    - COLOUR_DEFAULT
    - window_pane_get_fg
    - colour_parseX11
    - tty_default_colours
    - strcmp
    - screen_write_fullredraw
    - log_debug
    linkageType: ''
    returnType: void
    signature: void input_osc_10(struct input_ctx *ictx, const char *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_fullredraw
      Src: /src/tmux/input.c:3044,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ictx
    - p
    argTypes:
    - struct input_ctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3046
      start: 3033
    functionDepth: 1
    functionLinenumber: 3033
    functionLinenumberEnd: 3046
    functionName: input_osc_110
    functionSourceFile: /src/tmux/input.c
    functionUses: 1
    functionsReached:
    - screen_write_fullredraw
    linkageType: ''
    returnType: void
    signature: void input_osc_110(struct input_ctx *ictx, const char *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/input.c:3055,1
    - Dst: window_pane_get_bg
      Src: /src/tmux/input.c:3058,1
    - Dst: input_osc_colour_reply
      Src: /src/tmux/input.c:3059,1
    - Dst: colour_parseX11
      Src: /src/tmux/input.c:3063,1
    - Dst: log_debug
      Src: /src/tmux/input.c:3064,1
    - Dst: screen_write_fullredraw
      Src: /src/tmux/input.c:3071,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ictx
    - p
    argTypes:
    - struct input_ctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3073
      start: 3049
    functionDepth: 4
    functionLinenumber: 3049
    functionLinenumberEnd: 3073
    functionName: input_osc_11
    functionSourceFile: /src/tmux/input.c
    functionUses: 1
    functionsReached:
    - input_osc_colour_reply
    - colour_parseX11
    - strcmp
    - screen_write_fullredraw
    - log_debug
    - window_pane_get_bg
    linkageType: ''
    returnType: void
    signature: void input_osc_11(struct input_ctx *ictx, const char *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_fullredraw
      Src: /src/tmux/input.c:3087,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ictx
    - p
    argTypes:
    - struct input_ctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3089
      start: 3076
    functionDepth: 1
    functionLinenumber: 3076
    functionLinenumberEnd: 3089
    functionName: input_osc_111
    functionSourceFile: /src/tmux/input.c
    functionUses: 1
    functionsReached:
    - screen_write_fullredraw
    linkageType: ''
    returnType: void
    signature: void input_osc_111(struct input_ctx *ictx, const char *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/input.c:3098,1
    - Dst: input_osc_colour_reply
      Src: /src/tmux/input.c:3103,1
    - Dst: colour_parseX11
      Src: /src/tmux/input.c:3108,1
    - Dst: log_debug
      Src: /src/tmux/input.c:3109,1
    - Dst: screen_set_cursor_colour
      Src: /src/tmux/input.c:3112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ictx
    - p
    argTypes:
    - struct input_ctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3113
      start: 3092
    functionDepth: 4
    functionLinenumber: 3092
    functionLinenumberEnd: 3113
    functionName: input_osc_12
    functionSourceFile: /src/tmux/input.c
    functionUses: 1
    functionsReached:
    - input_osc_colour_reply
    - colour_parseX11
    - strcmp
    - screen_set_cursor_colour
    - log_debug
    linkageType: ''
    returnType: void
    signature: void input_osc_12(struct input_ctx *ictx, const char *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: screen_set_cursor_colour
      Src: /src/tmux/input.c:3120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ictx
    - p
    argTypes:
    - struct input_ctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3121
      start: 3116
    functionDepth: 1
    functionLinenumber: 3116
    functionLinenumberEnd: 3121
    functionName: input_osc_112
    functionSourceFile: /src/tmux/input.c
    functionUses: 1
    functionsReached:
    - screen_set_cursor_colour
    linkageType: ''
    returnType: void
    signature: void input_osc_112(struct input_ctx *ictx, const char *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_line
      Src: /src/tmux/input.c:3133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ictx
    - p
    argTypes:
    - struct input_ctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3143
      start: 3124
    functionDepth: 1
    functionLinenumber: 3124
    functionLinenumberEnd: 3143
    functionName: input_osc_133
    functionSourceFile: /src/tmux/input.c
    functionUses: 1
    functionsReached:
    - grid_get_line
    linkageType: ''
    returnType: void
    signature: void input_osc_133(struct input_ctx *ictx, const char *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/input.c:3155,1
    - Dst: paste_get_top
      Src: /src/tmux/input.c:3159,1
    - Dst: paste_buffer_data
      Src: /src/tmux/input.c:3161,1
    - Dst: input_reply_clipboard
      Src: /src/tmux/input.c:3163,1
    - Dst: input_reply_clipboard
      Src: /src/tmux/input.c:3165,1
    - Dst: input_add_request
      Src: /src/tmux/input.c:3168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ictx
    - clip
    argTypes:
    - struct input_ctx*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3169
      start: 3146
    functionDepth: 1
    functionLinenumber: 3146
    functionLinenumberEnd: 3169
    functionName: input_osc_52_reply
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - input_add_request
    - paste_buffer_data
    - input_reply_clipboard
    - paste_get_top
    - options_get_number
    linkageType: ''
    returnType: void
    signature: void input_osc_52_reply(struct input_ctx *ictx, char clip)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/input.c:3185,1
    - Dst: strchr
      Src: /src/tmux/input.c:3188,1
    - Dst: log_debug
      Src: /src/tmux/input.c:3193,1
    - Dst: strchr
      Src: /src/tmux/input.c:3196,1
    - Dst: strchr
      Src: /src/tmux/input.c:3196,1
    - Dst: log_debug
      Src: /src/tmux/input.c:3199,1
    - Dst: strcmp
      Src: /src/tmux/input.c:3201,1
    - Dst: input_osc_52_reply
      Src: /src/tmux/input.c:3202,1
    - Dst: strlen
      Src: /src/tmux/input.c:3206,1
    - Dst: xmalloc
      Src: /src/tmux/input.c:3210,1
    - Dst: b64_pton
      Src: /src/tmux/input.c:3211,1
    - Dst: free
      Src: /src/tmux/input.c:3212,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 5
    argNames:
    - ictx
    - p
    - out
    - outlen
    - clip
    argTypes:
    - struct input_ctx*
    - char*
    - u_char**
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3218
      start: 3176
    functionDepth: 2
    functionLinenumber: 3176
    functionLinenumberEnd: 3218
    functionName: input_osc_52_parse
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - input_osc_52_reply
    - xmalloc
    - strcmp
    - strchr
    - free
    - log_debug
    - strlen
    - options_get_number
    - b64_pton
    linkageType: ''
    returnType: int
    signature: "int input_osc_52_parse(struct input_ctx *ictx, const char *p, u_char
      **out,\n    int *outlen, char *clip)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: input_osc_52_parse
      Src: /src/tmux/input.c:3230,1
    - Dst: free
      Src: /src/tmux/input.c:3236,1
    - Dst: tty_set_selection
      Src: /src/tmux/input.c:3239,1
    - Dst: paste_add
      Src: /src/tmux/input.c:3240,1
    - Dst: screen_write_start_pane
      Src: /src/tmux/input.c:3243,1
    - Dst: screen_write_setselection
      Src: /src/tmux/input.c:3244,1
    - Dst: screen_write_stop
      Src: /src/tmux/input.c:3245,1
    - Dst: notify_pane
      Src: /src/tmux/input.c:3246,1
    - Dst: paste_add
      Src: /src/tmux/input.c:3247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ictx
    - p
    argTypes:
    - struct input_ctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3249
      start: 3221
    functionDepth: 3
    functionLinenumber: 3221
    functionLinenumberEnd: 3249
    functionName: input_osc_52
    functionSourceFile: /src/tmux/input.c
    functionUses: 1
    functionsReached:
    - screen_write_start_pane
    - tty_set_selection
    - input_osc_52_parse
    - free
    - screen_write_setselection
    - screen_write_stop
    - notify_pane
    - paste_add
    linkageType: ''
    returnType: void
    signature: void input_osc_52(struct input_ctx *ictx, const char *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: colour_palette_clear
      Src: /src/tmux/input.c:3260,1
    - Dst: screen_write_fullredraw
      Src: /src/tmux/input.c:3261,1
    - Dst: xstrdup
      Src: /src/tmux/input.c:3265,1
    - Dst: strtol
      Src: /src/tmux/input.c:3267,1
    - Dst: colour_palette_set
      Src: /src/tmux/input.c:3276,1
    - Dst: log_debug
      Src: /src/tmux/input.c:3282,1
    - Dst: screen_write_fullredraw
      Src: /src/tmux/input.c:3284,1
    - Dst: free
      Src: /src/tmux/input.c:3285,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 2
    argNames:
    - ictx
    - p
    argTypes:
    - struct input_ctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3286
      start: 3252
    functionDepth: 1
    functionLinenumber: 3252
    functionLinenumberEnd: 3286
    functionName: input_osc_104
    functionSourceFile: /src/tmux/input.c
    functionUses: 1
    functionsReached:
    - log_debug
    - colour_palette_set
    - free
    - strtol
    - screen_write_fullredraw
    - xstrdup
    - colour_palette_clear
    linkageType: ''
    returnType: void
    signature: void input_osc_104(struct input_ctx *ictx, const char *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/tmux/input.c:3300,1
    - Dst: b64_ntop
      Src: /src/tmux/input.c:3301,1
    - Dst: free
      Src: /src/tmux/input.c:3302,1
    - Dst: bufferevent_write
      Src: /src/tmux/input.c:3307,1
    - Dst: bufferevent_write
      Src: /src/tmux/input.c:3309,1
    - Dst: bufferevent_write
      Src: /src/tmux/input.c:3310,1
    - Dst: bufferevent_write
      Src: /src/tmux/input.c:3312,1
    - Dst: bufferevent_write
      Src: /src/tmux/input.c:3313,1
    - Dst: strlen
      Src: /src/tmux/input.c:3313,1
    - Dst: free
      Src: /src/tmux/input.c:3314,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - bev
    - buf
    - len
    - end
    - clip
    argTypes:
    - struct bufferevent*
    - char*
    - size_t
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3315
      start: 3289
    functionDepth: 1
    functionLinenumber: 3289
    functionLinenumberEnd: 3315
    functionName: input_reply_clipboard
    functionSourceFile: /src/tmux/input.c
    functionUses: 1
    functionsReached:
    - xmalloc
    - b64_ntop
    - free
    - strlen
    - bufferevent_write
    linkageType: ''
    returnType: void
    signature: "void input_reply_clipboard(struct bufferevent *bev, const char *buf,
      size_t len,\n    const char *end, char clip)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/input.c:3321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buffer_size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3323
      start: 3318
    functionDepth: 1
    functionLinenumber: 3318
    functionLinenumberEnd: 3323
    functionName: input_set_buffer_size
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - log_debug
    linkageType: ''
    returnType: void
    signature: void input_set_buffer_size(size_t buffer_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_timer
      Src: /src/tmux/input.c:3331,1
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/input.c:3333,1
    - Dst: input_send_reply
      Src: /src/tmux/input.c:3337,1
    - Dst: input_free_request
      Src: /src/tmux/input.c:3338,1
    - Dst: input_start_request_timer
      Src: /src/tmux/input.c:3341,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - int
    - events
    - arg
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3342
      start: 3326
    functionDepth: 2
    functionLinenumber: 3326
    functionLinenumberEnd: 3342
    functionName: input_request_timer_callback
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - input_free_request
    - get_timer
    - TAILQ_FOREACH_SAFE
    - input_start_request_timer
    - input_send_reply
    linkageType: ''
    returnType: void
    signature: void input_request_timer_callback(__unused int fd, __unused short events,
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_del
      Src: /src/tmux/input.c:3350,1
    - Dst: event_add
      Src: /src/tmux/input.c:3351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3352
      start: 3345
    functionDepth: 1
    functionLinenumber: 3345
    functionLinenumberEnd: 3352
    functionName: input_start_request_timer
    functionSourceFile: /src/tmux/input.c
    functionUses: 1
    functionsReached:
    - event_add
    - event_del
    linkageType: ''
    returnType: void
    signature: void input_start_request_timer(struct input_ctx *ictx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/input.c:3360,1
    - Dst: get_timer
      Src: /src/tmux/input.c:3363,1
    - Dst: input_start_request_timer
      Src: /src/tmux/input.c:3366,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/input.c:3367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ictx
    - type
    argTypes:
    - struct input_ctx*
    - enum input_request_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3370
      start: 3355
    functionDepth: 2
    functionLinenumber: 3355
    functionLinenumberEnd: 3370
    functionName: input_make_request
    functionSourceFile: /src/tmux/input.c
    functionUses: 1
    functionsReached:
    - get_timer
    - xcalloc
    - input_start_request_timer
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: struct input_request
    signature: 'struct input_request *

      input_make_request(struct input_ctx *ictx, enum input_request_type type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/input.c:3379,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/input.c:3382,1
    - Dst: free
      Src: /src/tmux/input.c:3384,1
    - Dst: free
      Src: /src/tmux/input.c:3385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ir
    argTypes:
    - struct input_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3386
      start: 3373
    functionDepth: 0
    functionLinenumber: 3373
    functionLinenumberEnd: 3386
    functionName: input_free_request
    functionSourceFile: /src/tmux/input.c
    functionUses: 2
    functionsReached:
    - free
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void input_free_request(struct input_request *ir)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/input.c:3402,1
    - Dst: session_has
      Src: /src/tmux/input.c:3405,1
    - Dst: timercmp
      Src: /src/tmux/input.c:3411,1
    - Dst: input_make_request
      Src: /src/tmux/input.c:3417,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/input.c:3421,1
    - Dst: xsnprintf
      Src: /src/tmux/input.c:3425,1
    - Dst: tty_puts
      Src: /src/tmux/input.c:3426,1
    - Dst: tty_putcode_ss
      Src: /src/tmux/input.c:3429,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 3
    argNames:
    - ictx
    - type
    - idx
    argTypes:
    - struct input_ctx*
    - enum input_request_type
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3436
      start: 3389
    functionDepth: 3
    functionLinenumber: 3389
    functionLinenumberEnd: 3436
    functionName: input_add_request
    functionSourceFile: /src/tmux/input.c
    functionUses: 2
    functionsReached:
    - TAILQ_FOREACH
    - tty_puts
    - session_has
    - xsnprintf
    - timercmp
    - input_make_request
    - tty_putcode_ss
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: int
    signature: int input_add_request(struct input_ctx *ictx, enum input_request_type
      type, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: input_osc_colour_reply
      Src: /src/tmux/input.c:3444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ir
    - data
    argTypes:
    - struct input_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3445
      start: 3439
    functionDepth: 4
    functionLinenumber: 3439
    functionLinenumberEnd: 3445
    functionName: input_request_palette_reply
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - input_osc_colour_reply
    linkageType: ''
    returnType: void
    signature: void input_request_palette_reply(struct input_request *ir, void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/input.c:3457,1
    - Dst: xmalloc
      Src: /src/tmux/input.c:3461,1
    - Dst: memcpy
      Src: /src/tmux/input.c:3462,1
    - Dst: paste_add
      Src: /src/tmux/input.c:3463,1
    - Dst: input_reply_clipboard
      Src: /src/tmux/input.c:3467,1
    - Dst: input_reply_clipboard
      Src: /src/tmux/input.c:3469,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ir
    - data
    argTypes:
    - struct input_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3470
      start: 3448
    functionDepth: 2
    functionLinenumber: 3448
    functionLinenumberEnd: 3470
    functionName: input_request_clipboard_reply
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - input_reply_clipboard
    - memcpy
    - options_get_number
    - paste_add
    linkageType: ''
    returnType: void
    signature: void input_request_clipboard_reply(struct input_request *ir, void *data)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/input.c:3480,1
    - Dst: input_free_request
      Src: /src/tmux/input.c:3482,1
    - Dst: input_free_request
      Src: /src/tmux/input.c:3487,1
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/input.c:3501,1
    - Dst: input_send_reply
      Src: /src/tmux/input.c:3505,1
    - Dst: input_request_palette_reply
      Src: /src/tmux/input.c:3508,1
    - Dst: input_request_clipboard_reply
      Src: /src/tmux/input.c:3510,1
    - Dst: input_free_request
      Src: /src/tmux/input.c:3513,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 3
    argNames:
    - c
    - type
    - data
    argTypes:
    - struct client*
    - enum input_request_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3515
      start: 3473
    functionDepth: 5
    functionLinenumber: 3473
    functionLinenumberEnd: 3515
    functionName: input_request_reply
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - input_free_request
    - input_request_clipboard_reply
    - TAILQ_FOREACH_SAFE
    - input_send_reply
    - input_request_palette_reply
    linkageType: ''
    returnType: void
    signature: void input_request_reply(struct client *c, enum input_request_type
      type, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/input.c:3523,1
    - Dst: input_free_request
      Src: /src/tmux/input.c:3524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3525
      start: 3518
    functionDepth: 1
    functionLinenumber: 3518
    functionLinenumberEnd: 3525
    functionName: input_cancel_requests
    functionSourceFile: /src/tmux/input.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH_SAFE
    - input_free_request
    linkageType: ''
    returnType: void
    signature: void input_cancel_requests(struct client *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: window_pane_get_theme
      Src: /src/tmux/input.c:3534,1
    - Dst: log_debug
      Src: /src/tmux/input.c:3539,1
    - Dst: input_reply
      Src: /src/tmux/input.c:3540,1
    - Dst: log_debug
      Src: /src/tmux/input.c:3543,1
    - Dst: input_reply
      Src: /src/tmux/input.c:3544,1
    - Dst: log_debug
      Src: /src/tmux/input.c:3547,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - ictx
    argTypes:
    - struct input_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3551
      start: 3528
    functionDepth: 3
    functionLinenumber: 3528
    functionLinenumberEnd: 3551
    functionName: input_report_current_theme
    functionSourceFile: /src/tmux/input.c
    functionUses: 1
    functionsReached:
    - log_debug
    - input_reply
    - window_pane_get_theme
    linkageType: ''
    returnType: void
    signature: void input_report_current_theme(struct input_ctx *ictx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-set-environment.c:49,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-set-environment.c:50,1
    - Dst: args_string
      Src: /src/tmux/cmd-set-environment.c:52,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-set-environment.c:58,1
    - Dst: strchr
      Src: /src/tmux/cmd-set-environment.c:61,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-set-environment.c:62,1
    - Dst: args_count
      Src: /src/tmux/cmd-set-environment.c:66,1
    - Dst: args_string
      Src: /src/tmux/cmd-set-environment.c:69,1
    - Dst: args_has
      Src: /src/tmux/cmd-set-environment.c:70,1
    - Dst: format_single_from_target
      Src: /src/tmux/cmd-set-environment.c:71,1
    - Dst: args_has
      Src: /src/tmux/cmd-set-environment.c:74,1
    - Dst: args_get
      Src: /src/tmux/cmd-set-environment.c:78,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-set-environment.c:80,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-set-environment.c:82,1
    - Dst: args_has
      Src: /src/tmux/cmd-set-environment.c:89,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-set-environment.c:91,1
    - Dst: environ_unset
      Src: /src/tmux/cmd-set-environment.c:95,1
    - Dst: args_has
      Src: /src/tmux/cmd-set-environment.c:96,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-set-environment.c:98,1
    - Dst: environ_clear
      Src: /src/tmux/cmd-set-environment.c:102,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-set-environment.c:105,1
    - Dst: args_has
      Src: /src/tmux/cmd-set-environment.c:110,1
    - Dst: environ_set
      Src: /src/tmux/cmd-set-environment.c:111,1
    - Dst: environ_set
      Src: /src/tmux/cmd-set-environment.c:113,1
    - Dst: free
      Src: /src/tmux/cmd-set-environment.c:117,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 119
    functionName: cmd_set_environment_exec
    functionSourceFile: /src/tmux/cmd-set-environment.c
    functionUses: 0
    functionsReached:
    - environ_clear
    - environ_unset
    - cmdq_error
    - args_string
    - cmd_get_args
    - format_single_from_target
    - strchr
    - environ_set
    - free
    - args_get
    - args_count
    - cmdq_get_target
    - args_has
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_set_environment_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nitems
      Src: /src/tmux/tty-term.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 298
    functionName: tty_term_ncodes
    functionSourceFile: /src/tmux/tty-term.c
    functionUses: 0
    functionsReached:
    - nitems
    linkageType: ''
    returnType: u_int
    signature: u_int tty_term_ncodes(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/tmux/tty-term.c:308,1
    - Dst: xstrdup
      Src: /src/tmux/tty-term.c:309,1
    - Dst: xstrdup
      Src: /src/tmux/tty-term.c:328,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 329
    functionName: tty_term_strip
    functionSourceFile: /src/tmux/tty-term.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - strchr
    linkageType: ''
    returnType: char
    signature: 'char *

      tty_term_strip(const char *s)'
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - s
    - offset
    argTypes:
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 360
    functionName: tty_term_override_next
    functionSourceFile: /src/tmux/tty-term.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      tty_term_override_next(const char *s, size_t *offset)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: tty_term_override_next
      Src: /src/tmux/tty-term.c:373,1
    - Dst: strchr
      Src: /src/tmux/tty-term.c:379,1
    - Dst: xstrdup
      Src: /src/tmux/tty-term.c:381,1
    - Dst: strunvis
      Src: /src/tmux/tty-term.c:382,1
    - Dst: free
      Src: /src/tmux/tty-term.c:383,1
    - Dst: xstrdup
      Src: /src/tmux/tty-term.c:384,1
    - Dst: strlen
      Src: /src/tmux/tty-term.c:386,1
    - Dst: strlen
      Src: /src/tmux/tty-term.c:387,1
    - Dst: xstrdup
      Src: /src/tmux/tty-term.c:390,1
    - Dst: log_debug
      Src: /src/tmux/tty-term.c:394,1
    - Dst: log_debug
      Src: /src/tmux/tty-term.c:396,1
    - Dst: log_debug
      Src: /src/tmux/tty-term.c:398,1
    - Dst: tty_term_ncodes
      Src: /src/tmux/tty-term.c:401,1
    - Dst: strcmp
      Src: /src/tmux/tty-term.c:403,1
    - Dst: free
      Src: /src/tmux/tty-term.c:416,1
    - Dst: xstrdup
      Src: /src/tmux/tty-term.c:417,1
    - Dst: strtonum
      Src: /src/tmux/tty-term.c:421,1
    - Dst: free
      Src: /src/tmux/tty-term.c:434,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 3
    argNames:
    - term
    - capabilities
    - quiet
    argTypes:
    - struct tty_term*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 436
    functionName: tty_term_apply
    functionSourceFile: /src/tmux/tty-term.c
    functionUses: 1
    functionsReached:
    - log_debug
    - strtonum
    - tty_term_override_next
    - strchr
    - strcmp
    - free
    - strlen
    - tty_term_ncodes
    - xstrdup
    - strunvis
    linkageType: ''
    returnType: void
    signature: void tty_term_apply(struct tty_term *term, const char *capabilities,
      int quiet)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: options_get_only
      Src: /src/tmux/tty-term.c:449,1
    - Dst: options_array_first
      Src: /src/tmux/tty-term.c:450,1
    - Dst: options_array_item_value
      Src: /src/tmux/tty-term.c:452,1
    - Dst: tty_term_override_next
      Src: /src/tmux/tty-term.c:456,1
    - Dst: fnmatch
      Src: /src/tmux/tty-term.c:457,1
    - Dst: tty_term_apply
      Src: /src/tmux/tty-term.c:458,1
    - Dst: options_array_next
      Src: /src/tmux/tty-term.c:459,1
    - Dst: log_debug
      Src: /src/tmux/tty-term.c:463,1
    - Dst: tty_term_has
      Src: /src/tmux/tty-term.c:466,1
    - Dst: tty_term_has
      Src: /src/tmux/tty-term.c:467,1
    - Dst: log_debug
      Src: /src/tmux/tty-term.c:471,1
    - Dst: tty_term_has
      Src: /src/tmux/tty-term.c:477,1
    - Dst: tty_term_has
      Src: /src/tmux/tty-term.c:477,1
    - Dst: log_debug
      Src: /src/tmux/tty-term.c:481,1
    - Dst: tty_term_has
      Src: /src/tmux/tty-term.c:487,1
    - Dst: log_debug
      Src: /src/tmux/tty-term.c:491,1
    - Dst: tty_term_flag
      Src: /src/tmux/tty-term.c:508,1
    - Dst: log_debug
      Src: /src/tmux/tty-term.c:512,1
    - Dst: memset
      Src: /src/tmux/tty-term.c:515,1
    - Dst: tty_term_has
      Src: /src/tmux/tty-term.c:516,1
    - Dst: tty_term_string
      Src: /src/tmux/tty-term.c:517,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 1
    argNames:
    - term
    argTypes:
    - struct tty_term*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 522
    functionName: tty_term_apply_overrides
    functionSourceFile: /src/tmux/tty-term.c
    functionUses: 1
    functionsReached:
    - tty_term_flag
    - tty_term_string
    - options_array_first
    - tty_term_has
    - tty_term_override_next
    - options_get_only
    - memset
    - fnmatch
    - log_debug
    - tty_term_apply
    - options_array_item_value
    - options_array_next
    linkageType: ''
    returnType: void
    signature: void tty_term_apply_overrides(struct tty_term *term)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/tty-term.c:541,1
    - Dst: xcalloc
      Src: /src/tmux/tty-term.c:543,1
    - Dst: xstrdup
      Src: /src/tmux/tty-term.c:545,1
    - Dst: xcalloc
      Src: /src/tmux/tty-term.c:546,1
    - Dst: tty_term_ncodes
      Src: /src/tmux/tty-term.c:546,1
    - Dst: LIST_INSERT_HEAD
      Src: /src/tmux/tty-term.c:547,1
    - Dst: strcspn
      Src: /src/tmux/tty-term.c:551,1
    - Dst: tty_term_ncodes
      Src: /src/tmux/tty-term.c:556,1
    - Dst: strncmp
      Src: /src/tmux/tty-term.c:558,1
    - Dst: tty_term_strip
      Src: /src/tmux/tty-term.c:570,1
    - Dst: strtonum
      Src: /src/tmux/tty-term.c:573,1
    - Dst: log_debug
      Src: /src/tmux/tty-term.c:575,1
    - Dst: options_get_only
      Src: /src/tmux/tty-term.c:590,1
    - Dst: options_array_first
      Src: /src/tmux/tty-term.c:591,1
    - Dst: options_array_item_value
      Src: /src/tmux/tty-term.c:593,1
    - Dst: tty_term_override_next
      Src: /src/tmux/tty-term.c:597,1
    - Dst: fnmatch
      Src: /src/tmux/tty-term.c:598,1
    - Dst: tty_add_features
      Src: /src/tmux/tty-term.c:599,1
    - Dst: options_array_next
      Src: /src/tmux/tty-term.c:600,1
    - Dst: del_curterm
      Src: /src/tmux/tty-term.c:606,1
    - Dst: environ_find
      Src: /src/tmux/tty-term.c:609,1
    - Dst: log_debug
      Src: /src/tmux/tty-term.c:611,1
    - Dst: strcasecmp
      Src: /src/tmux/tty-term.c:612,1
    - Dst: strcasecmp
      Src: /src/tmux/tty-term.c:613,1
    - Dst: tty_add_features
      Src: /src/tmux/tty-term.c:614,1
    - Dst: strstr
      Src: /src/tmux/tty-term.c:615,1
    - Dst: tty_add_features
      Src: /src/tmux/tty-term.c:616,1
    - Dst: tty_term_apply_overrides
      Src: /src/tmux/tty-term.c:620,1
    - Dst: tty_term_has
      Src: /src/tmux/tty-term.c:623,1
    - Dst: xasprintf
      Src: /src/tmux/tty-term.c:624,1
    - Dst: tty_term_has
      Src: /src/tmux/tty-term.c:627,1
    - Dst: xasprintf
      Src: /src/tmux/tty-term.c:628,1
    - Dst: tty_term_string
      Src: /src/tmux/tty-term.c:644,1
    - Dst: tty_term_flag
      Src: /src/tmux/tty-term.c:645,1
    - Dst: strncmp
      Src: /src/tmux/tty-term.c:645,1
    - Dst: tty_add_features
      Src: /src/tmux/tty-term.c:647,1
    - Dst: tty_term_flag
      Src: /src/tmux/tty-term.c:651,1
    - Dst: tty_term_has
      Src: /src/tmux/tty-term.c:651,1
    - Dst: tty_term_has
      Src: /src/tmux/tty-term.c:652,1
    - Dst: tty_term_has
      Src: /src/tmux/tty-term.c:653,1
    - Dst: tty_add_features
      Src: /src/tmux/tty-term.c:654,1
    - Dst: tty_apply_features
      Src: /src/tmux/tty-term.c:657,1
    - Dst: tty_term_apply_overrides
      Src: /src/tmux/tty-term.c:658,1
    - Dst: tty_term_ncodes
      Src: /src/tmux/tty-term.c:661,1
    - Dst: log_debug
      Src: /src/tmux/tty-term.c:662,1
    - Dst: tty_term_describe
      Src: /src/tmux/tty-term.c:662,1
    - Dst: tty_term_free
      Src: /src/tmux/tty-term.c:667,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 89
    argCount: 6
    argNames:
    - tty
    - name
    - caps
    - ncaps
    - feat
    - cause
    argTypes:
    - struct tty*
    - char*
    - char**
    - u_int
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 524
    functionDepth: 3
    functionLinenumber: 524
    functionLinenumberEnd: 669
    functionName: tty_term_create
    functionSourceFile: /src/tmux/tty-term.c
    functionUses: 1
    functionsReached:
    - tty_term_strip
    - tty_term_flag
    - strncmp
    - tty_term_has
    - tty_term_apply_overrides
    - strcspn
    - del_curterm
    - tty_term_describe
    - options_array_first
    - strtonum
    - xcalloc
    - options_get_only
    - strcasecmp
    - tty_apply_features
    - tty_term_free
    - fnmatch
    - log_debug
    - options_array_item_value
    - xstrdup
    - tty_add_features
    - tty_term_string
    - environ_find
    - tty_term_ncodes
    - options_array_next
    - xasprintf
    - tty_term_override_next
    - strstr
    - LIST_INSERT_HEAD
    linkageType: ''
    returnType: struct tty_term
    signature: "struct tty_term *\ntty_term_create(struct tty *tty, char *name, char
      **caps, u_int ncaps,\n    int *feat, char **cause)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/tty-term.c:676,1
    - Dst: tty_term_ncodes
      Src: /src/tmux/tty-term.c:678,1
    - Dst: free
      Src: /src/tmux/tty-term.c:680,1
    - Dst: free
      Src: /src/tmux/tty-term.c:682,1
    - Dst: LIST_REMOVE
      Src: /src/tmux/tty-term.c:684,1
    - Dst: free
      Src: /src/tmux/tty-term.c:685,1
    - Dst: free
      Src: /src/tmux/tty-term.c:686,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - term
    argTypes:
    - struct tty_term*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 687
    functionName: tty_term_free
    functionSourceFile: /src/tmux/tty-term.c
    functionUses: 2
    functionsReached:
    - log_debug
    - tty_term_ncodes
    - free
    - LIST_REMOVE
    linkageType: ''
    returnType: void
    signature: void tty_term_free(struct tty_term *term)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: setupterm
      Src: /src/tmux/tty-term.c:699,1
    - Dst: xasprintf
      Src: /src/tmux/tty-term.c:702,1
    - Dst: xasprintf
      Src: /src/tmux/tty-term.c:706,1
    - Dst: xasprintf
      Src: /src/tmux/tty-term.c:710,1
    - Dst: xasprintf
      Src: /src/tmux/tty-term.c:713,1
    - Dst: tty_term_ncodes
      Src: /src/tmux/tty-term.c:722,1
    - Dst: tigetstr
      Src: /src/tmux/tty-term.c:728,1
    - Dst: tigetnum
      Src: /src/tmux/tty-term.c:733,1
    - Dst: xsnprintf
      Src: /src/tmux/tty-term.c:736,1
    - Dst: tigetflag
      Src: /src/tmux/tty-term.c:740,1
    - Dst: fatalx
      Src: /src/tmux/tty-term.c:749,1
    - Dst: xreallocarray
      Src: /src/tmux/tty-term.c:751,1
    - Dst: xasprintf
      Src: /src/tmux/tty-term.c:752,1
    - Dst: del_curterm
      Src: /src/tmux/tty-term.c:758,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 54
    argCount: 5
    argNames:
    - name
    - fd
    - caps
    - ncaps
    - cause
    argTypes:
    - char*
    - int
    - char***
    - u_int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 761
    functionName: tty_term_read_list
    functionSourceFile: /src/tmux/tty-term.c
    functionUses: 0
    functionsReached:
    - tigetnum
    - xasprintf
    - tigetstr
    - fatalx
    - xsnprintf
    - setupterm
    - del_curterm
    - xreallocarray
    - tty_term_ncodes
    - tigetflag
    linkageType: ''
    returnType: int
    signature: "int tty_term_read_list(const char *name, int fd, char ***caps, u_int
      *ncaps,\n    char **cause)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/tty-term.c:769,1
    - Dst: free
      Src: /src/tmux/tty-term.c:770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - caps
    - ncaps
    argTypes:
    - char**
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 771
    functionName: tty_term_free_list
    functionSourceFile: /src/tmux/tty-term.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void tty_term_free_list(char **caps, u_int ncaps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - term
    - code
    argTypes:
    - struct tty_term*
    - enum tty_code_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 777
    functionName: tty_term_has
    functionSourceFile: /src/tmux/tty-term.c
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tty_term_has(struct tty_term *term, enum tty_code_code code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tty_term_has
      Src: /src/tmux/tty-term.c:782,1
    - Dst: fatalx
      Src: /src/tmux/tty-term.c:785,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - term
    - code
    argTypes:
    - struct tty_term*
    - enum tty_code_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 787
    functionName: tty_term_string
    functionSourceFile: /src/tmux/tty-term.c
    functionUses: 6
    functionsReached:
    - tty_term_has
    - fatalx
    linkageType: ''
    returnType: char
    signature: 'char *

      tty_term_string(struct tty_term *term, enum tty_code_code code)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_term_string
      Src: /src/tmux/tty-term.c:792,1
    - Dst: tiparm_s
      Src: /src/tmux/tty-term.c:795,1
    - Dst: tiparm
      Src: /src/tmux/tty-term.c:797,1
    - Dst: tparm
      Src: /src/tmux/tty-term.c:799,1
    - Dst: log_debug
      Src: /src/tmux/tty-term.c:802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - term
    - code
    - a
    argTypes:
    - struct tty_term*
    - enum tty_code_code
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 789
    functionDepth: 2
    functionLinenumber: 789
    functionLinenumberEnd: 806
    functionName: tty_term_string_i
    functionSourceFile: /src/tmux/tty-term.c
    functionUses: 2
    functionsReached:
    - tty_term_string
    - tparm
    - tiparm
    - tiparm_s
    - log_debug
    linkageType: ''
    returnType: char
    signature: 'char *

      tty_term_string_i(struct tty_term *term, enum tty_code_code code, int a)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_term_string
      Src: /src/tmux/tty-term.c:811,1
    - Dst: tiparm_s
      Src: /src/tmux/tty-term.c:814,1
    - Dst: tiparm
      Src: /src/tmux/tty-term.c:816,1
    - Dst: tparm
      Src: /src/tmux/tty-term.c:818,1
    - Dst: log_debug
      Src: /src/tmux/tty-term.c:821,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - term
    - code
    - a
    - b
    argTypes:
    - struct tty_term*
    - enum tty_code_code
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 808
    functionDepth: 2
    functionLinenumber: 808
    functionLinenumberEnd: 825
    functionName: tty_term_string_ii
    functionSourceFile: /src/tmux/tty-term.c
    functionUses: 2
    functionsReached:
    - tty_term_string
    - tparm
    - tiparm
    - tiparm_s
    - log_debug
    linkageType: ''
    returnType: char
    signature: 'char *

      tty_term_string_ii(struct tty_term *term, enum tty_code_code code, int a, int
      b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_term_string
      Src: /src/tmux/tty-term.c:831,1
    - Dst: tiparm_s
      Src: /src/tmux/tty-term.c:834,1
    - Dst: tiparm
      Src: /src/tmux/tty-term.c:836,1
    - Dst: tparm
      Src: /src/tmux/tty-term.c:838,1
    - Dst: log_debug
      Src: /src/tmux/tty-term.c:841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - term
    - code
    - a
    - b
    - c
    argTypes:
    - struct tty_term*
    - enum tty_code_code
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 827
    functionDepth: 2
    functionLinenumber: 827
    functionLinenumberEnd: 845
    functionName: tty_term_string_iii
    functionSourceFile: /src/tmux/tty-term.c
    functionUses: 1
    functionsReached:
    - tty_term_string
    - tparm
    - tiparm
    - tiparm_s
    - log_debug
    linkageType: ''
    returnType: char
    signature: "char *\ntty_term_string_iii(struct tty_term *term, enum tty_code_code
      code, int a,\n    int b, int c)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_term_string
      Src: /src/tmux/tty-term.c:850,1
    - Dst: tiparm_s
      Src: /src/tmux/tty-term.c:853,1
    - Dst: tiparm
      Src: /src/tmux/tty-term.c:855,1
    - Dst: tparm
      Src: /src/tmux/tty-term.c:857,1
    - Dst: log_debug
      Src: /src/tmux/tty-term.c:860,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - term
    - code
    - a
    argTypes:
    - struct tty_term*
    - enum tty_code_code
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 847
    functionDepth: 2
    functionLinenumber: 847
    functionLinenumberEnd: 864
    functionName: tty_term_string_s
    functionSourceFile: /src/tmux/tty-term.c
    functionUses: 1
    functionsReached:
    - tty_term_string
    - tparm
    - tiparm
    - tiparm_s
    - log_debug
    linkageType: ''
    returnType: char
    signature: 'char *

      tty_term_string_s(struct tty_term *term, enum tty_code_code code, const char
      *a)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_term_string
      Src: /src/tmux/tty-term.c:870,1
    - Dst: tiparm_s
      Src: /src/tmux/tty-term.c:873,1
    - Dst: tiparm
      Src: /src/tmux/tty-term.c:875,1
    - Dst: tparm
      Src: /src/tmux/tty-term.c:877,1
    - Dst: log_debug
      Src: /src/tmux/tty-term.c:880,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - term
    - code
    - a
    - b
    argTypes:
    - struct tty_term*
    - enum tty_code_code
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 866
    functionDepth: 2
    functionLinenumber: 866
    functionLinenumberEnd: 884
    functionName: tty_term_string_ss
    functionSourceFile: /src/tmux/tty-term.c
    functionUses: 1
    functionsReached:
    - tty_term_string
    - tparm
    - tiparm
    - tiparm_s
    - log_debug
    linkageType: ''
    returnType: char
    signature: "char *\ntty_term_string_ss(struct tty_term *term, enum tty_code_code
      code,\n    const char *a, const char *b)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tty_term_has
      Src: /src/tmux/tty-term.c:889,1
    - Dst: fatalx
      Src: /src/tmux/tty-term.c:892,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - term
    - code
    argTypes:
    - struct tty_term*
    - enum tty_code_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 886
    functionDepth: 1
    functionLinenumber: 886
    functionLinenumberEnd: 894
    functionName: tty_term_number
    functionSourceFile: /src/tmux/tty-term.c
    functionUses: 2
    functionsReached:
    - tty_term_has
    - fatalx
    linkageType: ''
    returnType: int
    signature: int tty_term_number(struct tty_term *term, enum tty_code_code code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tty_term_has
      Src: /src/tmux/tty-term.c:899,1
    - Dst: fatalx
      Src: /src/tmux/tty-term.c:902,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - term
    - code
    argTypes:
    - struct tty_term*
    - enum tty_code_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 896
    functionDepth: 1
    functionLinenumber: 896
    functionLinenumberEnd: 904
    functionName: tty_term_flag
    functionSourceFile: /src/tmux/tty-term.c
    functionUses: 4
    functionsReached:
    - tty_term_has
    - fatalx
    linkageType: ''
    returnType: int
    signature: int tty_term_flag(struct tty_term *term, enum tty_code_code code)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/tmux/tty-term.c:914,1
    - Dst: strnvis
      Src: /src/tmux/tty-term.c:918,1
    - Dst: xsnprintf
      Src: /src/tmux/tty-term.c:920,1
    - Dst: xsnprintf
      Src: /src/tmux/tty-term.c:925,1
    - Dst: xsnprintf
      Src: /src/tmux/tty-term.c:930,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - term
    - code
    argTypes:
    - struct tty_term*
    - enum tty_code_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 936
    functionName: tty_term_describe
    functionSourceFile: /src/tmux/tty-term.c
    functionUses: 1
    functionsReached:
    - xsnprintf
    - strnvis
    linkageType: ''
    returnType: char
    signature: 'char *

      tty_term_describe(struct tty_term *term, enum tty_code_code code)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/cmd-select-pane.c:68,1
    - Dst: tty_window_bigger
      Src: /src/tmux/cmd-select-pane.c:71,1
    - Dst: server_redraw_client
      Src: /src/tmux/cmd-select-pane.c:72,1
    - Dst: session_has
      Src: /src/tmux/cmd-select-pane.c:76,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 81
    functionName: cmd_select_pane_redraw
    functionSourceFile: /src/tmux/cmd-select-pane.c
    functionUses: 0
    functionsReached:
    - server_redraw_client
    - tty_window_bigger
    - session_has
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void cmd_select_pane_redraw(struct window *w)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-select-pane.c:86,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-select-pane.c:87,1
    - Dst: cmdq_get_current
      Src: /src/tmux/cmd-select-pane.c:88,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-select-pane.c:89,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-select-pane.c:90,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-pane.c:100,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/cmd-select-pane.c:105,1
    - Dst: window_count_panes
      Src: /src/tmux/cmd-select-pane.c:106,1
    - Dst: TAILQ_PREV
      Src: /src/tmux/cmd-select-pane.c:107,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/cmd-select-pane.c:109,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-select-pane.c:112,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-pane.c:115,1
    - Dst: server_redraw_window_borders
      Src: /src/tmux/cmd-select-pane.c:117,1
    - Dst: server_status_window
      Src: /src/tmux/cmd-select-pane.c:118,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-pane.c:119,1
    - Dst: server_redraw_window_borders
      Src: /src/tmux/cmd-select-pane.c:121,1
    - Dst: server_status_window
      Src: /src/tmux/cmd-select-pane.c:122,1
    - Dst: window_push_zoom
      Src: /src/tmux/cmd-select-pane.c:124,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-pane.c:124,1
    - Dst: server_redraw_window
      Src: /src/tmux/cmd-select-pane.c:125,1
    - Dst: window_redraw_active_switch
      Src: /src/tmux/cmd-select-pane.c:126,1
    - Dst: window_set_active_pane
      Src: /src/tmux/cmd-select-pane.c:127,1
    - Dst: cmd_find_from_winlink
      Src: /src/tmux/cmd-select-pane.c:128,1
    - Dst: cmd_select_pane_redraw
      Src: /src/tmux/cmd-select-pane.c:129,1
    - Dst: window_pop_zoom
      Src: /src/tmux/cmd-select-pane.c:131,1
    - Dst: server_redraw_window
      Src: /src/tmux/cmd-select-pane.c:132,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-pane.c:137,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-pane.c:137,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-pane.c:138,1
    - Dst: window_pane_visible
      Src: /src/tmux/cmd-select-pane.c:138,1
    - Dst: server_check_marked
      Src: /src/tmux/cmd-select-pane.c:140,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-pane.c:145,1
    - Dst: server_is_marked
      Src: /src/tmux/cmd-select-pane.c:145,1
    - Dst: server_clear_marked
      Src: /src/tmux/cmd-select-pane.c:146,1
    - Dst: server_set_marked
      Src: /src/tmux/cmd-select-pane.c:148,1
    - Dst: server_redraw_window_borders
      Src: /src/tmux/cmd-select-pane.c:154,1
    - Dst: server_status_window
      Src: /src/tmux/cmd-select-pane.c:155,1
    - Dst: server_redraw_window_borders
      Src: /src/tmux/cmd-select-pane.c:160,1
    - Dst: server_status_window
      Src: /src/tmux/cmd-select-pane.c:161,1
    - Dst: window_redraw_active_switch
      Src: /src/tmux/cmd-select-pane.c:164,1
    - Dst: window_set_active_pane
      Src: /src/tmux/cmd-select-pane.c:165,1
    - Dst: args_get
      Src: /src/tmux/cmd-select-pane.c:170,1
    - Dst: options_set_string
      Src: /src/tmux/cmd-select-pane.c:172,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-select-pane.c:174,1
    - Dst: options_set_string
      Src: /src/tmux/cmd-select-pane.c:177,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-pane.c:180,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-select-pane.c:181,1
    - Dst: options_get_string
      Src: /src/tmux/cmd-select-pane.c:181,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-pane.c:185,1
    - Dst: window_push_zoom
      Src: /src/tmux/cmd-select-pane.c:186,1
    - Dst: window_pane_find_left
      Src: /src/tmux/cmd-select-pane.c:187,1
    - Dst: window_pop_zoom
      Src: /src/tmux/cmd-select-pane.c:188,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-pane.c:189,1
    - Dst: window_push_zoom
      Src: /src/tmux/cmd-select-pane.c:190,1
    - Dst: window_pane_find_right
      Src: /src/tmux/cmd-select-pane.c:191,1
    - Dst: window_pop_zoom
      Src: /src/tmux/cmd-select-pane.c:192,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-pane.c:193,1
    - Dst: window_push_zoom
      Src: /src/tmux/cmd-select-pane.c:194,1
    - Dst: window_pane_find_up
      Src: /src/tmux/cmd-select-pane.c:195,1
    - Dst: window_pop_zoom
      Src: /src/tmux/cmd-select-pane.c:196,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-pane.c:197,1
    - Dst: window_push_zoom
      Src: /src/tmux/cmd-select-pane.c:198,1
    - Dst: window_pane_find_down
      Src: /src/tmux/cmd-select-pane.c:199,1
    - Dst: window_pop_zoom
      Src: /src/tmux/cmd-select-pane.c:200,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-pane.c:205,1
    - Dst: server_redraw_window_borders
      Src: /src/tmux/cmd-select-pane.c:207,1
    - Dst: server_status_window
      Src: /src/tmux/cmd-select-pane.c:208,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-pane.c:211,1
    - Dst: server_redraw_window_borders
      Src: /src/tmux/cmd-select-pane.c:213,1
    - Dst: server_status_window
      Src: /src/tmux/cmd-select-pane.c:214,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-pane.c:218,1
    - Dst: format_single_from_target
      Src: /src/tmux/cmd-select-pane.c:219,1
    - Dst: args_get
      Src: /src/tmux/cmd-select-pane.c:219,1
    - Dst: screen_set_title
      Src: /src/tmux/cmd-select-pane.c:220,1
    - Dst: notify_pane
      Src: /src/tmux/cmd-select-pane.c:221,1
    - Dst: server_redraw_window_borders
      Src: /src/tmux/cmd-select-pane.c:222,1
    - Dst: server_status_window
      Src: /src/tmux/cmd-select-pane.c:223,1
    - Dst: free
      Src: /src/tmux/cmd-select-pane.c:225,1
    - Dst: server_client_get_pane
      Src: /src/tmux/cmd-select-pane.c:230,1
    - Dst: window_push_zoom
      Src: /src/tmux/cmd-select-pane.c:235,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-pane.c:235,1
    - Dst: server_redraw_window
      Src: /src/tmux/cmd-select-pane.c:236,1
    - Dst: window_redraw_active_switch
      Src: /src/tmux/cmd-select-pane.c:237,1
    - Dst: server_client_set_pane
      Src: /src/tmux/cmd-select-pane.c:239,1
    - Dst: window_set_active_pane
      Src: /src/tmux/cmd-select-pane.c:240,1
    - Dst: cmd_find_from_winlink_pane
      Src: /src/tmux/cmd-select-pane.c:241,1
    - Dst: cmdq_insert_hook
      Src: /src/tmux/cmd-select-pane.c:242,1
    - Dst: cmd_select_pane_redraw
      Src: /src/tmux/cmd-select-pane.c:243,1
    - Dst: window_pop_zoom
      Src: /src/tmux/cmd-select-pane.c:244,1
    - Dst: server_redraw_window
      Src: /src/tmux/cmd-select-pane.c:245,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 135
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 83
    functionDepth: 5
    functionLinenumber: 83
    functionLinenumberEnd: 248
    functionName: cmd_select_pane_exec
    functionSourceFile: /src/tmux/cmd-select-pane.c
    functionUses: 0
    functionsReached:
    - TAILQ_PREV
    - server_redraw_window
    - window_redraw_active_switch
    - cmd_select_pane_redraw
    - window_pane_visible
    - server_client_get_pane
    - cmdq_get_client
    - window_pane_find_left
    - server_clear_marked
    - args_has
    - screen_set_title
    - cmdq_get_current
    - server_check_marked
    - window_push_zoom
    - window_pop_zoom
    - server_is_marked
    - format_single_from_target
    - args_get
    - options_set_string
    - server_status_window
    - window_pane_find_up
    - cmd_find_from_winlink
    - cmdq_insert_hook
    - cmdq_print
    - cmd_get_args
    - TAILQ_FIRST
    - cmd_get_entry
    - window_count_panes
    - notify_pane
    - TAILQ_NEXT
    - cmd_find_from_winlink_pane
    - server_redraw_window_borders
    - cmdq_get_target
    - window_pane_find_right
    - window_pane_find_down
    - server_client_set_pane
    - cmdq_error
    - server_set_marked
    - free
    - options_get_string
    - window_set_active_pane
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_select_pane_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xrealloc
      Src: /src/tmux/cmd-capture-pane.c:68,1
    - Dst: memcpy
      Src: /src/tmux/cmd-capture-pane.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - len
    - line
    - linelen
    argTypes:
    - char*
    - size_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: cmd_capture_pane_append
    functionSourceFile: /src/tmux/cmd-capture-pane.c
    functionUses: 0
    functionsReached:
    - xrealloc
    - memcpy
    linkageType: ''
    returnType: char
    signature: 'char *

      cmd_capture_pane_append(char *buf, size_t *len, char *line, size_t linelen)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: input_pending
      Src: /src/tmux/cmd-capture-pane.c:83,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-capture-pane.c:85,1
    - Dst: EVBUFFER_DATA
      Src: /src/tmux/cmd-capture-pane.c:87,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/cmd-capture-pane.c:88,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-capture-pane.c:90,1
    - Dst: args_has
      Src: /src/tmux/cmd-capture-pane.c:91,1
    - Dst: xsnprintf
      Src: /src/tmux/cmd-capture-pane.c:97,1
    - Dst: cmd_capture_pane_append
      Src: /src/tmux/cmd-capture-pane.c:98,1
    - Dst: strlen
      Src: /src/tmux/cmd-capture-pane.c:99,1
    - Dst: cmd_capture_pane_append
      Src: /src/tmux/cmd-capture-pane.c:102,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - args
    - wp
    - len
    argTypes:
    - struct args*
    - struct window_pane*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 104
    functionName: cmd_capture_pane_pending
    functionSourceFile: /src/tmux/cmd-capture-pane.c
    functionUses: 0
    functionsReached:
    - input_pending
    - EVBUFFER_DATA
    - xsnprintf
    - cmd_capture_pane_append
    - strlen
    - xstrdup
    - args_has
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: char
    signature: "char *\ncmd_capture_pane_pending(struct args *args, struct window_pane
      *wp,\n    size_t *len)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/cmd-capture-pane.c:121,1
    - Dst: args_has
      Src: /src/tmux/cmd-capture-pane.c:122,1
    - Dst: args_has
      Src: /src/tmux/cmd-capture-pane.c:125,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-capture-pane.c:126,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-capture-pane.c:129,1
    - Dst: args_has
      Src: /src/tmux/cmd-capture-pane.c:132,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/cmd-capture-pane.c:133,1
    - Dst: struct window_mode_entry*::mode::get_screen
      Src: /src/tmux/cmd-capture-pane.c:135,1
    - Dst: args_get
      Src: /src/tmux/cmd-capture-pane.c:146,1
    - Dst: strcmp
      Src: /src/tmux/cmd-capture-pane.c:147,1
    - Dst: args_strtonum_and_expand
      Src: /src/tmux/cmd-capture-pane.c:150,1
    - Dst: free
      Src: /src/tmux/cmd-capture-pane.c:154,1
    - Dst: args_get
      Src: /src/tmux/cmd-capture-pane.c:163,1
    - Dst: strcmp
      Src: /src/tmux/cmd-capture-pane.c:164,1
    - Dst: args_strtonum_and_expand
      Src: /src/tmux/cmd-capture-pane.c:167,1
    - Dst: free
      Src: /src/tmux/cmd-capture-pane.c:171,1
    - Dst: args_has
      Src: /src/tmux/cmd-capture-pane.c:186,1
    - Dst: args_has
      Src: /src/tmux/cmd-capture-pane.c:187,1
    - Dst: args_has
      Src: /src/tmux/cmd-capture-pane.c:189,1
    - Dst: args_has
      Src: /src/tmux/cmd-capture-pane.c:191,1
    - Dst: args_has
      Src: /src/tmux/cmd-capture-pane.c:193,1
    - Dst: grid_string_cells
      Src: /src/tmux/cmd-capture-pane.c:198,1
    - Dst: strlen
      Src: /src/tmux/cmd-capture-pane.c:199,1
    - Dst: cmd_capture_pane_append
      Src: /src/tmux/cmd-capture-pane.c:201,1
    - Dst: grid_peek_line
      Src: /src/tmux/cmd-capture-pane.c:203,1
    - Dst: free
      Src: /src/tmux/cmd-capture-pane.c:207,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 79
    argCount: 4
    argNames:
    - args
    - item
    - wp
    - len
    argTypes:
    - struct args*
    - struct cmdq_item*
    - struct window_pane*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 106
    functionDepth: 4
    functionLinenumber: 106
    functionLinenumberEnd: 210
    functionName: cmd_capture_pane_history
    functionSourceFile: /src/tmux/cmd-capture-pane.c
    functionUses: 0
    functionsReached:
    - grid_peek_line
    - cmdq_error
    - screen_size_x
    - TAILQ_FIRST
    - struct window_mode_entry*::mode::get_screen
    - strcmp
    - args_strtonum_and_expand
    - free
    - cmd_capture_pane_append
    - args_get
    - grid_string_cells
    - strlen
    - xstrdup
    - args_has
    linkageType: ''
    returnType: char
    signature: "char *\ncmd_capture_pane_history(struct args *args, struct cmdq_item
      *item,\n    struct window_pane *wp, size_t *len)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-capture-pane.c:215,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-capture-pane.c:216,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-capture-pane.c:217,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-capture-pane.c:222,1
    - Dst: window_pane_reset_mode_all
      Src: /src/tmux/cmd-capture-pane.c:223,1
    - Dst: grid_clear_history
      Src: /src/tmux/cmd-capture-pane.c:224,1
    - Dst: args_has
      Src: /src/tmux/cmd-capture-pane.c:225,1
    - Dst: screen_reset_hyperlinks
      Src: /src/tmux/cmd-capture-pane.c:226,1
    - Dst: args_has
      Src: /src/tmux/cmd-capture-pane.c:231,1
    - Dst: cmd_capture_pane_pending
      Src: /src/tmux/cmd-capture-pane.c:232,1
    - Dst: cmd_capture_pane_history
      Src: /src/tmux/cmd-capture-pane.c:234,1
    - Dst: args_has
      Src: /src/tmux/cmd-capture-pane.c:238,1
    - Dst: control_write
      Src: /src/tmux/cmd-capture-pane.c:242,1
    - Dst: file_can_print
      Src: /src/tmux/cmd-capture-pane.c:244,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-capture-pane.c:245,1
    - Dst: free
      Src: /src/tmux/cmd-capture-pane.c:246,1
    - Dst: file_print_buffer
      Src: /src/tmux/cmd-capture-pane.c:249,1
    - Dst: file_print
      Src: /src/tmux/cmd-capture-pane.c:250,1
    - Dst: free
      Src: /src/tmux/cmd-capture-pane.c:252,1
    - Dst: args_has
      Src: /src/tmux/cmd-capture-pane.c:255,1
    - Dst: args_get
      Src: /src/tmux/cmd-capture-pane.c:256,1
    - Dst: paste_set
      Src: /src/tmux/cmd-capture-pane.c:258,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-capture-pane.c:259,1
    - Dst: free
      Src: /src/tmux/cmd-capture-pane.c:260,1
    - Dst: free
      Src: /src/tmux/cmd-capture-pane.c:261,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 212
    functionDepth: 5
    functionLinenumber: 212
    functionLinenumberEnd: 267
    functionName: cmd_capture_pane_exec
    functionSourceFile: /src/tmux/cmd-capture-pane.c
    functionUses: 0
    functionsReached:
    - cmd_capture_pane_pending
    - cmd_capture_pane_history
    - control_write
    - file_can_print
    - cmdq_error
    - cmd_get_args
    - cmd_get_entry
    - screen_reset_hyperlinks
    - file_print
    - window_pane_reset_mode_all
    - free
    - args_get
    - cmdq_get_client
    - paste_set
    - file_print_buffer
    - grid_clear_history
    - cmdq_get_target
    - args_has
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_capture_pane_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_get_level
      Src: /src/tmux/image.c:36,1
    - Dst: log_debug
      Src: /src/tmux/image.c:40,1
    - Dst: va_start
      Src: /src/tmux/image.c:45,1
    - Dst: vsnprintf
      Src: /src/tmux/image.c:46,1
    - Dst: va_end
      Src: /src/tmux/image.c:47,1
    - Dst: log_debug
      Src: /src/tmux/image.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - im
    - from
    - fmt
    argTypes:
    - struct image*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 51
    functionName: image_log
    functionSourceFile: /src/tmux/image.c
    functionUses: 0
    functionsReached:
    - log_get_level
    - va_start
    - va_end
    - log_debug
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: void image_log(struct image *im, const char* from, const char* fmt,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: image_log
      Src: /src/tmux/image.c:56,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/image.c:58,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/image.c:61,1
    - Dst: sixel_free
      Src: /src/tmux/image.c:62,1
    - Dst: free
      Src: /src/tmux/image.c:63,1
    - Dst: free
      Src: /src/tmux/image.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - im
    argTypes:
    - struct image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: image_free
    functionSourceFile: /src/tmux/image.c
    functionUses: 0
    functionsReached:
    - sixel_free
    - free
    - image_log
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void image_free(struct image *im)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/image.c:71,1
    - Dst: log_debug
      Src: /src/tmux/image.c:74,1
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/image.c:75,1
    - Dst: image_free
      Src: /src/tmux/image.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct screen*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 78
    functionName: image_free_all
    functionSourceFile: /src/tmux/image.c
    functionUses: 0
    functionsReached:
    - TAILQ_EMPTY
    - TAILQ_FOREACH_SAFE
    - image_free
    - log_debug
    linkageType: ''
    returnType: int
    signature: int image_free_all(struct screen *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/tmux/image.c:88,1
    - Dst: xmalloc
      Src: /src/tmux/image.c:96,1
    - Dst: memcpy
      Src: /src/tmux/image.c:100,1
    - Dst: memcpy
      Src: /src/tmux/image.c:103,1
    - Dst: memset
      Src: /src/tmux/image.c:105,1
    - Dst: snprintf
      Src: /src/tmux/image.c:107,1
    - Dst: memset
      Src: /src/tmux/image.c:113,1
    - Dst: snprintf
      Src: /src/tmux/image.c:115,1
    - Dst: free
      Src: /src/tmux/image.c:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - ret
    - sx
    - sy
    argTypes:
    - char**
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 120
    functionName: image_fallback
    functionSourceFile: /src/tmux/image.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - xmalloc
    - memset
    - free
    - memcpy
    - snprintf
    linkageType: ''
    returnType: void
    signature: void image_fallback(char **ret, u_int sx, u_int sy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/image.c:127,1
    - Dst: sixel_size_in_cells
      Src: /src/tmux/image.c:133,1
    - Dst: image_fallback
      Src: /src/tmux/image.c:135,1
    - Dst: image_log
      Src: /src/tmux/image.c:137,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/image.c:139,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/image.c:141,1
    - Dst: image_free
      Src: /src/tmux/image.c:143,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/image.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - s
    - si
    argTypes:
    - struct screen*
    - struct sixel_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 146
    functionName: image_store
    functionSourceFile: /src/tmux/image.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - image_free
    - image_log
    - sixel_size_in_cells
    - TAILQ_FIRST
    - image_fallback
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: struct image
    signature: 'struct image *

      image_store(struct screen *s, struct sixel_image *si)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/image.c:154,1
    - Dst: image_log
      Src: /src/tmux/image.c:156,1
    - Dst: image_free
      Src: /src/tmux/image.c:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - s
    - py
    - ny
    argTypes:
    - struct screen*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 163
    functionName: image_check_line
    functionSourceFile: /src/tmux/image.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH_SAFE
    - image_free
    - image_log
    linkageType: ''
    returnType: int
    signature: int image_check_line(struct screen *s, u_int py, u_int ny)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/image.c:171,1
    - Dst: image_log
      Src: /src/tmux/image.c:176,1
    - Dst: image_free
      Src: /src/tmux/image.c:178,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - s
    - px
    - py
    - nx
    - ny
    argTypes:
    - struct screen*
    - u_int
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 183
    functionName: image_check_area
    functionSourceFile: /src/tmux/image.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH_SAFE
    - image_free
    - image_log
    linkageType: ''
    returnType: int
    signature: int image_check_area(struct screen *s, u_int px, u_int py, u_int nx,
      u_int ny)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/image.c:193,1
    - Dst: image_log
      Src: /src/tmux/image.c:195,1
    - Dst: image_log
      Src: /src/tmux/image.c:201,1
    - Dst: image_free
      Src: /src/tmux/image.c:202,1
    - Dst: image_log
      Src: /src/tmux/image.c:208,1
    - Dst: sixel_scale::sixel_scale
      Src: /src/tmux/image.c:210,1
    - Dst: sixel_free
      Src: /src/tmux/image.c:211,1
    - Dst: im::im
      Src: /src/tmux/image.c:212,1
    - Dst: sixel_size_in_cells
      Src: /src/tmux/image.c:215,1
    - Dst: free
      Src: /src/tmux/image.c:217,1
    - Dst: image_fallback
      Src: /src/tmux/image.c:218,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - s
    - lines
    argTypes:
    - struct screen*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 222
    functionName: image_scroll_up
    functionSourceFile: /src/tmux/image.c
    functionUses: 0
    functionsReached:
    - im::im
    - image_free
    - image_log
    - sixel_size_in_cells
    - sixel_free
    - TAILQ_FOREACH_SAFE
    - sixel_scale::sixel_scale
    - free
    - image_fallback
    linkageType: ''
    returnType: int
    signature: int image_scroll_up(struct screen *s, u_int lines)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: window_pane_floating_geometry
      Src: /src/tmux/cmd-split-window.c:80,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-split-window.c:82,1
    - Dst: free
      Src: /src/tmux/cmd-split-window.c:83,1
    - Dst: layout_create_cell
      Src: /src/tmux/cmd-split-window.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - item
    - args
    - w
    - wp
    argTypes:
    - struct cmdq_item*
    - struct args*
    - struct window*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 98
    functionName: cmd_split_window_get_floating_cell
    functionSourceFile: /src/tmux/cmd-split-window.c
    functionUses: 0
    functionsReached:
    - window_pane_floating_geometry
    - free
    - layout_create_cell
    - cmdq_error
    linkageType: ''
    returnType: struct layout_cell
    signature: "struct layout_cell *\ncmd_split_window_get_floating_cell(struct cmdq_item
      *item, struct args *args,\n    struct window *w, struct window_pane *wp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_error
      Src: /src/tmux/cmd-split-window.c:110,1
    - Dst: window_pane_tiled_geometry
      Src: /src/tmux/cmd-split-window.c:114,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-split-window.c:116,1
    - Dst: free
      Src: /src/tmux/cmd-split-window.c:117,1
    - Dst: window_push_zoom
      Src: /src/tmux/cmd-split-window.c:121,1
    - Dst: args_has
      Src: /src/tmux/cmd-split-window.c:121,1
    - Dst: layout_split_pane
      Src: /src/tmux/cmd-split-window.c:122,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-split-window.c:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - item
    - args
    - w
    - wp
    - flags
    argTypes:
    - struct cmdq_item*
    - struct args*
    - struct window*
    - struct window_pane*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 100
    functionDepth: 6
    functionLinenumber: 100
    functionLinenumberEnd: 127
    functionName: cmd_split_window_get_tiled_cell
    functionSourceFile: /src/tmux/cmd-split-window.c
    functionUses: 0
    functionsReached:
    - window_push_zoom
    - cmdq_error
    - layout_split_pane
    - window_pane_tiled_geometry
    - free
    - args_has
    linkageType: ''
    returnType: struct layout_cell
    signature: "struct layout_cell *\ncmd_split_window_get_tiled_cell(struct cmdq_item
      *item, struct args *args,\n    struct window *w, struct window_pane *wp, int
      flags)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-split-window.c:132,1
    - Dst: cmdq_get_current
      Src: /src/tmux/cmd-split-window.c:133,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-split-window.c:134,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/cmd-split-window.c:136,1
    - Dst: args_count
      Src: /src/tmux/cmd-split-window.c:147,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-split-window.c:149,1
    - Dst: args_has
      Src: /src/tmux/cmd-split-window.c:153,1
    - Dst: args_has
      Src: /src/tmux/cmd-split-window.c:156,1
    - Dst: args_has
      Src: /src/tmux/cmd-split-window.c:158,1
    - Dst: args_string
      Src: /src/tmux/cmd-split-window.c:160,1
    - Dst: cmd_split_window_get_floating_cell
      Src: /src/tmux/cmd-split-window.c:164,1
    - Dst: cmd_split_window_get_tiled_cell
      Src: /src/tmux/cmd-split-window.c:166,1
    - Dst: args_to_vector
      Src: /src/tmux/cmd-split-window.c:177,1
    - Dst: environ_create
      Src: /src/tmux/cmd-split-window.c:178,1
    - Dst: args_first_value
      Src: /src/tmux/cmd-split-window.c:180,1
    - Dst: environ_put
      Src: /src/tmux/cmd-split-window.c:182,1
    - Dst: args_next_value
      Src: /src/tmux/cmd-split-window.c:183,1
    - Dst: args_get
      Src: /src/tmux/cmd-split-window.c:187,1
    - Dst: args_has
      Src: /src/tmux/cmd-split-window.c:190,1
    - Dst: args_has
      Src: /src/tmux/cmd-split-window.c:192,1
    - Dst: spawn_pane
      Src: /src/tmux/cmd-split-window.c:195,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-split-window.c:196,1
    - Dst: free
      Src: /src/tmux/cmd-split-window.c:197,1
    - Dst: cmd_free_argv
      Src: /src/tmux/cmd-split-window.c:199,1
    - Dst: environ_free
      Src: /src/tmux/cmd-split-window.c:200,1
    - Dst: args_get
      Src: /src/tmux/cmd-split-window.c:204,1
    - Dst: options_set_string
      Src: /src/tmux/cmd-split-window.c:206,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-split-window.c:208,1
    - Dst: options_set_string
      Src: /src/tmux/cmd-split-window.c:211,1
    - Dst: args_get
      Src: /src/tmux/cmd-split-window.c:216,1
    - Dst: options_set_string
      Src: /src/tmux/cmd-split-window.c:218,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-split-window.c:220,1
    - Dst: args_get
      Src: /src/tmux/cmd-split-window.c:224,1
    - Dst: options_set_string
      Src: /src/tmux/cmd-split-window.c:226,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-split-window.c:228,1
    - Dst: args_has
      Src: /src/tmux/cmd-split-window.c:233,1
    - Dst: args_has
      Src: /src/tmux/cmd-split-window.c:233,1
    - Dst: options_set_number
      Src: /src/tmux/cmd-split-window.c:234,1
    - Dst: args_has
      Src: /src/tmux/cmd-split-window.c:235,1
    - Dst: options_set_string
      Src: /src/tmux/cmd-split-window.c:236,1
    - Dst: args_get
      Src: /src/tmux/cmd-split-window.c:238,1
    - Dst: window_pane_start_input
      Src: /src/tmux/cmd-split-window.c:242,1
    - Dst: server_client_remove_pane
      Src: /src/tmux/cmd-split-window.c:244,1
    - Dst: layout_close_pane
      Src: /src/tmux/cmd-split-window.c:246,1
    - Dst: window_remove_pane
      Src: /src/tmux/cmd-split-window.c:247,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-split-window.c:248,1
    - Dst: free
      Src: /src/tmux/cmd-split-window.c:249,1
    - Dst: cmd_free_argv
      Src: /src/tmux/cmd-split-window.c:251,1
    - Dst: environ_free
      Src: /src/tmux/cmd-split-window.c:252,1
    - Dst: args_has
      Src: /src/tmux/cmd-split-window.c:259,1
    - Dst: cmd_find_from_winlink_pane
      Src: /src/tmux/cmd-split-window.c:260,1
    - Dst: window_pop_zoom
      Src: /src/tmux/cmd-split-window.c:263,1
    - Dst: server_redraw_window
      Src: /src/tmux/cmd-split-window.c:264,1
    - Dst: server_status_session
      Src: /src/tmux/cmd-split-window.c:266,1
    - Dst: args_has
      Src: /src/tmux/cmd-split-window.c:268,1
    - Dst: format_single
      Src: /src/tmux/cmd-split-window.c:271,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-split-window.c:272,1
    - Dst: free
      Src: /src/tmux/cmd-split-window.c:273,1
    - Dst: cmd_find_from_winlink_pane
      Src: /src/tmux/cmd-split-window.c:276,1
    - Dst: cmdq_insert_hook
      Src: /src/tmux/cmd-split-window.c:277,1
    - Dst: cmd_free_argv
      Src: /src/tmux/cmd-split-window.c:280,1
    - Dst: environ_free
      Src: /src/tmux/cmd-split-window.c:281,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 112
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 129
    functionDepth: 7
    functionLinenumber: 129
    functionLinenumberEnd: 285
    functionName: cmd_split_window_exec
    functionSourceFile: /src/tmux/cmd-split-window.c
    functionUses: 0
    functionsReached:
    - server_redraw_window
    - args_first_value
    - cmd_split_window_get_floating_cell
    - args_count
    - cmd_free_argv
    - args_has
    - cmdq_get_current
    - environ_put
    - args_string
    - args_to_vector
    - window_pop_zoom
    - cmdq_get_target_client
    - args_get
    - options_set_string
    - spawn_pane
    - server_client_remove_pane
    - window_remove_pane
    - cmdq_insert_hook
    - window_pane_start_input
    - cmdq_print
    - cmd_get_args
    - args_next_value
    - cmd_get_entry
    - cmd_split_window_get_tiled_cell
    - cmd_find_from_winlink_pane
    - environ_create
    - cmdq_get_target
    - environ_free
    - layout_close_pane
    - cmdq_error
    - free
    - options_set_number
    - server_status_session
    - format_single
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_split_window_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - args
    - u_int
    - cause
    argTypes:
    - __unused*
    - __unused
    - __unused**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: cmd_choose_tree_args_parse
    functionSourceFile: /src/tmux/cmd-choose-tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum args_parse_type
    signature: "enum args_parse_type cmd_choose_tree_args_parse(__unused struct args
      *args, __unused u_int idx,\n    __unused char **cause)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-choose-tree.c:97,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-choose-tree.c:98,1
    - Dst: sort_order_from_string
      Src: /src/tmux/cmd-choose-tree.c:103,1
    - Dst: args_get
      Src: /src/tmux/cmd-choose-tree.c:103,1
    - Dst: args_has
      Src: /src/tmux/cmd-choose-tree.c:104,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-choose-tree.c:105,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-choose-tree.c:109,1
    - Dst: paste_is_empty
      Src: /src/tmux/cmd-choose-tree.c:110,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-choose-tree.c:113,1
    - Dst: server_client_how_many
      Src: /src/tmux/cmd-choose-tree.c:114,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-choose-tree.c:117,1
    - Dst: window_pane_set_mode
      Src: /src/tmux/cmd-choose-tree.c:122,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 124
    functionName: cmd_choose_tree_exec
    functionSourceFile: /src/tmux/cmd-choose-tree.c
    functionUses: 0
    functionsReached:
    - cmdq_error
    - cmd_get_args
    - paste_is_empty
    - cmd_get_entry
    - window_pane_set_mode
    - sort_order_from_string
    - args_get
    - server_client_how_many
    - cmdq_get_target
    - args_has
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_choose_tree_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: server_client_unref
      Src: /src/tmux/popup.c:109,1
    - Dst: job_free
      Src: /src/tmux/popup.c:112,1
    - Dst: input_free
      Src: /src/tmux/popup.c:113,1
    - Dst: free
      Src: /src/tmux/popup.c:115,1
    - Dst: free
      Src: /src/tmux/popup.c:116,1
    - Dst: free
      Src: /src/tmux/popup.c:117,1
    - Dst: screen_free
      Src: /src/tmux/popup.c:118,1
    - Dst: colour_palette_free
      Src: /src/tmux/popup.c:119,1
    - Dst: free
      Src: /src/tmux/popup.c:121,1
    - Dst: free
      Src: /src/tmux/popup.c:122,1
    - Dst: free
      Src: /src/tmux/popup.c:123,1
    - Dst: free
      Src: /src/tmux/popup.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - pd
    argTypes:
    - struct popup_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 125
    functionName: popup_free
    functionSourceFile: /src/tmux/popup.c
    functionUses: 0
    functionsReached:
    - screen_free
    - server_client_unref
    - input_free
    - free
    - job_free
    - colour_palette_free
    linkageType: ''
    returnType: void
    signature: void popup_free(struct popup_data *pd)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: format_create_defaults
      Src: /src/tmux/popup.c:140,1
    - Dst: memcpy
      Src: /src/tmux/popup.c:143,1
    - Dst: style_apply
      Src: /src/tmux/popup.c:144,1
    - Dst: style_set
      Src: /src/tmux/popup.c:146,1
    - Dst: style_parse
      Src: /src/tmux/popup.c:147,1
    - Dst: memcpy
      Src: /src/tmux/popup.c:155,1
    - Dst: style_apply
      Src: /src/tmux/popup.c:156,1
    - Dst: style_set
      Src: /src/tmux/popup.c:158,1
    - Dst: style_parse
      Src: /src/tmux/popup.c:159,1
    - Dst: format_free
      Src: /src/tmux/popup.c:167,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - pd
    argTypes:
    - struct popup_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 168
    functionName: popup_reapply_styles
    functionSourceFile: /src/tmux/popup.c
    functionUses: 0
    functionsReached:
    - style_apply
    - format_free
    - style_parse
    - style_set
    - memcpy
    - format_create_defaults
    linkageType: ''
    returnType: void
    signature: void popup_reapply_styles(struct popup_data *pd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ttyctx
    argTypes:
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: popup_redraw_cb
    functionSourceFile: /src/tmux/popup.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void popup_redraw_cb(const struct tty_ctx *ttyctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ttyctx
    - c
    argTypes:
    - struct tty_ctx*
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 202
    functionName: popup_set_client_cb
    functionSourceFile: /src/tmux/popup.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int popup_set_client_cb(struct tty_ctx *ttyctx, struct client *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/popup.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - ttyctx
    argTypes:
    - struct screen_write_ctx*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 215
    functionName: popup_init_ctx_cb
    functionSourceFile: /src/tmux/popup.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void popup_init_ctx_cb(struct screen_write_ctx *ctx, struct tty_ctx
      *ttyctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: menu_mode_cb
      Src: /src/tmux/popup.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - c
    - data
    - cx
    - cy
    argTypes:
    - __unused*
    - void*
    - u_int*
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 233
    functionName: popup_mode_cb
    functionSourceFile: /src/tmux/popup.c
    functionUses: 0
    functionsReached:
    - menu_mode_cb
    linkageType: ''
    returnType: struct screen
    signature: 'struct screen *

      popup_mode_cb(__unused struct client *c, void *data, u_int *cx, u_int *cy)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: menu_check_cb
      Src: /src/tmux/popup.c:250,1
    - Dst: fatalx
      Src: /src/tmux/popup.c:252,1
    - Dst: server_client_overlay_range
      Src: /src/tmux/popup.c:260,1
    - Dst: server_client_ensure_ranges
      Src: /src/tmux/popup.c:269,1
    - Dst: fatalx
      Src: /src/tmux/popup.c:275,1
    - Dst: server_client_overlay_range
      Src: /src/tmux/popup.c:284,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - c
    - data
    - px
    - py
    - nx
    argTypes:
    - struct client*
    - void*
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 287
    functionName: popup_check_cb
    functionSourceFile: /src/tmux/popup.c
    functionUses: 0
    functionsReached:
    - menu_check_cb
    - server_client_ensure_ranges
    - fatalx
    - server_client_overlay_range
    linkageType: ''
    returnType: struct visible_ranges
    signature: 'struct visible_ranges *

      popup_check_cb(struct client* c, void *data, u_int px, u_int py, u_int nx)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: popup_reapply_styles
      Src: /src/tmux/popup.c:300,1
    - Dst: screen_init
      Src: /src/tmux/popup.c:302,1
    - Dst: hyperlinks_free
      Src: /src/tmux/popup.c:304,1
    - Dst: hyperlinks_copy
      Src: /src/tmux/popup.c:305,1
    - Dst: screen_write_start
      Src: /src/tmux/popup.c:307,1
    - Dst: screen_write_clearscreen
      Src: /src/tmux/popup.c:308,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/popup.c:311,1
    - Dst: screen_write_fast_copy
      Src: /src/tmux/popup.c:312,1
    - Dst: screen_write_box
      Src: /src/tmux/popup.c:314,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/popup.c:316,1
    - Dst: screen_write_fast_copy
      Src: /src/tmux/popup.c:317,1
    - Dst: screen_write_stop
      Src: /src/tmux/popup.c:320,1
    - Dst: memcpy
      Src: /src/tmux/popup.c:322,1
    - Dst: tty_draw_line
      Src: /src/tmux/popup.c:336,1
    - Dst: screen_free
      Src: /src/tmux/popup.c:339,1
    - Dst: menu_draw_cb
      Src: /src/tmux/popup.c:343,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 3
    argNames:
    - c
    - data
    - rctx
    argTypes:
    - struct client*
    - void*
    - struct screen_redraw_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 347
    functionName: popup_draw_cb
    functionSourceFile: /src/tmux/popup.c
    functionUses: 0
    functionsReached:
    - hyperlinks_free
    - screen_write_box
    - menu_draw_cb
    - screen_init
    - screen_free
    - popup_reapply_styles
    - screen_write_cursormove
    - screen_write_clearscreen
    - tty_draw_line
    - hyperlinks_copy
    - memcpy
    - screen_write_fast_copy
    - screen_write_start
    - screen_write_stop
    linkageType: ''
    returnType: void
    signature: void popup_draw_cb(struct client *c, void *data, struct screen_redraw_ctx
      *rctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: menu_free_cb
      Src: /src/tmux/popup.c:356,1
    - Dst: struct popup_data*::cb
      Src: /src/tmux/popup.c:359,1
    - Dst: cmdq_get_client
      Src: /src/tmux/popup.c:362,1
    - Dst: cmdq_get_client
      Src: /src/tmux/popup.c:363,1
    - Dst: cmdq_get_client
      Src: /src/tmux/popup.c:364,1
    - Dst: cmdq_continue
      Src: /src/tmux/popup.c:365,1
    - Dst: popup_free
      Src: /src/tmux/popup.c:368,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - c
    - data
    argTypes:
    - struct client*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 369
    functionName: popup_free_cb
    functionSourceFile: /src/tmux/popup.c
    functionUses: 0
    functionsReached:
    - cmdq_continue
    - cmdq_get_client
    - struct popup_data*::cb
    - popup_free
    - menu_free_cb
    linkageType: ''
    returnType: void
    signature: void popup_free_cb(struct client *c, void *data)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: menu_free_cb
      Src: /src/tmux/popup.c:380,1
    - Dst: screen_resize
      Src: /src/tmux/popup.c:402,1
    - Dst: job_resize
      Src: /src/tmux/popup.c:404,1
    - Dst: screen_resize
      Src: /src/tmux/popup.c:406,1
    - Dst: job_resize
      Src: /src/tmux/popup.c:408,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - c
    - data
    argTypes:
    - __unused*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 410
    functionName: popup_resize_cb
    functionSourceFile: /src/tmux/popup.c
    functionUses: 0
    functionsReached:
    - job_resize
    - screen_resize
    - menu_free_cb
    linkageType: ''
    returnType: void
    signature: void popup_resize_cb(__unused struct client *c, void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: window_unzoom
      Src: /src/tmux/popup.c:423,1
    - Dst: layout_split_pane
      Src: /src/tmux/popup.c:425,1
    - Dst: options_get_number
      Src: /src/tmux/popup.c:428,1
    - Dst: window_add_pane
      Src: /src/tmux/popup.c:429,1
    - Dst: layout_assign_pane
      Src: /src/tmux/popup.c:430,1
    - Dst: job_transfer
      Src: /src/tmux/popup.c:433,1
    - Dst: screen_set_title
      Src: /src/tmux/popup.c:438,1
    - Dst: screen_free
      Src: /src/tmux/popup.c:439,1
    - Dst: memcpy
      Src: /src/tmux/popup.c:440,1
    - Dst: screen_resize
      Src: /src/tmux/popup.c:441,1
    - Dst: screen_init
      Src: /src/tmux/popup.c:442,1
    - Dst: options_get_string
      Src: /src/tmux/popup.c:444,1
    - Dst: checkshell
      Src: /src/tmux/popup.c:445,1
    - Dst: xstrdup
      Src: /src/tmux/popup.c:447,1
    - Dst: window_pane_set_event
      Src: /src/tmux/popup.c:449,1
    - Dst: window_set_active_pane
      Src: /src/tmux/popup.c:450,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - pd
    - type
    argTypes:
    - struct popup_data*
    - enum layout_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 412
    functionDepth: 6
    functionLinenumber: 412
    functionLinenumberEnd: 454
    functionName: popup_make_pane
    functionSourceFile: /src/tmux/popup.c
    functionUses: 0
    functionsReached:
    - layout_assign_pane
    - screen_free
    - screen_init
    - window_set_active_pane
    - layout_split_pane
    - window_pane_set_event
    - checkshell
    - memcpy
    - window_add_pane
    - job_transfer
    - screen_set_title
    - screen_resize
    - xstrdup
    - options_get_number
    - options_get_string
    - window_unzoom
    linkageType: ''
    returnType: void
    signature: void popup_make_pane(struct popup_data *pd, enum layout_type type)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: server_redraw_client
      Src: /src/tmux/popup.c:468,1
    - Dst: paste_get_top
      Src: /src/tmux/popup.c:472,1
    - Dst: paste_buffer_data
      Src: /src/tmux/popup.c:474,1
    - Dst: bufferevent_write
      Src: /src/tmux/popup.c:475,1
    - Dst: job_get_event
      Src: /src/tmux/popup.c:475,1
    - Dst: server_redraw_client
      Src: /src/tmux/popup.c:483,1
    - Dst: server_redraw_client
      Src: /src/tmux/popup.c:488,1
    - Dst: popup_make_pane
      Src: /src/tmux/popup.c:491,1
    - Dst: popup_make_pane
      Src: /src/tmux/popup.c:494,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 4
    argNames:
    - menu
    - choice
    - key
    - data
    argTypes:
    - __unused*
    - __unused
    - key_code
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 456
    functionDepth: 7
    functionLinenumber: 456
    functionLinenumberEnd: 500
    functionName: popup_menu_done
    functionSourceFile: /src/tmux/popup.c
    functionUses: 0
    functionsReached:
    - paste_buffer_data
    - popup_make_pane
    - paste_get_top
    - server_redraw_client
    - bufferevent_write
    - job_get_event
    linkageType: ''
    returnType: void
    signature: "void popup_menu_done(__unused struct menu *menu, __unused u_int choice,\n
      \   key_code key, void *data)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: MOUSE_DRAG
      Src: /src/tmux/popup.c:508,1
    - Dst: server_redraw_client
      Src: /src/tmux/popup.c:529,1
    - Dst: screen_resize
      Src: /src/tmux/popup.c:548,1
    - Dst: job_resize
      Src: /src/tmux/popup.c:550,1
    - Dst: screen_resize
      Src: /src/tmux/popup.c:552,1
    - Dst: job_resize
      Src: /src/tmux/popup.c:554,1
    - Dst: server_redraw_client
      Src: /src/tmux/popup.c:556,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 3
    argNames:
    - c
    - pd
    - m
    argTypes:
    - struct client*
    - struct popup_data*
    - struct mouse_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 558
    functionName: popup_handle_drag
    functionSourceFile: /src/tmux/popup.c
    functionUses: 0
    functionsReached:
    - server_redraw_client
    - job_resize
    - screen_resize
    - MOUSE_DRAG
    linkageType: ''
    returnType: void
    signature: "void popup_handle_drag(struct client *c, struct popup_data *pd,\n
      \   struct mouse_event *m)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: menu_key_cb
      Src: /src/tmux/popup.c:571,1
    - Dst: server_client_clear_overlay
      Src: /src/tmux/popup.c:575,1
    - Dst: server_redraw_client
      Src: /src/tmux/popup.c:577,1
    - Dst: KEYC_IS_MOUSE
      Src: /src/tmux/popup.c:582,1
    - Dst: popup_handle_drag
      Src: /src/tmux/popup.c:584,1
    - Dst: MOUSE_BUTTONS
      Src: /src/tmux/popup.c:591,1
    - Dst: MOUSE_BUTTONS
      Src: /src/tmux/popup.c:606,1
    - Dst: MOUSE_DRAG
      Src: /src/tmux/popup.c:610,1
    - Dst: MOUSE_DRAG
      Src: /src/tmux/popup.c:611,1
    - Dst: MOUSE_BUTTONS
      Src: /src/tmux/popup.c:613,1
    - Dst: MOUSE_BUTTONS
      Src: /src/tmux/popup.c:615,1
    - Dst: KEYC_IS_MOUSE
      Src: /src/tmux/popup.c:627,1
    - Dst: KEYC_IS_PASTE
      Src: /src/tmux/popup.c:627,1
    - Dst: KEYC_IS_MOUSE
      Src: /src/tmux/popup.c:630,1
    - Dst: input_key_get_mouse
      Src: /src/tmux/popup.c:639,1
    - Dst: bufferevent_write
      Src: /src/tmux/popup.c:641,1
    - Dst: job_get_event
      Src: /src/tmux/popup.c:641,1
    - Dst: input_key
      Src: /src/tmux/popup.c:644,1
    - Dst: job_get_event
      Src: /src/tmux/popup.c:644,1
    - Dst: menu_create
      Src: /src/tmux/popup.c:649,1
    - Dst: menu_add_items
      Src: /src/tmux/popup.c:651,1
    - Dst: menu_add_items
      Src: /src/tmux/popup.c:654,1
    - Dst: menu_prepare
      Src: /src/tmux/popup.c:659,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 89
    argCount: 3
    argNames:
    - c
    - data
    - event
    argTypes:
    - struct client*
    - void*
    - struct key_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 560
    functionDepth: 5
    functionLinenumber: 560
    functionLinenumberEnd: 668
    functionName: popup_key_cb
    functionSourceFile: /src/tmux/popup.c
    functionUses: 0
    functionsReached:
    - KEYC_IS_MOUSE
    - MOUSE_DRAG
    - menu_prepare
    - menu_create
    - KEYC_IS_PASTE
    - input_key_get_mouse
    - MOUSE_BUTTONS
    - menu_key_cb
    - popup_handle_drag
    - menu_add_items
    - server_redraw_client
    - bufferevent_write
    - job_get_event
    - input_key
    - server_client_clear_overlay
    linkageType: ''
    returnType: int
    signature: int popup_key_cb(struct client *c, void *data, struct key_event *event)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: job_get_data
      Src: /src/tmux/popup.c:673,1
    - Dst: job_get_event
      Src: /src/tmux/popup.c:674,1
    - Dst: EVBUFFER_DATA
      Src: /src/tmux/popup.c:677,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/popup.c:678,1
    - Dst: input_parse_screen
      Src: /src/tmux/popup.c:690,1
    - Dst: evbuffer_drain
      Src: /src/tmux/popup.c:694,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - job
    argTypes:
    - struct job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 670
    functionDepth: 3
    functionLinenumber: 670
    functionLinenumberEnd: 695
    functionName: popup_job_update_cb
    functionSourceFile: /src/tmux/popup.c
    functionUses: 0
    functionsReached:
    - input_parse_screen
    - EVBUFFER_DATA
    - job_get_data
    - job_get_event
    - evbuffer_drain
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: void popup_job_update_cb(struct job *job)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: job_get_data
      Src: /src/tmux/popup.c:700,1
    - Dst: job_get_status
      Src: /src/tmux/popup.c:703,1
    - Dst: WIFEXITED
      Src: /src/tmux/popup.c:704,1
    - Dst: WEXITSTATUS
      Src: /src/tmux/popup.c:705,1
    - Dst: WIFSIGNALED
      Src: /src/tmux/popup.c:706,1
    - Dst: WTERMSIG
      Src: /src/tmux/popup.c:707,1
    - Dst: server_client_clear_overlay
      Src: /src/tmux/popup.c:714,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - job
    argTypes:
    - struct job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 715
    functionName: popup_job_complete_cb
    functionSourceFile: /src/tmux/popup.c
    functionUses: 0
    functionsReached:
    - job_get_status
    - server_client_clear_overlay
    - WIFEXITED
    - WTERMSIG
    - WIFSIGNALED
    - WEXITSTATUS
    - job_get_data
    linkageType: ''
    returnType: void
    signature: void popup_job_complete_cb(struct job *job)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 721
    functionName: popup_present
    functionSourceFile: /src/tmux/popup.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int popup_present(struct client *c)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/popup.c:732,1
    - Dst: xstrdup
      Src: /src/tmux/popup.c:733,1
    - Dst: free
      Src: /src/tmux/popup.c:736,1
    - Dst: xstrdup
      Src: /src/tmux/popup.c:737,1
    - Dst: style_set
      Src: /src/tmux/popup.c:738,1
    - Dst: style_parse
      Src: /src/tmux/popup.c:739,1
    - Dst: free
      Src: /src/tmux/popup.c:745,1
    - Dst: xstrdup
      Src: /src/tmux/popup.c:746,1
    - Dst: style_set
      Src: /src/tmux/popup.c:747,1
    - Dst: style_parse
      Src: /src/tmux/popup.c:748,1
    - Dst: screen_resize
      Src: /src/tmux/popup.c:755,1
    - Dst: job_resize
      Src: /src/tmux/popup.c:756,1
    - Dst: screen_resize
      Src: /src/tmux/popup.c:759,1
    - Dst: job_resize
      Src: /src/tmux/popup.c:760,1
    - Dst: tty_resize
      Src: /src/tmux/popup.c:763,1
    - Dst: server_redraw_client
      Src: /src/tmux/popup.c:768,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 6
    argNames:
    - c
    - title
    - style
    - border_style
    - lines
    - flags
    argTypes:
    - struct client*
    - char*
    - char*
    - char*
    - enum box_lines
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 723
    functionDepth: 2
    functionLinenumber: 723
    functionLinenumberEnd: 770
    functionName: popup_modify
    functionSourceFile: /src/tmux/popup.c
    functionUses: 0
    functionsReached:
    - style_set
    - free
    - screen_resize
    - job_resize
    - server_redraw_client
    - tty_resize
    - style_parse
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int popup_modify(struct client *c, const char *title, const char *style,\n\tconst
      char *border_style, enum box_lines lines, int flags)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/popup.c:790,1
    - Dst: xcalloc
      Src: /src/tmux/popup.c:805,1
    - Dst: xstrdup
      Src: /src/tmux/popup.c:810,1
    - Dst: xstrdup
      Src: /src/tmux/popup.c:812,1
    - Dst: xstrdup
      Src: /src/tmux/popup.c:814,1
    - Dst: memcpy
      Src: /src/tmux/popup.c:824,1
    - Dst: style_apply
      Src: /src/tmux/popup.c:825,1
    - Dst: style_set
      Src: /src/tmux/popup.c:827,1
    - Dst: style_parse
      Src: /src/tmux/popup.c:828,1
    - Dst: screen_init
      Src: /src/tmux/popup.c:835,1
    - Dst: screen_set_default_cursor
      Src: /src/tmux/popup.c:836,1
    - Dst: colour_palette_init
      Src: /src/tmux/popup.c:837,1
    - Dst: colour_palette_from_option
      Src: /src/tmux/popup.c:838,1
    - Dst: memcpy
      Src: /src/tmux/popup.c:840,1
    - Dst: style_apply
      Src: /src/tmux/popup.c:841,1
    - Dst: style_set
      Src: /src/tmux/popup.c:843,1
    - Dst: style_parse
      Src: /src/tmux/popup.c:844,1
    - Dst: input_init
      Src: /src/tmux/popup.c:862,1
    - Dst: job_run
      Src: /src/tmux/popup.c:864,1
    - Dst: popup_free
      Src: /src/tmux/popup.c:868,1
    - Dst: input_init
      Src: /src/tmux/popup.c:871,1
    - Dst: job_get_event
      Src: /src/tmux/popup.c:871,1
    - Dst: server_client_set_overlay
      Src: /src/tmux/popup.c:875,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 77
    argCount: 19
    argNames:
    - flags
    - lines
    - item
    - px
    - py
    - sx
    - sy
    - env
    - shellcmd
    - argc
    - argv
    - cwd
    - title
    - c
    - s
    - style
    - border_style
    - cb
    - arg
    argTypes:
    - int
    - enum box_lines
    - struct cmdq_item*
    - u_int
    - u_int
    - u_int
    - u_int
    - struct environ*
    - char*
    - int
    - char**
    - char*
    - char*
    - struct client*
    - struct session*
    - char*
    - char*
    - popup_close_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 772
    functionDepth: 3
    functionLinenumber: 772
    functionLinenumberEnd: 878
    functionName: popup_display
    functionSourceFile: /src/tmux/popup.c
    functionUses: 0
    functionsReached:
    - style_apply
    - job_run
    - screen_init
    - job_get_event
    - screen_set_default_cursor
    - input_init
    - xcalloc
    - style_parse
    - server_client_set_overlay
    - style_set
    - colour_palette_from_option
    - popup_free
    - memcpy
    - colour_palette_init
    - options_get_number
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int popup_display(int flags, enum box_lines lines, struct cmdq_item
      *item, u_int px,\n    u_int py, u_int sx, u_int sy, struct environ *env, const
      char *shellcmd,\n    int argc, char **argv, const char *cwd, const char *title,
      struct client *c,\n    struct session *s, const char *style, const char *border_style,\n
      \   popup_close_cb cb, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: popup_present
      Src: /src/tmux/popup.c:885,1
    - Dst: input_parse_screen
      Src: /src/tmux/popup.c:889,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - c
    - data
    - size
    argTypes:
    - struct client*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 880
    functionDepth: 3
    functionLinenumber: 880
    functionLinenumberEnd: 892
    functionName: popup_write
    functionSourceFile: /src/tmux/popup.c
    functionUses: 0
    functionsReached:
    - input_parse_screen
    - popup_present
    linkageType: ''
    returnType: void
    signature: void popup_write(struct client *c, const char *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/tmux/popup.c:897,1
    - Dst: free
      Src: /src/tmux/popup.c:898,1
    - Dst: free
      Src: /src/tmux/popup.c:899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pe
    argTypes:
    - struct popup_editor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 900
    functionName: popup_editor_free
    functionSourceFile: /src/tmux/popup.c
    functionUses: 0
    functionsReached:
    - unlink
    - free
    linkageType: ''
    returnType: void
    signature: void popup_editor_free(struct popup_editor *pe)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct popup_editor*::cb
      Src: /src/tmux/popup.c:911,1
    - Dst: popup_editor_free
      Src: /src/tmux/popup.c:912,1
    - Dst: fopen
      Src: /src/tmux/popup.c:916,1
    - Dst: fseeko
      Src: /src/tmux/popup.c:918,1
    - Dst: ftello
      Src: /src/tmux/popup.c:919,1
    - Dst: fseeko
      Src: /src/tmux/popup.c:920,1
    - Dst: malloc
      Src: /src/tmux/popup.c:924,1
    - Dst: fread
      Src: /src/tmux/popup.c:925,1
    - Dst: free
      Src: /src/tmux/popup.c:926,1
    - Dst: fclose
      Src: /src/tmux/popup.c:930,1
    - Dst: struct popup_editor*::cb
      Src: /src/tmux/popup.c:932,1
    - Dst: popup_editor_free
      Src: /src/tmux/popup.c:933,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - status
    - arg
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 902
    functionDepth: 1
    functionLinenumber: 902
    functionLinenumberEnd: 934
    functionName: popup_editor_close_cb
    functionSourceFile: /src/tmux/popup.c
    functionUses: 0
    functionsReached:
    - fseeko
    - fclose
    - popup_editor_free
    - fread
    - free
    - malloc
    - struct popup_editor*::cb
    - ftello
    - fopen
    linkageType: ''
    returnType: void
    signature: void popup_editor_close_cb(int status, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: options_get_string
      Src: /src/tmux/popup.c:948,1
    - Dst: mkstemp
      Src: /src/tmux/popup.c:952,1
    - Dst: fdopen
      Src: /src/tmux/popup.c:955,1
    - Dst: fwrite
      Src: /src/tmux/popup.c:958,1
    - Dst: fclose
      Src: /src/tmux/popup.c:959,1
    - Dst: fclose
      Src: /src/tmux/popup.c:962,1
    - Dst: xcalloc
      Src: /src/tmux/popup.c:964,1
    - Dst: xstrdup
      Src: /src/tmux/popup.c:965,1
    - Dst: xasprintf
      Src: /src/tmux/popup.c:974,1
    - Dst: popup_display
      Src: /src/tmux/popup.c:975,1
    - Dst: popup_editor_free
      Src: /src/tmux/popup.c:978,1
    - Dst: free
      Src: /src/tmux/popup.c:979,1
    - Dst: free
      Src: /src/tmux/popup.c:982,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 5
    argNames:
    - c
    - buf
    - len
    - cb
    - arg
    argTypes:
    - struct client*
    - char*
    - size_t
    - popup_finish_edit_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 936
    functionDepth: 4
    functionLinenumber: 936
    functionLinenumberEnd: 984
    functionName: popup_editor
    functionSourceFile: /src/tmux/popup.c
    functionUses: 0
    functionsReached:
    - mkstemp
    - xasprintf
    - popup_display
    - fclose
    - xcalloc
    - popup_editor_free
    - fwrite
    - fdopen
    - free
    - xstrdup
    - options_get_string
    linkageType: ''
    returnType: int
    signature: "int popup_editor(struct client *c, const char *buf, size_t len,\n
      \   popup_finish_edit_cb cb, void *arg)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-select-window.c:87,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-select-window.c:88,1
    - Dst: cmdq_get_current
      Src: /src/tmux/cmd-select-window.c:89,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-select-window.c:90,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-select-window.c:95,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-window.c:96,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-select-window.c:98,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-window.c:99,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-select-window.c:101,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-window.c:102,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-window.c:106,1
    - Dst: session_next
      Src: /src/tmux/cmd-select-window.c:108,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-select-window.c:109,1
    - Dst: session_previous
      Src: /src/tmux/cmd-select-window.c:113,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-select-window.c:114,1
    - Dst: session_last
      Src: /src/tmux/cmd-select-window.c:118,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-select-window.c:119,1
    - Dst: cmd_find_from_session
      Src: /src/tmux/cmd-select-window.c:123,1
    - Dst: server_redraw_session
      Src: /src/tmux/cmd-select-window.c:124,1
    - Dst: cmdq_insert_hook
      Src: /src/tmux/cmd-select-window.c:125,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-window.c:131,1
    - Dst: session_last
      Src: /src/tmux/cmd-select-window.c:132,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-select-window.c:133,1
    - Dst: cmd_find_from_session
      Src: /src/tmux/cmd-select-window.c:137,1
    - Dst: server_redraw_session
      Src: /src/tmux/cmd-select-window.c:138,1
    - Dst: session_select
      Src: /src/tmux/cmd-select-window.c:139,1
    - Dst: cmd_find_from_session
      Src: /src/tmux/cmd-select-window.c:140,1
    - Dst: server_redraw_session
      Src: /src/tmux/cmd-select-window.c:141,1
    - Dst: cmdq_insert_hook
      Src: /src/tmux/cmd-select-window.c:143,1
    - Dst: recalculate_sizes
      Src: /src/tmux/cmd-select-window.c:147,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 84
    functionDepth: 4
    functionLinenumber: 84
    functionLinenumberEnd: 150
    functionName: cmd_select_window_exec
    functionSourceFile: /src/tmux/cmd-select-window.c
    functionUses: 0
    functionsReached:
    - cmdq_get_current
    - session_select
    - cmdq_insert_hook
    - cmdq_error
    - session_next
    - recalculate_sizes
    - session_last
    - cmd_get_args
    - cmd_get_entry
    - cmd_find_from_session
    - session_previous
    - cmdq_get_client
    - server_redraw_session
    - cmdq_get_target
    - args_has
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_select_window_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - args
    - idx
    - cause
    argTypes:
    - __unused*
    - u_int
    - __unused**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: cmd_set_option_args_parse
    functionSourceFile: /src/tmux/cmd-set-option.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum args_parse_type
    signature: "enum args_parse_type cmd_set_option_args_parse(__unused struct args
      *args, u_int idx,\n    __unused char **cause)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-set-option.c:86,1
    - Dst: args_has
      Src: /src/tmux/cmd-set-option.c:87,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-set-option.c:88,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-set-option.c:98,1
    - Dst: format_single_from_target
      Src: /src/tmux/cmd-set-option.c:101,1
    - Dst: args_string
      Src: /src/tmux/cmd-set-option.c:101,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-set-option.c:104,1
    - Dst: args_has
      Src: /src/tmux/cmd-set-option.c:104,1
    - Dst: notify_hook
      Src: /src/tmux/cmd-set-option.c:105,1
    - Dst: free
      Src: /src/tmux/cmd-set-option.c:106,1
    - Dst: options_match
      Src: /src/tmux/cmd-set-option.c:111,1
    - Dst: args_has
      Src: /src/tmux/cmd-set-option.c:113,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-set-option.c:116,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-set-option.c:118,1
    - Dst: args_count
      Src: /src/tmux/cmd-set-option.c:121,1
    - Dst: args_string
      Src: /src/tmux/cmd-set-option.c:124,1
    - Dst: args_has
      Src: /src/tmux/cmd-set-option.c:125,1
    - Dst: format_single_from_target
      Src: /src/tmux/cmd-set-option.c:126,1
    - Dst: options_scope_from_name
      Src: /src/tmux/cmd-set-option.c:131,1
    - Dst: args_has
      Src: /src/tmux/cmd-set-option.c:134,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-set-option.c:136,1
    - Dst: free
      Src: /src/tmux/cmd-set-option.c:137,1
    - Dst: options_get_only
      Src: /src/tmux/cmd-set-option.c:140,1
    - Dst: options_get
      Src: /src/tmux/cmd-set-option.c:141,1
    - Dst: options_is_array
      Src: /src/tmux/cmd-set-option.c:144,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-set-option.c:145,1
    - Dst: args_has
      Src: /src/tmux/cmd-set-option.c:150,1
    - Dst: args_has
      Src: /src/tmux/cmd-set-option.c:150,1
    - Dst: options_array_get
      Src: /src/tmux/cmd-set-option.c:157,1
    - Dst: args_has
      Src: /src/tmux/cmd-set-option.c:160,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-set-option.c:162,1
    - Dst: args_has
      Src: /src/tmux/cmd-set-option.c:168,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/cmd-set-option.c:169,1
    - Dst: options_get_only
      Src: /src/tmux/cmd-set-option.c:170,1
    - Dst: options_remove_or_default
      Src: /src/tmux/cmd-set-option.c:173,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-set-option.c:174,1
    - Dst: free
      Src: /src/tmux/cmd-set-option.c:175,1
    - Dst: args_has
      Src: /src/tmux/cmd-set-option.c:180,1
    - Dst: args_has
      Src: /src/tmux/cmd-set-option.c:180,1
    - Dst: options_remove_or_default
      Src: /src/tmux/cmd-set-option.c:183,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-set-option.c:184,1
    - Dst: free
      Src: /src/tmux/cmd-set-option.c:185,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-set-option.c:190,1
    - Dst: options_set_string
      Src: /src/tmux/cmd-set-option.c:193,1
    - Dst: options_is_array
      Src: /src/tmux/cmd-set-option.c:194,1
    - Dst: options_from_string
      Src: /src/tmux/cmd-set-option.c:195,1
    - Dst: options_table_entry
      Src: /src/tmux/cmd-set-option.c:195,1
    - Dst: options_table_entry
      Src: /src/tmux/cmd-set-option.c:196,1
    - Dst: args_has
      Src: /src/tmux/cmd-set-option.c:197,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-set-option.c:199,1
    - Dst: free
      Src: /src/tmux/cmd-set-option.c:200,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-set-option.c:205,1
    - Dst: options_empty
      Src: /src/tmux/cmd-set-option.c:209,1
    - Dst: options_table_entry
      Src: /src/tmux/cmd-set-option.c:209,1
    - Dst: options_array_clear
      Src: /src/tmux/cmd-set-option.c:212,1
    - Dst: options_array_assign
      Src: /src/tmux/cmd-set-option.c:213,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-set-option.c:214,1
    - Dst: free
      Src: /src/tmux/cmd-set-option.c:215,1
    - Dst: options_array_set
      Src: /src/tmux/cmd-set-option.c:218,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-set-option.c:220,1
    - Dst: free
      Src: /src/tmux/cmd-set-option.c:221,1
    - Dst: options_push_changes
      Src: /src/tmux/cmd-set-option.c:226,1
    - Dst: free
      Src: /src/tmux/cmd-set-option.c:229,1
    - Dst: free
      Src: /src/tmux/cmd-set-option.c:230,1
    - Dst: free
      Src: /src/tmux/cmd-set-option.c:231,1
    - Dst: free
      Src: /src/tmux/cmd-set-option.c:235,1
    - Dst: free
      Src: /src/tmux/cmd-set-option.c:236,1
    - Dst: free
      Src: /src/tmux/cmd-set-option.c:237,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 137
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 239
    functionName: cmd_set_option_exec
    functionSourceFile: /src/tmux/cmd-set-option.c
    functionUses: 0
    functionsReached:
    - options_array_set
    - options_match
    - options_is_array
    - args_count
    - options_remove_or_default
    - args_has
    - options_scope_from_name
    - args_string
    - options_array_clear
    - format_single_from_target
    - options_get_only
    - options_table_entry
    - options_set_string
    - notify_hook
    - options_get
    - cmd_get_args
    - cmd_get_entry
    - options_array_get
    - options_empty
    - options_array_assign
    - cmdq_get_target
    - cmdq_error
    - TAILQ_FOREACH
    - options_push_changes
    - free
    - options_from_string
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_set_option_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/tmux/sort.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - l
    - len
    - size
    - sort_crit
    argTypes:
    - void*
    - u_int
    - u_int
    - struct sort_criteria*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 51
    functionName: sort_qsort
    functionSourceFile: /src/tmux/sort.c
    functionUses: 0
    functionsReached:
    - qsort
    linkageType: ''
    returnType: void
    signature: "void sort_qsort(void *l, u_int len, u_int size, int (*cmp)(const void
      *, const void *),\n    struct sort_criteria *sort_crit)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/sort.c:65,1
    - Dst: strcmp
      Src: /src/tmux/sort.c:82,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - a0
    - b0
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 87
    functionName: sort_buffer_cmp
    functionSourceFile: /src/tmux/sort.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int sort_buffer_cmp(const void *a0, const void *b0)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/sort.c:101,1
    - Dst: timercmp
      Src: /src/tmux/sort.c:109,1
    - Dst: timercmp
      Src: /src/tmux/sort.c:111,1
    - Dst: timercmp
      Src: /src/tmux/sort.c:115,1
    - Dst: timercmp
      Src: /src/tmux/sort.c:117,1
    - Dst: strcmp
      Src: /src/tmux/sort.c:128,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 2
    argNames:
    - a0
    - b0
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 133
    functionName: sort_client_cmp
    functionSourceFile: /src/tmux/sort.c
    functionUses: 0
    functionsReached:
    - timercmp
    - strcmp
    linkageType: ''
    returnType: int
    signature: int sort_client_cmp(const void *a0, const void *b0)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: timercmp
      Src: /src/tmux/sort.c:150,1
    - Dst: timercmp
      Src: /src/tmux/sort.c:154,1
    - Dst: timercmp
      Src: /src/tmux/sort.c:160,1
    - Dst: timercmp
      Src: /src/tmux/sort.c:164,1
    - Dst: strcmp
      Src: /src/tmux/sort.c:170,1
    - Dst: strcmp
      Src: /src/tmux/sort.c:180,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 2
    argNames:
    - a0
    - b0
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 185
    functionName: sort_session_cmp
    functionSourceFile: /src/tmux/sort.c
    functionUses: 0
    functionsReached:
    - timercmp
    - strcmp
    linkageType: ''
    returnType: int
    signature: int sort_session_cmp(const void *a0, const void *b0)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: window_pane_index
      Src: /src/tmux/sort.c:207,1
    - Dst: window_pane_index
      Src: /src/tmux/sort.c:208,1
    - Dst: strcmp
      Src: /src/tmux/sort.c:212,1
    - Dst: strcmp
      Src: /src/tmux/sort.c:221,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - a0
    - b0
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 226
    functionName: sort_pane_cmp
    functionSourceFile: /src/tmux/sort.c
    functionUses: 0
    functionsReached:
    - strcmp
    - window_pane_index
    linkageType: ''
    returnType: int
    signature: int sort_pane_cmp(const void *a0, const void *b0)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: timercmp
      Src: /src/tmux/sort.c:245,1
    - Dst: timercmp
      Src: /src/tmux/sort.c:249,1
    - Dst: timercmp
      Src: /src/tmux/sort.c:255,1
    - Dst: timercmp
      Src: /src/tmux/sort.c:259,1
    - Dst: strcmp
      Src: /src/tmux/sort.c:265,1
    - Dst: strcmp
      Src: /src/tmux/sort.c:277,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 2
    argNames:
    - a0
    - b0
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 282
    functionName: sort_winlink_cmp
    functionSourceFile: /src/tmux/sort.c
    functionUses: 0
    functionsReached:
    - timercmp
    - strcmp
    linkageType: ''
    returnType: int
    signature: int sort_winlink_cmp(const void *a0, const void *b0)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/tmux/sort.c:301,1
    - Dst: strcasecmp
      Src: /src/tmux/sort.c:312,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - a0
    - b0
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 317
    functionName: sort_key_binding_cmp
    functionSourceFile: /src/tmux/sort.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int sort_key_binding_cmp(const void *a0, const void *b0)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - sort_crit
    argTypes:
    - struct sort_criteria*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 339
    functionName: sort_next_order
    functionSourceFile: /src/tmux/sort.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sort_next_order(struct sort_criteria *sort_crit)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/tmux/sort.c:345,1
    - Dst: strcasecmp
      Src: /src/tmux/sort.c:347,1
    - Dst: strcasecmp
      Src: /src/tmux/sort.c:349,1
    - Dst: strcasecmp
      Src: /src/tmux/sort.c:350,1
    - Dst: strcasecmp
      Src: /src/tmux/sort.c:352,1
    - Dst: strcasecmp
      Src: /src/tmux/sort.c:354,1
    - Dst: strcasecmp
      Src: /src/tmux/sort.c:355,1
    - Dst: strcasecmp
      Src: /src/tmux/sort.c:357,1
    - Dst: strcasecmp
      Src: /src/tmux/sort.c:359,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 1
    argNames:
    - order
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 363
    functionName: sort_order_from_string
    functionSourceFile: /src/tmux/sort.c
    functionUses: 4
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: enum sort_order
    signature: enum sort_order sort_order_from_string(const char* order)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - order
    argTypes:
    - enum sort_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 383
    functionName: sort_order_to_string
    functionSourceFile: /src/tmux/sort.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      sort_order_to_string(enum sort_order order)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sort_winlink_cmp
      Src: /src/tmux/sort.c:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - sort_crit
    - wla
    - wlb
    argTypes:
    - struct sort_criteria*
    - struct winlink*
    - struct winlink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 393
    functionName: sort_would_window_tree_swap
    functionSourceFile: /src/tmux/sort.c
    functionUses: 0
    functionsReached:
    - sort_winlink_cmp
    linkageType: ''
    returnType: int
    signature: "int sort_would_window_tree_swap(struct sort_criteria *sort_crit,\n
      \   struct winlink *wla, struct winlink *wlb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paste_walk
      Src: /src/tmux/sort.c:404,1
    - Dst: xreallocarray
      Src: /src/tmux/sort.c:407,1
    - Dst: sort_qsort
      Src: /src/tmux/sort.c:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 416
    functionName: sort_get_buffers
    functionSourceFile: /src/tmux/sort.c
    functionUses: 0
    functionsReached:
    - paste_walk
    - sort_qsort
    - xreallocarray
    linkageType: ''
    returnType: struct paste_buffer
    signature: 'struct paste_buffer **

      sort_get_buffers(u_int *n, struct sort_criteria *sort_crit)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/sort.c:427,1
    - Dst: xreallocarray
      Src: /src/tmux/sort.c:434,1
    - Dst: sort_qsort
      Src: /src/tmux/sort.c:439,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 443
    functionName: sort_get_clients
    functionSourceFile: /src/tmux/sort.c
    functionUses: 0
    functionsReached:
    - sort_qsort
    - xreallocarray
    - TAILQ_FOREACH
    linkageType: ''
    returnType: struct client
    signature: 'struct client **

      sort_get_clients(u_int *n, struct sort_criteria *sort_crit)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/sort.c:454,1
    - Dst: xreallocarray
      Src: /src/tmux/sort.c:457,1
    - Dst: sort_qsort
      Src: /src/tmux/sort.c:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 466
    functionName: sort_get_sessions
    functionSourceFile: /src/tmux/sort.c
    functionUses: 2
    functionsReached:
    - RB_FOREACH
    - sort_qsort
    - xreallocarray
    linkageType: ''
    returnType: struct session
    signature: 'struct session **

      sort_get_sessions(u_int *n, struct sort_criteria *sort_crit)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/sort.c:480,1
    - Dst: RB_FOREACH
      Src: /src/tmux/sort.c:481,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/sort.c:483,1
    - Dst: xreallocarray
      Src: /src/tmux/sort.c:486,1
    - Dst: sort_qsort
      Src: /src/tmux/sort.c:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 497
    functionName: sort_get_panes
    functionSourceFile: /src/tmux/sort.c
    functionUses: 0
    functionsReached:
    - RB_FOREACH
    - sort_qsort
    - xreallocarray
    - TAILQ_FOREACH
    linkageType: ''
    returnType: struct window_pane
    signature: 'struct window_pane **

      sort_get_panes(u_int *n, struct sort_criteria *sort_crit)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/sort.c:511,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/sort.c:513,1
    - Dst: xreallocarray
      Src: /src/tmux/sort.c:516,1
    - Dst: sort_qsort
      Src: /src/tmux/sort.c:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 526
    functionName: sort_get_panes_session
    functionSourceFile: /src/tmux/sort.c
    functionUses: 0
    functionsReached:
    - RB_FOREACH
    - sort_qsort
    - xreallocarray
    - TAILQ_FOREACH
    linkageType: ''
    returnType: struct window_pane
    signature: "struct window_pane **\nsort_get_panes_session(struct session *s, u_int
      *n,\n    struct sort_criteria *sort_crit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/sort.c:538,1
    - Dst: xreallocarray
      Src: /src/tmux/sort.c:541,1
    - Dst: sort_qsort
      Src: /src/tmux/sort.c:546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 550
    functionName: sort_get_panes_window
    functionSourceFile: /src/tmux/sort.c
    functionUses: 1
    functionsReached:
    - sort_qsort
    - xreallocarray
    - TAILQ_FOREACH
    linkageType: ''
    returnType: struct window_pane
    signature: "struct window_pane **\nsort_get_panes_window(struct window *w, u_int
      *n,\n    struct sort_criteria *sort_crit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/sort.c:562,1
    - Dst: RB_FOREACH
      Src: /src/tmux/sort.c:563,1
    - Dst: xreallocarray
      Src: /src/tmux/sort.c:566,1
    - Dst: sort_qsort
      Src: /src/tmux/sort.c:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 576
    functionName: sort_get_winlinks
    functionSourceFile: /src/tmux/sort.c
    functionUses: 0
    functionsReached:
    - RB_FOREACH
    - sort_qsort
    - xreallocarray
    linkageType: ''
    returnType: struct winlink
    signature: 'struct winlink **

      sort_get_winlinks(u_int *n, struct sort_criteria *sort_crit)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/sort.c:588,1
    - Dst: xreallocarray
      Src: /src/tmux/sort.c:591,1
    - Dst: sort_qsort
      Src: /src/tmux/sort.c:596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 600
    functionName: sort_get_winlinks_session
    functionSourceFile: /src/tmux/sort.c
    functionUses: 0
    functionsReached:
    - RB_FOREACH
    - sort_qsort
    - xreallocarray
    linkageType: ''
    returnType: struct winlink
    signature: "struct winlink **\nsort_get_winlinks_session(struct session *s, u_int
      *n,\n    struct sort_criteria *sort_crit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: key_bindings_first_table
      Src: /src/tmux/sort.c:611,1
    - Dst: key_bindings_first
      Src: /src/tmux/sort.c:613,1
    - Dst: xreallocarray
      Src: /src/tmux/sort.c:617,1
    - Dst: key_bindings_next
      Src: /src/tmux/sort.c:620,1
    - Dst: key_bindings_next_table
      Src: /src/tmux/sort.c:622,1
    - Dst: sort_qsort
      Src: /src/tmux/sort.c:625,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 629
    functionName: sort_get_key_bindings
    functionSourceFile: /src/tmux/sort.c
    functionUses: 0
    functionsReached:
    - key_bindings_first
    - key_bindings_next_table
    - key_bindings_first_table
    - key_bindings_next
    - xreallocarray
    - sort_qsort
    linkageType: ''
    returnType: struct key_binding
    signature: 'struct key_binding **

      sort_get_key_bindings(u_int *n, struct sort_criteria *sort_crit)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: key_bindings_first
      Src: /src/tmux/sort.c:640,1
    - Dst: xreallocarray
      Src: /src/tmux/sort.c:644,1
    - Dst: key_bindings_next
      Src: /src/tmux/sort.c:647,1
    - Dst: sort_qsort
      Src: /src/tmux/sort.c:650,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 654
    functionName: sort_get_key_bindings_table
    functionSourceFile: /src/tmux/sort.c
    functionUses: 0
    functionsReached:
    - key_bindings_next
    - key_bindings_first
    - sort_qsort
    - xreallocarray
    linkageType: ''
    returnType: struct key_binding
    signature: "struct key_binding **\nsort_get_key_bindings_table(struct key_table
      *table, u_int *n,\n    struct sort_criteria *sort_crit)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/tmux/osdep-sunos.c:40,1
    - Dst: fstat
      Src: /src/tmux/osdep-sunos.c:43,1
    - Dst: ioctl
      Src: /src/tmux/osdep-sunos.c:43,1
    - Dst: close
      Src: /src/tmux/osdep-sunos.c:44,1
    - Dst: close
      Src: /src/tmux/osdep-sunos.c:47,1
    - Dst: xasprintf
      Src: /src/tmux/osdep-sunos.c:49,1
    - Dst: open
      Src: /src/tmux/osdep-sunos.c:50,1
    - Dst: free
      Src: /src/tmux/osdep-sunos.c:51,1
    - Dst: read
      Src: /src/tmux/osdep-sunos.c:55,1
    - Dst: close
      Src: /src/tmux/osdep-sunos.c:56,1
    - Dst: xstrdup
      Src: /src/tmux/osdep-sunos.c:63,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - int
    - tty
    argTypes:
    - __unused
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 64
    functionName: osdep_get_name
    functionSourceFile: /src/tmux/osdep-sunos.c
    functionUses: 0
    functionsReached:
    - close
    - xasprintf
    - fstat
    - open
    - free
    - read
    - xstrdup
    - ioctl
    linkageType: ''
    returnType: char
    signature: 'char *

      osdep_get_name(__unused int fd, char *tty)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ptsname
      Src: /src/tmux/osdep-sunos.c:76,1
    - Dst: open
      Src: /src/tmux/osdep-sunos.c:78,1
    - Dst: ioctl
      Src: /src/tmux/osdep-sunos.c:81,1
    - Dst: close
      Src: /src/tmux/osdep-sunos.c:82,1
    - Dst: xasprintf
      Src: /src/tmux/osdep-sunos.c:86,1
    - Dst: readlink
      Src: /src/tmux/osdep-sunos.c:87,1
    - Dst: free
      Src: /src/tmux/osdep-sunos.c:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 94
    functionName: osdep_get_cwd
    functionSourceFile: /src/tmux/osdep-sunos.c
    functionUses: 0
    functionsReached:
    - close
    - xasprintf
    - ptsname
    - readlink
    - open
    - free
    - ioctl
    linkageType: ''
    returnType: char
    signature: 'char *

      osdep_get_cwd(int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/tmux/osdep-sunos.c:107,1
    - Dst: event_init
      Src: /src/tmux/osdep-sunos.c:109,1
    - Dst: unsetenv
      Src: /src/tmux/osdep-sunos.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 112
    functionName: osdep_event_init
    functionSourceFile: /src/tmux/osdep-sunos.c
    functionUses: 0
    functionsReached:
    - event_init
    - setenv
    - unsetenv
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      osdep_event_init(void)'
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: environ_for_session
      Src: /src/tmux/job.c:92,1
    - Dst: environ_copy
      Src: /src/tmux/job.c:94,1
    - Dst: options_get_string
      Src: /src/tmux/job.c:103,1
    - Dst: checkshell
      Src: /src/tmux/job.c:104,1
    - Dst: shell_argv0
      Src: /src/tmux/job.c:107,1
    - Dst: sigfillset
      Src: /src/tmux/job.c:109,1
    - Dst: sigprocmask
      Src: /src/tmux/job.c:110,1
    - Dst: memset
      Src: /src/tmux/job.c:113,1
    - Dst: fdforkpty
      Src: /src/tmux/job.c:116,1
    - Dst: socketpair
      Src: /src/tmux/job.c:118,1
    - Dst: fork
      Src: /src/tmux/job.c:120,1
    - Dst: cmd_log_argv
      Src: /src/tmux/job.c:123,1
    - Dst: log_debug
      Src: /src/tmux/job.c:124,1
    - Dst: log_debug
      Src: /src/tmux/job.c:127,1
    - Dst: close
      Src: /src/tmux/job.c:134,1
    - Dst: close
      Src: /src/tmux/job.c:135,1
    - Dst: proc_clear_signals
      Src: /src/tmux/job.c:139,1
    - Dst: sigprocmask
      Src: /src/tmux/job.c:140,1
    - Dst: chdir
      Src: /src/tmux/job.c:143,1
    - Dst: environ_set
      Src: /src/tmux/job.c:144,1
    - Dst: find_home
      Src: /src/tmux/job.c:145,1
    - Dst: chdir
      Src: /src/tmux/job.c:145,1
    - Dst: environ_set
      Src: /src/tmux/job.c:146,1
    - Dst: chdir
      Src: /src/tmux/job.c:147,1
    - Dst: environ_set
      Src: /src/tmux/job.c:148,1
    - Dst: fatal
      Src: /src/tmux/job.c:150,1
    - Dst: environ_push
      Src: /src/tmux/job.c:153,1
    - Dst: environ_free
      Src: /src/tmux/job.c:154,1
    - Dst: dup2
      Src: /src/tmux/job.c:157,1
    - Dst: fatal
      Src: /src/tmux/job.c:158,1
    - Dst: dup2
      Src: /src/tmux/job.c:160,1
    - Dst: fatal
      Src: /src/tmux/job.c:161,1
    - Dst: dup2
      Src: /src/tmux/job.c:164,1
    - Dst: fatal
      Src: /src/tmux/job.c:165,1
    - Dst: open
      Src: /src/tmux/job.c:168,1
    - Dst: fatal
      Src: /src/tmux/job.c:170,1
    - Dst: dup2
      Src: /src/tmux/job.c:171,1
    - Dst: fatal
      Src: /src/tmux/job.c:172,1
    - Dst: close
      Src: /src/tmux/job.c:174,1
    - Dst: close
      Src: /src/tmux/job.c:177,1
    - Dst: close
      Src: /src/tmux/job.c:178,1
    - Dst: closefrom
      Src: /src/tmux/job.c:180,1
    - Dst: setenv
      Src: /src/tmux/job.c:184,1
    - Dst: execl
      Src: /src/tmux/job.c:185,1
    - Dst: fatal
      Src: /src/tmux/job.c:186,1
    - Dst: cmd_copy_argv
      Src: /src/tmux/job.c:188,1
    - Dst: execvp
      Src: /src/tmux/job.c:189,1
    - Dst: fatal
      Src: /src/tmux/job.c:190,1
    - Dst: sigprocmask
      Src: /src/tmux/job.c:194,1
    - Dst: environ_free
      Src: /src/tmux/job.c:195,1
    - Dst: free
      Src: /src/tmux/job.c:196,1
    - Dst: xcalloc
      Src: /src/tmux/job.c:198,1
    - Dst: xstrdup
      Src: /src/tmux/job.c:203,1
    - Dst: cmd_stringify_argv
      Src: /src/tmux/job.c:205,1
    - Dst: strlcpy
      Src: /src/tmux/job.c:208,1
    - Dst: LIST_INSERT_HEAD
      Src: /src/tmux/job.c:211,1
    - Dst: close
      Src: /src/tmux/job.c:219,1
    - Dst: setblocking
      Src: /src/tmux/job.c:223,1
    - Dst: bufferevent_new
      Src: /src/tmux/job.c:225,1
    - Dst: fatalx
      Src: /src/tmux/job.c:228,1
    - Dst: bufferevent_enable
      Src: /src/tmux/job.c:229,1
    - Dst: log_debug
      Src: /src/tmux/job.c:231,1
    - Dst: sigprocmask
      Src: /src/tmux/job.c:235,1
    - Dst: environ_free
      Src: /src/tmux/job.c:236,1
    - Dst: free
      Src: /src/tmux/job.c:237,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 127
    argCount: 13
    argNames:
    - cmd
    - argc
    - argv
    - e
    - s
    - cwd
    - updatecb
    - completecb
    - freecb
    - data
    - flags
    - sx
    - sy
    argTypes:
    - char*
    - int
    - char**
    - struct environ*
    - struct session*
    - char*
    - job_update_cb
    - job_complete_cb
    - job_free_cb
    - void*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 239
    functionName: job_run
    functionSourceFile: /src/tmux/job.c
    functionUses: 1
    functionsReached:
    - closefrom
    - open
    - environ_for_session
    - find_home
    - fdforkpty
    - execl
    - fatal
    - cmd_log_argv
    - xcalloc
    - sigfillset
    - environ_set
    - proc_clear_signals
    - cmd_stringify_argv
    - log_debug
    - dup2
    - cmd_copy_argv
    - xstrdup
    - close
    - socketpair
    - environ_push
    - strlcpy
    - checkshell
    - memset
    - shell_argv0
    - setblocking
    - environ_copy
    - environ_free
    - sigprocmask
    - setenv
    - chdir
    - execvp
    - bufferevent_new
    - fatalx
    - free
    - bufferevent_enable
    - options_get_string
    - fork
    - LIST_INSERT_HEAD
    linkageType: ''
    returnType: struct job
    signature: "struct job *\njob_run(const char *cmd, int argc, char **argv, struct
      environ *e,\n    struct session *s, const char *cwd, job_update_cb updatecb,\n
      \   job_complete_cb completecb, job_free_cb freecb, void *data, int flags,\n
      \   int sx, int sy)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/job.c:247,1
    - Dst: strlcpy
      Src: /src/tmux/job.c:252,1
    - Dst: LIST_REMOVE
      Src: /src/tmux/job.c:254,1
    - Dst: free
      Src: /src/tmux/job.c:255,1
    - Dst: struct job*::freecb
      Src: /src/tmux/job.c:258,1
    - Dst: bufferevent_free
      Src: /src/tmux/job.c:261,1
    - Dst: free
      Src: /src/tmux/job.c:263,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - job
    - pid
    - tty
    - ttylen
    argTypes:
    - struct job*
    - pid_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 265
    functionName: job_transfer
    functionSourceFile: /src/tmux/job.c
    functionUses: 1
    functionsReached:
    - struct job*::freecb
    - bufferevent_free
    - strlcpy
    - free
    - LIST_REMOVE
    - log_debug
    linkageType: ''
    returnType: int
    signature: int job_transfer(struct job *job, pid_t *pid, char *tty, size_t ttylen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/job.c:271,1
    - Dst: LIST_REMOVE
      Src: /src/tmux/job.c:273,1
    - Dst: free
      Src: /src/tmux/job.c:274,1
    - Dst: struct job*::freecb
      Src: /src/tmux/job.c:277,1
    - Dst: kill
      Src: /src/tmux/job.c:280,1
    - Dst: bufferevent_free
      Src: /src/tmux/job.c:282,1
    - Dst: close
      Src: /src/tmux/job.c:284,1
    - Dst: free
      Src: /src/tmux/job.c:286,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - job
    argTypes:
    - struct job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 287
    functionName: job_free
    functionSourceFile: /src/tmux/job.c
    functionUses: 1
    functionsReached:
    - struct job*::freecb
    - close
    - kill
    - bufferevent_free
    - free
    - LIST_REMOVE
    - log_debug
    linkageType: ''
    returnType: void
    signature: void job_free(struct job *job)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/job.c:298,1
    - Dst: memset
      Src: /src/tmux/job.c:300,1
    - Dst: ioctl
      Src: /src/tmux/job.c:303,1
    - Dst: fatal
      Src: /src/tmux/job.c:304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - job
    - sx
    - sy
    argTypes:
    - struct job*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 305
    functionName: job_resize
    functionSourceFile: /src/tmux/job.c
    functionUses: 3
    functionsReached:
    - log_debug
    - memset
    - fatal
    - ioctl
    linkageType: ''
    returnType: void
    signature: void job_resize(struct job *job, u_int sx, u_int sy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct job*::updatecb
      Src: /src/tmux/job.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - bufev
    - data
    argTypes:
    - __unused*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 315
    functionName: job_read_callback
    functionSourceFile: /src/tmux/job.c
    functionUses: 0
    functionsReached:
    - struct job*::updatecb
    linkageType: ''
    returnType: void
    signature: void job_read_callback(__unused struct bufferevent *bufev, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/job.c:326,1
    - Dst: EVBUFFER_OUTPUT
      Src: /src/tmux/job.c:326,1
    - Dst: log_debug
      Src: /src/tmux/job.c:328,1
    - Dst: shutdown
      Src: /src/tmux/job.c:332,1
    - Dst: bufferevent_disable
      Src: /src/tmux/job.c:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bufev
    - data
    argTypes:
    - __unused*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 335
    functionName: job_write_callback
    functionSourceFile: /src/tmux/job.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_LENGTH
    - shutdown
    - log_debug
    - EVBUFFER_OUTPUT
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void job_write_callback(__unused struct bufferevent *bufev, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/job.c:344,1
    - Dst: struct job*::completecb
      Src: /src/tmux/job.c:348,1
    - Dst: job_free
      Src: /src/tmux/job.c:349,1
    - Dst: bufferevent_disable
      Src: /src/tmux/job.c:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - bufev
    - events
    - data
    argTypes:
    - __unused*
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 354
    functionName: job_error_callback
    functionSourceFile: /src/tmux/job.c
    functionUses: 0
    functionsReached:
    - log_debug
    - struct job*::completecb
    - job_free
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: "void job_error_callback(__unused struct bufferevent *bufev, __unused
      short events,\n    void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LIST_FOREACH
      Src: /src/tmux/job.c:362,1
    - Dst: WIFSTOPPED
      Src: /src/tmux/job.c:368,1
    - Dst: WSTOPSIG
      Src: /src/tmux/job.c:369,1
    - Dst: WSTOPSIG
      Src: /src/tmux/job.c:369,1
    - Dst: killpg
      Src: /src/tmux/job.c:371,1
    - Dst: log_debug
      Src: /src/tmux/job.c:374,1
    - Dst: struct job*::completecb
      Src: /src/tmux/job.c:380,1
    - Dst: job_free
      Src: /src/tmux/job.c:381,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - pid
    - status
    argTypes:
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 386
    functionName: job_check_died
    functionSourceFile: /src/tmux/job.c
    functionUses: 0
    functionsReached:
    - WSTOPSIG
    - killpg
    - LIST_FOREACH
    - job_free
    - log_debug
    - struct job*::completecb
    - WIFSTOPPED
    linkageType: ''
    returnType: void
    signature: void job_check_died(pid_t pid, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - job
    argTypes:
    - struct job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 393
    functionName: job_get_status
    functionSourceFile: /src/tmux/job.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int job_get_status(struct job *job)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - job
    argTypes:
    - struct job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 400
    functionName: job_get_data
    functionSourceFile: /src/tmux/job.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      job_get_data(struct job *job)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - job
    argTypes:
    - struct job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 407
    functionName: job_get_event
    functionSourceFile: /src/tmux/job.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: struct bufferevent
    signature: 'struct bufferevent *

      job_get_event(struct job *job)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_FOREACH
      Src: /src/tmux/job.c:415,1
    - Dst: kill
      Src: /src/tmux/job.c:417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 419
    functionName: job_kill_all
    functionSourceFile: /src/tmux/job.c
    functionUses: 0
    functionsReached:
    - LIST_FOREACH
    - kill
    linkageType: ''
    returnType: void
    signature: void job_kill_all(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_FOREACH
      Src: /src/tmux/job.c:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 432
    functionName: job_still_running
    functionSourceFile: /src/tmux/job.c
    functionUses: 0
    functionsReached:
    - LIST_FOREACH
    linkageType: ''
    returnType: int
    signature: int job_still_running(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_FOREACH
      Src: /src/tmux/job.c:441,1
    - Dst: cmdq_print
      Src: /src/tmux/job.c:443,1
    - Dst: cmdq_print
      Src: /src/tmux/job.c:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - item
    - blank
    argTypes:
    - struct cmdq_item*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 450
    functionName: job_print_summary
    functionSourceFile: /src/tmux/job.c
    functionUses: 0
    functionsReached:
    - LIST_FOREACH
    - cmdq_print
    linkageType: ''
    returnType: void
    signature: void job_print_summary(struct cmdq_item *item, int blank)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: args_has
      Src: /src/tmux/cmd-list-keys.c:60,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-list-keys.c:61,1
    - Dst: args_get
      Src: /src/tmux/cmd-list-keys.c:61,1
    - Dst: options_get_number
      Src: /src/tmux/cmd-list-keys.c:63,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-list-keys.c:65,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-list-keys.c:66,1
    - Dst: key_string_lookup_key
      Src: /src/tmux/cmd-list-keys.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - args
    argTypes:
    - struct args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 67
    functionName: cmd_list_keys_get_prefix
    functionSourceFile: /src/tmux/cmd-list-keys.c
    functionUses: 0
    functionsReached:
    - key_string_lookup_key
    - args_get
    - options_get_number
    - xstrdup
    - args_has
    linkageType: ''
    returnType: char
    signature: 'char *

      cmd_list_keys_get_prefix(struct args *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utf8_cstrwidth
      Src: /src/tmux/cmd-list-keys.c:75,1
    - Dst: key_string_lookup_key
      Src: /src/tmux/cmd-list-keys.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - l
    - n
    argTypes:
    - struct key_binding**
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 80
    functionName: cmd_list_keys_get_width
    functionSourceFile: /src/tmux/cmd-list-keys.c
    functionUses: 0
    functionsReached:
    - key_string_lookup_key
    - utf8_cstrwidth
    linkageType: ''
    returnType: u_int
    signature: u_int cmd_list_keys_get_width(struct key_binding **l, u_int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utf8_cstrwidth
      Src: /src/tmux/cmd-list-keys.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - l
    - n
    argTypes:
    - struct key_binding**
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 93
    functionName: cmd_list_keys_get_table_width
    functionSourceFile: /src/tmux/cmd-list-keys.c
    functionUses: 0
    functionsReached:
    - utf8_cstrwidth
    linkageType: ''
    returnType: u_int
    signature: u_int cmd_list_keys_get_table_width(struct key_binding **l, u_int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nitems
      Src: /src/tmux/cmd-list-keys.c:105,1
    - Dst: key_bindings_get_table
      Src: /src/tmux/cmd-list-keys.c:106,1
    - Dst: sort_get_key_bindings_table
      Src: /src/tmux/cmd-list-keys.c:107,1
    - Dst: xreallocarray
      Src: /src/tmux/cmd-list-keys.c:111,1
    - Dst: memcpy
      Src: /src/tmux/cmd-list-keys.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 119
    functionName: cmd_list_keys_get_root_and_prefix
    functionSourceFile: /src/tmux/cmd-list-keys.c
    functionUses: 0
    functionsReached:
    - sort_get_key_bindings_table
    - nitems
    - memcpy
    - xreallocarray
    - key_bindings_get_table
    linkageType: ''
    returnType: struct key_binding
    signature: 'struct key_binding **

      cmd_list_keys_get_root_and_prefix(u_int *n, struct sort_criteria *sort_crit)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 5
    argNames:
    - filter_notes
    - filter_key
    - only
    - l
    - n
    argTypes:
    - int
    - int
    - key_code
    - struct key_binding**
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 137
    functionName: cmd_list_keys_filter_key_list
    functionSourceFile: /src/tmux/cmd-list-keys.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void cmd_list_keys_filter_key_list(int filter_notes, int filter_key,
      key_code only,\n    struct key_binding **l, u_int *n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: format_add
      Src: /src/tmux/cmd-list-keys.c:146,1
    - Dst: format_add
      Src: /src/tmux/cmd-list-keys.c:148,1
    - Dst: format_add
      Src: /src/tmux/cmd-list-keys.c:151,1
    - Dst: format_add
      Src: /src/tmux/cmd-list-keys.c:153,1
    - Dst: format_add
      Src: /src/tmux/cmd-list-keys.c:155,1
    - Dst: format_add
      Src: /src/tmux/cmd-list-keys.c:156,1
    - Dst: format_add
      Src: /src/tmux/cmd-list-keys.c:158,1
    - Dst: key_string_lookup_key
      Src: /src/tmux/cmd-list-keys.c:158,1
    - Dst: cmd_list_print
      Src: /src/tmux/cmd-list-keys.c:160,1
    - Dst: format_add
      Src: /src/tmux/cmd-list-keys.c:162,1
    - Dst: free
      Src: /src/tmux/cmd-list-keys.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - ft
    - bd
    - prefix
    argTypes:
    - struct format_tree*
    - struct key_binding*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 164
    functionName: cmd_list_keys_format_add_key_binding
    functionSourceFile: /src/tmux/cmd-list-keys.c
    functionUses: 0
    functionsReached:
    - key_string_lookup_key
    - cmd_list_print
    - free
    - format_add
    linkageType: ''
    returnType: void
    signature: "void cmd_list_keys_format_add_key_binding(struct format_tree *ft,\n
      \   const struct key_binding *bd, const char *prefix)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-list-keys.c:169,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/cmd-list-keys.c:170,1
    - Dst: args_string
      Src: /src/tmux/cmd-list-keys.c:182,1
    - Dst: key_string_lookup_string
      Src: /src/tmux/cmd-list-keys.c:183,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-list-keys.c:185,1
    - Dst: sort_order_from_string
      Src: /src/tmux/cmd-list-keys.c:191,1
    - Dst: args_get
      Src: /src/tmux/cmd-list-keys.c:191,1
    - Dst: args_has
      Src: /src/tmux/cmd-list-keys.c:192,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-list-keys.c:193,1
    - Dst: args_has
      Src: /src/tmux/cmd-list-keys.c:196,1
    - Dst: args_get
      Src: /src/tmux/cmd-list-keys.c:198,1
    - Dst: key_bindings_get_table
      Src: /src/tmux/cmd-list-keys.c:199,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-list-keys.c:201,1
    - Dst: cmd_list_keys_get_prefix
      Src: /src/tmux/cmd-list-keys.c:206,1
    - Dst: args_has
      Src: /src/tmux/cmd-list-keys.c:207,1
    - Dst: args_has
      Src: /src/tmux/cmd-list-keys.c:208,1
    - Dst: sort_get_key_bindings_table
      Src: /src/tmux/cmd-list-keys.c:214,1
    - Dst: cmd_list_keys_get_root_and_prefix
      Src: /src/tmux/cmd-list-keys.c:216,1
    - Dst: sort_get_key_bindings
      Src: /src/tmux/cmd-list-keys.c:218,1
    - Dst: args_has
      Src: /src/tmux/cmd-list-keys.c:220,1
    - Dst: cmd_list_keys_filter_key_list
      Src: /src/tmux/cmd-list-keys.c:223,1
    - Dst: format_create
      Src: /src/tmux/cmd-list-keys.c:229,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-list-keys.c:229,1
    - Dst: format_defaults
      Src: /src/tmux/cmd-list-keys.c:230,1
    - Dst: format_add
      Src: /src/tmux/cmd-list-keys.c:231,1
    - Dst: format_add
      Src: /src/tmux/cmd-list-keys.c:232,1
    - Dst: key_bindings_has_repeat
      Src: /src/tmux/cmd-list-keys.c:232,1
    - Dst: format_add
      Src: /src/tmux/cmd-list-keys.c:233,1
    - Dst: cmd_list_keys_get_width
      Src: /src/tmux/cmd-list-keys.c:233,1
    - Dst: format_add
      Src: /src/tmux/cmd-list-keys.c:234,1
    - Dst: cmd_list_keys_get_table_width
      Src: /src/tmux/cmd-list-keys.c:235,1
    - Dst: cmd_list_keys_format_add_key_binding
      Src: /src/tmux/cmd-list-keys.c:237,1
    - Dst: format_expand
      Src: /src/tmux/cmd-list-keys.c:239,1
    - Dst: status_message_set
      Src: /src/tmux/cmd-list-keys.c:241,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-list-keys.c:243,1
    - Dst: free
      Src: /src/tmux/cmd-list-keys.c:244,1
    - Dst: format_free
      Src: /src/tmux/cmd-list-keys.c:249,1
    - Dst: free
      Src: /src/tmux/cmd-list-keys.c:250,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 166
    functionDepth: 4
    functionLinenumber: 166
    functionLinenumberEnd: 253
    functionName: cmd_list_keys_exec
    functionSourceFile: /src/tmux/cmd-list-keys.c
    functionUses: 0
    functionsReached:
    - format_create
    - format_add
    - cmdq_get_client
    - cmd_list_keys_get_root_and_prefix
    - args_has
    - args_string
    - format_free
    - cmdq_get_target_client
    - args_get
    - sort_get_key_bindings
    - cmd_list_keys_get_table_width
    - cmdq_print
    - cmd_get_args
    - format_defaults
    - cmd_list_keys_format_add_key_binding
    - key_bindings_get_table
    - status_message_set
    - key_string_lookup_string
    - sort_get_key_bindings_table
    - cmd_list_keys_filter_key_list
    - cmdq_error
    - cmd_list_keys_get_width
    - key_bindings_has_repeat
    - free
    - sort_order_from_string
    - cmd_list_keys_get_prefix
    - format_expand
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_list_keys_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/tmux/utf8-combined.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ud
    argTypes:
    - struct utf8_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: utf8_has_zwj
    functionSourceFile: /src/tmux/utf8-combined.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int utf8_has_zwj(const struct utf8_data *ud)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/tmux/utf8-combined.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ud
    argTypes:
    - struct utf8_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: utf8_is_zwj
    functionSourceFile: /src/tmux/utf8-combined.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int utf8_is_zwj(const struct utf8_data *ud)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/tmux/utf8-combined.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ud
    argTypes:
    - struct utf8_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: utf8_is_vs
    functionSourceFile: /src/tmux/utf8-combined.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int utf8_is_vs(const struct utf8_data *ud)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/tmux/utf8-combined.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ud
    argTypes:
    - struct utf8_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: utf8_is_hangul_filler
    functionSourceFile: /src/tmux/utf8-combined.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int utf8_is_hangul_filler(const struct utf8_data *ud)
  - BBCount: 77
    BranchProfiles: []
    Callsites:
    - Dst: utf8_towc
      Src: /src/tmux/utf8-combined.c:91,1
    - Dst: utf8_towc
      Src: /src/tmux/utf8-combined.c:93,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 85
    argCount: 2
    argNames:
    - with
    - add
    argTypes:
    - struct utf8_data*
    - struct utf8_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 179
    functionName: utf8_should_combine
    functionSourceFile: /src/tmux/utf8-combined.c
    functionUses: 0
    functionsReached:
    - utf8_towc
    linkageType: ''
    returnType: int
    signature: int utf8_should_combine(const struct utf8_data *with, const struct
      utf8_data *add)
  - BBCount: 24
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 52
    argCount: 1
    argNames:
    - s
    argTypes:
    - u_char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 235
    functionName: hanguljamo_get_subclass
    functionSourceFile: /src/tmux/utf8-combined.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum hanguljamo_subclass
    signature: enum hanguljamo_subclass hanguljamo_get_subclass(const u_char *s)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: hanguljamo_get_subclass
      Src: /src/tmux/utf8-combined.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - s
    argTypes:
    - u_char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 259
    functionName: hanguljamo_get_class
    functionSourceFile: /src/tmux/utf8-combined.c
    functionUses: 0
    functionsReached:
    - hanguljamo_get_subclass
    linkageType: ''
    returnType: enum hanguljamo_class
    signature: enum hanguljamo_class hanguljamo_get_class(const u_char *s)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: hanguljamo_get_class
      Src: /src/tmux/utf8-combined.c:269,1
    - Dst: hanguljamo_get_class
      Src: /src/tmux/utf8-combined.c:276,1
    - Dst: hanguljamo_get_class
      Src: /src/tmux/utf8-combined.c:283,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - p_ud
    - ud
    argTypes:
    - struct utf8_data*
    - struct utf8_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 290
    functionName: hanguljamo_check_state
    functionSourceFile: /src/tmux/utf8-combined.c
    functionUses: 0
    functionsReached:
    - hanguljamo_get_class
    linkageType: ''
    returnType: enum hanguljamo_state
    signature: enum hanguljamo_state hanguljamo_check_state(const struct utf8_data
      *p_ud, const struct utf8_data *ud)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-copy-mode.c:59,1
    - Dst: cmdq_get_event
      Src: /src/tmux/cmd-copy-mode.c:60,1
    - Dst: cmdq_get_source
      Src: /src/tmux/cmd-copy-mode.c:61,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-copy-mode.c:62,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-copy-mode.c:63,1
    - Dst: args_has
      Src: /src/tmux/cmd-copy-mode.c:68,1
    - Dst: window_pane_reset_mode_all
      Src: /src/tmux/cmd-copy-mode.c:69,1
    - Dst: args_has
      Src: /src/tmux/cmd-copy-mode.c:73,1
    - Dst: cmd_mouse_pane
      Src: /src/tmux/cmd-copy-mode.c:74,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-copy-mode.c:80,1
    - Dst: window_pane_set_mode
      Src: /src/tmux/cmd-copy-mode.c:81,1
    - Dst: args_has
      Src: /src/tmux/cmd-copy-mode.c:85,1
    - Dst: KEYC_IS_MOUSE
      Src: /src/tmux/cmd-copy-mode.c:90,1
    - Dst: window_pane_set_mode
      Src: /src/tmux/cmd-copy-mode.c:92,1
    - Dst: window_copy_set_line_numbers
      Src: /src/tmux/cmd-copy-mode.c:93,1
    - Dst: args_has
      Src: /src/tmux/cmd-copy-mode.c:94,1
    - Dst: window_copy_start_drag
      Src: /src/tmux/cmd-copy-mode.c:95,1
    - Dst: window_copy_set_line_numbers
      Src: /src/tmux/cmd-copy-mode.c:97,1
    - Dst: args_has
      Src: /src/tmux/cmd-copy-mode.c:98,1
    - Dst: window_copy_pageup
      Src: /src/tmux/cmd-copy-mode.c:99,1
    - Dst: args_has
      Src: /src/tmux/cmd-copy-mode.c:100,1
    - Dst: window_copy_pagedown
      Src: /src/tmux/cmd-copy-mode.c:101,1
    - Dst: args_has
      Src: /src/tmux/cmd-copy-mode.c:101,1
    - Dst: args_has
      Src: /src/tmux/cmd-copy-mode.c:102,1
    - Dst: window_copy_scroll
      Src: /src/tmux/cmd-copy-mode.c:103,1
    - Dst: args_has
      Src: /src/tmux/cmd-copy-mode.c:104,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 109
    functionName: cmd_copy_mode_exec
    functionSourceFile: /src/tmux/cmd-copy-mode.c
    functionUses: 0
    functionsReached:
    - KEYC_IS_MOUSE
    - cmdq_get_event
    - window_copy_scroll
    - window_copy_pagedown
    - cmd_get_args
    - cmd_get_entry
    - window_pane_set_mode
    - window_copy_start_drag
    - window_pane_reset_mode_all
    - cmd_mouse_pane
    - cmdq_get_client
    - cmdq_get_source
    - window_copy_pageup
    - window_copy_set_line_numbers
    - cmdq_get_target
    - args_has
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_copy_mode_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmd_find_clear_state
      Src: /src/tmux/server.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - s
    - wl
    - wp
    argTypes:
    - struct session*
    - struct winlink*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: server_set_marked
    functionSourceFile: /src/tmux/server.c
    functionUses: 1
    functionsReached:
    - cmd_find_clear_state
    linkageType: ''
    returnType: void
    signature: void server_set_marked(struct session *s, struct winlink *wl, struct
      window_pane *wp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmd_find_clear_state
      Src: /src/tmux/server.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: server_clear_marked
    functionSourceFile: /src/tmux/server.c
    functionUses: 3
    functionsReached:
    - cmd_find_clear_state
    linkageType: ''
    returnType: void
    signature: void server_clear_marked(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: server_check_marked
      Src: /src/tmux/server.c:95,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - s
    - wl
    - wp
    argTypes:
    - struct session*
    - struct winlink*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 96
    functionName: server_is_marked
    functionSourceFile: /src/tmux/server.c
    functionUses: 1
    functionsReached:
    - server_check_marked
    linkageType: ''
    returnType: int
    signature: int server_is_marked(struct session *s, struct winlink *wl, struct
      window_pane *wp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmd_find_valid_state
      Src: /src/tmux/server.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: server_check_marked
    functionSourceFile: /src/tmux/server.c
    functionUses: 4
    functionsReached:
    - cmd_find_valid_state
    linkageType: ''
    returnType: int
    signature: int server_check_marked(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/tmux/server.c:114,1
    - Dst: strlcpy
      Src: /src/tmux/server.c:116,1
    - Dst: unlink
      Src: /src/tmux/server.c:121,1
    - Dst: socket
      Src: /src/tmux/server.c:123,1
    - Dst: umask
      Src: /src/tmux/server.c:127,1
    - Dst: umask
      Src: /src/tmux/server.c:129,1
    - Dst: bind
      Src: /src/tmux/server.c:130,1
    - Dst: close
      Src: /src/tmux/server.c:132,1
    - Dst: umask
      Src: /src/tmux/server.c:136,1
    - Dst: listen
      Src: /src/tmux/server.c:138,1
    - Dst: close
      Src: /src/tmux/server.c:140,1
    - Dst: setblocking
      Src: /src/tmux/server.c:144,1
    - Dst: xasprintf
      Src: /src/tmux/server.c:150,1
    - Dst: strerror
      Src: /src/tmux/server.c:151,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 2
    argNames:
    - flags
    - cause
    argTypes:
    - uint64_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 154
    functionName: server_create_socket
    functionSourceFile: /src/tmux/server.c
    functionUses: 0
    functionsReached:
    - close
    - unlink
    - xasprintf
    - listen
    - strlcpy
    - memset
    - umask
    - socket
    - strerror
    - bind
    - setblocking
    linkageType: ''
    returnType: int
    signature: int server_create_socket(uint64_t flags, char **cause)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_timer
      Src: /src/tmux/server.c:161,1
    - Dst: format_tidy_jobs
      Src: /src/tmux/server.c:163,1
    - Dst: malloc_trim
      Src: /src/tmux/server.c:166,1
    - Dst: log_debug
      Src: /src/tmux/server.c:169,1
    - Dst: get_timer
      Src: /src/tmux/server.c:170,1
    - Dst: evtimer_add
      Src: /src/tmux/server.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - int
    - events
    - data
    argTypes:
    - __unused
    - __unused short
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 172
    functionName: server_tidy_event
    functionSourceFile: /src/tmux/server.c
    functionUses: 0
    functionsReached:
    - evtimer_add
    - get_timer
    - malloc_trim
    - log_debug
    - format_tidy_jobs
    linkageType: ''
    returnType: void
    signature: void server_tidy_event(__unused int fd, __unused short events, __unused
      void *data)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sigfillset
      Src: /src/tmux/server.c:185,1
    - Dst: sigprocmask
      Src: /src/tmux/server.c:186,1
    - Dst: proc_fork_and_daemon
      Src: /src/tmux/server.c:189,1
    - Dst: sigprocmask
      Src: /src/tmux/server.c:190,1
    - Dst: proc_clear_signals
      Src: /src/tmux/server.c:194,1
    - Dst: event_reinit
      Src: /src/tmux/server.c:197,1
    - Dst: fatalx
      Src: /src/tmux/server.c:198,1
    - Dst: proc_start
      Src: /src/tmux/server.c:199,1
    - Dst: proc_set_signals
      Src: /src/tmux/server.c:201,1
    - Dst: sigprocmask
      Src: /src/tmux/server.c:202,1
    - Dst: log_get_level
      Src: /src/tmux/server.c:204,1
    - Dst: tty_create_log
      Src: /src/tmux/server.c:205,1
    - Dst: pledge
      Src: /src/tmux/server.c:206,1
    - Dst: fatal
      Src: /src/tmux/server.c:208,1
    - Dst: input_key_build
      Src: /src/tmux/server.c:210,1
    - Dst: utf8_update_width_cache
      Src: /src/tmux/server.c:211,1
    - Dst: RB_INIT
      Src: /src/tmux/server.c:212,1
    - Dst: RB_INIT
      Src: /src/tmux/server.c:213,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/server.c:214,1
    - Dst: RB_INIT
      Src: /src/tmux/server.c:215,1
    - Dst: key_bindings_init
      Src: /src/tmux/server.c:216,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/server.c:217,1
    - Dst: gettimeofday
      Src: /src/tmux/server.c:218,1
    - Dst: systemd_create_socket
      Src: /src/tmux/server.c:221,1
    - Dst: server_create_socket
      Src: /src/tmux/server.c:223,1
    - Dst: server_update_socket
      Src: /src/tmux/server.c:226,1
    - Dst: server_client_create
      Src: /src/tmux/server.c:228,1
    - Dst: options_set_number
      Src: /src/tmux/server.c:230,1
    - Dst: unlink
      Src: /src/tmux/server.c:233,1
    - Dst: free
      Src: /src/tmux/server.c:234,1
    - Dst: close
      Src: /src/tmux/server.c:235,1
    - Dst: fprintf
      Src: /src/tmux/server.c:243,1
    - Dst: exit
      Src: /src/tmux/server.c:244,1
    - Dst: evtimer_set
      Src: /src/tmux/server.c:248,1
    - Dst: evtimer_add
      Src: /src/tmux/server.c:249,1
    - Dst: server_acl_init
      Src: /src/tmux/server.c:251,1
    - Dst: server_add_accept
      Src: /src/tmux/server.c:253,1
    - Dst: proc_loop
      Src: /src/tmux/server.c:254,1
    - Dst: job_kill_all
      Src: /src/tmux/server.c:256,1
    - Dst: status_prompt_save_history
      Src: /src/tmux/server.c:257,1
    - Dst: exit
      Src: /src/tmux/server.c:259,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 58
    argCount: 5
    argNames:
    - client
    - flags
    - base
    - lockfd
    - lockfile
    argTypes:
    - struct tmuxproc*
    - uint64_t
    - struct event_base*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 260
    functionName: server_start
    functionSourceFile: /src/tmux/server.c
    functionUses: 0
    functionsReached:
    - evtimer_add
    - proc_start
    - server_update_socket
    - server_client_create
    - server_create_socket
    - evtimer_set
    - proc_fork_and_daemon
    - systemd_create_socket
    - fatal
    - log_get_level
    - sigfillset
    - event_reinit
    - proc_clear_signals
    - fprintf
    - TAILQ_INIT
    - close
    - unlink
    - exit
    - gettimeofday
    - pledge
    - input_key_build
    - job_kill_all
    - RB_INIT
    - status_prompt_save_history
    - sigprocmask
    - fatalx
    - proc_set_signals
    - key_bindings_init
    - server_add_accept
    - proc_loop
    - utf8_update_width_cache
    - free
    - options_set_number
    - server_acl_init
    - tty_create_log
    linkageType: ''
    returnType: int
    signature: "int server_start(struct tmuxproc *client, uint64_t flags, struct event_base
      *base,\n    int lockfd, char *lockfile)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/tmux/server.c:269,1
    - Dst: cmdq_next
      Src: /src/tmux/server.c:272,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server.c:273,1
    - Dst: cmdq_next
      Src: /src/tmux/server.c:275,1
    - Dst: server_client_loop
      Src: /src/tmux/server.c:279,1
    - Dst: options_get_number
      Src: /src/tmux/server.c:281,1
    - Dst: options_get_number
      Src: /src/tmux/server.c:284,1
    - Dst: RB_EMPTY
      Src: /src/tmux/server.c:285,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server.c:289,1
    - Dst: cmd_wait_for_flush
      Src: /src/tmux/server.c:298,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/server.c:299,1
    - Dst: job_still_running
      Src: /src/tmux/server.c:302,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 263
    functionDepth: 3
    functionLinenumber: 263
    functionLinenumberEnd: 306
    functionName: server_loop
    functionSourceFile: /src/tmux/server.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH
    - server_client_loop
    - time
    - RB_EMPTY
    - cmd_wait_for_flush
    - cmdq_next
    - TAILQ_EMPTY
    - job_still_running
    - options_get_number
    linkageType: ''
    returnType: int
    signature: int server_loop(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmd_wait_for_flush
      Src: /src/tmux/server.c:315,1
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/server.c:317,1
    - Dst: server_client_lost
      Src: /src/tmux/server.c:319,1
    - Dst: RB_FOREACH_SAFE
      Src: /src/tmux/server.c:327,1
    - Dst: session_destroy
      Src: /src/tmux/server.c:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 309
    functionDepth: 3
    functionLinenumber: 309
    functionLinenumberEnd: 329
    functionName: server_send_exit
    functionSourceFile: /src/tmux/server.c
    functionUses: 0
    functionsReached:
    - session_destroy
    - TAILQ_FOREACH_SAFE
    - RB_FOREACH_SAFE
    - cmd_wait_for_flush
    - server_client_lost
    linkageType: ''
    returnType: void
    signature: void server_send_exit(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/server.c:341,1
    - Dst: stat
      Src: /src/tmux/server.c:351,1
    - Dst: chmod
      Src: /src/tmux/server.c:363,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 365
    functionName: server_update_socket
    functionSourceFile: /src/tmux/server.c
    functionUses: 1
    functionsReached:
    - RB_FOREACH
    - stat
    - chmod
    linkageType: ''
    returnType: void
    signature: void server_update_socket(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: server_add_accept
      Src: /src/tmux/server.c:376,1
    - Dst: accept
      Src: /src/tmux/server.c:380,1
    - Dst: server_add_accept
      Src: /src/tmux/server.c:386,1
    - Dst: fatal
      Src: /src/tmux/server.c:389,1
    - Dst: close
      Src: /src/tmux/server.c:393,1
    - Dst: server_client_create
      Src: /src/tmux/server.c:396,1
    - Dst: server_acl_join
      Src: /src/tmux/server.c:397,1
    - Dst: xstrdup
      Src: /src/tmux/server.c:398,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - fd
    - events
    - data
    argTypes:
    - int
    - short
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 401
    functionName: server_accept
    functionSourceFile: /src/tmux/server.c
    functionUses: 0
    functionsReached:
    - close
    - fatal
    - accept
    - server_add_accept
    - server_acl_join
    - server_client_create
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void server_accept(int fd, short events, __unused void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: event_initialized
      Src: /src/tmux/server.c:415,1
    - Dst: event_del
      Src: /src/tmux/server.c:416,1
    - Dst: event_set
      Src: /src/tmux/server.c:419,1
    - Dst: event_add
      Src: /src/tmux/server.c:421,1
    - Dst: event_set
      Src: /src/tmux/server.c:423,1
    - Dst: event_add
      Src: /src/tmux/server.c:425,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 427
    functionName: server_add_accept
    functionSourceFile: /src/tmux/server.c
    functionUses: 2
    functionsReached:
    - event_add
    - event_set
    - event_initialized
    - event_del
    linkageType: ''
    returnType: void
    signature: void server_add_accept(int timeout)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/server.c:435,1
    - Dst: strsignal
      Src: /src/tmux/server.c:435,1
    - Dst: server_send_exit
      Src: /src/tmux/server.c:440,1
    - Dst: server_child_signal
      Src: /src/tmux/server.c:443,1
    - Dst: event_del
      Src: /src/tmux/server.c:446,1
    - Dst: server_create_socket
      Src: /src/tmux/server.c:447,1
    - Dst: close
      Src: /src/tmux/server.c:449,1
    - Dst: server_update_socket
      Src: /src/tmux/server.c:451,1
    - Dst: server_add_accept
      Src: /src/tmux/server.c:453,1
    - Dst: proc_toggle_log
      Src: /src/tmux/server.c:456,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 430
    functionDepth: 4
    functionLinenumber: 430
    functionLinenumberEnd: 459
    functionName: server_signal
    functionSourceFile: /src/tmux/server.c
    functionUses: 0
    functionsReached:
    - close
    - server_send_exit
    - server_child_signal
    - event_del
    - server_update_socket
    - strsignal
    - server_add_accept
    - server_create_socket
    - log_debug
    - proc_toggle_log
    linkageType: ''
    returnType: void
    signature: void server_signal(int sig)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: waitpid
      Src: /src/tmux/server.c:469,1
    - Dst: fatal
      Src: /src/tmux/server.c:473,1
    - Dst: WIFSTOPPED
      Src: /src/tmux/server.c:477,1
    - Dst: server_child_stopped
      Src: /src/tmux/server.c:478,1
    - Dst: WIFEXITED
      Src: /src/tmux/server.c:479,1
    - Dst: WIFSIGNALED
      Src: /src/tmux/server.c:479,1
    - Dst: server_child_exited
      Src: /src/tmux/server.c:480,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 482
    functionName: server_child_signal
    functionSourceFile: /src/tmux/server.c
    functionUses: 1
    functionsReached:
    - fatal
    - WIFEXITED
    - server_child_stopped
    - WIFSIGNALED
    - server_child_exited
    - WIFSTOPPED
    - waitpid
    linkageType: ''
    returnType: void
    signature: void server_child_signal(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH_SAFE
      Src: /src/tmux/server.c:491,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server.c:492,1
    - Dst: log_debug
      Src: /src/tmux/server.c:497,1
    - Dst: window_pane_destroy_ready
      Src: /src/tmux/server.c:500,1
    - Dst: server_destroy_pane
      Src: /src/tmux/server.c:501,1
    - Dst: job_check_died
      Src: /src/tmux/server.c:506,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - pid
    - status
    argTypes:
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 485
    functionDepth: 7
    functionLinenumber: 485
    functionLinenumberEnd: 507
    functionName: server_child_exited
    functionSourceFile: /src/tmux/server.c
    functionUses: 1
    functionsReached:
    - window_pane_destroy_ready
    - TAILQ_FOREACH
    - RB_FOREACH_SAFE
    - server_destroy_pane
    - log_debug
    - job_check_died
    linkageType: ''
    returnType: void
    signature: void server_child_exited(pid_t pid, int status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WSTOPSIG
      Src: /src/tmux/server.c:516,1
    - Dst: WSTOPSIG
      Src: /src/tmux/server.c:516,1
    - Dst: RB_FOREACH
      Src: /src/tmux/server.c:519,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server.c:520,1
    - Dst: killpg
      Src: /src/tmux/server.c:522,1
    - Dst: kill
      Src: /src/tmux/server.c:523,1
    - Dst: job_check_died
      Src: /src/tmux/server.c:527,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - pid
    - status
    argTypes:
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 510
    functionDepth: 3
    functionLinenumber: 510
    functionLinenumberEnd: 528
    functionName: server_child_stopped
    functionSourceFile: /src/tmux/server.c
    functionUses: 1
    functionsReached:
    - WSTOPSIG
    - TAILQ_FOREACH
    - killpg
    - kill
    - RB_FOREACH
    - job_check_died
    linkageType: ''
    returnType: void
    signature: void server_child_stopped(pid_t pid, int status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/tmux/server.c:539,1
    - Dst: xvasprintf
      Src: /src/tmux/server.c:540,1
    - Dst: va_end
      Src: /src/tmux/server.c:541,1
    - Dst: log_debug
      Src: /src/tmux/server.c:543,1
    - Dst: xcalloc
      Src: /src/tmux/server.c:545,1
    - Dst: gettimeofday
      Src: /src/tmux/server.c:546,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/server.c:549,1
    - Dst: options_get_number
      Src: /src/tmux/server.c:551,1
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/server.c:552,1
    - Dst: free
      Src: /src/tmux/server.c:555,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/server.c:556,1
    - Dst: free
      Src: /src/tmux/server.c:557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 559
    functionName: server_add_message
    functionSourceFile: /src/tmux/server.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - xvasprintf
    - TAILQ_FOREACH_SAFE
    - gettimeofday
    - free
    - va_end
    - va_start
    - log_debug
    - options_get_number
    - TAILQ_INSERT_TAIL
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void server_add_message(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/tmux/tmux.c:55,1
    - Dst: getprogname
      Src: /src/tmux/tmux.c:58,1
    - Dst: exit
      Src: /src/tmux/tmux.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - status
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: usage
    functionSourceFile: /src/tmux/tmux.c
    functionUses: 0
    functionsReached:
    - exit
    - getprogname
    - fprintf
    linkageType: ''
    returnType: __dead
    signature: __dead usage(int status)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/tmux/tmux.c:68,1
    - Dst: checkshell
      Src: /src/tmux/tmux.c:69,1
    - Dst: getpwuid
      Src: /src/tmux/tmux.c:72,1
    - Dst: getuid
      Src: /src/tmux/tmux.c:72,1
    - Dst: checkshell
      Src: /src/tmux/tmux.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 77
    functionName: getshell
    functionSourceFile: /src/tmux/tmux.c
    functionUses: 0
    functionsReached:
    - getpwuid
    - checkshell
    - getuid
    - getenv
    linkageType: ''
    returnType: char
    signature: 'char *

      getshell(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: areshell
      Src: /src/tmux/tmux.c:84,1
    - Dst: access
      Src: /src/tmux/tmux.c:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - shell
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 89
    functionName: checkshell
    functionSourceFile: /src/tmux/tmux.c
    functionUses: 4
    functionsReached:
    - access
    - areshell
    linkageType: ''
    returnType: int
    signature: int checkshell(const char *shell)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/tmux/tmux.c:96,1
    - Dst: getprogname
      Src: /src/tmux/tmux.c:100,1
    - Dst: strcmp
      Src: /src/tmux/tmux.c:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - shell
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 106
    functionName: areshell
    functionSourceFile: /src/tmux/tmux.c
    functionUses: 1
    functionsReached:
    - getprogname
    - strrchr
    - strcmp
    linkageType: ''
    returnType: int
    signature: int areshell(const char *shell)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/tmux/tmux.c:115,1
    - Dst: xasprintf
      Src: /src/tmux/tmux.c:118,1
    - Dst: strchr
      Src: /src/tmux/tmux.c:123,1
    - Dst: xstrdup
      Src: /src/tmux/tmux.c:125,1
    - Dst: xstrndup
      Src: /src/tmux/tmux.c:127,1
    - Dst: environ_find
      Src: /src/tmux/tmux.c:128,1
    - Dst: free
      Src: /src/tmux/tmux.c:129,1
    - Dst: xasprintf
      Src: /src/tmux/tmux.c:134,1
    - Dst: xstrdup
      Src: /src/tmux/tmux.c:138,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - path
    - home
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 139
    functionName: expand_path
    functionSourceFile: /src/tmux/tmux.c
    functionUses: 0
    functionsReached:
    - xstrndup
    - xasprintf
    - environ_find
    - strncmp
    - strchr
    - free
    - xstrdup
    linkageType: ''
    returnType: char
    signature: 'char *

      expand_path(const char *path, const char *home)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: find_home
      Src: /src/tmux/tmux.c:144,1
    - Dst: xstrdup
      Src: /src/tmux/tmux.c:152,1
    - Dst: strsep
      Src: /src/tmux/tmux.c:153,1
    - Dst: expand_path
      Src: /src/tmux/tmux.c:154,1
    - Dst: log_debug
      Src: /src/tmux/tmux.c:156,1
    - Dst: realpath
      Src: /src/tmux/tmux.c:162,1
    - Dst: log_debug
      Src: /src/tmux/tmux.c:163,1
    - Dst: strerror
      Src: /src/tmux/tmux.c:164,1
    - Dst: free
      Src: /src/tmux/tmux.c:165,1
    - Dst: xstrdup
      Src: /src/tmux/tmux.c:168,1
    - Dst: free
      Src: /src/tmux/tmux.c:169,1
    - Dst: strcmp
      Src: /src/tmux/tmux.c:172,1
    - Dst: log_debug
      Src: /src/tmux/tmux.c:176,1
    - Dst: free
      Src: /src/tmux/tmux.c:177,1
    - Dst: xreallocarray
      Src: /src/tmux/tmux.c:180,1
    - Dst: free
      Src: /src/tmux/tmux.c:183,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 4
    argNames:
    - s
    - paths
    - n
    - no_realpath
    argTypes:
    - char*
    - char***
    - u_int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 184
    functionName: expand_paths
    functionSourceFile: /src/tmux/tmux.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strsep
    - free
    - strerror
    - realpath
    - xreallocarray
    - log_debug
    - expand_path
    - xstrdup
    - find_home
    linkageType: ''
    returnType: void
    signature: void expand_paths(const char *s, char ***paths, u_int *n, int no_realpath)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/tmux/tmux.c:197,1
    - Dst: expand_paths
      Src: /src/tmux/tmux.c:199,1
    - Dst: xasprintf
      Src: /src/tmux/tmux.c:201,1
    - Dst: free
      Src: /src/tmux/tmux.c:206,1
    - Dst: free
      Src: /src/tmux/tmux.c:207,1
    - Dst: xasprintf
      Src: /src/tmux/tmux.c:209,1
    - Dst: free
      Src: /src/tmux/tmux.c:210,1
    - Dst: mkdir
      Src: /src/tmux/tmux.c:211,1
    - Dst: xasprintf
      Src: /src/tmux/tmux.c:212,1
    - Dst: strerror
      Src: /src/tmux/tmux.c:213,1
    - Dst: lstat
      Src: /src/tmux/tmux.c:216,1
    - Dst: xasprintf
      Src: /src/tmux/tmux.c:217,1
    - Dst: strerror
      Src: /src/tmux/tmux.c:218,1
    - Dst: S_ISDIR
      Src: /src/tmux/tmux.c:221,1
    - Dst: xasprintf
      Src: /src/tmux/tmux.c:222,1
    - Dst: xasprintf
      Src: /src/tmux/tmux.c:226,1
    - Dst: xasprintf
      Src: /src/tmux/tmux.c:229,1
    - Dst: free
      Src: /src/tmux/tmux.c:230,1
    - Dst: free
      Src: /src/tmux/tmux.c:234,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 2
    argNames:
    - label
    - cause
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 236
    functionName: make_label
    functionSourceFile: /src/tmux/tmux.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - xasprintf
    - lstat
    - expand_paths
    - mkdir
    - free
    - getuid
    - strerror
    linkageType: ''
    returnType: char
    signature: 'char *

      make_label(const char *label, char **cause)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/tmux/tmux.c:244,1
    - Dst: xasprintf
      Src: /src/tmux/tmux.c:250,1
    - Dst: xasprintf
      Src: /src/tmux/tmux.c:252,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - shell
    - is_login
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 254
    functionName: shell_argv0
    functionSourceFile: /src/tmux/tmux.c
    functionUses: 1
    functionsReached:
    - strrchr
    - xasprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      shell_argv0(const char *shell, int is_login)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/tmux/tmux.c:261,1
    - Dst: fcntl
      Src: /src/tmux/tmux.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - fd
    - state
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 268
    functionName: setblocking
    functionSourceFile: /src/tmux/tmux.c
    functionUses: 5
    functionsReached:
    - fcntl
    linkageType: ''
    returnType: void
    signature: void setblocking(int fd, int state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/tmux/tmux.c:279,1
    - Dst: clock_gettime
      Src: /src/tmux/tmux.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 282
    functionName: get_timer
    functionSourceFile: /src/tmux/tmux.c
    functionUses: 3
    functionsReached:
    - clock_gettime
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_timer(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: utf8_isvalid
      Src: /src/tmux/tmux.c:289,1
    - Dst: xstrdup
      Src: /src/tmux/tmux.c:291,1
    - Dst: strchr
      Src: /src/tmux/tmux.c:293,1
    - Dst: utf8_stravis
      Src: /src/tmux/tmux.c:296,1
    - Dst: free
      Src: /src/tmux/tmux.c:297,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - name
    - forbid
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 299
    functionName: clean_name
    functionSourceFile: /src/tmux/tmux.c
    functionUses: 2
    functionsReached:
    - utf8_stravis
    - utf8_isvalid
    - strchr
    - free
    - xstrdup
    linkageType: ''
    returnType: char
    signature: 'char *

      clean_name(const char *name, const char* forbid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/tmux/tmux.c:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 312
    functionName: sig2name
    functionSourceFile: /src/tmux/tmux.c
    functionUses: 0
    functionsReached:
    - xsnprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      sig2name(int signo)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getcwd
      Src: /src/tmux/tmux.c:321,1
    - Dst: getenv
      Src: /src/tmux/tmux.c:323,1
    - Dst: realpath
      Src: /src/tmux/tmux.c:330,1
    - Dst: realpath
      Src: /src/tmux/tmux.c:332,1
    - Dst: strcmp
      Src: /src/tmux/tmux.c:334,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 337
    functionName: find_cwd
    functionSourceFile: /src/tmux/tmux.c
    functionUses: 0
    functionsReached:
    - realpath
    - getcwd
    - getenv
    - strcmp
    linkageType: ''
    returnType: char
    signature: 'char *

      find_cwd(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/tmux/tmux.c:348,1
    - Dst: getpwuid
      Src: /src/tmux/tmux.c:350,1
    - Dst: getuid
      Src: /src/tmux/tmux.c:350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 358
    functionName: find_home
    functionSourceFile: /src/tmux/tmux.c
    functionUses: 4
    functionsReached:
    - getpwuid
    - getuid
    - getenv
    linkageType: ''
    returnType: char
    signature: 'char *

      find_home(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 364
    functionName: getversion
    functionSourceFile: /src/tmux/tmux.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      getversion(void)'
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: setlocale
      Src: /src/tmux/tmux.c:377,1
    - Dst: setlocale
      Src: /src/tmux/tmux.c:378,1
    - Dst: setlocale
      Src: /src/tmux/tmux.c:379,1
    - Dst: errx
      Src: /src/tmux/tmux.c:380,1
    - Dst: nl_langinfo
      Src: /src/tmux/tmux.c:381,1
    - Dst: strcasecmp
      Src: /src/tmux/tmux.c:382,1
    - Dst: strcasecmp
      Src: /src/tmux/tmux.c:382,1
    - Dst: errx
      Src: /src/tmux/tmux.c:383,1
    - Dst: setlocale
      Src: /src/tmux/tmux.c:386,1
    - Dst: tzset
      Src: /src/tmux/tmux.c:387,1
    - Dst: environ_create
      Src: /src/tmux/tmux.c:392,1
    - Dst: environ_put
      Src: /src/tmux/tmux.c:394,1
    - Dst: find_cwd
      Src: /src/tmux/tmux.c:395,1
    - Dst: environ_set
      Src: /src/tmux/tmux.c:396,1
    - Dst: expand_paths
      Src: /src/tmux/tmux.c:397,1
    - Dst: getopt
      Src: /src/tmux/tmux.c:399,1
    - Dst: tty_add_features
      Src: /src/tmux/tmux.c:402,1
    - Dst: free
      Src: /src/tmux/tmux.c:420,1
    - Dst: xreallocarray
      Src: /src/tmux/tmux.c:423,1
    - Dst: xstrdup
      Src: /src/tmux/tmux.c:425,1
    - Dst: usage
      Src: /src/tmux/tmux.c:429,1
    - Dst: printf
      Src: /src/tmux/tmux.c:431,1
    - Dst: getversion
      Src: /src/tmux/tmux.c:431,1
    - Dst: exit
      Src: /src/tmux/tmux.c:432,1
    - Dst: free
      Src: /src/tmux/tmux.c:437,1
    - Dst: xstrdup
      Src: /src/tmux/tmux.c:438,1
    - Dst: free
      Src: /src/tmux/tmux.c:446,1
    - Dst: xstrdup
      Src: /src/tmux/tmux.c:447,1
    - Dst: tty_add_features
      Src: /src/tmux/tmux.c:450,1
    - Dst: log_add_level
      Src: /src/tmux/tmux.c:456,1
    - Dst: usage
      Src: /src/tmux/tmux.c:459,1
    - Dst: usage
      Src: /src/tmux/tmux.c:466,1
    - Dst: usage
      Src: /src/tmux/tmux.c:468,1
    - Dst: getptmfd
      Src: /src/tmux/tmux.c:470,1
    - Dst: err
      Src: /src/tmux/tmux.c:471,1
    - Dst: pledge
      Src: /src/tmux/tmux.c:472,1
    - Dst: err
      Src: /src/tmux/tmux.c:474,1
    - Dst: getenv
      Src: /src/tmux/tmux.c:483,1
    - Dst: getenv
      Src: /src/tmux/tmux.c:486,1
    - Dst: getenv
      Src: /src/tmux/tmux.c:488,1
    - Dst: getenv
      Src: /src/tmux/tmux.c:490,1
    - Dst: strcasestr
      Src: /src/tmux/tmux.c:493,1
    - Dst: strcasestr
      Src: /src/tmux/tmux.c:494,1
    - Dst: options_create
      Src: /src/tmux/tmux.c:498,1
    - Dst: options_create
      Src: /src/tmux/tmux.c:499,1
    - Dst: options_create
      Src: /src/tmux/tmux.c:500,1
    - Dst: options_default
      Src: /src/tmux/tmux.c:503,1
    - Dst: options_default
      Src: /src/tmux/tmux.c:505,1
    - Dst: options_default
      Src: /src/tmux/tmux.c:507,1
    - Dst: options_set_string
      Src: /src/tmux/tmux.c:514,1
    - Dst: getshell
      Src: /src/tmux/tmux.c:515,1
    - Dst: getenv
      Src: /src/tmux/tmux.c:518,1
    - Dst: getenv
      Src: /src/tmux/tmux.c:518,1
    - Dst: options_set_string
      Src: /src/tmux/tmux.c:519,1
    - Dst: strrchr
      Src: /src/tmux/tmux.c:520,1
    - Dst: strrchr
      Src: /src/tmux/tmux.c:521,1
    - Dst: strstr
      Src: /src/tmux/tmux.c:522,1
    - Dst: options_set_number
      Src: /src/tmux/tmux.c:526,1
    - Dst: options_set_number
      Src: /src/tmux/tmux.c:527,1
    - Dst: getenv
      Src: /src/tmux/tmux.c:536,1
    - Dst: xstrdup
      Src: /src/tmux/tmux.c:538,1
    - Dst: strcspn
      Src: /src/tmux/tmux.c:539,1
    - Dst: make_label
      Src: /src/tmux/tmux.c:543,1
    - Dst: fprintf
      Src: /src/tmux/tmux.c:545,1
    - Dst: free
      Src: /src/tmux/tmux.c:546,1
    - Dst: exit
      Src: /src/tmux/tmux.c:548,1
    - Dst: free
      Src: /src/tmux/tmux.c:553,1
    - Dst: exit
      Src: /src/tmux/tmux.c:556,1
    - Dst: client_main
      Src: /src/tmux/tmux.c:556,1
    - Dst: osdep_event_init
      Src: /src/tmux/tmux.c:556,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 143
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 366
    functionDepth: 4
    functionLinenumber: 366
    functionLinenumberEnd: 557
    functionName: main
    functionSourceFile: /src/tmux/tmux.c
    functionUses: 1
    functionsReached:
    - printf
    - strcspn
    - getenv
    - nl_langinfo
    - environ_put
    - getversion
    - strcasestr
    - log_add_level
    - setlocale
    - strcasecmp
    - getshell
    - errx
    - environ_set
    - options_set_string
    - fprintf
    - xstrdup
    - osdep_event_init
    - tty_add_features
    - exit
    - expand_paths
    - find_cwd
    - err
    - pledge
    - environ_create
    - strrchr
    - make_label
    - client_main
    - getptmfd
    - tzset
    - getopt
    - options_create
    - options_default
    - free
    - options_set_number
    - xreallocarray
    - strstr
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tcgetpgrp
      Src: /src/tmux/osdep-linux.c:38,1
    - Dst: xasprintf
      Src: /src/tmux/osdep-linux.c:41,1
    - Dst: fopen
      Src: /src/tmux/osdep-linux.c:42,1
    - Dst: free
      Src: /src/tmux/osdep-linux.c:43,1
    - Dst: free
      Src: /src/tmux/osdep-linux.c:46,1
    - Dst: fgetc
      Src: /src/tmux/osdep-linux.c:50,1
    - Dst: xrealloc
      Src: /src/tmux/osdep-linux.c:53,1
    - Dst: fclose
      Src: /src/tmux/osdep-linux.c:59,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - fd
    - tty
    argTypes:
    - int
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 61
    functionName: osdep_get_name
    functionSourceFile: /src/tmux/osdep-linux.c
    functionUses: 0
    functionsReached:
    - fgetc
    - xasprintf
    - fclose
    - free
    - xrealloc
    - tcgetpgrp
    - fopen
    linkageType: ''
    returnType: char
    signature: 'char *

      osdep_get_name(int fd, __unused char *tty)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tcgetpgrp
      Src: /src/tmux/osdep-linux.c:71,1
    - Dst: xasprintf
      Src: /src/tmux/osdep-linux.c:74,1
    - Dst: readlink
      Src: /src/tmux/osdep-linux.c:75,1
    - Dst: free
      Src: /src/tmux/osdep-linux.c:76,1
    - Dst: ioctl
      Src: /src/tmux/osdep-linux.c:78,1
    - Dst: xasprintf
      Src: /src/tmux/osdep-linux.c:79,1
    - Dst: readlink
      Src: /src/tmux/osdep-linux.c:80,1
    - Dst: free
      Src: /src/tmux/osdep-linux.c:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 89
    functionName: osdep_get_cwd
    functionSourceFile: /src/tmux/osdep-linux.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - readlink
    - free
    - tcgetpgrp
    - ioctl
    linkageType: ''
    returnType: char
    signature: 'char *

      osdep_get_cwd(int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/tmux/osdep-linux.c:97,1
    - Dst: event_init
      Src: /src/tmux/osdep-linux.c:99,1
    - Dst: unsetenv
      Src: /src/tmux/osdep-linux.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 102
    functionName: osdep_event_init
    functionSourceFile: /src/tmux/osdep-linux.c
    functionUses: 1
    functionsReached:
    - event_init
    - setenv
    - unsetenv
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      osdep_event_init(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nitems
      Src: /src/tmux/key-string.c:200,1
    - Dst: strcasecmp
      Src: /src/tmux/key-string.c:201,1
    - Dst: sscanf
      Src: /src/tmux/key-string.c:205,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 209
    functionName: key_string_search_table
    functionSourceFile: /src/tmux/key-string.c
    functionUses: 0
    functionsReached:
    - nitems
    - sscanf
    - strcasecmp
    linkageType: ''
    returnType: key_code
    signature: key_code key_string_search_table(const char *string)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - string
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 239
    functionName: key_string_get_modifiers
    functionSourceFile: /src/tmux/key-string.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: key_code
    signature: key_code key_string_get_modifiers(const char **string)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/tmux/key-string.c:254,1
    - Dst: strcasecmp
      Src: /src/tmux/key-string.c:256,1
    - Dst: sscanf
      Src: /src/tmux/key-string.c:261,1
    - Dst: wctomb
      Src: /src/tmux/key-string.c:265,1
    - Dst: utf8_fromcstr
      Src: /src/tmux/key-string.c:270,1
    - Dst: utf8_from_data
      Src: /src/tmux/key-string.c:274,1
    - Dst: free
      Src: /src/tmux/key-string.c:275,1
    - Dst: free
      Src: /src/tmux/key-string.c:278,1
    - Dst: tolower
      Src: /src/tmux/key-string.c:285,1
    - Dst: key_string_get_modifiers
      Src: /src/tmux/key-string.c:291,1
    - Dst: utf8_open
      Src: /src/tmux/key-string.c:302,1
    - Dst: strlen
      Src: /src/tmux/key-string.c:303,1
    - Dst: utf8_append
      Src: /src/tmux/key-string.c:306,1
    - Dst: utf8_from_data
      Src: /src/tmux/key-string.c:309,1
    - Dst: key_string_search_table
      Src: /src/tmux/key-string.c:315,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 54
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 323
    functionName: key_string_lookup_string
    functionSourceFile: /src/tmux/key-string.c
    functionUses: 1
    functionsReached:
    - utf8_fromcstr
    - key_string_get_modifiers
    - utf8_open
    - key_string_search_table
    - strcasecmp
    - wctomb
    - sscanf
    - free
    - utf8_append
    - utf8_from_data
    - strlen
    - tolower
    linkageType: ''
    returnType: key_code
    signature: key_code key_string_lookup_string(const char *string)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/tmux/key-string.c:341,1
    - Dst: strlcat
      Src: /src/tmux/key-string.c:347,1
    - Dst: strlcat
      Src: /src/tmux/key-string.c:349,1
    - Dst: strlcat
      Src: /src/tmux/key-string.c:351,1
    - Dst: KEYC_IS_USER
      Src: /src/tmux/key-string.c:421,1
    - Dst: snprintf
      Src: /src/tmux/key-string.c:422,1
    - Dst: strlcat
      Src: /src/tmux/key-string.c:423,1
    - Dst: nitems
      Src: /src/tmux/key-string.c:428,1
    - Dst: nitems
      Src: /src/tmux/key-string.c:432,1
    - Dst: strlcat
      Src: /src/tmux/key-string.c:433,1
    - Dst: KEYC_IS_UNICODE
      Src: /src/tmux/key-string.c:438,1
    - Dst: utf8_to_data
      Src: /src/tmux/key-string.c:439,1
    - Dst: strlen
      Src: /src/tmux/key-string.c:440,1
    - Dst: memcpy
      Src: /src/tmux/key-string.c:441,1
    - Dst: snprintf
      Src: /src/tmux/key-string.c:448,1
    - Dst: xsnprintf
      Src: /src/tmux/key-string.c:457,1
    - Dst: xsnprintf
      Src: /src/tmux/key-string.c:459,1
    - Dst: strlcat
      Src: /src/tmux/key-string.c:461,1
    - Dst: strlcat
      Src: /src/tmux/key-string.c:465,1
    - Dst: strlcat
      Src: /src/tmux/key-string.c:469,1
    - Dst: strlcat
      Src: /src/tmux/key-string.c:471,1
    - Dst: strlcat
      Src: /src/tmux/key-string.c:473,1
    - Dst: strlcat
      Src: /src/tmux/key-string.c:475,1
    - Dst: strlcat
      Src: /src/tmux/key-string.c:477,1
    - Dst: strlcat
      Src: /src/tmux/key-string.c:479,1
    - Dst: strlcat
      Src: /src/tmux/key-string.c:481,1
    - Dst: strlcat
      Src: /src/tmux/key-string.c:482,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 155
    argCount: 2
    argNames:
    - key
    - with_flags
    argTypes:
    - key_code
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 485
    functionName: key_string_lookup_key
    functionSourceFile: /src/tmux/key-string.c
    functionUses: 6
    functionsReached:
    - utf8_to_data
    - nitems
    - KEYC_IS_UNICODE
    - strlcat
    - xsnprintf
    - memcpy
    - strlen
    - snprintf
    - KEYC_IS_USER
    linkageType: ''
    returnType: char
    signature: 'char *

      key_string_lookup_key(key_code key, int with_flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/key-bindings.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - table1
    - table2
    argTypes:
    - struct key_table*
    - struct key_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: key_table_cmp
    functionSourceFile: /src/tmux/key-bindings.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int key_table_cmp(struct key_table *table1, struct key_table *table2)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bd1
    - bd2
    argTypes:
    - struct key_binding*
    - struct key_binding*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: key_bindings_cmp
    functionSourceFile: /src/tmux/key-bindings.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int key_bindings_cmp(struct key_binding *bd1, struct key_binding *bd2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmd_list_free
      Src: /src/tmux/key-bindings.c:100,1
    - Dst: free
      Src: /src/tmux/key-bindings.c:101,1
    - Dst: free
      Src: /src/tmux/key-bindings.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bd
    argTypes:
    - struct key_binding*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: key_bindings_free
    functionSourceFile: /src/tmux/key-bindings.c
    functionUses: 0
    functionsReached:
    - cmd_list_free
    - free
    linkageType: ''
    returnType: void
    signature: void key_bindings_free(struct key_binding *bd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_FIND
      Src: /src/tmux/key-bindings.c:111,1
    - Dst: xmalloc
      Src: /src/tmux/key-bindings.c:115,1
    - Dst: xstrdup
      Src: /src/tmux/key-bindings.c:116,1
    - Dst: RB_INIT
      Src: /src/tmux/key-bindings.c:117,1
    - Dst: RB_INIT
      Src: /src/tmux/key-bindings.c:118,1
    - Dst: RB_INSERT
      Src: /src/tmux/key-bindings.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - name
    - create
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 124
    functionName: key_bindings_get_table
    functionSourceFile: /src/tmux/key-bindings.c
    functionUses: 3
    functionsReached:
    - RB_INIT
    - xmalloc
    - xstrdup
    - RB_FIND
    - RB_INSERT
    linkageType: ''
    returnType: struct key_table
    signature: 'struct key_table *

      key_bindings_get_table(const char *name, int create)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_MIN
      Src: /src/tmux/key-bindings.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: key_bindings_first_table
    functionSourceFile: /src/tmux/key-bindings.c
    functionUses: 1
    functionsReached:
    - RB_MIN
    linkageType: ''
    returnType: struct key_table
    signature: 'struct key_table *

      key_bindings_first_table(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_NEXT
      Src: /src/tmux/key-bindings.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - table
    argTypes:
    - struct key_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: key_bindings_next_table
    functionSourceFile: /src/tmux/key-bindings.c
    functionUses: 1
    functionsReached:
    - RB_NEXT
    linkageType: ''
    returnType: struct key_table
    signature: 'struct key_table *

      key_bindings_next_table(struct key_table *table)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH_SAFE
      Src: /src/tmux/key-bindings.c:147,1
    - Dst: RB_REMOVE
      Src: /src/tmux/key-bindings.c:148,1
    - Dst: key_bindings_free
      Src: /src/tmux/key-bindings.c:149,1
    - Dst: RB_FOREACH_SAFE
      Src: /src/tmux/key-bindings.c:151,1
    - Dst: RB_REMOVE
      Src: /src/tmux/key-bindings.c:152,1
    - Dst: key_bindings_free
      Src: /src/tmux/key-bindings.c:153,1
    - Dst: free
      Src: /src/tmux/key-bindings.c:156,1
    - Dst: free
      Src: /src/tmux/key-bindings.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - table
    argTypes:
    - struct key_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 138
    functionDepth: 4
    functionLinenumber: 138
    functionLinenumberEnd: 158
    functionName: key_bindings_unref_table
    functionSourceFile: /src/tmux/key-bindings.c
    functionUses: 1
    functionsReached:
    - key_bindings_free
    - RB_REMOVE
    - free
    - RB_FOREACH_SAFE
    linkageType: ''
    returnType: void
    signature: void key_bindings_unref_table(struct key_table *table)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FIND
      Src: /src/tmux/key-bindings.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - table
    - key
    argTypes:
    - struct key_table*
    - key_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 167
    functionName: key_bindings_get
    functionSourceFile: /src/tmux/key-bindings.c
    functionUses: 0
    functionsReached:
    - RB_FIND
    linkageType: ''
    returnType: struct key_binding
    signature: 'struct key_binding *

      key_bindings_get(struct key_table *table, key_code key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FIND
      Src: /src/tmux/key-bindings.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - table
    - key
    argTypes:
    - struct key_table*
    - key_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 176
    functionName: key_bindings_get_default
    functionSourceFile: /src/tmux/key-bindings.c
    functionUses: 0
    functionsReached:
    - RB_FIND
    linkageType: ''
    returnType: struct key_binding
    signature: 'struct key_binding *

      key_bindings_get_default(struct key_table *table, key_code key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_MIN
      Src: /src/tmux/key-bindings.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - table
    argTypes:
    - struct key_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: key_bindings_first
    functionSourceFile: /src/tmux/key-bindings.c
    functionUses: 2
    functionsReached:
    - RB_MIN
    linkageType: ''
    returnType: struct key_binding
    signature: 'struct key_binding *

      key_bindings_first(struct key_table *table)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_NEXT
      Src: /src/tmux/key-bindings.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - table
    - bd
    argTypes:
    - __unused*
    - struct key_binding*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: key_bindings_next
    functionSourceFile: /src/tmux/key-bindings.c
    functionUses: 2
    functionsReached:
    - RB_NEXT
    linkageType: ''
    returnType: struct key_binding
    signature: 'struct key_binding *

      key_bindings_next(__unused struct key_table *table, struct key_binding *bd)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: key_bindings_get_table
      Src: /src/tmux/key-bindings.c:198,1
    - Dst: key_bindings_get
      Src: /src/tmux/key-bindings.c:200,1
    - Dst: free
      Src: /src/tmux/key-bindings.c:204,1
    - Dst: xstrdup
      Src: /src/tmux/key-bindings.c:205,1
    - Dst: RB_REMOVE
      Src: /src/tmux/key-bindings.c:213,1
    - Dst: key_bindings_free
      Src: /src/tmux/key-bindings.c:214,1
    - Dst: xcalloc
      Src: /src/tmux/key-bindings.c:217,1
    - Dst: xstrdup
      Src: /src/tmux/key-bindings.c:221,1
    - Dst: RB_INSERT
      Src: /src/tmux/key-bindings.c:222,1
    - Dst: cmd_list_print
      Src: /src/tmux/key-bindings.c:228,1
    - Dst: log_debug
      Src: /src/tmux/key-bindings.c:229,1
    - Dst: key_string_lookup_key
      Src: /src/tmux/key-bindings.c:230,1
    - Dst: free
      Src: /src/tmux/key-bindings.c:231,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 5
    argNames:
    - name
    - key
    - note
    - repeat
    - cmdlist
    argTypes:
    - char*
    - key_code
    - char*
    - int
    - struct cmd_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 190
    functionDepth: 4
    functionLinenumber: 190
    functionLinenumberEnd: 232
    functionName: key_bindings_add
    functionSourceFile: /src/tmux/key-bindings.c
    functionUses: 0
    functionsReached:
    - cmd_list_print
    - xcalloc
    - key_bindings_get
    - key_string_lookup_key
    - free
    - key_bindings_get_table
    - log_debug
    - key_bindings_free
    - xstrdup
    - RB_REMOVE
    - RB_INSERT
    linkageType: ''
    returnType: void
    signature: "void key_bindings_add(const char *name, key_code key, const char *note,
      int repeat,\n    struct cmd_list *cmdlist)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: key_bindings_get_table
      Src: /src/tmux/key-bindings.c:240,1
    - Dst: key_bindings_get
      Src: /src/tmux/key-bindings.c:244,1
    - Dst: log_debug
      Src: /src/tmux/key-bindings.c:248,1
    - Dst: key_string_lookup_key
      Src: /src/tmux/key-bindings.c:249,1
    - Dst: RB_REMOVE
      Src: /src/tmux/key-bindings.c:251,1
    - Dst: key_bindings_free
      Src: /src/tmux/key-bindings.c:252,1
    - Dst: RB_EMPTY
      Src: /src/tmux/key-bindings.c:254,1
    - Dst: RB_EMPTY
      Src: /src/tmux/key-bindings.c:255,1
    - Dst: RB_REMOVE
      Src: /src/tmux/key-bindings.c:256,1
    - Dst: key_bindings_unref_table
      Src: /src/tmux/key-bindings.c:257,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - name
    - key
    argTypes:
    - char*
    - key_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 234
    functionDepth: 5
    functionLinenumber: 234
    functionLinenumberEnd: 259
    functionName: key_bindings_remove
    functionSourceFile: /src/tmux/key-bindings.c
    functionUses: 0
    functionsReached:
    - key_bindings_unref_table
    - key_bindings_get
    - key_string_lookup_key
    - RB_EMPTY
    - key_bindings_get_table
    - log_debug
    - key_bindings_free
    - RB_REMOVE
    linkageType: ''
    returnType: void
    signature: void key_bindings_remove(const char *name, key_code key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: key_bindings_get_table
      Src: /src/tmux/key-bindings.c:267,1
    - Dst: key_bindings_get
      Src: /src/tmux/key-bindings.c:271,1
    - Dst: key_bindings_get_default
      Src: /src/tmux/key-bindings.c:275,1
    - Dst: key_bindings_remove
      Src: /src/tmux/key-bindings.c:277,1
    - Dst: cmd_list_free
      Src: /src/tmux/key-bindings.c:281,1
    - Dst: free
      Src: /src/tmux/key-bindings.c:285,1
    - Dst: xstrdup
      Src: /src/tmux/key-bindings.c:287,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - name
    - key
    argTypes:
    - char*
    - key_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 261
    functionDepth: 6
    functionLinenumber: 261
    functionLinenumberEnd: 291
    functionName: key_bindings_reset
    functionSourceFile: /src/tmux/key-bindings.c
    functionUses: 0
    functionsReached:
    - key_bindings_get_default
    - cmd_list_free
    - key_bindings_remove
    - key_bindings_get
    - free
    - key_bindings_get_table
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void key_bindings_reset(const char *name, key_code key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: key_bindings_get_table
      Src: /src/tmux/key-bindings.c:299,1
    - Dst: RB_REMOVE
      Src: /src/tmux/key-bindings.c:301,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/key-bindings.c:302,1
    - Dst: server_client_set_key_table
      Src: /src/tmux/key-bindings.c:304,1
    - Dst: key_bindings_unref_table
      Src: /src/tmux/key-bindings.c:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 293
    functionDepth: 5
    functionLinenumber: 293
    functionLinenumberEnd: 308
    functionName: key_bindings_remove_table
    functionSourceFile: /src/tmux/key-bindings.c
    functionUses: 0
    functionsReached:
    - key_bindings_unref_table
    - TAILQ_FOREACH
    - key_bindings_get_table
    - RB_REMOVE
    - server_client_set_key_table
    linkageType: ''
    returnType: void
    signature: void key_bindings_remove_table(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: key_bindings_get_table
      Src: /src/tmux/key-bindings.c:316,1
    - Dst: RB_EMPTY
      Src: /src/tmux/key-bindings.c:319,1
    - Dst: key_bindings_remove_table
      Src: /src/tmux/key-bindings.c:320,1
    - Dst: RB_FOREACH_SAFE
      Src: /src/tmux/key-bindings.c:323,1
    - Dst: key_bindings_reset
      Src: /src/tmux/key-bindings.c:324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 310
    functionDepth: 7
    functionLinenumber: 310
    functionLinenumberEnd: 325
    functionName: key_bindings_reset_table
    functionSourceFile: /src/tmux/key-bindings.c
    functionUses: 0
    functionsReached:
    - key_bindings_reset
    - key_bindings_remove_table
    - RB_EMPTY
    - RB_FOREACH_SAFE
    - key_bindings_get_table
    linkageType: ''
    returnType: void
    signature: void key_bindings_reset_table(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/key-bindings.c:333,1
    - Dst: RB_FOREACH
      Src: /src/tmux/key-bindings.c:334,1
    - Dst: xcalloc
      Src: /src/tmux/key-bindings.c:335,1
    - Dst: xstrdup
      Src: /src/tmux/key-bindings.c:338,1
    - Dst: RB_INSERT
      Src: /src/tmux/key-bindings.c:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - item
    - data
    argTypes:
    - __unused*
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 347
    functionName: key_bindings_init_done
    functionSourceFile: /src/tmux/key-bindings.c
    functionUses: 0
    functionsReached:
    - RB_FOREACH
    - xcalloc
    - xstrdup
    - RB_INSERT
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval key_bindings_init_done(__unused struct cmdq_item *item,
      __unused void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nitems
      Src: /src/tmux/key-bindings.c:670,1
    - Dst: cmd_parse_from_string
      Src: /src/tmux/key-bindings.c:671,1
    - Dst: log_debug
      Src: /src/tmux/key-bindings.c:673,1
    - Dst: fatalx
      Src: /src/tmux/key-bindings.c:674,1
    - Dst: cmdq_append
      Src: /src/tmux/key-bindings.c:676,1
    - Dst: cmdq_get_command
      Src: /src/tmux/key-bindings.c:676,1
    - Dst: cmd_list_free
      Src: /src/tmux/key-bindings.c:677,1
    - Dst: cmdq_append
      Src: /src/tmux/key-bindings.c:679,1
    - Dst: cmdq_get_callback
      Src: /src/tmux/key-bindings.c:679,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 680
    functionName: key_bindings_init
    functionSourceFile: /src/tmux/key-bindings.c
    functionUses: 1
    functionsReached:
    - cmd_list_free
    - cmdq_get_callback
    - nitems
    - fatalx
    - cmdq_append
    - cmdq_get_command
    - log_debug
    - cmd_parse_from_string
    linkageType: ''
    returnType: void
    signature: void key_bindings_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_error
      Src: /src/tmux/key-bindings.c:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - item
    - data
    argTypes:
    - struct cmdq_item*
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 687
    functionName: key_bindings_read_only
    functionSourceFile: /src/tmux/key-bindings.c
    functionUses: 0
    functionsReached:
    - cmdq_error
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval key_bindings_read_only(struct cmdq_item *item, __unused
      void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cmd_list_all_have
      Src: /src/tmux/key-bindings.c:700,1
    - Dst: cmdq_get_callback
      Src: /src/tmux/key-bindings.c:703,1
    - Dst: cmdq_new_state
      Src: /src/tmux/key-bindings.c:707,1
    - Dst: cmdq_get_command
      Src: /src/tmux/key-bindings.c:708,1
    - Dst: cmdq_free_state
      Src: /src/tmux/key-bindings.c:709,1
    - Dst: cmdq_insert_after
      Src: /src/tmux/key-bindings.c:712,1
    - Dst: cmdq_append
      Src: /src/tmux/key-bindings.c:714,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - bd
    - item
    - c
    - event
    - fs
    argTypes:
    - struct key_binding*
    - struct cmdq_item*
    - struct client*
    - struct key_event*
    - struct cmd_find_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 716
    functionName: key_bindings_dispatch
    functionSourceFile: /src/tmux/key-bindings.c
    functionUses: 0
    functionsReached:
    - cmd_list_all_have
    - cmdq_get_callback
    - cmdq_new_state
    - cmdq_append
    - cmdq_insert_after
    - cmdq_get_command
    - cmdq_free_state
    linkageType: ''
    returnType: struct cmdq_item
    signature: "struct cmdq_item *\nkey_bindings_dispatch(struct key_binding *bd,
      struct cmdq_item *item,\n    struct client *c, struct key_event *event, struct
      cmd_find_state *fs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - l
    - n
    argTypes:
    - struct key_binding**
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 728
    functionName: key_bindings_has_repeat
    functionSourceFile: /src/tmux/key-bindings.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int key_bindings_has_repeat(struct key_binding **l, u_int n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/client.c:82,1
    - Dst: open
      Src: /src/tmux/client.c:84,1
    - Dst: log_debug
      Src: /src/tmux/client.c:85,1
    - Dst: strerror
      Src: /src/tmux/client.c:85,1
    - Dst: flock
      Src: /src/tmux/client.c:89,1
    - Dst: log_debug
      Src: /src/tmux/client.c:90,1
    - Dst: strerror
      Src: /src/tmux/client.c:90,1
    - Dst: flock
      Src: /src/tmux/client.c:93,1
    - Dst: close
      Src: /src/tmux/client.c:95,1
    - Dst: log_debug
      Src: /src/tmux/client.c:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - lockfile
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 101
    functionName: client_get_lock
    functionSourceFile: /src/tmux/client.c
    functionUses: 0
    functionsReached:
    - close
    - open
    - flock
    - strerror
    - log_debug
    linkageType: ''
    returnType: int
    signature: int client_get_lock(char *lockfile)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/tmux/client.c:112,1
    - Dst: strlcpy
      Src: /src/tmux/client.c:114,1
    - Dst: log_debug
      Src: /src/tmux/client.c:119,1
    - Dst: socket
      Src: /src/tmux/client.c:122,1
    - Dst: log_debug
      Src: /src/tmux/client.c:125,1
    - Dst: connect
      Src: /src/tmux/client.c:126,1
    - Dst: log_debug
      Src: /src/tmux/client.c:127,1
    - Dst: strerror
      Src: /src/tmux/client.c:127,1
    - Dst: close
      Src: /src/tmux/client.c:134,1
    - Dst: xasprintf
      Src: /src/tmux/client.c:137,1
    - Dst: client_get_lock
      Src: /src/tmux/client.c:138,1
    - Dst: log_debug
      Src: /src/tmux/client.c:139,1
    - Dst: free
      Src: /src/tmux/client.c:141,1
    - Dst: log_debug
      Src: /src/tmux/client.c:147,1
    - Dst: unlink
      Src: /src/tmux/client.c:159,1
    - Dst: free
      Src: /src/tmux/client.c:160,1
    - Dst: close
      Src: /src/tmux/client.c:161,1
    - Dst: server_start
      Src: /src/tmux/client.c:164,1
    - Dst: free
      Src: /src/tmux/client.c:168,1
    - Dst: close
      Src: /src/tmux/client.c:169,1
    - Dst: setblocking
      Src: /src/tmux/client.c:171,1
    - Dst: free
      Src: /src/tmux/client.c:176,1
    - Dst: close
      Src: /src/tmux/client.c:177,1
    - Dst: close
      Src: /src/tmux/client.c:179,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 62
    argCount: 3
    argNames:
    - base
    - path
    - flags
    argTypes:
    - struct event_base*
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 181
    functionName: client_connect
    functionSourceFile: /src/tmux/client.c
    functionUses: 0
    functionsReached:
    - close
    - xasprintf
    - unlink
    - connect
    - server_start
    - strlcpy
    - memset
    - free
    - socket
    - strerror
    - client_get_lock
    - log_debug
    - setblocking
    linkageType: ''
    returnType: int
    signature: int client_connect(struct event_base *base, const char *path, uint64_t
      flags)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/tmux/client.c:194,1
    - Dst: xsnprintf
      Src: /src/tmux/client.c:201,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 220
    functionName: client_exit_message
    functionSourceFile: /src/tmux/client.c
    functionUses: 0
    functionsReached:
    - xsnprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      client_exit_message(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_write_left
      Src: /src/tmux/client.c:226,1
    - Dst: proc_exit
      Src: /src/tmux/client.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 228
    functionName: client_exit
    functionSourceFile: /src/tmux/client.c
    functionUses: 0
    functionsReached:
    - proc_exit
    - file_write_left
    linkageType: ''
    returnType: void
    signature: void client_exit(void)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: args_from_vector
      Src: /src/tmux/client.c:263,1
    - Dst: cmd_parse_from_arguments
      Src: /src/tmux/client.c:264,1
    - Dst: cmd_list_any_have
      Src: /src/tmux/client.c:266,1
    - Dst: cmd_list_free
      Src: /src/tmux/client.c:268,1
    - Dst: free
      Src: /src/tmux/client.c:270,1
    - Dst: args_free_values
      Src: /src/tmux/client.c:271,1
    - Dst: free
      Src: /src/tmux/client.c:272,1
    - Dst: proc_start
      Src: /src/tmux/client.c:276,1
    - Dst: proc_set_signals
      Src: /src/tmux/client.c:277,1
    - Dst: log_debug
      Src: /src/tmux/client.c:281,1
    - Dst: systemd_activated
      Src: /src/tmux/client.c:285,1
    - Dst: server_start
      Src: /src/tmux/client.c:287,1
    - Dst: client_connect
      Src: /src/tmux/client.c:290,1
    - Dst: fprintf
      Src: /src/tmux/client.c:293,1
    - Dst: fprintf
      Src: /src/tmux/client.c:296,1
    - Dst: strerror
      Src: /src/tmux/client.c:297,1
    - Dst: proc_add_peer
      Src: /src/tmux/client.c:301,1
    - Dst: find_cwd
      Src: /src/tmux/client.c:304,1
    - Dst: find_home
      Src: /src/tmux/client.c:304,1
    - Dst: ttyname
      Src: /src/tmux/client.c:306,1
    - Dst: getenv
      Src: /src/tmux/client.c:308,1
    - Dst: pledge
      Src: /src/tmux/client.c:320,1
    - Dst: fatal
      Src: /src/tmux/client.c:323,1
    - Dst: isatty
      Src: /src/tmux/client.c:326,1
    - Dst: tty_term_read_list
      Src: /src/tmux/client.c:328,1
    - Dst: fprintf
      Src: /src/tmux/client.c:330,1
    - Dst: free
      Src: /src/tmux/client.c:331,1
    - Dst: close
      Src: /src/tmux/client.c:337,1
    - Dst: options_free
      Src: /src/tmux/client.c:338,1
    - Dst: options_free
      Src: /src/tmux/client.c:339,1
    - Dst: options_free
      Src: /src/tmux/client.c:340,1
    - Dst: environ_free
      Src: /src/tmux/client.c:341,1
    - Dst: tcgetattr
      Src: /src/tmux/client.c:345,1
    - Dst: fprintf
      Src: /src/tmux/client.c:346,1
    - Dst: strerror
      Src: /src/tmux/client.c:347,1
    - Dst: cfmakeraw
      Src: /src/tmux/client.c:350,1
    - Dst: cfsetispeed
      Src: /src/tmux/client.c:359,1
    - Dst: cfgetispeed
      Src: /src/tmux/client.c:359,1
    - Dst: cfsetospeed
      Src: /src/tmux/client.c:360,1
    - Dst: cfgetospeed
      Src: /src/tmux/client.c:360,1
    - Dst: tcsetattr
      Src: /src/tmux/client.c:361,1
    - Dst: client_send_identify
      Src: /src/tmux/client.c:365,1
    - Dst: tty_term_free_list
      Src: /src/tmux/client.c:366,1
    - Dst: proc_flush_peer
      Src: /src/tmux/client.c:367,1
    - Dst: strlen
      Src: /src/tmux/client.c:374,1
    - Dst: fprintf
      Src: /src/tmux/client.c:376,1
    - Dst: xmalloc
      Src: /src/tmux/client.c:379,1
    - Dst: cmd_pack_argv
      Src: /src/tmux/client.c:383,1
    - Dst: fprintf
      Src: /src/tmux/client.c:384,1
    - Dst: free
      Src: /src/tmux/client.c:385,1
    - Dst: proc_send
      Src: /src/tmux/client.c:391,1
    - Dst: fprintf
      Src: /src/tmux/client.c:392,1
    - Dst: free
      Src: /src/tmux/client.c:393,1
    - Dst: free
      Src: /src/tmux/client.c:396,1
    - Dst: proc_send
      Src: /src/tmux/client.c:398,1
    - Dst: proc_loop
      Src: /src/tmux/client.c:401,1
    - Dst: tcsetattr
      Src: /src/tmux/client.c:406,1
    - Dst: client_exec
      Src: /src/tmux/client.c:407,1
    - Dst: setblocking
      Src: /src/tmux/client.c:411,1
    - Dst: setblocking
      Src: /src/tmux/client.c:412,1
    - Dst: setblocking
      Src: /src/tmux/client.c:413,1
    - Dst: printf
      Src: /src/tmux/client.c:418,1
    - Dst: client_exit_message
      Src: /src/tmux/client.c:418,1
    - Dst: getppid
      Src: /src/tmux/client.c:420,1
    - Dst: kill
      Src: /src/tmux/client.c:422,1
    - Dst: printf
      Src: /src/tmux/client.c:425,1
    - Dst: client_exit_message
      Src: /src/tmux/client.c:425,1
    - Dst: printf
      Src: /src/tmux/client.c:427,1
    - Dst: fflush
      Src: /src/tmux/client.c:428,1
    - Dst: setvbuf
      Src: /src/tmux/client.c:430,1
    - Dst: getline
      Src: /src/tmux/client.c:432,1
    - Dst: free
      Src: /src/tmux/client.c:436,1
    - Dst: printf
      Src: /src/tmux/client.c:439,1
    - Dst: fflush
      Src: /src/tmux/client.c:440,1
    - Dst: tcsetattr
      Src: /src/tmux/client.c:441,1
    - Dst: fprintf
      Src: /src/tmux/client.c:444,1
    - Dst: client_exit_message
      Src: /src/tmux/client.c:444,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 140
    argCount: 5
    argNames:
    - base
    - argc
    - argv
    - flags
    - feat
    argTypes:
    - struct event_base*
    - int
    - char**
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 231
    functionDepth: 4
    functionLinenumber: 231
    functionLinenumberEnd: 446
    functionName: client_main
    functionSourceFile: /src/tmux/client.c
    functionUses: 1
    functionsReached:
    - cmd_parse_from_arguments
    - ttyname
    - systemd_activated
    - cfmakeraw
    - client_exit_message
    - proc_start
    - tty_term_free_list
    - xmalloc
    - args_free_values
    - printf
    - isatty
    - getppid
    - client_connect
    - getenv
    - find_home
    - cmd_list_any_have
    - fatal
    - tcgetattr
    - kill
    - fflush
    - getline
    - strerror
    - cfsetospeed
    - log_debug
    - strlen
    - fprintf
    - args_from_vector
    - close
    - cmd_list_free
    - proc_add_peer
    - tty_term_read_list
    - client_send_identify
    - options_free
    - cfgetospeed
    - find_cwd
    - pledge
    - proc_flush_peer
    - setblocking
    - setvbuf
    - proc_send
    - environ_free
    - client_exec
    - cfgetispeed
    - proc_set_signals
    - cmd_pack_argv
    - tcsetattr
    - cfsetispeed
    - free
    - proc_loop
    - server_start
    linkageType: ''
    returnType: int
    signature: "int client_main(struct event_base *base, int argc, char **argv, uint64_t
      flags,\n    int feat)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: proc_send
      Src: /src/tmux/client.c:460,1
    - Dst: proc_send
      Src: /src/tmux/client.c:461,1
    - Dst: proc_send
      Src: /src/tmux/client.c:464,1
    - Dst: strlen
      Src: /src/tmux/client.c:465,1
    - Dst: proc_send
      Src: /src/tmux/client.c:466,1
    - Dst: proc_send
      Src: /src/tmux/client.c:468,1
    - Dst: strlen
      Src: /src/tmux/client.c:469,1
    - Dst: proc_send
      Src: /src/tmux/client.c:470,1
    - Dst: strlen
      Src: /src/tmux/client.c:470,1
    - Dst: proc_send
      Src: /src/tmux/client.c:473,1
    - Dst: strlen
      Src: /src/tmux/client.c:474,1
    - Dst: dup
      Src: /src/tmux/client.c:477,1
    - Dst: fatal
      Src: /src/tmux/client.c:478,1
    - Dst: proc_send
      Src: /src/tmux/client.c:479,1
    - Dst: dup
      Src: /src/tmux/client.c:480,1
    - Dst: fatal
      Src: /src/tmux/client.c:481,1
    - Dst: proc_send
      Src: /src/tmux/client.c:482,1
    - Dst: getpid
      Src: /src/tmux/client.c:484,1
    - Dst: proc_send
      Src: /src/tmux/client.c:485,1
    - Dst: strlen
      Src: /src/tmux/client.c:488,1
    - Dst: proc_send
      Src: /src/tmux/client.c:491,1
    - Dst: proc_send
      Src: /src/tmux/client.c:494,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 6
    argNames:
    - ttynam
    - termname
    - caps
    - ncaps
    - cwd
    - feat
    argTypes:
    - char*
    - char*
    - char**
    - u_int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 449
    functionDepth: 3
    functionLinenumber: 449
    functionLinenumberEnd: 495
    functionName: client_send_identify
    functionSourceFile: /src/tmux/client.c
    functionUses: 1
    functionsReached:
    - proc_send
    - fatal
    - dup
    - getpid
    - strlen
    linkageType: ''
    returnType: void
    signature: "void client_send_identify(const char *ttynam, const char *termname,
      char **caps,\n    u_int ncaps, const char *cwd, int feat)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/client.c:503,1
    - Dst: shell_argv0
      Src: /src/tmux/client.c:504,1
    - Dst: setenv
      Src: /src/tmux/client.c:505,1
    - Dst: proc_clear_signals
      Src: /src/tmux/client.c:507,1
    - Dst: setblocking
      Src: /src/tmux/client.c:509,1
    - Dst: setblocking
      Src: /src/tmux/client.c:510,1
    - Dst: setblocking
      Src: /src/tmux/client.c:511,1
    - Dst: closefrom
      Src: /src/tmux/client.c:512,1
    - Dst: execl
      Src: /src/tmux/client.c:514,1
    - Dst: fatal
      Src: /src/tmux/client.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - shell
    - shellcmd
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 516
    functionName: client_exec
    functionSourceFile: /src/tmux/client.c
    functionUses: 1
    functionsReached:
    - setenv
    - execl
    - closefrom
    - fatal
    - proc_clear_signals
    - shell_argv0
    - log_debug
    - setblocking
    linkageType: ''
    returnType: __dead
    signature: __dead client_exec(const char *shell, const char *shellcmd)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/client.c:526,1
    - Dst: strsignal
      Src: /src/tmux/client.c:526,1
    - Dst: waitpid
      Src: /src/tmux/client.c:529,1
    - Dst: log_debug
      Src: /src/tmux/client.c:535,1
    - Dst: strerror
      Src: /src/tmux/client.c:536,1
    - Dst: proc_exit
      Src: /src/tmux/client.c:541,1
    - Dst: proc_send
      Src: /src/tmux/client.c:547,1
    - Dst: proc_send
      Src: /src/tmux/client.c:553,1
    - Dst: proc_send
      Src: /src/tmux/client.c:556,1
    - Dst: memset
      Src: /src/tmux/client.c:559,1
    - Dst: sigemptyset
      Src: /src/tmux/client.c:560,1
    - Dst: sigaction
      Src: /src/tmux/client.c:563,1
    - Dst: fatal
      Src: /src/tmux/client.c:564,1
    - Dst: proc_send
      Src: /src/tmux/client.c:565,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 519
    functionDepth: 3
    functionLinenumber: 519
    functionLinenumberEnd: 570
    functionName: client_signal
    functionSourceFile: /src/tmux/client.c
    functionUses: 0
    functionsReached:
    - proc_send
    - proc_exit
    - sigaction
    - sigemptyset
    - fatal
    - strsignal
    - memset
    - strerror
    - log_debug
    - waitpid
    linkageType: ''
    returnType: void
    signature: void client_signal(int sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: client_exit
      Src: /src/tmux/client.c:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 6
    argNames:
    - c
    - path
    - error
    - closed
    - buffer
    - data
    argTypes:
    - __unused*
    - __unused*
    - __unused
    - __unused
    - __unused*
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 573
    functionDepth: 3
    functionLinenumber: 573
    functionLinenumberEnd: 580
    functionName: client_file_check_cb
    functionSourceFile: /src/tmux/client.c
    functionUses: 0
    functionsReached:
    - client_exit
    linkageType: ''
    returnType: void
    signature: "void client_file_check_cb(__unused struct client *c, __unused const
      char *path,\n    __unused int error, __unused int closed, __unused struct evbuffer
      *buffer,\n    __unused void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: proc_exit
      Src: /src/tmux/client.c:591,1
    - Dst: client_dispatch_attached
      Src: /src/tmux/client.c:596,1
    - Dst: client_dispatch_wait
      Src: /src/tmux/client.c:598,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - imsg
    - arg
    argTypes:
    - struct imsg*
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 583
    functionDepth: 2
    functionLinenumber: 583
    functionLinenumberEnd: 599
    functionName: client_dispatch
    functionSourceFile: /src/tmux/client.c
    functionUses: 0
    functionsReached:
    - proc_exit
    - client_dispatch_wait
    - client_dispatch_attached
    linkageType: ''
    returnType: void
    signature: void client_dispatch(struct imsg *imsg, __unused void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fatalx
      Src: /src/tmux/client.c:608,1
    - Dst: memcpy
      Src: /src/tmux/client.c:611,1
    - Dst: xmalloc
      Src: /src/tmux/client.c:619,1
    - Dst: memcpy
      Src: /src/tmux/client.c:620,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - data
    - datalen
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 625
    functionName: client_dispatch_exit_message
    functionSourceFile: /src/tmux/client.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - fatalx
    - memcpy
    linkageType: ''
    returnType: void
    signature: void client_dispatch_exit_message(char *data, size_t datalen)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: pledge
      Src: /src/tmux/client.c:642,1
    - Dst: fatal
      Src: /src/tmux/client.c:645,1
    - Dst: client_dispatch_exit_message
      Src: /src/tmux/client.c:655,1
    - Dst: client_exit
      Src: /src/tmux/client.c:657,1
    - Dst: fatalx
      Src: /src/tmux/client.c:661,1
    - Dst: proc_send
      Src: /src/tmux/client.c:664,1
    - Dst: fatalx
      Src: /src/tmux/client.c:668,1
    - Dst: fprintf
      Src: /src/tmux/client.c:670,1
    - Dst: proc_exit
      Src: /src/tmux/client.c:674,1
    - Dst: fatalx
      Src: /src/tmux/client.c:678,1
    - Dst: memcpy
      Src: /src/tmux/client.c:680,1
    - Dst: log_debug
      Src: /src/tmux/client.c:681,1
    - Dst: fatalx
      Src: /src/tmux/client.c:686,1
    - Dst: client_exec
      Src: /src/tmux/client.c:688,1
    - Dst: proc_send
      Src: /src/tmux/client.c:692,1
    - Dst: proc_exit
      Src: /src/tmux/client.c:695,1
    - Dst: file_read_open
      Src: /src/tmux/client.c:698,1
    - Dst: file_read_cancel
      Src: /src/tmux/client.c:703,1
    - Dst: file_write_open
      Src: /src/tmux/client.c:706,1
    - Dst: file_write_data
      Src: /src/tmux/client.c:711,1
    - Dst: file_write_close
      Src: /src/tmux/client.c:714,1
    - Dst: fprintf
      Src: /src/tmux/client.c:719,1
    - Dst: proc_exit
      Src: /src/tmux/client.c:720,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 67
    argCount: 1
    argNames:
    - imsg
    argTypes:
    - struct imsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 628
    functionDepth: 4
    functionLinenumber: 628
    functionLinenumberEnd: 723
    functionName: client_dispatch_wait
    functionSourceFile: /src/tmux/client.c
    functionUses: 1
    functionsReached:
    - proc_send
    - client_exit
    - proc_exit
    - client_exec
    - fatal
    - fatalx
    - file_write_data
    - file_read_open
    - file_write_close
    - client_dispatch_exit_message
    - pledge
    - memcpy
    - log_debug
    - fprintf
    - file_read_cancel
    - file_write_open
    linkageType: ''
    returnType: void
    signature: void client_dispatch_wait(struct imsg *imsg)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: fatalx
      Src: /src/tmux/client.c:739,1
    - Dst: memcpy
      Src: /src/tmux/client.c:741,1
    - Dst: log_debug
      Src: /src/tmux/client.c:742,1
    - Dst: fatalx
      Src: /src/tmux/client.c:748,1
    - Dst: xstrdup
      Src: /src/tmux/client.c:750,1
    - Dst: proc_send
      Src: /src/tmux/client.c:756,1
    - Dst: strlen
      Src: /src/tmux/client.c:760,1
    - Dst: fatalx
      Src: /src/tmux/client.c:761,1
    - Dst: xstrdup
      Src: /src/tmux/client.c:762,1
    - Dst: xstrdup
      Src: /src/tmux/client.c:763,1
    - Dst: strlen
      Src: /src/tmux/client.c:763,1
    - Dst: proc_send
      Src: /src/tmux/client.c:766,1
    - Dst: client_dispatch_exit_message
      Src: /src/tmux/client.c:769,1
    - Dst: proc_send
      Src: /src/tmux/client.c:772,1
    - Dst: fatalx
      Src: /src/tmux/client.c:776,1
    - Dst: proc_exit
      Src: /src/tmux/client.c:778,1
    - Dst: fatalx
      Src: /src/tmux/client.c:782,1
    - Dst: proc_send
      Src: /src/tmux/client.c:784,1
    - Dst: fatalx
      Src: /src/tmux/client.c:790,1
    - Dst: memset
      Src: /src/tmux/client.c:792,1
    - Dst: sigemptyset
      Src: /src/tmux/client.c:793,1
    - Dst: sigaction
      Src: /src/tmux/client.c:796,1
    - Dst: fatal
      Src: /src/tmux/client.c:797,1
    - Dst: kill
      Src: /src/tmux/client.c:799,1
    - Dst: getpid
      Src: /src/tmux/client.c:799,1
    - Dst: fatalx
      Src: /src/tmux/client.c:803,1
    - Dst: system
      Src: /src/tmux/client.c:805,1
    - Dst: proc_send
      Src: /src/tmux/client.c:806,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 66
    argCount: 1
    argNames:
    - imsg
    argTypes:
    - struct imsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 726
    functionDepth: 3
    functionLinenumber: 726
    functionLinenumberEnd: 809
    functionName: client_dispatch_attached
    functionSourceFile: /src/tmux/client.c
    functionUses: 1
    functionsReached:
    - proc_send
    - proc_exit
    - sigaction
    - sigemptyset
    - fatal
    - kill
    - fatalx
    - system
    - memset
    - memcpy
    - client_dispatch_exit_message
    - getpid
    - log_debug
    - strlen
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void client_dispatch_attached(struct imsg *imsg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-show-messages.c:51,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/cmd-show-messages.c:52,1
    - Dst: LIST_FOREACH
      Src: /src/tmux/cmd-show-messages.c:57,1
    - Dst: args_has
      Src: /src/tmux/cmd-show-messages.c:58,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-show-messages.c:61,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-show-messages.c:64,1
    - Dst: tty_term_ncodes
      Src: /src/tmux/cmd-show-messages.c:67,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-show-messages.c:68,1
    - Dst: tty_term_describe
      Src: /src/tmux/cmd-show-messages.c:68,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - self
    - item
    - blank
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 71
    functionName: cmd_show_messages_terminals
    functionSourceFile: /src/tmux/cmd-show-messages.c
    functionUses: 0
    functionsReached:
    - LIST_FOREACH
    - cmdq_print
    - cmd_get_args
    - cmdq_get_target_client
    - tty_term_describe
    - tty_term_ncodes
    - args_has
    linkageType: ''
    returnType: int
    signature: int cmd_show_messages_terminals(struct cmd *self, struct cmdq_item
      *item, int blank)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-show-messages.c:76,1
    - Dst: args_has
      Src: /src/tmux/cmd-show-messages.c:83,1
    - Dst: cmd_show_messages_terminals
      Src: /src/tmux/cmd-show-messages.c:84,1
    - Dst: args_has
      Src: /src/tmux/cmd-show-messages.c:87,1
    - Dst: job_print_summary
      Src: /src/tmux/cmd-show-messages.c:88,1
    - Dst: format_create_from_target
      Src: /src/tmux/cmd-show-messages.c:94,1
    - Dst: TAILQ_FOREACH_REVERSE
      Src: /src/tmux/cmd-show-messages.c:95,1
    - Dst: format_add
      Src: /src/tmux/cmd-show-messages.c:96,1
    - Dst: format_add
      Src: /src/tmux/cmd-show-messages.c:97,1
    - Dst: format_add_tv
      Src: /src/tmux/cmd-show-messages.c:98,1
    - Dst: format_expand
      Src: /src/tmux/cmd-show-messages.c:100,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-show-messages.c:101,1
    - Dst: free
      Src: /src/tmux/cmd-show-messages.c:102,1
    - Dst: format_free
      Src: /src/tmux/cmd-show-messages.c:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 107
    functionName: cmd_show_messages_exec
    functionSourceFile: /src/tmux/cmd-show-messages.c
    functionUses: 0
    functionsReached:
    - format_create_from_target
    - format_add_tv
    - cmdq_print
    - format_expand
    - cmd_get_args
    - job_print_summary
    - format_free
    - TAILQ_FOREACH_REVERSE
    - free
    - format_add
    - cmd_show_messages_terminals
    - args_has
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_show_messages_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: args_has
      Src: /src/tmux/cmd-run-shell.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - args
    - u_int
    - cause
    argTypes:
    - struct args*
    - __unused
    - __unused**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: cmd_run_shell_args_parse
    functionSourceFile: /src/tmux/cmd-run-shell.c
    functionUses: 0
    functionsReached:
    - args_has
    linkageType: ''
    returnType: enum args_parse_type
    signature: "enum args_parse_type cmd_run_shell_args_parse(struct args *args, __unused
      u_int idx,\n    __unused char **cause)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: job_get_data
      Src: /src/tmux/cmd-run-shell.c:81,1
    - Dst: window_pane_find_by_id
      Src: /src/tmux/cmd-run-shell.c:87,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-run-shell.c:90,1
    - Dst: server_client_get_pane
      Src: /src/tmux/cmd-run-shell.c:94,1
    - Dst: cmd_find_from_nothing
      Src: /src/tmux/cmd-run-shell.c:95,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/cmd-run-shell.c:101,1
    - Dst: window_pane_set_mode
      Src: /src/tmux/cmd-run-shell.c:103,1
    - Dst: window_copy_add
      Src: /src/tmux/cmd-run-shell.c:104,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 2
    argNames:
    - job
    - msg
    argTypes:
    - struct job*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 78
    functionDepth: 4
    functionLinenumber: 78
    functionLinenumberEnd: 105
    functionName: cmd_run_shell_print
    functionSourceFile: /src/tmux/cmd-run-shell.c
    functionUses: 0
    functionsReached:
    - window_copy_add
    - cmdq_print
    - TAILQ_FIRST
    - window_pane_set_mode
    - cmd_find_from_nothing
    - server_client_get_pane
    - window_pane_find_by_id
    - job_get_data
    linkageType: ''
    returnType: void
    signature: void cmd_run_shell_print(struct job *job, const char *msg)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-run-shell.c:110,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-run-shell.c:111,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-run-shell.c:113,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/cmd-run-shell.c:114,1
    - Dst: args_has
      Src: /src/tmux/cmd-run-shell.c:121,1
    - Dst: args_get
      Src: /src/tmux/cmd-run-shell.c:123,1
    - Dst: strtod
      Src: /src/tmux/cmd-run-shell.c:124,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-run-shell.c:126,1
    - Dst: args_count
      Src: /src/tmux/cmd-run-shell.c:129,1
    - Dst: xcalloc
      Src: /src/tmux/cmd-run-shell.c:132,1
    - Dst: args_has
      Src: /src/tmux/cmd-run-shell.c:133,1
    - Dst: args_string
      Src: /src/tmux/cmd-run-shell.c:134,1
    - Dst: format_single_from_target
      Src: /src/tmux/cmd-run-shell.c:136,1
    - Dst: args_make_commands_prepare
      Src: /src/tmux/cmd-run-shell.c:138,1
    - Dst: args_has
      Src: /src/tmux/cmd-run-shell.c:142,1
    - Dst: args_has
      Src: /src/tmux/cmd-run-shell.c:156,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-run-shell.c:157,1
    - Dst: args_get
      Src: /src/tmux/cmd-run-shell.c:157,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-run-shell.c:159,1
    - Dst: server_client_get_cwd
      Src: /src/tmux/cmd-run-shell.c:159,1
    - Dst: args_has
      Src: /src/tmux/cmd-run-shell.c:161,1
    - Dst: session_add_ref
      Src: /src/tmux/cmd-run-shell.c:166,1
    - Dst: evtimer_set
      Src: /src/tmux/cmd-run-shell.c:168,1
    - Dst: timerclear
      Src: /src/tmux/cmd-run-shell.c:170,1
    - Dst: evtimer_add
      Src: /src/tmux/cmd-run-shell.c:173,1
    - Dst: event_active
      Src: /src/tmux/cmd-run-shell.c:175,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 180
    functionName: cmd_run_shell_exec
    functionSourceFile: /src/tmux/cmd-run-shell.c
    functionUses: 0
    functionsReached:
    - evtimer_add
    - cmdq_get_client
    - evtimer_set
    - args_count
    - args_has
    - session_add_ref
    - args_string
    - xcalloc
    - format_single_from_target
    - cmdq_get_target_client
    - args_get
    - timerclear
    - xstrdup
    - strtod
    - event_active
    - cmd_get_args
    - cmdq_get_target
    - args_make_commands_prepare
    - cmdq_error
    - server_client_get_cwd
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_run_shell_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_continue
      Src: /src/tmux/cmd-run-shell.c:195,1
    - Dst: cmd_run_shell_free
      Src: /src/tmux/cmd-run-shell.c:196,1
    - Dst: job_run
      Src: /src/tmux/cmd-run-shell.c:199,1
    - Dst: status_message_set
      Src: /src/tmux/cmd-run-shell.c:203,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-run-shell.c:206,1
    - Dst: cmdq_continue
      Src: /src/tmux/cmd-run-shell.c:208,1
    - Dst: cmd_run_shell_free
      Src: /src/tmux/cmd-run-shell.c:210,1
    - Dst: args_make_commands
      Src: /src/tmux/cmd-run-shell.c:215,1
    - Dst: toupper
      Src: /src/tmux/cmd-run-shell.c:218,1
    - Dst: status_message_set
      Src: /src/tmux/cmd-run-shell.c:219,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-run-shell.c:221,1
    - Dst: free
      Src: /src/tmux/cmd-run-shell.c:222,1
    - Dst: cmdq_get_command
      Src: /src/tmux/cmd-run-shell.c:224,1
    - Dst: cmdq_append
      Src: /src/tmux/cmd-run-shell.c:225,1
    - Dst: cmdq_get_command
      Src: /src/tmux/cmd-run-shell.c:227,1
    - Dst: cmdq_get_state
      Src: /src/tmux/cmd-run-shell.c:227,1
    - Dst: cmdq_insert_after
      Src: /src/tmux/cmd-run-shell.c:228,1
    - Dst: cmdq_continue
      Src: /src/tmux/cmd-run-shell.c:232,1
    - Dst: cmd_run_shell_free
      Src: /src/tmux/cmd-run-shell.c:233,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - int
    - events
    - arg
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 234
    functionName: cmd_run_shell_timer
    functionSourceFile: /src/tmux/cmd-run-shell.c
    functionUses: 0
    functionsReached:
    - job_run
    - cmdq_continue
    - cmdq_error
    - cmdq_append
    - cmd_run_shell_free
    - toupper
    - cmdq_get_state
    - cmdq_insert_after
    - free
    - cmdq_get_command
    - args_make_commands
    - status_message_set
    linkageType: ''
    returnType: void
    signature: void cmd_run_shell_timer(__unused int fd, __unused short events, void*
      arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: job_get_data
      Src: /src/tmux/cmd-run-shell.c:239,1
    - Dst: job_get_event
      Src: /src/tmux/cmd-run-shell.c:240,1
    - Dst: evbuffer_readln
      Src: /src/tmux/cmd-run-shell.c:247,1
    - Dst: cmd_run_shell_print
      Src: /src/tmux/cmd-run-shell.c:249,1
    - Dst: free
      Src: /src/tmux/cmd-run-shell.c:250,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/cmd-run-shell.c:254,1
    - Dst: xmalloc
      Src: /src/tmux/cmd-run-shell.c:256,1
    - Dst: memcpy
      Src: /src/tmux/cmd-run-shell.c:257,1
    - Dst: EVBUFFER_DATA
      Src: /src/tmux/cmd-run-shell.c:257,1
    - Dst: cmd_run_shell_print
      Src: /src/tmux/cmd-run-shell.c:260,1
    - Dst: free
      Src: /src/tmux/cmd-run-shell.c:262,1
    - Dst: job_get_status
      Src: /src/tmux/cmd-run-shell.c:265,1
    - Dst: WIFEXITED
      Src: /src/tmux/cmd-run-shell.c:266,1
    - Dst: WEXITSTATUS
      Src: /src/tmux/cmd-run-shell.c:267,1
    - Dst: xasprintf
      Src: /src/tmux/cmd-run-shell.c:268,1
    - Dst: WIFSIGNALED
      Src: /src/tmux/cmd-run-shell.c:269,1
    - Dst: WTERMSIG
      Src: /src/tmux/cmd-run-shell.c:270,1
    - Dst: xasprintf
      Src: /src/tmux/cmd-run-shell.c:271,1
    - Dst: cmd_run_shell_print
      Src: /src/tmux/cmd-run-shell.c:276,1
    - Dst: free
      Src: /src/tmux/cmd-run-shell.c:277,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-run-shell.c:280,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-run-shell.c:281,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-run-shell.c:282,1
    - Dst: cmdq_continue
      Src: /src/tmux/cmd-run-shell.c:283,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 1
    argNames:
    - job
    argTypes:
    - struct job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 236
    functionDepth: 5
    functionLinenumber: 236
    functionLinenumberEnd: 285
    functionName: cmd_run_shell_callback
    functionSourceFile: /src/tmux/cmd-run-shell.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - cmd_run_shell_print
    - job_get_status
    - cmdq_continue
    - EVBUFFER_DATA
    - EVBUFFER_LENGTH
    - xmalloc
    - WIFEXITED
    - evbuffer_readln
    - WTERMSIG
    - free
    - memcpy
    - WIFSIGNALED
    - cmdq_get_client
    - job_get_event
    - WEXITSTATUS
    - job_get_data
    linkageType: ''
    returnType: void
    signature: void cmd_run_shell_callback(struct job *job)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evtimer_del
      Src: /src/tmux/cmd-run-shell.c:292,1
    - Dst: session_remove_ref
      Src: /src/tmux/cmd-run-shell.c:294,1
    - Dst: server_client_unref
      Src: /src/tmux/cmd-run-shell.c:296,1
    - Dst: args_make_commands_free
      Src: /src/tmux/cmd-run-shell.c:298,1
    - Dst: free
      Src: /src/tmux/cmd-run-shell.c:299,1
    - Dst: free
      Src: /src/tmux/cmd-run-shell.c:300,1
    - Dst: free
      Src: /src/tmux/cmd-run-shell.c:301,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 302
    functionName: cmd_run_shell_free
    functionSourceFile: /src/tmux/cmd-run-shell.c
    functionUses: 1
    functionsReached:
    - session_remove_ref
    - evtimer_del
    - server_client_unref
    - args_make_commands_free
    - free
    linkageType: ''
    returnType: void
    signature: void cmd_run_shell_free(void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evtimer_del
      Src: /src/tmux/window-copy.c:353,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window-copy.c:355,1
    - Dst: evtimer_add
      Src: /src/tmux/window-copy.c:359,1
    - Dst: window_copy_cursor_up
      Src: /src/tmux/window-copy.c:360,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:361,1
    - Dst: evtimer_add
      Src: /src/tmux/window-copy.c:362,1
    - Dst: window_copy_cursor_down
      Src: /src/tmux/window-copy.c:363,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - int
    - events
    - arg
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 365
    functionName: window_copy_scroll_timer
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cursor_up
    - evtimer_add
    - screen_size_y
    - evtimer_del
    - TAILQ_FIRST
    - window_copy_cursor_down
    linkageType: ''
    returnType: void
    signature: void window_copy_scroll_timer(__unused int fd, __unused short events,
      void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/window-copy.c:376,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:378,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:378,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:380,1
    - Dst: grid_peek_line
      Src: /src/tmux/window-copy.c:381,1
    - Dst: log_debug
      Src: /src/tmux/window-copy.c:387,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:388,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:388,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:389,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:389,1
    - Dst: screen_init
      Src: /src/tmux/window-copy.c:390,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:390,1
    - Dst: screen_hlimit
      Src: /src/tmux/window-copy.c:390,1
    - Dst: grid_duplicate_lines
      Src: /src/tmux/window-copy.c:397,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:399,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:400,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:412,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:413,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:413,1
    - Dst: grid_wrap_position
      Src: /src/tmux/window-copy.c:418,1
    - Dst: screen_resize_cursor
      Src: /src/tmux/window-copy.c:419,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:419,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:419,1
    - Dst: grid_unwrap_position
      Src: /src/tmux/window-copy.c:422,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 5
    argNames:
    - src
    - hint
    - cx
    - cy
    - trim
    argTypes:
    - struct screen*
    - struct screen*
    - u_int*
    - u_int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 367
    functionDepth: 3
    functionLinenumber: 367
    functionLinenumberEnd: 425
    functionName: window_copy_clone_screen
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - grid_unwrap_position
    - grid_peek_line
    - screen_size_y
    - screen_init
    - grid_duplicate_lines
    - grid_wrap_position
    - screen_size_x
    - screen_hlimit
    - xcalloc
    - screen_hsize
    - log_debug
    - screen_resize_cursor
    linkageType: ''
    returnType: struct screen
    signature: "struct screen *\nwindow_copy_clone_screen(struct screen *src, struct
      screen *hint, u_int *cx,\n    u_int *cy, int trim)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/window-copy.c:434,1
    - Dst: xstrdup
      Src: /src/tmux/window-copy.c:443,1
    - Dst: screen_init
      Src: /src/tmux/window-copy.c:456,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:456,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:456,1
    - Dst: screen_set_default_cursor
      Src: /src/tmux/window-copy.c:457,1
    - Dst: options_get_number
      Src: /src/tmux/window-copy.c:458,1
    - Dst: evtimer_set
      Src: /src/tmux/window-copy.c:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 463
    functionName: window_copy_common_init
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - screen_size_y
    - screen_init
    - screen_size_x
    - screen_set_default_cursor
    - xcalloc
    - evtimer_set
    - options_get_number
    - xstrdup
    linkageType: ''
    returnType: struct window_copy_mode_data
    signature: 'struct window_copy_mode_data *

      window_copy_common_init(struct window_mode_entry *wme)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_common_init
      Src: /src/tmux/window-copy.c:475,1
    - Dst: window_copy_clone_screen
      Src: /src/tmux/window-copy.c:476,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:480,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:482,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:484,1
    - Dst: args_has
      Src: /src/tmux/window-copy.c:488,1
    - Dst: args_has
      Src: /src/tmux/window-copy.c:489,1
    - Dst: hyperlinks_free
      Src: /src/tmux/window-copy.c:492,1
    - Dst: hyperlinks_copy
      Src: /src/tmux/window-copy.c:493,1
    - Dst: window_copy_cursor_offset
      Src: /src/tmux/window-copy.c:495,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:496,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:499,1
    - Dst: screen_write_start
      Src: /src/tmux/window-copy.c:502,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:503,1
    - Dst: window_copy_write_line
      Src: /src/tmux/window-copy.c:504,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-copy.c:505,1
    - Dst: window_copy_cursor_offset
      Src: /src/tmux/window-copy.c:505,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:506,1
    - Dst: screen_write_stop
      Src: /src/tmux/window-copy.c:507,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 3
    argNames:
    - wme
    - fs
    - args
    argTypes:
    - struct window_mode_entry*
    - __unused*
    - struct args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 465
    functionDepth: 4
    functionLinenumber: 465
    functionLinenumberEnd: 513
    functionName: window_copy_init
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - hyperlinks_free
    - screen_size_y
    - window_copy_cursor_offset
    - screen_size_x
    - screen_write_cursormove
    - window_copy_common_init
    - screen_hsize
    - hyperlinks_copy
    - window_copy_write_line
    - window_copy_clone_screen
    - screen_write_start
    - screen_write_stop
    - args_has
    linkageType: ''
    returnType: struct screen
    signature: "struct screen *\nwindow_copy_init(struct window_mode_entry *wme,\n
      \   __unused struct cmd_find_state *fs, struct args *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:522,1
    - Dst: window_copy_common_init
      Src: /src/tmux/window-copy.c:524,1
    - Dst: xmalloc
      Src: /src/tmux/window-copy.c:528,1
    - Dst: screen_init
      Src: /src/tmux/window-copy.c:529,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:529,1
    - Dst: input_init
      Src: /src/tmux/window-copy.c:530,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - wme
    - fs
    - args
    argTypes:
    - struct window_mode_entry*
    - __unused*
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 536
    functionName: window_copy_view_init
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - screen_size_y
    - screen_init
    - screen_size_x
    - input_init
    - xmalloc
    - window_copy_common_init
    - screen_hsize
    linkageType: ''
    returnType: struct screen
    signature: "struct screen *\nwindow_copy_view_init(struct window_mode_entry *wme,\n
      \   __unused struct cmd_find_state *fs, __unused struct args *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evtimer_del
      Src: /src/tmux/window-copy.c:543,1
    - Dst: free
      Src: /src/tmux/window-copy.c:545,1
    - Dst: free
      Src: /src/tmux/window-copy.c:546,1
    - Dst: free
      Src: /src/tmux/window-copy.c:547,1
    - Dst: input_free
      Src: /src/tmux/window-copy.c:550,1
    - Dst: screen_free
      Src: /src/tmux/window-copy.c:551,1
    - Dst: free
      Src: /src/tmux/window-copy.c:552,1
    - Dst: screen_free
      Src: /src/tmux/window-copy.c:554,1
    - Dst: free
      Src: /src/tmux/window-copy.c:555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 538
    functionDepth: 2
    functionLinenumber: 538
    functionLinenumberEnd: 556
    functionName: window_copy_free
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - evtimer_del
    - free
    - input_free
    - screen_free
    linkageType: ''
    returnType: void
    signature: void window_copy_free(struct window_mode_entry *wme)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/tmux/window-copy.c:563,1
    - Dst: window_copy_vadd
      Src: /src/tmux/window-copy.c:564,1
    - Dst: va_end
      Src: /src/tmux/window-copy.c:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - wp
    - parse
    - fmt
    argTypes:
    - struct window_pane*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 566
    functionName: window_copy_add
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - window_copy_vadd
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void window_copy_add(struct window_pane *wp, int parse, const char
      *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/window-copy.c:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - ttyctx
    argTypes:
    - __unused*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 577
    functionName: window_copy_init_ctx_cb
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void window_copy_init_ctx_cb(__unused struct screen_write_ctx *ctx,\n
      \   struct tty_ctx *ttyctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window-copy.c:582,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:590,1
    - Dst: screen_write_start
      Src: /src/tmux/window-copy.c:591,1
    - Dst: screen_write_carriagereturn
      Src: /src/tmux/window-copy.c:597,1
    - Dst: screen_write_linefeed
      Src: /src/tmux/window-copy.c:598,1
    - Dst: vasprintf
      Src: /src/tmux/window-copy.c:603,1
    - Dst: input_parse_screen
      Src: /src/tmux/window-copy.c:604,1
    - Dst: strlen
      Src: /src/tmux/window-copy.c:605,1
    - Dst: free
      Src: /src/tmux/window-copy.c:606,1
    - Dst: memcpy
      Src: /src/tmux/window-copy.c:608,1
    - Dst: screen_write_vnputs
      Src: /src/tmux/window-copy.c:609,1
    - Dst: screen_write_stop
      Src: /src/tmux/window-copy.c:611,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:613,1
    - Dst: screen_write_start_pane
      Src: /src/tmux/window-copy.c:615,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:621,1
    - Dst: window_copy_redraw_lines
      Src: /src/tmux/window-copy.c:622,1
    - Dst: window_copy_redraw_lines
      Src: /src/tmux/window-copy.c:625,1
    - Dst: screen_write_stop
      Src: /src/tmux/window-copy.c:627,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 4
    argNames:
    - wp
    - parse
    - fmt
    - ap
    argTypes:
    - struct window_pane*
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 579
    functionDepth: 3
    functionLinenumber: 579
    functionLinenumberEnd: 628
    functionName: window_copy_vadd
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - input_parse_screen
    - screen_write_carriagereturn
    - screen_write_start_pane
    - TAILQ_FIRST
    - screen_write_vnputs
    - screen_hsize
    - free
    - screen_write_linefeed
    - memcpy
    - vasprintf
    - strlen
    - screen_write_start
    - screen_write_stop
    - window_copy_redraw_lines
    linkageType: ''
    returnType: void
    signature: void window_copy_vadd(struct window_pane *wp, int parse, const char
      *fmt, va_list ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window-copy.c:634,1
    - Dst: window_set_active_pane
      Src: /src/tmux/window-copy.c:637,1
    - Dst: window_copy_scroll1
      Src: /src/tmux/window-copy.c:638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - wp
    - sl_mpos
    - my
    - scroll_exit
    argTypes:
    - struct window_pane*
    - int
    - u_int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 630
    functionDepth: 3
    functionLinenumber: 630
    functionLinenumberEnd: 640
    functionName: window_copy_scroll
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - window_copy_scroll1
    - TAILQ_FIRST
    - window_set_active_pane
    linkageType: ''
    returnType: void
    signature: "void window_copy_scroll(struct window_pane *wp, int sl_mpos, u_int
      my,\n    int scroll_exit)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:651,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window-copy.c:669,1
    - Dst: window_copy_get_current_offset
      Src: /src/tmux/window-copy.c:670,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:684,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:685,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:695,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:696,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:719,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:720,1
    - Dst: window_copy_cursor_end_of_line
      Src: /src/tmux/window-copy.c:723,1
    - Dst: window_pane_reset_mode
      Src: /src/tmux/window-copy.c:727,1
    - Dst: window_copy_search_marks
      Src: /src/tmux/window-copy.c:732,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:733,1
    - Dst: window_copy_redraw_screen
      Src: /src/tmux/window-copy.c:734,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 5
    argNames:
    - wme
    - wp
    - sl_mpos
    - my
    - scroll_exit
    argTypes:
    - struct window_mode_entry*
    - struct window_pane*
    - int
    - u_int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 642
    functionDepth: 2
    functionLinenumber: 642
    functionLinenumberEnd: 735
    functionName: window_copy_scroll1
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - window_copy_redraw_screen
    - screen_size_y
    - window_copy_cursor_end_of_line
    - TAILQ_FIRST
    - screen_hsize
    - window_copy_search_marks
    - window_copy_update_selection
    - window_copy_find_length
    - window_copy_get_current_offset
    - window_pane_reset_mode
    linkageType: ''
    returnType: void
    signature: "void window_copy_scroll1(struct window_mode_entry *wme, struct window_pane
      *wp,\n    int sl_mpos, u_int my, int scroll_exit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_pageup1
      Src: /src/tmux/window-copy.c:740,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window-copy.c:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wp
    - half_page
    argTypes:
    - struct window_pane*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 741
    functionName: window_copy_pageup
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - window_copy_pageup1
    - TAILQ_FIRST
    linkageType: ''
    returnType: void
    signature: void window_copy_pageup(struct window_pane *wp, int half_page)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:750,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:751,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:760,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:762,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:764,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:767,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:768,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:777,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:778,1
    - Dst: window_copy_cursor_end_of_line
      Src: /src/tmux/window-copy.c:781,1
    - Dst: window_copy_search_marks
      Src: /src/tmux/window-copy.c:785,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:786,1
    - Dst: window_copy_redraw_screen
      Src: /src/tmux/window-copy.c:787,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - wme
    - half_page
    argTypes:
    - struct window_mode_entry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 788
    functionName: window_copy_pageup1
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - window_copy_redraw_screen
    - screen_size_y
    - window_copy_cursor_end_of_line
    - screen_hsize
    - window_copy_search_marks
    - window_copy_update_selection
    - window_copy_find_length
    linkageType: ''
    returnType: void
    signature: void window_copy_pageup1(struct window_mode_entry *wme, int half_page)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_pagedown1
      Src: /src/tmux/window-copy.c:793,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window-copy.c:793,1
    - Dst: window_pane_reset_mode
      Src: /src/tmux/window-copy.c:795,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - wp
    - half_page
    - scroll_exit
    argTypes:
    - struct window_pane*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 790
    functionDepth: 2
    functionLinenumber: 790
    functionLinenumberEnd: 798
    functionName: window_copy_pagedown
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - TAILQ_FIRST
    - window_copy_pagedown1
    - window_pane_reset_mode
    linkageType: ''
    returnType: void
    signature: void window_copy_pagedown(struct window_pane *wp, int half_page, int
      scroll_exit)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:808,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:809,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:818,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:820,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:822,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:827,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:828,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:835,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:836,1
    - Dst: window_copy_cursor_end_of_line
      Src: /src/tmux/window-copy.c:839,1
    - Dst: window_copy_search_marks
      Src: /src/tmux/window-copy.c:845,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:846,1
    - Dst: window_copy_redraw_screen
      Src: /src/tmux/window-copy.c:847,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 3
    argNames:
    - wme
    - half_page
    - scroll_exit
    argTypes:
    - struct window_mode_entry*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 849
    functionName: window_copy_pagedown1
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - window_copy_redraw_screen
    - screen_size_y
    - window_copy_cursor_end_of_line
    - screen_hsize
    - window_copy_search_marks
    - window_copy_update_selection
    - window_copy_find_length
    linkageType: ''
    returnType: int
    signature: "int window_copy_pagedown1(struct window_mode_entry *wme, int half_page,\n
      \   int scroll_exit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:857,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:859,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:862,1
    - Dst: window_copy_scroll_to
      Src: /src/tmux/window-copy.c:865,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 866
    functionName: window_copy_previous_paragraph
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - screen_hsize
    - window_copy_scroll_to
    - window_copy_find_length
    linkageType: ''
    returnType: void
    signature: void window_copy_previous_paragraph(struct window_mode_entry *wme)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:875,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:876,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:876,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:878,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:881,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:884,1
    - Dst: window_copy_scroll_to
      Src: /src/tmux/window-copy.c:885,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 886
    functionName: window_copy_next_paragraph
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - screen_hsize
    - screen_size_y
    - window_copy_find_length
    - window_copy_scroll_to
    linkageType: ''
    returnType: void
    signature: void window_copy_next_paragraph(struct window_mode_entry *wme)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window-copy.c:891,1
    - Dst: format_grid_word
      Src: /src/tmux/window-copy.c:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - wp
    - x
    - y
    argTypes:
    - struct window_pane*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 896
    functionName: window_copy_get_word
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - format_grid_word
    - TAILQ_FIRST
    linkageType: ''
    returnType: char
    signature: 'char *

      window_copy_get_word(struct window_pane *wp, u_int x, u_int y)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window-copy.c:901,1
    - Dst: format_grid_line
      Src: /src/tmux/window-copy.c:905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wp
    - y
    argTypes:
    - struct window_pane*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 898
    functionDepth: 1
    functionLinenumber: 898
    functionLinenumberEnd: 906
    functionName: window_copy_get_line
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - format_grid_line
    linkageType: ''
    returnType: char
    signature: 'char *

      window_copy_get_line(struct window_pane *wp, u_int y)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window-copy.c:911,1
    - Dst: format_grid_hyperlink
      Src: /src/tmux/window-copy.c:915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - wp
    - x
    - y
    argTypes:
    - struct window_pane*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 908
    functionDepth: 1
    functionLinenumber: 908
    functionLinenumberEnd: 916
    functionName: window_copy_get_hyperlink
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - format_grid_hyperlink
    linkageType: ''
    returnType: char
    signature: 'char *

      window_copy_get_hyperlink(struct window_pane *wp, u_int x, u_int y)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_get_pane
      Src: /src/tmux/window-copy.c:921,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window-copy.c:922,1
    - Dst: format_grid_hyperlink
      Src: /src/tmux/window-copy.c:926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 918
    functionDepth: 1
    functionLinenumber: 918
    functionLinenumberEnd: 928
    functionName: window_copy_cursor_hyperlink_cb
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - format_grid_hyperlink
    - format_get_pane
    linkageType: ''
    returnType: void
    signature: 'void *

      window_copy_cursor_hyperlink_cb(struct format_tree *ft)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_get_pane
      Src: /src/tmux/window-copy.c:933,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window-copy.c:934,1
    - Dst: window_copy_get_word
      Src: /src/tmux/window-copy.c:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 930
    functionDepth: 2
    functionLinenumber: 930
    functionLinenumberEnd: 938
    functionName: window_copy_cursor_word_cb
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_get_word
    - TAILQ_FIRST
    - format_get_pane
    linkageType: ''
    returnType: void
    signature: 'void *

      window_copy_cursor_word_cb(struct format_tree *ft)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_get_pane
      Src: /src/tmux/window-copy.c:943,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window-copy.c:944,1
    - Dst: window_copy_get_line
      Src: /src/tmux/window-copy.c:947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 940
    functionDepth: 2
    functionLinenumber: 940
    functionLinenumberEnd: 948
    functionName: window_copy_cursor_line_cb
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - window_copy_get_line
    - format_get_pane
    linkageType: ''
    returnType: void
    signature: 'void *

      window_copy_cursor_line_cb(struct format_tree *ft)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_get_pane
      Src: /src/tmux/window-copy.c:953,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window-copy.c:954,1
    - Dst: window_copy_match_at_cursor
      Src: /src/tmux/window-copy.c:957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 950
    functionDepth: 1
    functionLinenumber: 950
    functionLinenumberEnd: 958
    functionName: window_copy_search_match_cb
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_match_at_cursor
    - TAILQ_FIRST
    - format_get_pane
    linkageType: ''
    returnType: void
    signature: 'void *

      window_copy_search_match_cb(struct format_tree *ft)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:964,1
    - Dst: grid_get_line
      Src: /src/tmux/window-copy.c:968,1
    - Dst: format_add
      Src: /src/tmux/window-copy.c:969,1
    - Dst: format_add
      Src: /src/tmux/window-copy.c:971,1
    - Dst: window_copy_line_number_is_absolute
      Src: /src/tmux/window-copy.c:972,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:974,1
    - Dst: format_add
      Src: /src/tmux/window-copy.c:979,1
    - Dst: format_add
      Src: /src/tmux/window-copy.c:980,1
    - Dst: format_add
      Src: /src/tmux/window-copy.c:981,1
    - Dst: format_add
      Src: /src/tmux/window-copy.c:983,1
    - Dst: format_add
      Src: /src/tmux/window-copy.c:984,1
    - Dst: format_add
      Src: /src/tmux/window-copy.c:987,1
    - Dst: format_add
      Src: /src/tmux/window-copy.c:988,1
    - Dst: format_add
      Src: /src/tmux/window-copy.c:989,1
    - Dst: format_add
      Src: /src/tmux/window-copy.c:990,1
    - Dst: format_add
      Src: /src/tmux/window-copy.c:993,1
    - Dst: format_add
      Src: /src/tmux/window-copy.c:995,1
    - Dst: format_add
      Src: /src/tmux/window-copy.c:997,1
    - Dst: format_add
      Src: /src/tmux/window-copy.c:999,1
    - Dst: format_add
      Src: /src/tmux/window-copy.c:1001,1
    - Dst: format_add
      Src: /src/tmux/window-copy.c:1002,1
    - Dst: format_add
      Src: /src/tmux/window-copy.c:1007,1
    - Dst: format_add
      Src: /src/tmux/window-copy.c:1010,1
    - Dst: format_add
      Src: /src/tmux/window-copy.c:1013,1
    - Dst: format_add
      Src: /src/tmux/window-copy.c:1017,1
    - Dst: format_add
      Src: /src/tmux/window-copy.c:1018,1
    - Dst: format_add
      Src: /src/tmux/window-copy.c:1020,1
    - Dst: format_add
      Src: /src/tmux/window-copy.c:1021,1
    - Dst: format_add_cb
      Src: /src/tmux/window-copy.c:1023,1
    - Dst: format_add_cb
      Src: /src/tmux/window-copy.c:1025,1
    - Dst: format_add_cb
      Src: /src/tmux/window-copy.c:1026,1
    - Dst: format_add_cb
      Src: /src/tmux/window-copy.c:1027,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 52
    argCount: 2
    argNames:
    - wme
    - ft
    argTypes:
    - struct window_mode_entry*
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 1029
    functionName: window_copy_formats
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_line_number_is_absolute
    - screen_size_y
    - grid_get_line
    - screen_hsize
    - format_add_cb
    - format_add
    linkageType: ''
    returnType: void
    signature: void window_copy_formats(struct window_mode_entry *wme, struct format_tree
      *ft)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1037
    functionName: window_copy_get_screen
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct screen
    signature: 'struct screen *

      window_copy_get_screen(struct window_mode_entry *wme)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_clear_selection
      Src: /src/tmux/window-copy.c:1047,1
    - Dst: window_copy_clear_marks
      Src: /src/tmux/window-copy.c:1048,1
    - Dst: screen_write_start
      Src: /src/tmux/window-copy.c:1050,1
    - Dst: window_copy_write_lines
      Src: /src/tmux/window-copy.c:1051,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:1051,1
    - Dst: screen_write_stop
      Src: /src/tmux/window-copy.c:1052,1
    - Dst: window_copy_search_marks
      Src: /src/tmux/window-copy.c:1055,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1039
    functionDepth: 1
    functionLinenumber: 1039
    functionLinenumberEnd: 1059
    functionName: window_copy_size_changed
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_clear_selection
    - screen_size_y
    - window_copy_search_marks
    - window_copy_clear_marks
    - window_copy_write_lines
    - screen_write_start
    - screen_write_stop
    linkageType: ''
    returnType: void
    signature: void window_copy_size_changed(struct window_mode_entry *wme)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: screen_resize
      Src: /src/tmux/window-copy.c:1070,1
    - Dst: grid_wrap_position
      Src: /src/tmux/window-copy.c:1077,1
    - Dst: screen_resize_cursor
      Src: /src/tmux/window-copy.c:1078,1
    - Dst: grid_unwrap_position
      Src: /src/tmux/window-copy.c:1080,1
    - Dst: window_copy_size_changed
      Src: /src/tmux/window-copy.c:1091,1
    - Dst: window_copy_redraw_screen
      Src: /src/tmux/window-copy.c:1092,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - wme
    - sx
    - sy
    argTypes:
    - struct window_mode_entry*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1061
    functionDepth: 2
    functionLinenumber: 1061
    functionLinenumberEnd: 1093
    functionName: window_copy_resize
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - grid_unwrap_position
    - window_copy_redraw_screen
    - grid_wrap_position
    - screen_resize
    - window_copy_size_changed
    - screen_resize_cursor
    linkageType: ''
    returnType: void
    signature: void window_copy_resize(struct window_mode_entry *wme, u_int sx, u_int
      sy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/window-copy.c:1100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1095
    functionDepth: 1
    functionLinenumber: 1095
    functionLinenumberEnd: 1103
    functionName: window_copy_key_table
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - options_get_number
    linkageType: ''
    returnType: char
    signature: 'char *

      window_copy_key_table(struct window_mode_entry *wme)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: args_string
      Src: /src/tmux/window-copy.c:1110,1
    - Dst: args_has
      Src: /src/tmux/window-copy.c:1116,1
    - Dst: format_single
      Src: /src/tmux/window-copy.c:1117,1
    - Dst: free
      Src: /src/tmux/window-copy.c:1119,1
    - Dst: free
      Src: /src/tmux/window-copy.c:1122,1
    - Dst: free
      Src: /src/tmux/window-copy.c:1125,1
    - Dst: xstrdup
      Src: /src/tmux/window-copy.c:1126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1105
    functionDepth: 1
    functionLinenumber: 1105
    functionLinenumberEnd: 1129
    functionName: window_copy_expand_search_string
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - args_string
    - format_single
    - free
    - xstrdup
    - args_has
    linkageType: ''
    returnType: int
    signature: int window_copy_expand_search_string(struct window_copy_cmd_state *cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_append_selection
      Src: /src/tmux/window-copy.c:1138,1
    - Dst: window_copy_clear_selection
      Src: /src/tmux/window-copy.c:1139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1131
    functionDepth: 1
    functionLinenumber: 1131
    functionLinenumberEnd: 1141
    functionName: window_copy_cmd_append_selection
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_append_selection
    - window_copy_clear_selection
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_append_selection(struct
      window_copy_cmd_state *cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_append_selection
      Src: /src/tmux/window-copy.c:1150,1
    - Dst: window_copy_clear_selection
      Src: /src/tmux/window-copy.c:1151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1143
    functionDepth: 1
    functionLinenumber: 1143
    functionLinenumberEnd: 1153
    functionName: window_copy_cmd_append_selection_and_cancel
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_append_selection
    - window_copy_clear_selection
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_append_selection_and_cancel(struct
      window_copy_cmd_state *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cursor_back_to_indentation
      Src: /src/tmux/window-copy.c:1160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1162
    functionName: window_copy_cmd_back_to_indentation
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cursor_back_to_indentation
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_back_to_indentation(struct
      window_copy_cmd_state *cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_start_drag
      Src: /src/tmux/window-copy.c:1173,1
    - Dst: window_copy_start_selection
      Src: /src/tmux/window-copy.c:1179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1164
    functionDepth: 1
    functionLinenumber: 1164
    functionLinenumberEnd: 1181
    functionName: window_copy_cmd_begin_selection
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_start_drag
    - window_copy_start_selection
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_begin_selection(struct
      window_copy_cmd_state *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1183
    functionDepth: 0
    functionLinenumber: 1183
    functionLinenumberEnd: 1193
    functionName: window_copy_cmd_stop_selection
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_stop_selection(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:1202,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:1204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1195
    functionDepth: 1
    functionLinenumber: 1195
    functionLinenumberEnd: 1206
    functionName: window_copy_cmd_bottom_line
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - screen_size_y
    - window_copy_update_selection
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_bottom_line(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cs
    argTypes:
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1208
    functionDepth: 0
    functionLinenumber: 1208
    functionLinenumberEnd: 1212
    functionName: window_copy_cmd_cancel
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_cancel(__unused struct
      window_copy_cmd_state *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_clear_selection
      Src: /src/tmux/window-copy.c:1219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1214
    functionDepth: 1
    functionLinenumber: 1214
    functionLinenumberEnd: 1221
    functionName: window_copy_cmd_clear_selection
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_clear_selection
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_clear_selection(struct
      window_copy_cmd_state *cs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: args_count
      Src: /src/tmux/window-copy.c:1232,1
    - Dst: args_string
      Src: /src/tmux/window-copy.c:1236,1
    - Dst: args_string
      Src: /src/tmux/window-copy.c:1237,1
    - Dst: args_has
      Src: /src/tmux/window-copy.c:1238,1
    - Dst: args_has
      Src: /src/tmux/window-copy.c:1239,1
    - Dst: format_single
      Src: /src/tmux/window-copy.c:1243,1
    - Dst: format_single
      Src: /src/tmux/window-copy.c:1245,1
    - Dst: format_single
      Src: /src/tmux/window-copy.c:1248,1
    - Dst: window_copy_start_selection
      Src: /src/tmux/window-copy.c:1255,1
    - Dst: window_copy_cursor_down
      Src: /src/tmux/window-copy.c:1257,1
    - Dst: window_copy_cursor_end_of_line
      Src: /src/tmux/window-copy.c:1258,1
    - Dst: window_copy_copy_pipe
      Src: /src/tmux/window-copy.c:1262,1
    - Dst: window_copy_copy_selection
      Src: /src/tmux/window-copy.c:1265,1
    - Dst: free
      Src: /src/tmux/window-copy.c:1269,1
    - Dst: free
      Src: /src/tmux/window-copy.c:1270,1
    - Dst: window_copy_clear_selection
      Src: /src/tmux/window-copy.c:1274,1
    - Dst: free
      Src: /src/tmux/window-copy.c:1280,1
    - Dst: free
      Src: /src/tmux/window-copy.c:1281,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - cs
    - pipe
    - cancel
    argTypes:
    - struct window_copy_cmd_state*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1223
    functionDepth: 1
    functionLinenumber: 1223
    functionLinenumberEnd: 1283
    functionName: window_copy_do_copy_end_of_line
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_clear_selection
    - window_copy_copy_selection
    - args_string
    - window_copy_cursor_end_of_line
    - window_copy_start_selection
    - format_single
    - free
    - window_copy_cursor_down
    - args_count
    - args_has
    - window_copy_copy_pipe
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: "enum window_copy_cmd_action window_copy_do_copy_end_of_line(struct
      window_copy_cmd_state *cs, int pipe,\n    int cancel)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_do_copy_end_of_line
      Src: /src/tmux/window-copy.c:1288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1285
    functionDepth: 2
    functionLinenumber: 1285
    functionLinenumberEnd: 1289
    functionName: window_copy_cmd_copy_end_of_line
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_do_copy_end_of_line
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_copy_end_of_line(struct
      window_copy_cmd_state *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_do_copy_end_of_line
      Src: /src/tmux/window-copy.c:1294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1291
    functionDepth: 2
    functionLinenumber: 1291
    functionLinenumberEnd: 1295
    functionName: window_copy_cmd_copy_end_of_line_and_cancel
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_do_copy_end_of_line
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_copy_end_of_line_and_cancel(struct
      window_copy_cmd_state *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_do_copy_end_of_line
      Src: /src/tmux/window-copy.c:1300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1297
    functionDepth: 2
    functionLinenumber: 1297
    functionLinenumberEnd: 1301
    functionName: window_copy_cmd_copy_pipe_end_of_line
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_do_copy_end_of_line
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_copy_pipe_end_of_line(struct
      window_copy_cmd_state *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_do_copy_end_of_line
      Src: /src/tmux/window-copy.c:1307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1303
    functionDepth: 2
    functionLinenumber: 1303
    functionLinenumberEnd: 1308
    functionName: window_copy_cmd_copy_pipe_end_of_line_and_cancel
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_do_copy_end_of_line
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: "enum window_copy_cmd_action window_copy_cmd_copy_pipe_end_of_line_and_cancel(\n
      \   struct window_copy_cmd_state *cs)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: args_count
      Src: /src/tmux/window-copy.c:1319,1
    - Dst: args_string
      Src: /src/tmux/window-copy.c:1322,1
    - Dst: args_string
      Src: /src/tmux/window-copy.c:1323,1
    - Dst: args_has
      Src: /src/tmux/window-copy.c:1324,1
    - Dst: args_has
      Src: /src/tmux/window-copy.c:1325,1
    - Dst: format_single
      Src: /src/tmux/window-copy.c:1329,1
    - Dst: format_single
      Src: /src/tmux/window-copy.c:1331,1
    - Dst: format_single
      Src: /src/tmux/window-copy.c:1334,1
    - Dst: window_copy_cursor_start_of_line
      Src: /src/tmux/window-copy.c:1342,1
    - Dst: window_copy_start_selection
      Src: /src/tmux/window-copy.c:1343,1
    - Dst: window_copy_cursor_down
      Src: /src/tmux/window-copy.c:1345,1
    - Dst: window_copy_cursor_end_of_line
      Src: /src/tmux/window-copy.c:1346,1
    - Dst: window_copy_copy_pipe
      Src: /src/tmux/window-copy.c:1350,1
    - Dst: window_copy_copy_selection
      Src: /src/tmux/window-copy.c:1353,1
    - Dst: free
      Src: /src/tmux/window-copy.c:1357,1
    - Dst: free
      Src: /src/tmux/window-copy.c:1358,1
    - Dst: window_copy_clear_selection
      Src: /src/tmux/window-copy.c:1362,1
    - Dst: free
      Src: /src/tmux/window-copy.c:1368,1
    - Dst: free
      Src: /src/tmux/window-copy.c:1369,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - cs
    - pipe
    - cancel
    argTypes:
    - struct window_copy_cmd_state*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1310
    functionDepth: 1
    functionLinenumber: 1310
    functionLinenumberEnd: 1371
    functionName: window_copy_do_copy_line
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_clear_selection
    - window_copy_copy_selection
    - args_string
    - window_copy_copy_pipe
    - window_copy_cursor_end_of_line
    - window_copy_start_selection
    - format_single
    - free
    - window_copy_cursor_down
    - args_count
    - args_has
    - window_copy_cursor_start_of_line
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_do_copy_line(struct window_copy_cmd_state
      *cs, int pipe, int cancel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_do_copy_line
      Src: /src/tmux/window-copy.c:1376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1373
    functionDepth: 2
    functionLinenumber: 1373
    functionLinenumberEnd: 1377
    functionName: window_copy_cmd_copy_line
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_do_copy_line
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_copy_line(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_do_copy_line
      Src: /src/tmux/window-copy.c:1382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1379
    functionDepth: 2
    functionLinenumber: 1379
    functionLinenumberEnd: 1383
    functionName: window_copy_cmd_copy_line_and_cancel
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_do_copy_line
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_copy_line_and_cancel(struct
      window_copy_cmd_state *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_do_copy_line
      Src: /src/tmux/window-copy.c:1388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1385
    functionDepth: 2
    functionLinenumber: 1385
    functionLinenumberEnd: 1389
    functionName: window_copy_cmd_copy_pipe_line
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_do_copy_line
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_copy_pipe_line(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_do_copy_line
      Src: /src/tmux/window-copy.c:1394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1391
    functionDepth: 2
    functionLinenumber: 1391
    functionLinenumberEnd: 1395
    functionName: window_copy_cmd_copy_pipe_line_and_cancel
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_do_copy_line
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_copy_pipe_line_and_cancel(struct
      window_copy_cmd_state *cs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: args_string
      Src: /src/tmux/window-copy.c:1406,1
    - Dst: args_has
      Src: /src/tmux/window-copy.c:1407,1
    - Dst: args_has
      Src: /src/tmux/window-copy.c:1408,1
    - Dst: format_single
      Src: /src/tmux/window-copy.c:1411,1
    - Dst: window_copy_copy_selection
      Src: /src/tmux/window-copy.c:1414,1
    - Dst: free
      Src: /src/tmux/window-copy.c:1416,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1397
    functionDepth: 1
    functionLinenumber: 1397
    functionLinenumberEnd: 1418
    functionName: window_copy_cmd_copy_selection_no_clear
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_copy_selection
    - args_string
    - format_single
    - free
    - args_has
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_copy_selection_no_clear(struct
      window_copy_cmd_state *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cmd_copy_selection_no_clear
      Src: /src/tmux/window-copy.c:1425,1
    - Dst: window_copy_clear_selection
      Src: /src/tmux/window-copy.c:1426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1420
    functionDepth: 2
    functionLinenumber: 1420
    functionLinenumberEnd: 1428
    functionName: window_copy_cmd_copy_selection
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cmd_copy_selection_no_clear
    - window_copy_clear_selection
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_copy_selection(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cmd_copy_selection_no_clear
      Src: /src/tmux/window-copy.c:1435,1
    - Dst: window_copy_clear_selection
      Src: /src/tmux/window-copy.c:1436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1430
    functionDepth: 2
    functionLinenumber: 1430
    functionLinenumberEnd: 1438
    functionName: window_copy_cmd_copy_selection_and_cancel
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cmd_copy_selection_no_clear
    - window_copy_clear_selection
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_copy_selection_and_cancel(struct
      window_copy_cmd_state *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cursor_down
      Src: /src/tmux/window-copy.c:1447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1440
    functionDepth: 1
    functionLinenumber: 1440
    functionLinenumberEnd: 1449
    functionName: window_copy_cmd_cursor_down
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cursor_down
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_cursor_down(struct window_copy_cmd_state
      *cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cursor_down
      Src: /src/tmux/window-copy.c:1460,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1451
    functionDepth: 1
    functionLinenumber: 1451
    functionLinenumberEnd: 1464
    functionName: window_copy_cmd_cursor_down_and_cancel
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cursor_down
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_cursor_down_and_cancel(struct
      window_copy_cmd_state *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cursor_left
      Src: /src/tmux/window-copy.c:1473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1475
      start: 1466
    functionDepth: 1
    functionLinenumber: 1466
    functionLinenumberEnd: 1475
    functionName: window_copy_cmd_cursor_left
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cursor_left
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_cursor_left(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cursor_right
      Src: /src/tmux/window-copy.c:1485,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1477
    functionDepth: 1
    functionLinenumber: 1477
    functionLinenumberEnd: 1489
    functionName: window_copy_cmd_cursor_right
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cursor_right
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_cursor_right(struct window_copy_cmd_state
      *cs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/tmux/window-copy.c:1501,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:1502,1
    - Dst: window_copy_scroll_up
      Src: /src/tmux/window-copy.c:1509,1
    - Dst: window_copy_scroll_down
      Src: /src/tmux/window-copy.c:1512,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:1516,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - cs
    - to
    argTypes:
    - struct window_copy_cmd_state*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1492
    functionDepth: 1
    functionLinenumber: 1492
    functionLinenumberEnd: 1518
    functionName: window_copy_cmd_scroll_to
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_scroll_down
    - window_copy_scroll_up
    - screen_hsize
    - window_copy_update_selection
    - abs
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_scroll_to(struct window_copy_cmd_state
      *cs, u_int to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:1527,1
    - Dst: window_copy_cmd_scroll_to
      Src: /src/tmux/window-copy.c:1528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1521
    functionDepth: 2
    functionLinenumber: 1521
    functionLinenumberEnd: 1529
    functionName: window_copy_cmd_scroll_bottom
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cmd_scroll_to
    - screen_size_y
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_scroll_bottom(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:1538,1
    - Dst: window_copy_cmd_scroll_to
      Src: /src/tmux/window-copy.c:1539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1532
    functionDepth: 2
    functionLinenumber: 1532
    functionLinenumberEnd: 1540
    functionName: window_copy_cmd_scroll_middle
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cmd_scroll_to
    - screen_size_y
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_scroll_middle(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: args_has
      Src: /src/tmux/window-copy.c:1550,1
    - Dst: window_copy_scroll
      Src: /src/tmux/window-copy.c:1552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1543
    functionDepth: 4
    functionLinenumber: 1543
    functionLinenumberEnd: 1554
    functionName: window_copy_cmd_scroll_to_mouse
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_scroll
    - args_has
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_scroll_to_mouse(struct
      window_copy_cmd_state *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cmd_scroll_to
      Src: /src/tmux/window-copy.c:1560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1557
    functionDepth: 2
    functionLinenumber: 1557
    functionLinenumberEnd: 1561
    functionName: window_copy_cmd_scroll_top
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cmd_scroll_to
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_scroll_top(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cursor_up
      Src: /src/tmux/window-copy.c:1570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1563
    functionDepth: 1
    functionLinenumber: 1563
    functionLinenumberEnd: 1572
    functionName: window_copy_cmd_cursor_up
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cursor_up
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_cursor_up(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_update_cursor
      Src: /src/tmux/window-copy.c:1580,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:1581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1574
    functionDepth: 1
    functionLinenumber: 1574
    functionLinenumberEnd: 1583
    functionName: window_copy_cmd_centre_vertical
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_update_cursor
    - window_copy_update_selection
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_centre_vertical(struct
      window_copy_cmd_state *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_update_cursor
      Src: /src/tmux/window-copy.c:1591,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:1592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1585
    functionDepth: 1
    functionLinenumber: 1585
    functionLinenumberEnd: 1594
    functionName: window_copy_cmd_centre_horizontal
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_update_cursor
    - window_copy_update_selection
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_centre_horizontal(struct
      window_copy_cmd_state *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cursor_end_of_line
      Src: /src/tmux/window-copy.c:1601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1596
    functionDepth: 1
    functionLinenumber: 1596
    functionLinenumberEnd: 1603
    functionName: window_copy_cmd_end_of_line
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cursor_end_of_line
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_end_of_line(struct window_copy_cmd_state
      *cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_pagedown1
      Src: /src/tmux/window-copy.c:1613,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1605
    functionDepth: 2
    functionLinenumber: 1605
    functionLinenumberEnd: 1617
    functionName: window_copy_cmd_halfpage_down
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_pagedown1
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_halfpage_down(struct window_copy_cmd_state
      *cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_pagedown1
      Src: /src/tmux/window-copy.c:1627,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1619
    functionDepth: 2
    functionLinenumber: 1619
    functionLinenumberEnd: 1631
    functionName: window_copy_cmd_halfpage_down_and_cancel
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_pagedown1
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_halfpage_down_and_cancel(struct
      window_copy_cmd_state *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_pageup1
      Src: /src/tmux/window-copy.c:1640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1633
    functionDepth: 2
    functionLinenumber: 1633
    functionLinenumberEnd: 1642
    functionName: window_copy_cmd_halfpage_up
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_pageup1
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_halfpage_up(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1652
      start: 1644
    functionDepth: 0
    functionLinenumber: 1644
    functionLinenumberEnd: 1652
    functionName: window_copy_cmd_toggle_position
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_toggle_position(struct
      window_copy_cmd_state *cs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:1662,1
    - Dst: window_copy_other_end
      Src: /src/tmux/window-copy.c:1664,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:1666,1
    - Dst: window_copy_cursor_limit
      Src: /src/tmux/window-copy.c:1667,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:1667,1
    - Dst: window_copy_search_marks
      Src: /src/tmux/window-copy.c:1671,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:1672,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1654
    functionDepth: 1
    functionLinenumber: 1654
    functionLinenumberEnd: 1674
    functionName: window_copy_cmd_history_bottom
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_other_end
    - screen_size_y
    - screen_hsize
    - window_copy_search_marks
    - window_copy_cursor_limit
    - window_copy_update_selection
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_history_bottom(struct window_copy_cmd_state
      *cs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:1683,1
    - Dst: window_copy_other_end
      Src: /src/tmux/window-copy.c:1685,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:1689,1
    - Dst: window_copy_search_marks
      Src: /src/tmux/window-copy.c:1692,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:1693,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1695
      start: 1676
    functionDepth: 1
    functionLinenumber: 1676
    functionLinenumberEnd: 1695
    functionName: window_copy_cmd_history_top
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - screen_hsize
    - window_copy_search_marks
    - window_copy_other_end
    - window_copy_update_selection
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_history_top(struct window_copy_cmd_state
      *cs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cursor_jump
      Src: /src/tmux/window-copy.c:1707,1
    - Dst: window_copy_cursor_jump_back
      Src: /src/tmux/window-copy.c:1711,1
    - Dst: window_copy_cursor_jump_to
      Src: /src/tmux/window-copy.c:1715,1
    - Dst: window_copy_cursor_jump_to_back
      Src: /src/tmux/window-copy.c:1719,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1697
    functionDepth: 1
    functionLinenumber: 1697
    functionLinenumberEnd: 1723
    functionName: window_copy_cmd_jump_again
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cursor_jump_to
    - window_copy_cursor_jump_back
    - window_copy_cursor_jump
    - window_copy_cursor_jump_to_back
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_jump_again(struct window_copy_cmd_state
      *cs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cursor_jump_back
      Src: /src/tmux/window-copy.c:1735,1
    - Dst: window_copy_cursor_jump
      Src: /src/tmux/window-copy.c:1739,1
    - Dst: window_copy_cursor_jump_to_back
      Src: /src/tmux/window-copy.c:1743,1
    - Dst: window_copy_cursor_jump_to
      Src: /src/tmux/window-copy.c:1747,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1751
      start: 1725
    functionDepth: 1
    functionLinenumber: 1725
    functionLinenumberEnd: 1751
    functionName: window_copy_cmd_jump_reverse
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cursor_jump_to
    - window_copy_cursor_jump_back
    - window_copy_cursor_jump
    - window_copy_cursor_jump_to_back
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_jump_reverse(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:1760,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:1762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1753
    functionDepth: 1
    functionLinenumber: 1753
    functionLinenumberEnd: 1764
    functionName: window_copy_cmd_middle_line
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - screen_size_y
    - window_copy_update_selection
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_middle_line(struct window_copy_cmd_state
      *cs)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:1782,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:1783,1
    - Dst: grid_get_cell
      Src: /src/tmux/window-copy.c:1793,1
    - Dst: strchr
      Src: /src/tmux/window-copy.c:1798,1
    - Dst: window_copy_cursor_previous_word
      Src: /src/tmux/window-copy.c:1807,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:1824,1
    - Dst: grid_get_cell
      Src: /src/tmux/window-copy.c:1834,1
    - Dst: window_copy_scroll_to
      Src: /src/tmux/window-copy.c:1846,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 60
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1766
    functionDepth: 3
    functionLinenumber: 1766
    functionLinenumberEnd: 1850
    functionName: window_copy_cmd_previous_matching_bracket
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cursor_previous_word
    - window_copy_scroll_to
    - strchr
    - screen_hsize
    - grid_get_cell
    - window_copy_find_length
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_previous_matching_bracket(struct
      window_copy_cmd_state *cs)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:1869,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:1870,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:1871,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:1871,1
    - Dst: grid_get_cell
      Src: /src/tmux/window-copy.c:1881,1
    - Dst: strchr
      Src: /src/tmux/window-copy.c:1892,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:1895,1
    - Dst: window_copy_scroll_to
      Src: /src/tmux/window-copy.c:1897,1
    - Dst: window_copy_cmd_previous_matching_bracket
      Src: /src/tmux/window-copy.c:1898,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:1901,1
    - Dst: grid_get_cell
      Src: /src/tmux/window-copy.c:1902,1
    - Dst: strchr
      Src: /src/tmux/window-copy.c:1905,1
    - Dst: window_copy_scroll_to
      Src: /src/tmux/window-copy.c:1906,1
    - Dst: strchr
      Src: /src/tmux/window-copy.c:1910,1
    - Dst: window_copy_cursor_next_word_end
      Src: /src/tmux/window-copy.c:1919,1
    - Dst: grid_get_line
      Src: /src/tmux/window-copy.c:1926,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:1933,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:1951,1
    - Dst: grid_get_cell
      Src: /src/tmux/window-copy.c:1955,1
    - Dst: window_copy_scroll_to
      Src: /src/tmux/window-copy.c:1967,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 83
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1971
      start: 1852
    functionDepth: 4
    functionLinenumber: 1852
    functionLinenumberEnd: 1971
    functionName: window_copy_cmd_next_matching_bracket
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cmd_previous_matching_bracket
    - screen_size_y
    - window_copy_cursor_next_word_end
    - grid_get_line
    - window_copy_scroll_to
    - strchr
    - screen_hsize
    - grid_get_cell
    - window_copy_find_length
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_next_matching_bracket(struct
      window_copy_cmd_state *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_next_paragraph
      Src: /src/tmux/window-copy.c:1980,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1982
      start: 1973
    functionDepth: 2
    functionLinenumber: 1973
    functionLinenumberEnd: 1982
    functionName: window_copy_cmd_next_paragraph
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_next_paragraph
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_next_paragraph(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cursor_next_word
      Src: /src/tmux/window-copy.c:1991,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1993
      start: 1984
    functionDepth: 1
    functionLinenumber: 1984
    functionLinenumberEnd: 1993
    functionName: window_copy_cmd_next_space
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cursor_next_word
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_next_space(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cursor_next_word_end
      Src: /src/tmux/window-copy.c:2002,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2004
      start: 1995
    functionDepth: 1
    functionLinenumber: 1995
    functionLinenumberEnd: 2004
    functionName: window_copy_cmd_next_space_end
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cursor_next_word_end
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_next_space_end(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: options_get_string
      Src: /src/tmux/window-copy.c:2013,1
    - Dst: window_copy_cursor_next_word
      Src: /src/tmux/window-copy.c:2016,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 2006
    functionDepth: 1
    functionLinenumber: 2006
    functionLinenumberEnd: 2018
    functionName: window_copy_cmd_next_word
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cursor_next_word
    - options_get_string
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_next_word(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: options_get_string
      Src: /src/tmux/window-copy.c:2027,1
    - Dst: window_copy_cursor_next_word_end
      Src: /src/tmux/window-copy.c:2030,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2032
      start: 2020
    functionDepth: 1
    functionLinenumber: 2020
    functionLinenumberEnd: 2032
    functionName: window_copy_cmd_next_word_end
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cursor_next_word_end
    - options_get_string
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_next_word_end(struct window_copy_cmd_state
      *cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_other_end
      Src: /src/tmux/window-copy.c:2043,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2045
      start: 2034
    functionDepth: 1
    functionLinenumber: 2034
    functionLinenumberEnd: 2045
    functionName: window_copy_cmd_other_end
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_other_end
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_other_end(struct window_copy_cmd_state
      *cs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: args_string
      Src: /src/tmux/window-copy.c:2053,1
    - Dst: strcasecmp
      Src: /src/tmux/window-copy.c:2055,1
    - Dst: strcasecmp
      Src: /src/tmux/window-copy.c:2055,1
    - Dst: strcasecmp
      Src: /src/tmux/window-copy.c:2057,1
    - Dst: strcasecmp
      Src: /src/tmux/window-copy.c:2057,1
    - Dst: options_get_string
      Src: /src/tmux/window-copy.c:2058,1
    - Dst: strcasecmp
      Src: /src/tmux/window-copy.c:2060,1
    - Dst: strcasecmp
      Src: /src/tmux/window-copy.c:2060,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2063
      start: 2047
    functionDepth: 1
    functionLinenumber: 2047
    functionLinenumberEnd: 2063
    functionName: window_copy_cmd_selection_mode
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - args_string
    - options_get_string
    - strcasecmp
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_selection_mode(struct window_copy_cmd_state
      *cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_pagedown1
      Src: /src/tmux/window-copy.c:2073,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2077
      start: 2065
    functionDepth: 2
    functionLinenumber: 2065
    functionLinenumberEnd: 2077
    functionName: window_copy_cmd_page_down
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_pagedown1
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_page_down(struct window_copy_cmd_state
      *cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_pagedown1
      Src: /src/tmux/window-copy.c:2086,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2090
      start: 2079
    functionDepth: 2
    functionLinenumber: 2079
    functionLinenumberEnd: 2090
    functionName: window_copy_cmd_page_down_and_cancel
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_pagedown1
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_page_down_and_cancel(struct
      window_copy_cmd_state *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_pageup1
      Src: /src/tmux/window-copy.c:2099,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2101
      start: 2092
    functionDepth: 2
    functionLinenumber: 2092
    functionLinenumberEnd: 2101
    functionName: window_copy_cmd_page_up
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_pageup1
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_page_up(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_previous_paragraph
      Src: /src/tmux/window-copy.c:2110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2103
    functionDepth: 2
    functionLinenumber: 2103
    functionLinenumberEnd: 2112
    functionName: window_copy_cmd_previous_paragraph
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_previous_paragraph
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_previous_paragraph(struct
      window_copy_cmd_state *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cursor_previous_word
      Src: /src/tmux/window-copy.c:2121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2123
      start: 2114
    functionDepth: 1
    functionLinenumber: 2114
    functionLinenumberEnd: 2123
    functionName: window_copy_cmd_previous_space
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cursor_previous_word
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_previous_space(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: options_get_string
      Src: /src/tmux/window-copy.c:2132,1
    - Dst: window_copy_cursor_previous_word
      Src: /src/tmux/window-copy.c:2135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2137
      start: 2125
    functionDepth: 1
    functionLinenumber: 2125
    functionLinenumberEnd: 2137
    functionName: window_copy_cmd_previous_word
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cursor_previous_word
    - options_get_string
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_previous_word(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_rectangle_set
      Src: /src/tmux/window-copy.c:2146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 2139
    functionDepth: 1
    functionLinenumber: 2139
    functionLinenumberEnd: 2149
    functionName: window_copy_cmd_rectangle_on
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_rectangle_set
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_rectangle_on(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_rectangle_set
      Src: /src/tmux/window-copy.c:2158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2151
    functionDepth: 1
    functionLinenumber: 2151
    functionLinenumberEnd: 2161
    functionName: window_copy_cmd_rectangle_off
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_rectangle_set
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_rectangle_off(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_rectangle_set
      Src: /src/tmux/window-copy.c:2170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2173
      start: 2163
    functionDepth: 1
    functionLinenumber: 2163
    functionLinenumberEnd: 2173
    functionName: window_copy_cmd_rectangle_toggle
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_rectangle_set
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_rectangle_toggle(struct
      window_copy_cmd_state *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2183
      start: 2175
    functionDepth: 0
    functionLinenumber: 2175
    functionLinenumberEnd: 2183
    functionName: window_copy_cmd_scroll_exit_on
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_scroll_exit_on(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2193
      start: 2185
    functionDepth: 0
    functionLinenumber: 2185
    functionLinenumberEnd: 2193
    functionName: window_copy_cmd_scroll_exit_off
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_scroll_exit_off(struct
      window_copy_cmd_state *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2203
      start: 2195
    functionDepth: 0
    functionLinenumber: 2195
    functionLinenumberEnd: 2203
    functionName: window_copy_cmd_scroll_exit_toggle
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_scroll_exit_toggle(struct
      window_copy_cmd_state *cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cursor_down
      Src: /src/tmux/window-copy.c:2213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2217
      start: 2205
    functionDepth: 1
    functionLinenumber: 2205
    functionLinenumberEnd: 2217
    functionName: window_copy_cmd_scroll_down
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cursor_down
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_scroll_down(struct window_copy_cmd_state
      *cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cursor_down
      Src: /src/tmux/window-copy.c:2227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2231
      start: 2219
    functionDepth: 1
    functionLinenumber: 2219
    functionLinenumberEnd: 2231
    functionName: window_copy_cmd_scroll_down_and_cancel
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cursor_down
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_scroll_down_and_cancel(struct
      window_copy_cmd_state *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cursor_up
      Src: /src/tmux/window-copy.c:2240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2242
      start: 2233
    functionDepth: 1
    functionLinenumber: 2233
    functionLinenumberEnd: 2242
    functionName: window_copy_cmd_scroll_up
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cursor_up
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_scroll_up(struct window_copy_cmd_state
      *cs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_search_up
      Src: /src/tmux/window-copy.c:2253,1
    - Dst: window_copy_search_down
      Src: /src/tmux/window-copy.c:2256,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2259
      start: 2244
    functionDepth: 1
    functionLinenumber: 2244
    functionLinenumberEnd: 2259
    functionName: window_copy_cmd_search_again
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_search_up
    - window_copy_search_down
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_search_again(struct window_copy_cmd_state
      *cs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_search_down
      Src: /src/tmux/window-copy.c:2270,1
    - Dst: window_copy_search_up
      Src: /src/tmux/window-copy.c:2273,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2276
      start: 2261
    functionDepth: 1
    functionLinenumber: 2261
    functionLinenumberEnd: 2276
    functionName: window_copy_cmd_search_reverse
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_search_up
    - window_copy_search_down
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_search_reverse(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:2289,1
    - Dst: window_copy_cursor_start_of_line
      Src: /src/tmux/window-copy.c:2291,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:2293,1
    - Dst: window_copy_start_selection
      Src: /src/tmux/window-copy.c:2295,1
    - Dst: window_copy_cursor_end_of_line
      Src: /src/tmux/window-copy.c:2296,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:2297,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:2298,1
    - Dst: window_copy_cursor_down
      Src: /src/tmux/window-copy.c:2300,1
    - Dst: window_copy_cursor_end_of_line
      Src: /src/tmux/window-copy.c:2301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2305
      start: 2278
    functionDepth: 1
    functionLinenumber: 2278
    functionLinenumberEnd: 2305
    functionName: window_copy_cmd_select_line
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cursor_end_of_line
    - window_copy_start_selection
    - screen_hsize
    - window_copy_find_length
    - window_copy_cursor_down
    - window_copy_cursor_start_of_line
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_select_line(struct window_copy_cmd_state
      *cs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:2319,1
    - Dst: options_get_string
      Src: /src/tmux/window-copy.c:2321,1
    - Dst: window_copy_cursor_previous_word
      Src: /src/tmux/window-copy.c:2322,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:2324,1
    - Dst: window_copy_start_selection
      Src: /src/tmux/window-copy.c:2327,1
    - Dst: grid_get_line
      Src: /src/tmux/window-copy.c:2332,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:2333,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:2337,1
    - Dst: window_copy_in_set
      Src: /src/tmux/window-copy.c:2338,1
    - Dst: window_copy_cursor_next_word_end
      Src: /src/tmux/window-copy.c:2339,1
    - Dst: window_copy_update_cursor
      Src: /src/tmux/window-copy.c:2341,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:2342,1
    - Dst: window_copy_redraw_lines
      Src: /src/tmux/window-copy.c:2343,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:2346,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2354
      start: 2307
    functionDepth: 1
    functionLinenumber: 2307
    functionLinenumberEnd: 2354
    functionName: window_copy_cmd_select_word
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cursor_previous_word
    - window_copy_update_cursor
    - screen_size_x
    - grid_get_line
    - window_copy_cursor_next_word_end
    - window_copy_start_selection
    - screen_hsize
    - window_copy_update_selection
    - window_copy_find_length
    - window_copy_in_set
    - options_get_string
    - window_copy_redraw_lines
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_select_word(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:2362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2365
      start: 2356
    functionDepth: 1
    functionLinenumber: 2356
    functionLinenumberEnd: 2365
    functionName: window_copy_cmd_set_mark
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - screen_hsize
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_set_mark(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cursor_start_of_line
      Src: /src/tmux/window-copy.c:2372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2374
      start: 2367
    functionDepth: 1
    functionLinenumber: 2367
    functionLinenumberEnd: 2374
    functionName: window_copy_cmd_start_of_line
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cursor_start_of_line
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_start_of_line(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:2385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2387
      start: 2376
    functionDepth: 1
    functionLinenumber: 2376
    functionLinenumberEnd: 2387
    functionName: window_copy_cmd_top_line
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_update_selection
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_top_line(struct window_copy_cmd_state
      *cs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: args_string
      Src: /src/tmux/window-copy.c:2398,1
    - Dst: args_string
      Src: /src/tmux/window-copy.c:2399,1
    - Dst: args_has
      Src: /src/tmux/window-copy.c:2400,1
    - Dst: args_has
      Src: /src/tmux/window-copy.c:2401,1
    - Dst: format_single
      Src: /src/tmux/window-copy.c:2404,1
    - Dst: format_single
      Src: /src/tmux/window-copy.c:2407,1
    - Dst: window_copy_copy_pipe
      Src: /src/tmux/window-copy.c:2408,1
    - Dst: free
      Src: /src/tmux/window-copy.c:2410,1
    - Dst: free
      Src: /src/tmux/window-copy.c:2412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2414
      start: 2389
    functionDepth: 1
    functionLinenumber: 2389
    functionLinenumberEnd: 2414
    functionName: window_copy_cmd_copy_pipe_no_clear
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - args_string
    - format_single
    - free
    - args_has
    - window_copy_copy_pipe
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_copy_pipe_no_clear(struct
      window_copy_cmd_state *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cmd_copy_pipe_no_clear
      Src: /src/tmux/window-copy.c:2421,1
    - Dst: window_copy_clear_selection
      Src: /src/tmux/window-copy.c:2422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2424
      start: 2416
    functionDepth: 2
    functionLinenumber: 2416
    functionLinenumberEnd: 2424
    functionName: window_copy_cmd_copy_pipe
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cmd_copy_pipe_no_clear
    - window_copy_clear_selection
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_copy_pipe(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cmd_copy_pipe_no_clear
      Src: /src/tmux/window-copy.c:2431,1
    - Dst: window_copy_clear_selection
      Src: /src/tmux/window-copy.c:2432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2434
      start: 2426
    functionDepth: 2
    functionLinenumber: 2426
    functionLinenumberEnd: 2434
    functionName: window_copy_cmd_copy_pipe_and_cancel
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cmd_copy_pipe_no_clear
    - window_copy_clear_selection
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_copy_pipe_and_cancel(struct
      window_copy_cmd_state *cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: args_string
      Src: /src/tmux/window-copy.c:2445,1
    - Dst: format_single
      Src: /src/tmux/window-copy.c:2448,1
    - Dst: window_copy_pipe
      Src: /src/tmux/window-copy.c:2449,1
    - Dst: free
      Src: /src/tmux/window-copy.c:2450,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2453
      start: 2436
    functionDepth: 1
    functionLinenumber: 2436
    functionLinenumberEnd: 2453
    functionName: window_copy_cmd_pipe_no_clear
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - args_string
    - format_single
    - free
    - window_copy_pipe
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_pipe_no_clear(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cmd_pipe_no_clear
      Src: /src/tmux/window-copy.c:2460,1
    - Dst: window_copy_clear_selection
      Src: /src/tmux/window-copy.c:2461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2463
      start: 2455
    functionDepth: 2
    functionLinenumber: 2455
    functionLinenumberEnd: 2463
    functionName: window_copy_cmd_pipe
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cmd_pipe_no_clear
    - window_copy_clear_selection
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_pipe(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cmd_pipe_no_clear
      Src: /src/tmux/window-copy.c:2470,1
    - Dst: window_copy_clear_selection
      Src: /src/tmux/window-copy.c:2471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2473
      start: 2465
    functionDepth: 2
    functionLinenumber: 2465
    functionLinenumberEnd: 2473
    functionName: window_copy_cmd_pipe_and_cancel
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cmd_pipe_no_clear
    - window_copy_clear_selection
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_pipe_and_cancel(struct
      window_copy_cmd_state *cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: args_string
      Src: /src/tmux/window-copy.c:2479,1
    - Dst: window_copy_goto_line
      Src: /src/tmux/window-copy.c:2482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2484
      start: 2475
    functionDepth: 1
    functionLinenumber: 2475
    functionLinenumberEnd: 2484
    functionName: window_copy_cmd_goto_line
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - args_string
    - window_copy_goto_line
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_goto_line(struct window_copy_cmd_state
      *cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: args_string
      Src: /src/tmux/window-copy.c:2492,1
    - Dst: free
      Src: /src/tmux/window-copy.c:2496,1
    - Dst: utf8_fromcstr
      Src: /src/tmux/window-copy.c:2497,1
    - Dst: window_copy_cursor_jump_back
      Src: /src/tmux/window-copy.c:2499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2502
      start: 2486
    functionDepth: 1
    functionLinenumber: 2486
    functionLinenumberEnd: 2502
    functionName: window_copy_cmd_jump_backward
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - args_string
    - window_copy_cursor_jump_back
    - free
    - utf8_fromcstr
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_jump_backward(struct window_copy_cmd_state
      *cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: args_string
      Src: /src/tmux/window-copy.c:2510,1
    - Dst: free
      Src: /src/tmux/window-copy.c:2514,1
    - Dst: utf8_fromcstr
      Src: /src/tmux/window-copy.c:2515,1
    - Dst: window_copy_cursor_jump
      Src: /src/tmux/window-copy.c:2517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2520
      start: 2504
    functionDepth: 1
    functionLinenumber: 2504
    functionLinenumberEnd: 2520
    functionName: window_copy_cmd_jump_forward
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - args_string
    - free
    - window_copy_cursor_jump
    - utf8_fromcstr
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_jump_forward(struct window_copy_cmd_state
      *cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: args_string
      Src: /src/tmux/window-copy.c:2528,1
    - Dst: free
      Src: /src/tmux/window-copy.c:2532,1
    - Dst: utf8_fromcstr
      Src: /src/tmux/window-copy.c:2533,1
    - Dst: window_copy_cursor_jump_to_back
      Src: /src/tmux/window-copy.c:2535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2538
      start: 2522
    functionDepth: 1
    functionLinenumber: 2522
    functionLinenumberEnd: 2538
    functionName: window_copy_cmd_jump_to_backward
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - args_string
    - free
    - window_copy_cursor_jump_to_back
    - utf8_fromcstr
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_jump_to_backward(struct
      window_copy_cmd_state *cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: args_string
      Src: /src/tmux/window-copy.c:2546,1
    - Dst: free
      Src: /src/tmux/window-copy.c:2550,1
    - Dst: utf8_fromcstr
      Src: /src/tmux/window-copy.c:2551,1
    - Dst: window_copy_cursor_jump_to
      Src: /src/tmux/window-copy.c:2553,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2556
      start: 2540
    functionDepth: 1
    functionLinenumber: 2540
    functionLinenumberEnd: 2556
    functionName: window_copy_cmd_jump_to_forward
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - args_string
    - window_copy_cursor_jump_to
    - free
    - utf8_fromcstr
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_jump_to_forward(struct
      window_copy_cmd_state *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_jump_to_mark
      Src: /src/tmux/window-copy.c:2563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2565
      start: 2558
    functionDepth: 1
    functionLinenumber: 2558
    functionLinenumberEnd: 2565
    functionName: window_copy_cmd_jump_to_mark
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_jump_to_mark
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_jump_to_mark(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cursor_prompt
      Src: /src/tmux/window-copy.c:2572,1
    - Dst: args_has
      Src: /src/tmux/window-copy.c:2572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2574
      start: 2567
    functionDepth: 1
    functionLinenumber: 2567
    functionLinenumberEnd: 2574
    functionName: window_copy_cmd_next_prompt
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cursor_prompt
    - args_has
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_next_prompt(struct window_copy_cmd_state
      *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cursor_prompt
      Src: /src/tmux/window-copy.c:2581,1
    - Dst: args_has
      Src: /src/tmux/window-copy.c:2581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2583
      start: 2576
    functionDepth: 1
    functionLinenumber: 2576
    functionLinenumberEnd: 2583
    functionName: window_copy_cmd_previous_prompt
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cursor_prompt
    - args_has
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_previous_prompt(struct
      window_copy_cmd_state *cs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_expand_search_string
      Src: /src/tmux/window-copy.c:2592,1
    - Dst: window_copy_search_up
      Src: /src/tmux/window-copy.c:2600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2603
      start: 2585
    functionDepth: 2
    functionLinenumber: 2585
    functionLinenumberEnd: 2603
    functionName: window_copy_cmd_search_backward
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_search_up
    - window_copy_expand_search_string
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_search_backward(struct
      window_copy_cmd_state *cs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_expand_search_string
      Src: /src/tmux/window-copy.c:2612,1
    - Dst: window_copy_search_up
      Src: /src/tmux/window-copy.c:2620,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2623
      start: 2605
    functionDepth: 2
    functionLinenumber: 2605
    functionLinenumberEnd: 2623
    functionName: window_copy_cmd_search_backward_text
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_search_up
    - window_copy_expand_search_string
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_search_backward_text(struct
      window_copy_cmd_state *cs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_expand_search_string
      Src: /src/tmux/window-copy.c:2632,1
    - Dst: window_copy_search_down
      Src: /src/tmux/window-copy.c:2640,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2643
      start: 2625
    functionDepth: 2
    functionLinenumber: 2625
    functionLinenumberEnd: 2643
    functionName: window_copy_cmd_search_forward
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_search_down
    - window_copy_expand_search_string
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_search_forward(struct window_copy_cmd_state
      *cs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_expand_search_string
      Src: /src/tmux/window-copy.c:2652,1
    - Dst: window_copy_search_down
      Src: /src/tmux/window-copy.c:2660,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2663
      start: 2645
    functionDepth: 2
    functionLinenumber: 2645
    functionLinenumberEnd: 2663
    functionName: window_copy_cmd_search_forward_text
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_search_down
    - window_copy_expand_search_string
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_search_forward_text(struct
      window_copy_cmd_state *cs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: args_string
      Src: /src/tmux/window-copy.c:2670,1
    - Dst: log_debug
      Src: /src/tmux/window-copy.c:2677,1
    - Dst: strcmp
      Src: /src/tmux/window-copy.c:2684,1
    - Dst: window_copy_cursor_limit
      Src: /src/tmux/window-copy.c:2688,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:2689,1
    - Dst: window_copy_clear_marks
      Src: /src/tmux/window-copy.c:2693,1
    - Dst: free
      Src: /src/tmux/window-copy.c:2701,1
    - Dst: xstrdup
      Src: /src/tmux/window-copy.c:2702,1
    - Dst: window_copy_search_up
      Src: /src/tmux/window-copy.c:2703,1
    - Dst: window_copy_clear_marks
      Src: /src/tmux/window-copy.c:2704,1
    - Dst: free
      Src: /src/tmux/window-copy.c:2711,1
    - Dst: xstrdup
      Src: /src/tmux/window-copy.c:2712,1
    - Dst: window_copy_search_down
      Src: /src/tmux/window-copy.c:2713,1
    - Dst: window_copy_clear_marks
      Src: /src/tmux/window-copy.c:2714,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2720
      start: 2665
    functionDepth: 1
    functionLinenumber: 2665
    functionLinenumberEnd: 2720
    functionName: window_copy_cmd_search_backward_incremental
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - args_string
    - window_copy_search_up
    - strcmp
    - screen_hsize
    - window_copy_cursor_limit
    - window_copy_clear_marks
    - free
    - log_debug
    - xstrdup
    - window_copy_search_down
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_search_backward_incremental(struct
      window_copy_cmd_state *cs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: args_string
      Src: /src/tmux/window-copy.c:2727,1
    - Dst: log_debug
      Src: /src/tmux/window-copy.c:2734,1
    - Dst: strcmp
      Src: /src/tmux/window-copy.c:2741,1
    - Dst: window_copy_cursor_limit
      Src: /src/tmux/window-copy.c:2745,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:2746,1
    - Dst: window_copy_clear_marks
      Src: /src/tmux/window-copy.c:2750,1
    - Dst: free
      Src: /src/tmux/window-copy.c:2758,1
    - Dst: xstrdup
      Src: /src/tmux/window-copy.c:2759,1
    - Dst: window_copy_search_down
      Src: /src/tmux/window-copy.c:2760,1
    - Dst: window_copy_clear_marks
      Src: /src/tmux/window-copy.c:2761,1
    - Dst: free
      Src: /src/tmux/window-copy.c:2768,1
    - Dst: xstrdup
      Src: /src/tmux/window-copy.c:2769,1
    - Dst: window_copy_search_up
      Src: /src/tmux/window-copy.c:2770,1
    - Dst: window_copy_clear_marks
      Src: /src/tmux/window-copy.c:2771,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2776
      start: 2722
    functionDepth: 1
    functionLinenumber: 2722
    functionLinenumberEnd: 2776
    functionName: window_copy_cmd_search_forward_incremental
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - args_string
    - window_copy_search_up
    - strcmp
    - screen_hsize
    - window_copy_cursor_limit
    - window_copy_clear_marks
    - free
    - log_debug
    - xstrdup
    - window_copy_search_down
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_search_forward_incremental(struct
      window_copy_cmd_state *cs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:2788,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:2789,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:2790,1
    - Dst: screen_free
      Src: /src/tmux/window-copy.c:2792,1
    - Dst: free
      Src: /src/tmux/window-copy.c:2793,1
    - Dst: window_copy_clone_screen
      Src: /src/tmux/window-copy.c:2794,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:2797,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:2798,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:2801,1
    - Dst: window_copy_size_changed
      Src: /src/tmux/window-copy.c:2804,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2806
      start: 2778
    functionDepth: 4
    functionLinenumber: 2778
    functionLinenumberEnd: 2806
    functionName: window_copy_cmd_refresh_from_pane
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - screen_free
    - screen_hsize
    - free
    - window_copy_size_changed
    - window_copy_clone_screen
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_refresh_from_pane(struct
      window_copy_cmd_state *cs)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:2814,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:2818,1
    - Dst: window_copy_scroll_down
      Src: /src/tmux/window-copy.c:2844,1
    - Dst: window_copy_scroll_up
      Src: /src/tmux/window-copy.c:2846,1
    - Dst: window_copy_scroll_up
      Src: /src/tmux/window-copy.c:2851,1
    - Dst: window_copy_scroll_down
      Src: /src/tmux/window-copy.c:2855,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:2859,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 1
    argNames:
    - cs
    argTypes:
    - struct window_copy_cmd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2862
      start: 2808
    functionDepth: 1
    functionLinenumber: 2808
    functionLinenumberEnd: 2862
    functionName: window_copy_cmd_recentre_top_bottom
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_scroll_down
    - window_copy_scroll_up
    - screen_size_y
    - screen_hsize
    - window_copy_update_selection
    linkageType: ''
    returnType: enum window_copy_cmd_action
    signature: enum window_copy_cmd_action window_copy_cmd_recentre_top_bottom(struct
      window_copy_cmd_state *cs)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: args_count
      Src: /src/tmux/window-copy.c:3444,1
    - Dst: args_string
      Src: /src/tmux/window-copy.c:3450,1
    - Dst: MOUSE_WHEEL
      Src: /src/tmux/window-copy.c:3452,1
    - Dst: window_copy_move_mouse
      Src: /src/tmux/window-copy.c:3453,1
    - Dst: nitems
      Src: /src/tmux/window-copy.c:3465,1
    - Dst: strcmp
      Src: /src/tmux/window-copy.c:3466,1
    - Dst: status_message_set
      Src: /src/tmux/window-copy.c:3471,1
    - Dst: args_parse
      Src: /src/tmux/window-copy.c:3476,1
    - Dst: args_values
      Src: /src/tmux/window-copy.c:3477,1
    - Dst: free
      Src: /src/tmux/window-copy.c:3480,1
    - Dst: f
      Src: /src/tmux/window-copy.c:3487,1
    - Dst: args_free
      Src: /src/tmux/window-copy.c:3488,1
    - Dst: strncmp
      Src: /src/tmux/window-copy.c:3494,1
    - Dst: options_get_number
      Src: /src/tmux/window-copy.c:3495,1
    - Dst: window_copy_clear_marks
      Src: /src/tmux/window-copy.c:3500,1
    - Dst: window_pane_reset_mode
      Src: /src/tmux/window-copy.c:3509,1
    - Dst: window_copy_redraw_screen
      Src: /src/tmux/window-copy.c:3511,1
    - Dst: window_copy_redraw_lines
      Src: /src/tmux/window-copy.c:3519,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 54
    argCount: 6
    argNames:
    - wme
    - c
    - s
    - wl
    - args
    - m
    argTypes:
    - struct window_mode_entry*
    - struct client*
    - struct session*
    - struct winlink*
    - struct args*
    - struct mouse_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3521
      start: 3433
    functionDepth: 2
    functionLinenumber: 3433
    functionLinenumberEnd: 3521
    functionName: window_copy_command
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_redraw_screen
    - MOUSE_WHEEL
    - args_string
    - nitems
    - strncmp
    - window_copy_redraw_lines
    - strcmp
    - args_parse
    - options_get_number
    - window_copy_clear_marks
    - free
    - args_values
    - window_pane_reset_mode
    - args_count
    - status_message_set
    - args_free
    - f
    - window_copy_move_mouse
    linkageType: ''
    returnType: void
    signature: "void window_copy_command(struct window_mode_entry *wme, struct client
      *c,\n    struct session *s, struct winlink *wl, struct args *args,\n    struct
      mouse_event *m)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_search_marks
      Src: /src/tmux/window-copy.c:3551,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:3552,1
    - Dst: window_copy_redraw_screen
      Src: /src/tmux/window-copy.c:3554,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - wme
    - px
    - py
    - no_redraw
    argTypes:
    - struct window_mode_entry*
    - u_int
    - u_int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3555
      start: 3523
    functionDepth: 1
    functionLinenumber: 3523
    functionLinenumberEnd: 3555
    functionName: window_copy_scroll_to
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 4
    functionsReached:
    - window_copy_search_marks
    - window_copy_redraw_screen
    - window_copy_update_selection
    linkageType: ''
    returnType: void
    signature: "void window_copy_scroll_to(struct window_mode_entry *wme, u_int px,
      u_int py,\n    int no_redraw)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_cell
      Src: /src/tmux/window-copy.c:3564,1
    - Dst: grid_get_cell
      Src: /src/tmux/window-copy.c:3566,1
    - Dst: tolower
      Src: /src/tmux/window-copy.c:3576,1
    - Dst: memcmp
      Src: /src/tmux/window-copy.c:3578,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 6
    argNames:
    - gd
    - px
    - py
    - sgd
    - spx
    - cis
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - struct grid*
    - u_int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3579
      start: 3557
    functionDepth: 3
    functionLinenumber: 3557
    functionLinenumberEnd: 3579
    functionName: window_copy_search_compare
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - grid_get_cell
    - tolower
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int window_copy_search_compare(struct grid *gd, u_int px, u_int py,\n
      \   struct grid *sgd, u_int spx, int cis)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_line
      Src: /src/tmux/window-copy.c:3598,1
    - Dst: grid_get_cell
      Src: /src/tmux/window-copy.c:3608,1
    - Dst: window_copy_search_compare
      Src: /src/tmux/window-copy.c:3612,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 7
    argNames:
    - gd
    - sgd
    - ppx
    - py
    - first
    - last
    - cis
    argTypes:
    - struct grid*
    - struct grid*
    - u_int*
    - u_int
    - u_int
    - u_int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3623
      start: 3581
    functionDepth: 4
    functionLinenumber: 3581
    functionLinenumberEnd: 3623
    functionName: window_copy_search_lr
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - grid_get_line
    - grid_get_cell
    - window_copy_search_compare
    linkageType: ''
    returnType: int
    signature: "int window_copy_search_lr(struct grid *gd, struct grid *sgd, u_int
      *ppx, u_int py,\n    u_int first, u_int last, int cis)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_line
      Src: /src/tmux/window-copy.c:3642,1
    - Dst: grid_get_cell
      Src: /src/tmux/window-copy.c:3652,1
    - Dst: window_copy_search_compare
      Src: /src/tmux/window-copy.c:3656,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 7
    argNames:
    - gd
    - sgd
    - ppx
    - py
    - first
    - last
    - cis
    argTypes:
    - struct grid*
    - struct grid*
    - u_int*
    - u_int
    - u_int
    - u_int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3667
      start: 3625
    functionDepth: 4
    functionLinenumber: 3625
    functionLinenumberEnd: 3667
    functionName: window_copy_search_rl
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - grid_get_line
    - grid_get_cell
    - window_copy_search_compare
    linkageType: ''
    returnType: int
    signature: "int window_copy_search_rl(struct grid *gd,\n    struct grid *sgd,
      u_int *ppx, u_int py, u_int first, u_int last, int cis)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/tmux/window-copy.c:3691,1
    - Dst: window_copy_stringify
      Src: /src/tmux/window-copy.c:3693,1
    - Dst: grid_get_line
      Src: /src/tmux/window-copy.c:3700,1
    - Dst: window_copy_stringify
      Src: /src/tmux/window-copy.c:3704,1
    - Dst: regexec
      Src: /src/tmux/window-copy.c:3708,1
    - Dst: window_copy_cstrtocellpos
      Src: /src/tmux/window-copy.c:3712,1
    - Dst: window_copy_cstrtocellpos
      Src: /src/tmux/window-copy.c:3717,1
    - Dst: free
      Src: /src/tmux/window-copy.c:3725,1
    - Dst: free
      Src: /src/tmux/window-copy.c:3730,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 7
    argNames:
    - gd
    - ppx
    - psx
    - py
    - first
    - last
    - reg
    argTypes:
    - struct grid*
    - u_int*
    - u_int*
    - u_int
    - u_int
    - u_int
    - regex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3734
      start: 3669
    functionDepth: 1
    functionLinenumber: 3669
    functionLinenumberEnd: 3734
    functionName: window_copy_search_lr_regex
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_stringify
    - regexec
    - grid_get_line
    - xmalloc
    - free
    - window_copy_cstrtocellpos
    linkageType: ''
    returnType: int
    signature: "int window_copy_search_lr_regex(struct grid *gd, u_int *ppx, u_int
      *psx, u_int py,\n    u_int first, u_int last, regex_t *reg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/tmux/window-copy.c:3750,1
    - Dst: window_copy_stringify
      Src: /src/tmux/window-copy.c:3752,1
    - Dst: grid_get_line
      Src: /src/tmux/window-copy.c:3759,1
    - Dst: window_copy_stringify
      Src: /src/tmux/window-copy.c:3763,1
    - Dst: window_copy_last_regex
      Src: /src/tmux/window-copy.c:3767,1
    - Dst: free
      Src: /src/tmux/window-copy.c:3770,1
    - Dst: free
      Src: /src/tmux/window-copy.c:3774,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 7
    argNames:
    - gd
    - ppx
    - psx
    - py
    - first
    - last
    - reg
    argTypes:
    - struct grid*
    - u_int*
    - u_int*
    - u_int
    - u_int
    - u_int
    - regex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3778
      start: 3736
    functionDepth: 1
    functionLinenumber: 3736
    functionLinenumberEnd: 3778
    functionName: window_copy_search_rl_regex
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_stringify
    - grid_get_line
    - xmalloc
    - window_copy_last_regex
    - free
    linkageType: ''
    returnType: int
    signature: "int window_copy_search_rl_regex(struct grid *gd, u_int *ppx, u_int
      *psx, u_int py,\n    u_int first, u_int last, regex_t *reg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: utf8_to_data
      Src: /src/tmux/window-copy.c:3811,1
    - Dst: xmalloc
      Src: /src/tmux/window-copy.c:3820,1
    - Dst: memcpy
      Src: /src/tmux/window-copy.c:3821,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 4
    argNames:
    - gl
    - px
    - size
    - allocated
    argTypes:
    - struct grid_line*
    - u_int
    - size_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3823
      start: 3780
    functionDepth: 1
    functionLinenumber: 3780
    functionLinenumberEnd: 3823
    functionName: window_copy_cellstring
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - utf8_to_data
    - memcpy
    linkageType: ''
    returnType: char
    signature: "char *\nwindow_copy_cellstring(const struct grid_line *gl, u_int px,
      size_t *size,\n    int *allocated)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: regexec
      Src: /src/tmux/window-copy.c:3837,1
    - Dst: window_copy_cstrtocellpos
      Src: /src/tmux/window-copy.c:3840,1
    - Dst: window_copy_cstrtocellpos
      Src: /src/tmux/window-copy.c:3846,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 10
    argNames:
    - gd
    - py
    - first
    - last
    - len
    - ppx
    - psx
    - buf
    - preg
    - eflags
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - u_int
    - u_int
    - u_int*
    - u_int*
    - char*
    - regex_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3874
      start: 3826
    functionDepth: 1
    functionLinenumber: 3826
    functionLinenumberEnd: 3874
    functionName: window_copy_last_regex
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - window_copy_cstrtocellpos
    - regexec
    linkageType: ''
    returnType: int
    signature: "int window_copy_last_regex(struct grid *gd, u_int py, u_int first,
      u_int last,\n    u_int len, u_int *ppx, u_int *psx, const char *buf, const regex_t
      *preg,\n    int eflags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xrealloc
      Src: /src/tmux/window-copy.c:3889,1
    - Dst: grid_peek_line
      Src: /src/tmux/window-copy.c:3891,1
    - Dst: window_copy_cellstring
      Src: /src/tmux/window-copy.c:3898,1
    - Dst: xrealloc
      Src: /src/tmux/window-copy.c:3902,1
    - Dst: memcpy
      Src: /src/tmux/window-copy.c:3907,1
    - Dst: free
      Src: /src/tmux/window-copy.c:3911,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 6
    argNames:
    - gd
    - py
    - first
    - last
    - buf
    - size
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - u_int
    - char*
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3917
      start: 3877
    functionDepth: 3
    functionLinenumber: 3877
    functionLinenumberEnd: 3917
    functionName: window_copy_stringify
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 2
    functionsReached:
    - grid_peek_line
    - window_copy_cellstring
    - free
    - xrealloc
    - memcpy
    linkageType: ''
    returnType: char
    signature: "char *\nwindow_copy_stringify(struct grid *gd, u_int py, u_int first,
      u_int last,\n    char *buf, u_int *size)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xreallocarray
      Src: /src/tmux/window-copy.c:3936,1
    - Dst: grid_peek_line
      Src: /src/tmux/window-copy.c:3940,1
    - Dst: free
      Src: /src/tmux/window-copy.c:3942,1
    - Dst: window_copy_cellstring
      Src: /src/tmux/window-copy.c:3946,1
    - Dst: grid_peek_line
      Src: /src/tmux/window-copy.c:3953,1
    - Dst: strlen
      Src: /src/tmux/window-copy.c:3961,1
    - Dst: memcmp
      Src: /src/tmux/window-copy.c:3982,1
    - Dst: free
      Src: /src/tmux/window-copy.c:4009,1
    - Dst: free
      Src: /src/tmux/window-copy.c:4011,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 69
    argCount: 5
    argNames:
    - gd
    - ncells
    - ppx
    - ppy
    - str
    argTypes:
    - struct grid*
    - u_int
    - u_int*
    - u_int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4012
      start: 3920
    functionDepth: 3
    functionLinenumber: 3920
    functionLinenumberEnd: 4012
    functionName: window_copy_cstrtocellpos
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 2
    functionsReached:
    - grid_peek_line
    - window_copy_cellstring
    - free
    - xreallocarray
    - memcmp
    - strlen
    linkageType: ''
    returnType: void
    signature: "void window_copy_cstrtocellpos(struct grid *gd, u_int ncells, u_int
      *ppx, u_int *ppy,\n    const char *str)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:4020,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:4021,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:4021,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:4025,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - s
    - fx
    - fy
    - wrapflag
    argTypes:
    - struct screen*
    - u_int*
    - u_int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4029
      start: 4014
    functionDepth: 1
    functionLinenumber: 4014
    functionLinenumberEnd: 4029
    functionName: window_copy_move_left
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - screen_hsize
    - screen_size_x
    - screen_size_y
    linkageType: ''
    returnType: void
    signature: void window_copy_move_left(struct screen *s, u_int *fx, u_int *fy,
      int wrapflag)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:4034,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:4035,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:4035,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - s
    - fx
    - fy
    - wrapflag
    argTypes:
    - struct screen*
    - u_int*
    - u_int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4046
      start: 4031
    functionDepth: 1
    functionLinenumber: 4031
    functionLinenumberEnd: 4046
    functionName: window_copy_move_right
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - screen_hsize
    - screen_size_x
    - screen_size_y
    linkageType: ''
    returnType: void
    signature: void window_copy_move_right(struct screen *s, u_int *fx, u_int *fy,
      int wrapflag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/tmux/window-copy.c:4052,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4057
      start: 4048
    functionDepth: 0
    functionLinenumber: 4048
    functionLinenumberEnd: 4057
    functionName: window_copy_is_lowercase
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - tolower
    linkageType: ''
    returnType: int
    signature: int window_copy_is_lowercase(const char *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_line
      Src: /src/tmux/window-copy.c:4081,1
    - Dst: window_copy_search_rl_regex
      Src: /src/tmux/window-copy.c:4084,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 6
    argNames:
    - gd
    - preg
    - ppx
    - psx
    - ppy
    - endline
    argTypes:
    - struct grid*
    - regex_t*
    - u_int*
    - u_int*
    - u_int*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4099
      start: 4063
    functionDepth: 2
    functionLinenumber: 4063
    functionLinenumberEnd: 4099
    functionName: window_copy_search_back_overlap
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - grid_get_line
    - window_copy_search_rl_regex
    linkageType: ''
    returnType: void
    signature: "void window_copy_search_back_overlap(struct grid *gd, regex_t *preg,
      u_int *ppx,\n    u_int *psx, u_int *ppy, u_int endline)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/tmux/window-copy.c:4118,1
    - Dst: window_copy_stringify
      Src: /src/tmux/window-copy.c:4120,1
    - Dst: regcomp
      Src: /src/tmux/window-copy.c:4123,1
    - Dst: free
      Src: /src/tmux/window-copy.c:4124,1
    - Dst: free
      Src: /src/tmux/window-copy.c:4127,1
    - Dst: window_copy_search_lr_regex
      Src: /src/tmux/window-copy.c:4133,1
    - Dst: window_copy_search_lr
      Src: /src/tmux/window-copy.c:4136,1
    - Dst: window_copy_search_rl_regex
      Src: /src/tmux/window-copy.c:4146,1
    - Dst: window_copy_search_back_overlap
      Src: /src/tmux/window-copy.c:4149,1
    - Dst: window_copy_search_rl
      Src: /src/tmux/window-copy.c:4153,1
    - Dst: regfree
      Src: /src/tmux/window-copy.c:4164,1
    - Dst: window_copy_scroll_to
      Src: /src/tmux/window-copy.c:4167,1
    - Dst: window_copy_search_jump
      Src: /src/tmux/window-copy.c:4171,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 10
    argNames:
    - wme
    - gd
    - sgd
    - fx
    - fy
    - endline
    - cis
    - wrap
    - direction
    - regex
    argTypes:
    - struct window_mode_entry*
    - struct grid*
    - struct grid*
    - u_int
    - u_int
    - u_int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4177
      start: 4107
    functionDepth: 5
    functionLinenumber: 4107
    functionLinenumberEnd: 4177
    functionName: window_copy_search_jump
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - window_copy_stringify
    - regfree
    - window_copy_search_lr_regex
    - xmalloc
    - window_copy_search_back_overlap
    - window_copy_search_rl_regex
    - window_copy_scroll_to
    - window_copy_search_jump
    - regcomp
    - free
    - window_copy_search_lr
    - window_copy_search_rl
    linkageType: ''
    returnType: int
    signature: "int window_copy_search_jump(struct window_mode_entry *wme, struct
      grid *gd,\n    struct grid *sgd, u_int fx, u_int fy, u_int endline, int cis,
      int wrap,\n    int direction, int regex)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_search_mark_at
      Src: /src/tmux/window-copy.c:4186,1
    - Dst: window_copy_search_mark_at
      Src: /src/tmux/window-copy.c:4188,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:4193,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:4194,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:4194,1
    - Dst: window_copy_move_right
      Src: /src/tmux/window-copy.c:4197,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 4
    argNames:
    - data
    - fx
    - fy
    - wrapflag
    argTypes:
    - struct window_copy_mode_data*
    - u_int*
    - u_int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4200
      start: 4179
    functionDepth: 2
    functionLinenumber: 4179
    functionLinenumberEnd: 4200
    functionName: window_copy_move_after_search_mark
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - screen_size_y
    - window_copy_move_right
    - screen_size_x
    - window_copy_search_mark_at
    - screen_hsize
    linkageType: ''
    returnType: void
    signature: "void window_copy_move_after_search_mark(struct window_copy_mode_data
      *data,\n    u_int *fx, u_int *fy, int wrapflag)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strcspn
      Src: /src/tmux/window-copy.c:4219,1
    - Dst: strcmp
      Src: /src/tmux/window-copy.c:4232,1
    - Dst: window_copy_clear_marks
      Src: /src/tmux/window-copy.c:4234,1
    - Dst: free
      Src: /src/tmux/window-copy.c:4235,1
    - Dst: xstrdup
      Src: /src/tmux/window-copy.c:4236,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:4240,1
    - Dst: screen_write_strlen
      Src: /src/tmux/window-copy.c:4242,1
    - Dst: screen_init
      Src: /src/tmux/window-copy.c:4244,1
    - Dst: screen_write_start
      Src: /src/tmux/window-copy.c:4245,1
    - Dst: screen_write_nputs
      Src: /src/tmux/window-copy.c:4246,1
    - Dst: screen_write_stop
      Src: /src/tmux/window-copy.c:4247,1
    - Dst: options_get_number
      Src: /src/tmux/window-copy.c:4249,1
    - Dst: window_copy_is_lowercase
      Src: /src/tmux/window-copy.c:4250,1
    - Dst: options_get_number
      Src: /src/tmux/window-copy.c:4252,1
    - Dst: window_copy_move_after_search_mark
      Src: /src/tmux/window-copy.c:4265,1
    - Dst: window_copy_move_right
      Src: /src/tmux/window-copy.c:4272,1
    - Dst: window_copy_move_left
      Src: /src/tmux/window-copy.c:4277,1
    - Dst: window_copy_search_jump
      Src: /src/tmux/window-copy.c:4281,1
    - Dst: window_copy_search_marks
      Src: /src/tmux/window-copy.c:4284,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:4286,1
    - Dst: window_copy_search_mark_at
      Src: /src/tmux/window-copy.c:4293,1
    - Dst: window_copy_move_after_search_mark
      Src: /src/tmux/window-copy.c:4297,1
    - Dst: window_copy_search_jump
      Src: /src/tmux/window-copy.c:4299,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:4303,1
    - Dst: window_copy_move_after_search_mark
      Src: /src/tmux/window-copy.c:4312,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:4315,1
    - Dst: window_copy_search_mark_at
      Src: /src/tmux/window-copy.c:4323,1
    - Dst: window_copy_search_mark_at
      Src: /src/tmux/window-copy.c:4325,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:4332,1
    - Dst: window_copy_move_left
      Src: /src/tmux/window-copy.c:4337,1
    - Dst: window_copy_redraw_screen
      Src: /src/tmux/window-copy.c:4342,1
    - Dst: screen_free
      Src: /src/tmux/window-copy.c:4344,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 71
    argCount: 3
    argNames:
    - wme
    - direction
    - regex
    argTypes:
    - struct window_mode_entry*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4346
      start: 4206
    functionDepth: 6
    functionLinenumber: 4206
    functionLinenumberEnd: 4346
    functionName: window_copy_search
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_move_after_search_mark
    - screen_write_nputs
    - strcspn
    - window_copy_move_left
    - screen_hsize
    - window_copy_search_marks
    - screen_write_start
    - xstrdup
    - window_copy_redraw_screen
    - window_copy_move_right
    - window_copy_search_jump
    - screen_write_strlen
    - window_copy_is_lowercase
    - screen_init
    - screen_free
    - window_copy_search_mark_at
    - strcmp
    - window_copy_clear_marks
    - free
    - options_get_number
    - screen_write_stop
    linkageType: ''
    returnType: int
    signature: int window_copy_search(struct window_mode_entry *wme, int direction,
      int regex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: grid_peek_line
      Src: /src/tmux/window-copy.c:4356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - data
    - start
    - end
    argTypes:
    - struct window_copy_mode_data*
    - u_int*
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4361
      start: 4348
    functionDepth: 3
    functionLinenumber: 4348
    functionLinenumberEnd: 4361
    functionName: window_copy_visible_lines
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - grid_peek_line
    linkageType: ''
    returnType: void
    signature: "void window_copy_visible_lines(struct window_copy_mode_data *data,
      u_int *start,\n    u_int *end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - data
    - px
    - py
    - at
    argTypes:
    - struct window_copy_mode_data*
    - u_int
    - u_int
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4376
      start: 4363
    functionDepth: 0
    functionLinenumber: 4363
    functionLinenumberEnd: 4376
    functionName: window_copy_search_mark_at
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int window_copy_search_mark_at(struct window_copy_mode_data *data,
      u_int px,\n    u_int py, u_int *at)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - width
    - b
    - sx
    - sy
    argTypes:
    - u_int
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4382
      start: 4378
    functionDepth: 0
    functionLinenumber: 4378
    functionLinenumberEnd: 4382
    functionName: window_copy_clip_width
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int
    signature: u_int window_copy_clip_width(u_int width, u_int b, u_int sx, u_int
      sy)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_search_mark_at
      Src: /src/tmux/window-copy.c:4392,1
    - Dst: window_copy_clip_width
      Src: /src/tmux/window-copy.c:4393,1
    - Dst: grid_get_cell
      Src: /src/tmux/window-copy.c:4397,1
    - Dst: window_copy_clip_width
      Src: /src/tmux/window-copy.c:4400,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 5
    argNames:
    - data
    - px
    - py
    - width
    - regex
    argTypes:
    - struct window_copy_mode_data*
    - u_int
    - u_int
    - u_int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4413
      start: 4384
    functionDepth: 3
    functionLinenumber: 4384
    functionLinenumberEnd: 4413
    functionName: window_copy_search_mark_match
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - grid_get_cell
    - window_copy_search_mark_at
    - window_copy_clip_width
    linkageType: ''
    returnType: u_int
    signature: "u_int window_copy_search_mark_match(struct window_copy_mode_data *data,
      u_int px,\n    u_int py, u_int width, int regex)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_strlen
      Src: /src/tmux/window-copy.c:4434,1
    - Dst: screen_init
      Src: /src/tmux/window-copy.c:4435,1
    - Dst: screen_write_start
      Src: /src/tmux/window-copy.c:4436,1
    - Dst: screen_write_nputs
      Src: /src/tmux/window-copy.c:4437,1
    - Dst: screen_write_stop
      Src: /src/tmux/window-copy.c:4439,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:4442,1
    - Dst: window_copy_is_lowercase
      Src: /src/tmux/window-copy.c:4444,1
    - Dst: xmalloc
      Src: /src/tmux/window-copy.c:4447,1
    - Dst: window_copy_stringify
      Src: /src/tmux/window-copy.c:4449,1
    - Dst: regcomp
      Src: /src/tmux/window-copy.c:4453,1
    - Dst: free
      Src: /src/tmux/window-copy.c:4454,1
    - Dst: free
      Src: /src/tmux/window-copy.c:4457,1
    - Dst: get_timer
      Src: /src/tmux/window-copy.c:4459,1
    - Dst: window_copy_visible_lines
      Src: /src/tmux/window-copy.c:4462,1
    - Dst: get_timer
      Src: /src/tmux/window-copy.c:4466,1
    - Dst: free
      Src: /src/tmux/window-copy.c:4470,1
    - Dst: xcalloc
      Src: /src/tmux/window-copy.c:4471,1
    - Dst: window_copy_search_lr_regex
      Src: /src/tmux/window-copy.c:4478,1
    - Dst: grid_get_cell
      Src: /src/tmux/window-copy.c:4480,1
    - Dst: window_copy_search_lr
      Src: /src/tmux/window-copy.c:4486,1
    - Dst: window_copy_search_mark_match
      Src: /src/tmux/window-copy.c:4492,1
    - Dst: get_timer
      Src: /src/tmux/window-copy.c:4496,1
    - Dst: window_copy_clear_marks
      Src: /src/tmux/window-copy.c:4507,1
    - Dst: window_copy_visible_lines
      Src: /src/tmux/window-copy.c:4513,1
    - Dst: screen_free
      Src: /src/tmux/window-copy.c:4537,1
    - Dst: regfree
      Src: /src/tmux/window-copy.c:4539,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 96
    argCount: 4
    argNames:
    - wme
    - ssp
    - regex
    - visible_only
    argTypes:
    - struct window_mode_entry*
    - struct screen*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4541
      start: 4415
    functionDepth: 5
    functionLinenumber: 4415
    functionLinenumberEnd: 4541
    functionName: window_copy_search_marks
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 8
    functionsReached:
    - window_copy_search_lr_regex
    - window_copy_search_mark_match
    - screen_size_x
    - xmalloc
    - screen_write_nputs
    - window_copy_stringify
    - regfree
    - xcalloc
    - grid_get_cell
    - screen_write_start
    - get_timer
    - screen_write_strlen
    - window_copy_is_lowercase
    - regcomp
    - window_copy_visible_lines
    - screen_init
    - screen_free
    - window_copy_clear_marks
    - free
    - window_copy_search_lr
    - screen_write_stop
    linkageType: ''
    returnType: int
    signature: "int window_copy_search_marks(struct window_mode_entry *wme, struct
      screen *ssp,\n    int regex, int visible_only)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/window-copy.c:4551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4553
      start: 4543
    functionDepth: 0
    functionLinenumber: 4543
    functionLinenumberEnd: 4553
    functionName: window_copy_clear_marks
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 6
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void window_copy_clear_marks(struct window_mode_entry *wme)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_search
      Src: /src/tmux/window-copy.c:4558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wme
    - regex
    argTypes:
    - struct window_mode_entry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4559
      start: 4555
    functionDepth: 7
    functionLinenumber: 4555
    functionLinenumberEnd: 4559
    functionName: window_copy_search_up
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 6
    functionsReached:
    - window_copy_search
    linkageType: ''
    returnType: int
    signature: int window_copy_search_up(struct window_mode_entry *wme, int regex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_search
      Src: /src/tmux/window-copy.c:4564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wme
    - regex
    argTypes:
    - struct window_mode_entry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4565
      start: 4561
    functionDepth: 7
    functionLinenumber: 4561
    functionLinenumberEnd: 4565
    functionName: window_copy_search_down
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 6
    functionsReached:
    - window_copy_search
    linkageType: ''
    returnType: int
    signature: int window_copy_search_down(struct window_mode_entry *wme, int regex)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:4572,1
    - Dst: strtonum
      Src: /src/tmux/window-copy.c:4576,1
    - Dst: window_copy_line_number_is_absolute
      Src: /src/tmux/window-copy.c:4580,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:4594,1
    - Dst: window_copy_redraw_screen
      Src: /src/tmux/window-copy.c:4595,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - wme
    - linestr
    argTypes:
    - struct window_mode_entry*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4596
      start: 4567
    functionDepth: 1
    functionLinenumber: 4567
    functionLinenumberEnd: 4596
    functionName: window_copy_goto_line
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - window_copy_redraw_screen
    - window_copy_line_number_is_absolute
    - strtonum
    - screen_hsize
    - window_copy_update_selection
    linkageType: ''
    returnType: void
    signature: void window_copy_goto_line(struct window_mode_entry *wme, const char
      *linestr)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - data
    - at
    - start
    - end
    argTypes:
    - struct window_copy_mode_data*
    - u_int
    - u_int*
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4615
      start: 4598
    functionDepth: 0
    functionLinenumber: 4598
    functionLinenumberEnd: 4615
    functionName: window_copy_match_start_end
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void window_copy_match_start_end(struct window_copy_mode_data *data,
      u_int at,\n    u_int *start, u_int *end)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:4623,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:4630,1
    - Dst: window_copy_search_mark_at
      Src: /src/tmux/window-copy.c:4631,1
    - Dst: window_copy_match_start_end
      Src: /src/tmux/window-copy.c:4638,1
    - Dst: grid_get_cell
      Src: /src/tmux/window-copy.c:4648,1
    - Dst: xrealloc
      Src: /src/tmux/window-copy.c:4650,1
    - Dst: xrealloc
      Src: /src/tmux/window-copy.c:4656,1
    - Dst: memcpy
      Src: /src/tmux/window-copy.c:4657,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct window_copy_mode_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4664
      start: 4617
    functionDepth: 3
    functionLinenumber: 4617
    functionLinenumberEnd: 4664
    functionName: window_copy_match_at_cursor
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - screen_size_x
    - window_copy_search_mark_at
    - screen_hsize
    - window_copy_match_start_end
    - grid_get_cell
    - xrealloc
    - memcpy
    linkageType: ''
    returnType: char
    signature: 'char *

      window_copy_match_at_cursor(struct window_copy_mode_data *data)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_search_mark_at
      Src: /src/tmux/window-copy.c:4694,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:4700,1
    - Dst: window_copy_search_mark_at
      Src: /src/tmux/window-copy.c:4701,1
    - Dst: options_get_number
      Src: /src/tmux/window-copy.c:4702,1
    - Dst: window_copy_match_start_end
      Src: /src/tmux/window-copy.c:4713,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 7
    argNames:
    - wme
    - fx
    - fy
    - gc
    - mgc
    - cgc
    - mkgc
    argTypes:
    - struct window_mode_entry*
    - u_int
    - u_int
    - struct grid_cell*
    - struct grid_cell*
    - struct grid_cell*
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4738
      start: 4666
    functionDepth: 1
    functionLinenumber: 4666
    functionLinenumberEnd: 4738
    functionName: window_copy_update_style
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - screen_hsize
    - options_get_number
    - window_copy_match_start_end
    - window_copy_search_mark_at
    linkageType: ''
    returnType: void
    signature: "void window_copy_update_style(struct window_mode_entry *wme, u_int
      fx, u_int fy,\n    struct grid_cell *gc, const struct grid_cell *mgc,\n    const
      struct grid_cell *cgc, const struct grid_cell *mkgc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-copy.c:4751,1
    - Dst: grid_get_cell
      Src: /src/tmux/window-copy.c:4753,1
    - Dst: window_copy_update_style
      Src: /src/tmux/window-copy.c:4755,1
    - Dst: screen_write_cell
      Src: /src/tmux/window-copy.c:4757,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 9
    argNames:
    - wme
    - ctx
    - px
    - py
    - fy
    - nx
    - mgc
    - cgc
    - mkgc
    argTypes:
    - struct window_mode_entry*
    - struct screen_write_ctx*
    - u_int
    - u_int
    - u_int
    - u_int
    - struct grid_cell*
    - struct grid_cell*
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4760
      start: 4740
    functionDepth: 3
    functionLinenumber: 4740
    functionLinenumberEnd: 4760
    functionName: window_copy_write_one
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_update_style
    - screen_write_cell
    - grid_get_cell
    - screen_write_cursormove
    linkageType: ''
    returnType: void
    signature: "void window_copy_write_one(struct window_mode_entry *wme,\n    struct
      screen_write_ctx *ctx, u_int px, u_int py, u_int fy, u_int nx,\n    const struct
      grid_cell *mgc, const struct grid_cell *cgc,\n    const struct grid_cell *mkgc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/window-copy.c:4771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4772
      start: 4762
    functionDepth: 1
    functionLinenumber: 4762
    functionLinenumberEnd: 4772
    functionName: window_copy_line_number_mode
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - options_get_number
    linkageType: ''
    returnType: int
    signature: int window_copy_line_number_mode(struct window_mode_entry *wme)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_line_number_mode
      Src: /src/tmux/window-copy.c:4777,1
    - Dst: fatalx
      Src: /src/tmux/window-copy.c:4786,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4787
      start: 4774
    functionDepth: 2
    functionLinenumber: 4774
    functionLinenumberEnd: 4787
    functionName: window_copy_line_number_is_absolute
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 2
    functionsReached:
    - fatalx
    - window_copy_line_number_mode
    linkageType: ''
    returnType: int
    signature: int window_copy_line_number_is_absolute(struct window_mode_entry *wme)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_line_number_mode
      Src: /src/tmux/window-copy.c:4792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4794
      start: 4789
    functionDepth: 2
    functionLinenumber: 4789
    functionLinenumberEnd: 4794
    functionName: window_copy_line_numbers_active
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_line_number_mode
    linkageType: ''
    returnType: int
    signature: int window_copy_line_numbers_active(struct window_mode_entry *wme)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_line_numbers_active
      Src: /src/tmux/window-copy.c:4802,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:4805,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:4805,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4814
      start: 4796
    functionDepth: 3
    functionLinenumber: 4796
    functionLinenumberEnd: 4814
    functionName: window_copy_line_number_width
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_line_numbers_active
    - screen_size_y
    - screen_hsize
    linkageType: ''
    returnType: u_int
    signature: u_int window_copy_line_number_width(struct window_mode_entry *wme)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_line_number_width
      Src: /src/tmux/window-copy.c:4819,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - wme
    - cx
    - sx
    argTypes:
    - struct window_mode_entry*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4831
      start: 4816
    functionDepth: 4
    functionLinenumber: 4816
    functionLinenumberEnd: 4831
    functionName: window_copy_cursor_offset
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - window_copy_line_number_width
    linkageType: ''
    returnType: u_int
    signature: u_int window_copy_cursor_offset(struct window_mode_entry *wme, u_int
      cx, u_int sx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_line_number_width
      Src: /src/tmux/window-copy.c:4836,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - wme
    - vx
    - sx
    argTypes:
    - struct window_mode_entry*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4851
      start: 4833
    functionDepth: 4
    functionLinenumber: 4833
    functionLinenumberEnd: 4851
    functionName: window_copy_cursor_unoffset
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_line_number_width
    linkageType: ''
    returnType: u_int
    signature: u_int window_copy_cursor_unoffset(struct window_mode_entry *wme, u_int
      vx, u_int sx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window-copy.c:4856,1
    - Dst: window_copy_redraw_screen
      Src: /src/tmux/window-copy.c:4869,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - wp
    - enabled
    argTypes:
    - struct window_pane*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4870
      start: 4853
    functionDepth: 1
    functionLinenumber: 4853
    functionLinenumberEnd: 4870
    functionName: window_copy_set_line_numbers
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - window_copy_redraw_screen
    - TAILQ_FIRST
    linkageType: ''
    returnType: void
    signature: void window_copy_set_line_numbers(struct window_pane *wp, int enabled)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window-copy.c:4876,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:4882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - wp
    - offset
    - size
    argTypes:
    - struct window_pane*
    - u_int*
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4887
      start: 4872
    functionDepth: 1
    functionLinenumber: 4872
    functionLinenumberEnd: 4887
    functionName: window_copy_get_current_offset
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - screen_hsize
    - TAILQ_FIRST
    linkageType: ''
    returnType: int
    signature: "int window_copy_get_current_offset(struct window_pane *wp, u_int *offset,\n
      \   u_int *size)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:4898,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:4899,1
    - Dst: window_copy_line_number_width
      Src: /src/tmux/window-copy.c:4907,1
    - Dst: format_create_defaults
      Src: /src/tmux/window-copy.c:4915,1
    - Dst: style_apply
      Src: /src/tmux/window-copy.c:4917,1
    - Dst: style_apply
      Src: /src/tmux/window-copy.c:4919,1
    - Dst: style_apply
      Src: /src/tmux/window-copy.c:4921,1
    - Dst: style_apply
      Src: /src/tmux/window-copy.c:4923,1
    - Dst: style_apply
      Src: /src/tmux/window-copy.c:4926,1
    - Dst: style_apply
      Src: /src/tmux/window-copy.c:4928,1
    - Dst: window_copy_line_number_mode
      Src: /src/tmux/window-copy.c:4933,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-copy.c:4947,1
    - Dst: screen_write_nputs
      Src: /src/tmux/window-copy.c:4948,1
    - Dst: window_copy_write_one
      Src: /src/tmux/window-copy.c:4952,1
    - Dst: options_get_string
      Src: /src/tmux/window-copy.c:4956,1
    - Dst: format_expand
      Src: /src/tmux/window-copy.c:4958,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-copy.c:4960,1
    - Dst: format_draw
      Src: /src/tmux/window-copy.c:4961,1
    - Dst: free
      Src: /src/tmux/window-copy.c:4964,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-copy.c:4969,1
    - Dst: window_copy_cursor_offset
      Src: /src/tmux/window-copy.c:4969,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:4970,1
    - Dst: screen_write_putc
      Src: /src/tmux/window-copy.c:4971,1
    - Dst: format_free
      Src: /src/tmux/window-copy.c:4974,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 3
    argNames:
    - wme
    - ctx
    - py
    argTypes:
    - struct window_mode_entry*
    - struct screen_write_ctx*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4975
      start: 4889
    functionDepth: 5
    functionLinenumber: 4889
    functionLinenumberEnd: 4975
    functionName: window_copy_write_line
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - style_apply
    - options_get_string
    - window_copy_cursor_offset
    - screen_size_x
    - screen_write_putc
    - format_free
    - screen_write_cursormove
    - window_copy_write_one
    - screen_hsize
    - screen_write_nputs
    - free
    - window_copy_line_number_width
    - format_create_defaults
    - window_copy_line_number_mode
    - format_expand
    - format_draw
    linkageType: ''
    returnType: void
    signature: "void window_copy_write_line(struct window_mode_entry *wme,\n    struct
      screen_write_ctx *ctx, u_int py)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_write_line
      Src: /src/tmux/window-copy.c:4984,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - wme
    - ctx
    - py
    - ny
    argTypes:
    - struct window_mode_entry*
    - struct screen_write_ctx*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4985
      start: 4977
    functionDepth: 6
    functionLinenumber: 4977
    functionLinenumberEnd: 4985
    functionName: window_copy_write_lines
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - window_copy_write_line
    linkageType: ''
    returnType: void
    signature: "void window_copy_write_lines(struct window_mode_entry *wme,\n    struct
      screen_write_ctx *ctx, u_int py, u_int ny)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_redraw_lines
      Src: /src/tmux/window-copy.c:5012,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - wme
    - old_y
    argTypes:
    - struct window_mode_entry*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5013
      start: 4987
    functionDepth: 1
    functionLinenumber: 4987
    functionLinenumberEnd: 5013
    functionName: window_copy_redraw_selection
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_redraw_lines
    linkageType: ''
    returnType: void
    signature: void window_copy_redraw_selection(struct window_mode_entry *wme, u_int
      old_y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_line_number_width
      Src: /src/tmux/window-copy.c:5024,1
    - Dst: screen_write_start
      Src: /src/tmux/window-copy.c:5025,1
    - Dst: window_copy_write_line
      Src: /src/tmux/window-copy.c:5027,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-copy.c:5028,1
    - Dst: window_copy_cursor_offset
      Src: /src/tmux/window-copy.c:5029,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:5029,1
    - Dst: screen_write_stop
      Src: /src/tmux/window-copy.c:5031,1
    - Dst: screen_write_start_pane
      Src: /src/tmux/window-copy.c:5036,1
    - Dst: window_copy_write_line
      Src: /src/tmux/window-copy.c:5038,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-copy.c:5039,1
    - Dst: window_copy_cursor_offset
      Src: /src/tmux/window-copy.c:5040,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:5040,1
    - Dst: screen_write_stop
      Src: /src/tmux/window-copy.c:5042,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - wme
    - py
    - ny
    argTypes:
    - struct window_mode_entry*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5045
      start: 5015
    functionDepth: 6
    functionLinenumber: 5015
    functionLinenumberEnd: 5045
    functionName: window_copy_redraw_lines
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 4
    functionsReached:
    - window_copy_cursor_offset
    - screen_write_start_pane
    - screen_size_x
    - screen_write_cursormove
    - window_copy_write_line
    - window_copy_line_number_width
    - screen_write_start
    - screen_write_stop
    linkageType: ''
    returnType: void
    signature: void window_copy_redraw_lines(struct window_mode_entry *wme, u_int
      py, u_int ny)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_redraw_lines
      Src: /src/tmux/window-copy.c:5052,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:5052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5053
      start: 5047
    functionDepth: 7
    functionLinenumber: 5047
    functionLinenumberEnd: 5053
    functionName: window_copy_redraw_screen
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 9
    functionsReached:
    - screen_size_y
    - window_copy_redraw_lines
    linkageType: ''
    returnType: void
    signature: void window_copy_redraw_screen(struct window_mode_entry *wme)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_set_selection
      Src: /src/tmux/window-copy.c:5061,1
    - Dst: window_copy_redraw_screen
      Src: /src/tmux/window-copy.c:5062,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5063
      start: 5055
    functionDepth: 8
    functionLinenumber: 5055
    functionLinenumberEnd: 5063
    functionName: window_copy_style_changed
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_redraw_screen
    - window_copy_set_selection
    linkageType: ''
    returnType: void
    signature: void window_copy_style_changed(struct window_mode_entry *wme)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:5073,1
    - Dst: window_copy_cursor_previous_word_pos
      Src: /src/tmux/window-copy.c:5081,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:5090,1
    - Dst: window_copy_in_set
      Src: /src/tmux/window-copy.c:5091,1
    - Dst: window_copy_cursor_next_word_end_pos
      Src: /src/tmux/window-copy.c:5092,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:5117,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 3
    argNames:
    - wme
    - begin
    - no_reset
    argTypes:
    - struct window_mode_entry*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5134
      start: 5065
    functionDepth: 1
    functionLinenumber: 5065
    functionLinenumberEnd: 5134
    functionName: window_copy_synchronize_cursor_end
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_cursor_previous_word_pos
    - screen_hsize
    - window_copy_cursor_next_word_end_pos
    - window_copy_find_length
    - window_copy_in_set
    linkageType: ''
    returnType: void
    signature: "void window_copy_synchronize_cursor_end(struct window_mode_entry *wme,
      int begin,\n    int no_reset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_synchronize_cursor_end
      Src: /src/tmux/window-copy.c:5143,1
    - Dst: window_copy_synchronize_cursor_end
      Src: /src/tmux/window-copy.c:5146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - wme
    - no_reset
    argTypes:
    - struct window_mode_entry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5151
      start: 5136
    functionDepth: 2
    functionLinenumber: 5136
    functionLinenumberEnd: 5151
    functionName: window_copy_synchronize_cursor
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_synchronize_cursor_end
    linkageType: ''
    returnType: void
    signature: void window_copy_synchronize_cursor(struct window_mode_entry *wme,
      int no_reset)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:5165,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:5166,1
    - Dst: window_copy_cursor_limit
      Src: /src/tmux/window-copy.c:5167,1
    - Dst: window_copy_line_numbers_active
      Src: /src/tmux/window-copy.c:5174,1
    - Dst: window_copy_line_number_width
      Src: /src/tmux/window-copy.c:5175,1
    - Dst: window_copy_redraw_screen
      Src: /src/tmux/window-copy.c:5179,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:5182,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:5185,1
    - Dst: window_copy_redraw_screen
      Src: /src/tmux/window-copy.c:5187,1
    - Dst: screen_write_start_pane
      Src: /src/tmux/window-copy.c:5190,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-copy.c:5191,1
    - Dst: window_copy_cursor_offset
      Src: /src/tmux/window-copy.c:5192,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:5192,1
    - Dst: screen_write_stop
      Src: /src/tmux/window-copy.c:5194,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:5197,1
    - Dst: window_copy_redraw_lines
      Src: /src/tmux/window-copy.c:5198,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:5199,1
    - Dst: window_copy_redraw_lines
      Src: /src/tmux/window-copy.c:5200,1
    - Dst: screen_write_start_pane
      Src: /src/tmux/window-copy.c:5202,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-copy.c:5203,1
    - Dst: window_copy_cursor_offset
      Src: /src/tmux/window-copy.c:5204,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:5204,1
    - Dst: screen_write_stop
      Src: /src/tmux/window-copy.c:5206,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 3
    argNames:
    - wme
    - cx
    - cy
    argTypes:
    - struct window_mode_entry*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5208
      start: 5153
    functionDepth: 8
    functionLinenumber: 5153
    functionLinenumberEnd: 5208
    functionName: window_copy_update_cursor
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 3
    functionsReached:
    - window_copy_redraw_screen
    - screen_size_y
    - screen_write_start_pane
    - window_copy_line_numbers_active
    - screen_size_x
    - window_copy_cursor_offset
    - screen_write_cursormove
    - screen_hsize
    - window_copy_cursor_limit
    - window_copy_line_number_width
    - screen_write_stop
    - window_copy_redraw_lines
    linkageType: ''
    returnType: void
    signature: void window_copy_update_cursor(struct window_mode_entry *wme, u_int
      cx, u_int cy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:5216,1
    - Dst: window_copy_set_selection
      Src: /src/tmux/window-copy.c:5223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5224
      start: 5210
    functionDepth: 1
    functionLinenumber: 5210
    functionLinenumberEnd: 5224
    functionName: window_copy_start_selection
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 5
    functionsReached:
    - screen_hsize
    - window_copy_set_selection
    linkageType: ''
    returnType: void
    signature: void window_copy_start_selection(struct window_mode_entry *wme)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:5238,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:5244,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:5247,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:5248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - wme
    - selx
    - sely
    argTypes:
    - struct window_mode_entry*
    - u_int*
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5257
      start: 5226
    functionDepth: 1
    functionLinenumber: 5226
    functionLinenumberEnd: 5257
    functionName: window_copy_adjust_selection
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - screen_hsize
    - screen_size_x
    - screen_size_y
    linkageType: ''
    returnType: int
    signature: "int window_copy_adjust_selection(struct window_mode_entry *wme, u_int
      *selx,\n    u_int *sely)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_set_selection
      Src: /src/tmux/window-copy.c:5268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - wme
    - may_redraw
    - no_reset
    argTypes:
    - struct window_mode_entry*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5269
      start: 5259
    functionDepth: 1
    functionLinenumber: 5259
    functionLinenumberEnd: 5269
    functionName: window_copy_update_selection
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 15
    functionsReached:
    - window_copy_set_selection
    linkageType: ''
    returnType: int
    signature: "int window_copy_update_selection(struct window_mode_entry *wme, int
      may_redraw,\n    int no_reset)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_synchronize_cursor
      Src: /src/tmux/window-copy.c:5284,1
    - Dst: window_copy_adjust_selection
      Src: /src/tmux/window-copy.c:5289,1
    - Dst: window_copy_adjust_selection
      Src: /src/tmux/window-copy.c:5294,1
    - Dst: screen_hide_selection
      Src: /src/tmux/window-copy.c:5299,1
    - Dst: format_create_defaults
      Src: /src/tmux/window-copy.c:5304,1
    - Dst: style_apply
      Src: /src/tmux/window-copy.c:5305,1
    - Dst: format_free
      Src: /src/tmux/window-copy.c:5307,1
    - Dst: window_copy_line_number_width
      Src: /src/tmux/window-copy.c:5308,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:5309,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:5310,1
    - Dst: window_copy_line_numbers_active
      Src: /src/tmux/window-copy.c:5311,1
    - Dst: window_copy_cursor_offset
      Src: /src/tmux/window-copy.c:5312,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:5312,1
    - Dst: window_copy_cursor_offset
      Src: /src/tmux/window-copy.c:5313,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:5313,1
    - Dst: screen_set_selection
      Src: /src/tmux/window-copy.c:5315,1
    - Dst: window_copy_redraw_lines
      Src: /src/tmux/window-copy.c:5327,1
    - Dst: window_copy_redraw_lines
      Src: /src/tmux/window-copy.c:5329,1
    - Dst: window_copy_redraw_lines
      Src: /src/tmux/window-copy.c:5332,1
    - Dst: window_copy_redraw_lines
      Src: /src/tmux/window-copy.c:5335,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 3
    argNames:
    - wme
    - may_redraw
    - no_reset
    argTypes:
    - struct window_mode_entry*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5342
      start: 5271
    functionDepth: 7
    functionLinenumber: 5271
    functionLinenumberEnd: 5342
    functionName: window_copy_set_selection
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 3
    functionsReached:
    - style_apply
    - screen_set_selection
    - window_copy_adjust_selection
    - window_copy_cursor_offset
    - window_copy_line_numbers_active
    - format_free
    - screen_size_x
    - window_copy_synchronize_cursor
    - screen_hide_selection
    - window_copy_line_number_width
    - format_create_defaults
    - window_copy_redraw_lines
    linkageType: ''
    returnType: int
    signature: "int window_copy_set_selection(struct window_mode_entry *wme, int may_redraw,\n
      \   int no_reset)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_match_at_cursor
      Src: /src/tmux/window-copy.c:5357,1
    - Dst: strlen
      Src: /src/tmux/window-copy.c:5359,1
    - Dst: xmalloc
      Src: /src/tmux/window-copy.c:5365,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:5387,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:5396,1
    - Dst: options_get_number
      Src: /src/tmux/window-copy.c:5404,1
    - Dst: window_copy_copy_line
      Src: /src/tmux/window-copy.c:5445,1
    - Dst: free
      Src: /src/tmux/window-copy.c:5452,1
    - Dst: grid_get_line
      Src: /src/tmux/window-copy.c:5458,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 71
    argCount: 2
    argNames:
    - wme
    - len
    argTypes:
    - struct window_mode_entry*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5464
      start: 5344
    functionDepth: 4
    functionLinenumber: 5344
    functionLinenumberEnd: 5464
    functionName: window_copy_get_selection
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - screen_size_x
    - grid_get_line
    - xmalloc
    - window_copy_match_at_cursor
    - free
    - window_copy_copy_line
    - window_copy_find_length
    - strlen
    - options_get_number
    linkageType: ''
    returnType: void
    signature: 'void *

      window_copy_get_selection(struct window_mode_entry *wme, size_t *len)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/window-copy.c:5475,1
    - Dst: window_copy_line_numbers_active
      Src: /src/tmux/window-copy.c:5476,1
    - Dst: screen_write_start_pane
      Src: /src/tmux/window-copy.c:5482,1
    - Dst: screen_write_setselection
      Src: /src/tmux/window-copy.c:5483,1
    - Dst: screen_write_stop
      Src: /src/tmux/window-copy.c:5484,1
    - Dst: notify_pane
      Src: /src/tmux/window-copy.c:5486,1
    - Dst: paste_add
      Src: /src/tmux/window-copy.c:5490,1
    - Dst: free
      Src: /src/tmux/window-copy.c:5492,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 6
    argNames:
    - wme
    - prefix
    - buf
    - len
    - set_paste
    - set_clip
    argTypes:
    - struct window_mode_entry*
    - char*
    - void*
    - size_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5493
      start: 5466
    functionDepth: 3
    functionLinenumber: 5466
    functionLinenumberEnd: 5493
    functionName: window_copy_copy_buffer
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - screen_write_start_pane
    - window_copy_line_numbers_active
    - paste_add
    - free
    - screen_write_setselection
    - notify_pane
    - options_get_number
    - screen_write_stop
    linkageType: ''
    returnType: void
    signature: "void window_copy_copy_buffer(struct window_mode_entry *wme, const
      char *prefix,\n    void *buf, size_t len, int set_paste, int set_clip)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_get_selection
      Src: /src/tmux/window-copy.c:5502,1
    - Dst: options_get_string
      Src: /src/tmux/window-copy.c:5504,1
    - Dst: job_run
      Src: /src/tmux/window-copy.c:5506,1
    - Dst: bufferevent_write
      Src: /src/tmux/window-copy.c:5509,1
    - Dst: job_get_event
      Src: /src/tmux/window-copy.c:5509,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - wme
    - s
    - cmd
    - len
    argTypes:
    - struct window_mode_entry*
    - struct session*
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5512
      start: 5495
    functionDepth: 5
    functionLinenumber: 5495
    functionLinenumberEnd: 5512
    functionName: window_copy_pipe_run
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - job_run
    - window_copy_get_selection
    - bufferevent_write
    - job_get_event
    - options_get_string
    linkageType: ''
    returnType: void
    signature: "void *\nwindow_copy_pipe_run(struct window_mode_entry *wme, struct
      session *s,\n    const char *cmd, size_t *len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_pipe_run
      Src: /src/tmux/window-copy.c:5521,1
    - Dst: free
      Src: /src/tmux/window-copy.c:5522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - wme
    - s
    - cmd
    argTypes:
    - struct window_mode_entry*
    - struct session*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5523
      start: 5514
    functionDepth: 6
    functionLinenumber: 5514
    functionLinenumberEnd: 5523
    functionName: window_copy_pipe
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - free
    - window_copy_pipe_run
    linkageType: ''
    returnType: void
    signature: "void window_copy_pipe(struct window_mode_entry *wme, struct session
      *s,\n    const char *cmd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_pipe_run
      Src: /src/tmux/window-copy.c:5532,1
    - Dst: window_copy_copy_buffer
      Src: /src/tmux/window-copy.c:5534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - wme
    - s
    - prefix
    - cmd
    - set_paste
    - set_clip
    argTypes:
    - struct window_mode_entry*
    - struct session*
    - char*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5537
      start: 5525
    functionDepth: 6
    functionLinenumber: 5525
    functionLinenumberEnd: 5537
    functionName: window_copy_copy_pipe
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 3
    functionsReached:
    - window_copy_copy_buffer
    - window_copy_pipe_run
    linkageType: ''
    returnType: void
    signature: "void window_copy_copy_pipe(struct window_mode_entry *wme, struct session
      *s,\n    const char *prefix, const char *cmd, int set_paste, int set_clip)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_get_selection
      Src: /src/tmux/window-copy.c:5546,1
    - Dst: window_copy_copy_buffer
      Src: /src/tmux/window-copy.c:5548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - wme
    - prefix
    - set_paste
    - set_clip
    argTypes:
    - struct window_mode_entry*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5551
      start: 5539
    functionDepth: 5
    functionLinenumber: 5539
    functionLinenumberEnd: 5551
    functionName: window_copy_copy_selection
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 3
    functionsReached:
    - window_copy_get_selection
    - window_copy_copy_buffer
    linkageType: ''
    returnType: void
    signature: "void window_copy_copy_selection(struct window_mode_entry *wme, const
      char *prefix,\n    int set_paste, int set_clip)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_get_selection
      Src: /src/tmux/window-copy.c:5563,1
    - Dst: options_get_number
      Src: /src/tmux/window-copy.c:5567,1
    - Dst: screen_write_start_pane
      Src: /src/tmux/window-copy.c:5568,1
    - Dst: screen_write_setselection
      Src: /src/tmux/window-copy.c:5569,1
    - Dst: screen_write_stop
      Src: /src/tmux/window-copy.c:5570,1
    - Dst: notify_pane
      Src: /src/tmux/window-copy.c:5571,1
    - Dst: paste_get_top
      Src: /src/tmux/window-copy.c:5574,1
    - Dst: paste_buffer_data
      Src: /src/tmux/window-copy.c:5576,1
    - Dst: xrealloc
      Src: /src/tmux/window-copy.c:5577,1
    - Dst: memmove
      Src: /src/tmux/window-copy.c:5578,1
    - Dst: memcpy
      Src: /src/tmux/window-copy.c:5579,1
    - Dst: paste_set
      Src: /src/tmux/window-copy.c:5582,1
    - Dst: free
      Src: /src/tmux/window-copy.c:5583,1
    - Dst: free
      Src: /src/tmux/window-copy.c:5584,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5585
      start: 5553
    functionDepth: 5
    functionLinenumber: 5553
    functionLinenumberEnd: 5585
    functionName: window_copy_append_selection
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 2
    functionsReached:
    - screen_write_start_pane
    - paste_buffer_data
    - paste_get_top
    - screen_write_setselection
    - xrealloc
    - notify_pane
    - memcpy
    - memmove
    - window_copy_get_selection
    - paste_set
    - options_get_number
    - free
    - screen_write_stop
    linkageType: ''
    returnType: void
    signature: void window_copy_append_selection(struct window_mode_entry *wme)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_line
      Src: /src/tmux/window-copy.c:5606,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:5614,1
    - Dst: grid_get_cell
      Src: /src/tmux/window-copy.c:5622,1
    - Dst: utf8_set
      Src: /src/tmux/window-copy.c:5626,1
    - Dst: utf8_copy
      Src: /src/tmux/window-copy.c:5628,1
    - Dst: tty_acs_get
      Src: /src/tmux/window-copy.c:5630,1
    - Dst: strlen
      Src: /src/tmux/window-copy.c:5631,1
    - Dst: strlen
      Src: /src/tmux/window-copy.c:5632,1
    - Dst: memcpy
      Src: /src/tmux/window-copy.c:5633,1
    - Dst: xrealloc
      Src: /src/tmux/window-copy.c:5637,1
    - Dst: memcpy
      Src: /src/tmux/window-copy.c:5638,1
    - Dst: xrealloc
      Src: /src/tmux/window-copy.c:5645,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 6
    argNames:
    - wme
    - buf
    - 'off'
    - sy
    - sx
    - ex
    argTypes:
    - struct window_mode_entry*
    - char**
    - size_t*
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5648
      start: 5587
    functionDepth: 3
    functionLinenumber: 5587
    functionLinenumberEnd: 5648
    functionName: window_copy_copy_line
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - grid_get_line
    - tty_acs_get
    - grid_get_cell
    - xrealloc
    - memcpy
    - window_copy_find_length
    - utf8_copy
    - strlen
    - utf8_set
    linkageType: ''
    returnType: void
    signature: "void window_copy_copy_line(struct window_mode_entry *wme, char **buf,
      size_t *off,\n    u_int sy, u_int sx, u_int ex)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: screen_clear_selection
      Src: /src/tmux/window-copy.c:5656,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:5662,1
    - Dst: window_copy_cursor_limit
      Src: /src/tmux/window-copy.c:5663,1
    - Dst: window_copy_update_cursor
      Src: /src/tmux/window-copy.c:5665,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5666
      start: 5650
    functionDepth: 9
    functionLinenumber: 5650
    functionLinenumberEnd: 5666
    functionName: window_copy_clear_selection
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 12
    functionsReached:
    - screen_hsize
    - screen_clear_selection
    - window_copy_cursor_limit
    - window_copy_update_cursor
    linkageType: ''
    returnType: void
    signature: void window_copy_clear_selection(struct window_mode_entry *wme)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grid_in_set
      Src: /src/tmux/window-copy.c:5674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - wme
    - px
    - py
    - set
    argTypes:
    - struct window_mode_entry*
    - u_int
    - u_int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5675
      start: 5668
    functionDepth: 4
    functionLinenumber: 5668
    functionLinenumberEnd: 5675
    functionName: window_copy_in_set
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 2
    functionsReached:
    - grid_in_set
    linkageType: ''
    returnType: int
    signature: "int window_copy_in_set(struct window_mode_entry *wme, u_int px, u_int
      py,\n    const char *set)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grid_line_length
      Src: /src/tmux/window-copy.c:5682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wme
    - py
    argTypes:
    - struct window_mode_entry*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5683
      start: 5677
    functionDepth: 4
    functionLinenumber: 5677
    functionLinenumberEnd: 5683
    functionName: window_copy_find_length
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 12
    functionsReached:
    - grid_line_length
    linkageType: ''
    returnType: u_int
    signature: u_int window_copy_find_length(struct window_mode_entry *wme, u_int
      py)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:5692,1
    - Dst: options_get_number
      Src: /src/tmux/window-copy.c:5694,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - wme
    - py
    - allow_onemore
    argTypes:
    - struct window_mode_entry*
    - u_int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5699
      start: 5685
    functionDepth: 5
    functionLinenumber: 5685
    functionLinenumberEnd: 5699
    functionName: window_copy_cursor_limit
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 5
    functionsReached:
    - options_get_number
    - window_copy_find_length
    linkageType: ''
    returnType: u_int
    signature: "u_int window_copy_cursor_limit(struct window_mode_entry *wme, u_int
      py,\n    int allow_onemore)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:5710,1
    - Dst: grid_reader_start
      Src: /src/tmux/window-copy.c:5714,1
    - Dst: grid_reader_cursor_start_of_line
      Src: /src/tmux/window-copy.c:5715,1
    - Dst: grid_reader_get_cursor
      Src: /src/tmux/window-copy.c:5716,1
    - Dst: window_copy_acquire_cursor_up
      Src: /src/tmux/window-copy.c:5717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5718
      start: 5701
    functionDepth: 2
    functionLinenumber: 5701
    functionLinenumberEnd: 5718
    functionName: window_copy_cursor_start_of_line
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 3
    functionsReached:
    - grid_reader_get_cursor
    - grid_reader_cursor_start_of_line
    - screen_hsize
    - grid_reader_start
    - window_copy_acquire_cursor_up
    linkageType: ''
    returnType: void
    signature: void window_copy_cursor_start_of_line(struct window_mode_entry *wme)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:5729,1
    - Dst: grid_reader_start
      Src: /src/tmux/window-copy.c:5733,1
    - Dst: grid_reader_cursor_back_to_indentation
      Src: /src/tmux/window-copy.c:5734,1
    - Dst: grid_reader_get_cursor
      Src: /src/tmux/window-copy.c:5735,1
    - Dst: window_copy_acquire_cursor_up
      Src: /src/tmux/window-copy.c:5736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5737
      start: 5720
    functionDepth: 3
    functionLinenumber: 5720
    functionLinenumberEnd: 5737
    functionName: window_copy_cursor_back_to_indentation
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - grid_reader_get_cursor
    - screen_hsize
    - grid_reader_cursor_back_to_indentation
    - grid_reader_start
    - window_copy_acquire_cursor_up
    linkageType: ''
    returnType: void
    signature: void window_copy_cursor_back_to_indentation(struct window_mode_entry
      *wme)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:5748,1
    - Dst: grid_reader_start
      Src: /src/tmux/window-copy.c:5752,1
    - Dst: grid_reader_cursor_end_of_line
      Src: /src/tmux/window-copy.c:5754,1
    - Dst: grid_reader_cursor_end_of_line
      Src: /src/tmux/window-copy.c:5756,1
    - Dst: grid_reader_get_cursor
      Src: /src/tmux/window-copy.c:5757,1
    - Dst: window_copy_cursor_limit
      Src: /src/tmux/window-copy.c:5759,1
    - Dst: window_copy_acquire_cursor_down
      Src: /src/tmux/window-copy.c:5760,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:5760,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5762
      start: 5739
    functionDepth: 6
    functionLinenumber: 5739
    functionLinenumberEnd: 5762
    functionName: window_copy_cursor_end_of_line
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 7
    functionsReached:
    - screen_size_y
    - grid_reader_cursor_end_of_line
    - grid_reader_get_cursor
    - screen_hsize
    - window_copy_cursor_limit
    - window_copy_acquire_cursor_down
    - grid_reader_start
    linkageType: ''
    returnType: void
    signature: void window_copy_cursor_end_of_line(struct window_mode_entry *wme)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:5797,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:5801,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:5805,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:5806,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:5807,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:5810,1
    - Dst: window_copy_cursor_limit
      Src: /src/tmux/window-copy.c:5811,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:5815,1
    - Dst: window_copy_redraw_screen
      Src: /src/tmux/window-copy.c:5816,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5817
      start: 5764
    functionDepth: 8
    functionLinenumber: 5764
    functionLinenumberEnd: 5817
    functionName: window_copy_other_end
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 3
    functionsReached:
    - window_copy_redraw_screen
    - screen_size_y
    - screen_hsize
    - window_copy_cursor_limit
    - window_copy_update_selection
    linkageType: ''
    returnType: void
    signature: void window_copy_other_end(struct window_mode_entry *wme)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:5828,1
    - Dst: grid_reader_start
      Src: /src/tmux/window-copy.c:5832,1
    - Dst: grid_reader_cursor_left
      Src: /src/tmux/window-copy.c:5833,1
    - Dst: grid_reader_get_cursor
      Src: /src/tmux/window-copy.c:5834,1
    - Dst: window_copy_acquire_cursor_up
      Src: /src/tmux/window-copy.c:5835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5836
      start: 5819
    functionDepth: 2
    functionLinenumber: 5819
    functionLinenumberEnd: 5836
    functionName: window_copy_cursor_left
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - grid_reader_get_cursor
    - grid_reader_cursor_left
    - screen_hsize
    - grid_reader_start
    - window_copy_acquire_cursor_up
    linkageType: ''
    returnType: void
    signature: void window_copy_cursor_left(struct window_mode_entry *wme)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:5850,1
    - Dst: options_get_number
      Src: /src/tmux/window-copy.c:5853,1
    - Dst: grid_reader_start
      Src: /src/tmux/window-copy.c:5855,1
    - Dst: grid_reader_cursor_right
      Src: /src/tmux/window-copy.c:5856,1
    - Dst: grid_reader_get_cursor
      Src: /src/tmux/window-copy.c:5857,1
    - Dst: window_copy_acquire_cursor_down
      Src: /src/tmux/window-copy.c:5858,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:5858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - wme
    - all
    argTypes:
    - struct window_mode_entry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5860
      start: 5838
    functionDepth: 3
    functionLinenumber: 5838
    functionLinenumberEnd: 5860
    functionName: window_copy_cursor_right
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - grid_reader_cursor_right
    - screen_size_y
    - grid_reader_get_cursor
    - screen_hsize
    - window_copy_acquire_cursor_down
    - grid_reader_start
    - options_get_number
    linkageType: ''
    returnType: void
    signature: void window_copy_cursor_right(struct window_mode_entry *wme, int all)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:5871,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:5872,1
    - Dst: window_copy_other_end
      Src: /src/tmux/window-copy.c:5879,1
    - Dst: window_copy_scroll_down
      Src: /src/tmux/window-copy.c:5884,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:5886,1
    - Dst: window_copy_redraw_lines
      Src: /src/tmux/window-copy.c:5887,1
    - Dst: window_copy_redraw_lines
      Src: /src/tmux/window-copy.c:5889,1
    - Dst: window_copy_update_cursor
      Src: /src/tmux/window-copy.c:5893,1
    - Dst: window_copy_update_cursor
      Src: /src/tmux/window-copy.c:5896,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:5897,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:5898,1
    - Dst: window_copy_redraw_lines
      Src: /src/tmux/window-copy.c:5899,1
    - Dst: window_copy_redraw_lines
      Src: /src/tmux/window-copy.c:5901,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:5906,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:5907,1
    - Dst: window_copy_update_cursor
      Src: /src/tmux/window-copy.c:5911,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:5912,1
    - Dst: window_copy_redraw_lines
      Src: /src/tmux/window-copy.c:5913,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:5919,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:5921,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:5923,1
    - Dst: window_copy_update_cursor
      Src: /src/tmux/window-copy.c:5924,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:5925,1
    - Dst: window_copy_redraw_lines
      Src: /src/tmux/window-copy.c:5926,1
    - Dst: window_copy_update_cursor
      Src: /src/tmux/window-copy.c:5930,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:5931,1
    - Dst: window_copy_redraw_lines
      Src: /src/tmux/window-copy.c:5932,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 53
    argCount: 2
    argNames:
    - wme
    - scroll_only
    argTypes:
    - struct window_mode_entry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5934
      start: 5862
    functionDepth: 9
    functionLinenumber: 5862
    functionLinenumberEnd: 5934
    functionName: window_copy_cursor_up
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 3
    functionsReached:
    - window_copy_scroll_down
    - window_copy_other_end
    - screen_size_y
    - window_copy_update_cursor
    - screen_size_x
    - screen_hsize
    - window_copy_update_selection
    - window_copy_find_length
    - window_copy_redraw_lines
    linkageType: ''
    returnType: void
    signature: void window_copy_cursor_up(struct window_mode_entry *wme, int scroll_only)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:5945,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:5946,1
    - Dst: window_copy_other_end
      Src: /src/tmux/window-copy.c:5953,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:5955,1
    - Dst: window_copy_scroll_up
      Src: /src/tmux/window-copy.c:5958,1
    - Dst: window_copy_redraw_lines
      Src: /src/tmux/window-copy.c:5960,1
    - Dst: window_copy_update_cursor
      Src: /src/tmux/window-copy.c:5963,1
    - Dst: window_copy_update_cursor
      Src: /src/tmux/window-copy.c:5966,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:5967,1
    - Dst: window_copy_redraw_lines
      Src: /src/tmux/window-copy.c:5968,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:5972,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:5973,1
    - Dst: window_copy_update_cursor
      Src: /src/tmux/window-copy.c:5977,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:5978,1
    - Dst: window_copy_redraw_lines
      Src: /src/tmux/window-copy.c:5979,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:5985,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:5987,1
    - Dst: window_copy_find_length
      Src: /src/tmux/window-copy.c:5989,1
    - Dst: window_copy_update_cursor
      Src: /src/tmux/window-copy.c:5990,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:5991,1
    - Dst: window_copy_redraw_lines
      Src: /src/tmux/window-copy.c:5992,1
    - Dst: window_copy_update_cursor
      Src: /src/tmux/window-copy.c:5996,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:5997,1
    - Dst: window_copy_redraw_lines
      Src: /src/tmux/window-copy.c:5998,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 47
    argCount: 2
    argNames:
    - wme
    - scroll_only
    argTypes:
    - struct window_mode_entry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6000
      start: 5936
    functionDepth: 9
    functionLinenumber: 5936
    functionLinenumberEnd: 6000
    functionName: window_copy_cursor_down
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 8
    functionsReached:
    - window_copy_scroll_up
    - window_copy_other_end
    - screen_size_y
    - window_copy_update_cursor
    - screen_size_x
    - screen_hsize
    - window_copy_update_selection
    - window_copy_find_length
    - window_copy_redraw_lines
    linkageType: ''
    returnType: void
    signature: void window_copy_cursor_down(struct window_mode_entry *wme, int scroll_only)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:6011,1
    - Dst: grid_reader_start
      Src: /src/tmux/window-copy.c:6015,1
    - Dst: grid_reader_cursor_jump
      Src: /src/tmux/window-copy.c:6016,1
    - Dst: grid_reader_get_cursor
      Src: /src/tmux/window-copy.c:6017,1
    - Dst: window_copy_acquire_cursor_down
      Src: /src/tmux/window-copy.c:6018,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:6019,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6021
      start: 6002
    functionDepth: 2
    functionLinenumber: 6002
    functionLinenumberEnd: 6021
    functionName: window_copy_cursor_jump
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 3
    functionsReached:
    - screen_size_y
    - grid_reader_get_cursor
    - screen_hsize
    - window_copy_acquire_cursor_down
    - grid_reader_cursor_jump
    - grid_reader_start
    linkageType: ''
    returnType: void
    signature: void window_copy_cursor_jump(struct window_mode_entry *wme)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:6032,1
    - Dst: grid_reader_start
      Src: /src/tmux/window-copy.c:6036,1
    - Dst: grid_reader_cursor_left
      Src: /src/tmux/window-copy.c:6037,1
    - Dst: grid_reader_cursor_jump_back
      Src: /src/tmux/window-copy.c:6038,1
    - Dst: grid_reader_get_cursor
      Src: /src/tmux/window-copy.c:6039,1
    - Dst: window_copy_acquire_cursor_up
      Src: /src/tmux/window-copy.c:6040,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6043
      start: 6023
    functionDepth: 2
    functionLinenumber: 6023
    functionLinenumberEnd: 6043
    functionName: window_copy_cursor_jump_back
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 3
    functionsReached:
    - grid_reader_cursor_jump_back
    - grid_reader_cursor_left
    - grid_reader_get_cursor
    - screen_hsize
    - grid_reader_start
    - window_copy_acquire_cursor_up
    linkageType: ''
    returnType: void
    signature: void window_copy_cursor_jump_back(struct window_mode_entry *wme)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:6054,1
    - Dst: grid_reader_start
      Src: /src/tmux/window-copy.c:6058,1
    - Dst: grid_reader_cursor_jump
      Src: /src/tmux/window-copy.c:6059,1
    - Dst: grid_reader_cursor_left
      Src: /src/tmux/window-copy.c:6060,1
    - Dst: grid_reader_get_cursor
      Src: /src/tmux/window-copy.c:6061,1
    - Dst: window_copy_acquire_cursor_down
      Src: /src/tmux/window-copy.c:6062,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:6063,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6065
      start: 6045
    functionDepth: 2
    functionLinenumber: 6045
    functionLinenumberEnd: 6065
    functionName: window_copy_cursor_jump_to
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 3
    functionsReached:
    - screen_size_y
    - grid_reader_get_cursor
    - grid_reader_cursor_left
    - screen_hsize
    - window_copy_acquire_cursor_down
    - grid_reader_cursor_jump
    - grid_reader_start
    linkageType: ''
    returnType: void
    signature: void window_copy_cursor_jump_to(struct window_mode_entry *wme)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:6078,1
    - Dst: options_get_number
      Src: /src/tmux/window-copy.c:6081,1
    - Dst: grid_reader_start
      Src: /src/tmux/window-copy.c:6083,1
    - Dst: grid_reader_cursor_left
      Src: /src/tmux/window-copy.c:6084,1
    - Dst: grid_reader_cursor_left
      Src: /src/tmux/window-copy.c:6085,1
    - Dst: grid_reader_cursor_jump_back
      Src: /src/tmux/window-copy.c:6086,1
    - Dst: grid_reader_cursor_right
      Src: /src/tmux/window-copy.c:6087,1
    - Dst: grid_reader_get_cursor
      Src: /src/tmux/window-copy.c:6088,1
    - Dst: window_copy_acquire_cursor_up
      Src: /src/tmux/window-copy.c:6089,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6092
      start: 6067
    functionDepth: 3
    functionLinenumber: 6067
    functionLinenumberEnd: 6092
    functionName: window_copy_cursor_jump_to_back
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 3
    functionsReached:
    - grid_reader_cursor_right
    - grid_reader_cursor_jump_back
    - grid_reader_cursor_left
    - grid_reader_get_cursor
    - screen_hsize
    - grid_reader_start
    - options_get_number
    - window_copy_acquire_cursor_up
    linkageType: ''
    returnType: void
    signature: void window_copy_cursor_jump_to_back(struct window_mode_entry *wme)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:6104,1
    - Dst: grid_reader_start
      Src: /src/tmux/window-copy.c:6108,1
    - Dst: grid_reader_cursor_next_word
      Src: /src/tmux/window-copy.c:6109,1
    - Dst: grid_reader_get_cursor
      Src: /src/tmux/window-copy.c:6110,1
    - Dst: window_copy_acquire_cursor_down
      Src: /src/tmux/window-copy.c:6111,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:6111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - wme
    - separators
    argTypes:
    - struct window_mode_entry*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6113
      start: 6094
    functionDepth: 4
    functionLinenumber: 6094
    functionLinenumberEnd: 6113
    functionName: window_copy_cursor_next_word
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 2
    functionsReached:
    - grid_reader_start
    - screen_size_y
    - grid_reader_get_cursor
    - screen_hsize
    - window_copy_acquire_cursor_down
    - grid_reader_cursor_next_word
    linkageType: ''
    returnType: void
    signature: "void window_copy_cursor_next_word(struct window_mode_entry *wme,\n
      \   const char *separators)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:6128,1
    - Dst: grid_reader_start
      Src: /src/tmux/window-copy.c:6131,1
    - Dst: options_get_number
      Src: /src/tmux/window-copy.c:6132,1
    - Dst: grid_reader_in_set
      Src: /src/tmux/window-copy.c:6133,1
    - Dst: grid_reader_cursor_right
      Src: /src/tmux/window-copy.c:6134,1
    - Dst: grid_reader_cursor_next_word_end
      Src: /src/tmux/window-copy.c:6135,1
    - Dst: grid_reader_cursor_left
      Src: /src/tmux/window-copy.c:6136,1
    - Dst: grid_reader_cursor_next_word_end
      Src: /src/tmux/window-copy.c:6138,1
    - Dst: grid_reader_get_cursor
      Src: /src/tmux/window-copy.c:6139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - wme
    - separators
    - ppx
    - ppy
    argTypes:
    - struct window_mode_entry*
    - char*
    - u_int*
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6142
      start: 6116
    functionDepth: 4
    functionLinenumber: 6116
    functionLinenumberEnd: 6142
    functionName: window_copy_cursor_next_word_end_pos
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - grid_reader_cursor_right
    - grid_reader_cursor_left
    - grid_reader_get_cursor
    - screen_hsize
    - grid_reader_cursor_next_word_end
    - grid_reader_start
    - options_get_number
    - grid_reader_in_set
    linkageType: ''
    returnType: void
    signature: "void window_copy_cursor_next_word_end_pos(struct window_mode_entry
      *wme,\n    const char *separators, u_int *ppx, u_int *ppy)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:6157,1
    - Dst: grid_reader_start
      Src: /src/tmux/window-copy.c:6161,1
    - Dst: options_get_number
      Src: /src/tmux/window-copy.c:6162,1
    - Dst: grid_reader_in_set
      Src: /src/tmux/window-copy.c:6163,1
    - Dst: grid_reader_cursor_right
      Src: /src/tmux/window-copy.c:6164,1
    - Dst: grid_reader_cursor_next_word_end
      Src: /src/tmux/window-copy.c:6165,1
    - Dst: grid_reader_cursor_left
      Src: /src/tmux/window-copy.c:6166,1
    - Dst: grid_reader_cursor_next_word_end
      Src: /src/tmux/window-copy.c:6168,1
    - Dst: grid_reader_get_cursor
      Src: /src/tmux/window-copy.c:6169,1
    - Dst: window_copy_acquire_cursor_down
      Src: /src/tmux/window-copy.c:6170,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:6170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - wme
    - separators
    - no_reset
    argTypes:
    - struct window_mode_entry*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6172
      start: 6145
    functionDepth: 4
    functionLinenumber: 6145
    functionLinenumberEnd: 6172
    functionName: window_copy_cursor_next_word_end
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 4
    functionsReached:
    - grid_reader_cursor_right
    - screen_size_y
    - grid_reader_cursor_left
    - grid_reader_get_cursor
    - screen_hsize
    - window_copy_acquire_cursor_down
    - grid_reader_cursor_next_word_end
    - grid_reader_start
    - options_get_number
    - grid_reader_in_set
    linkageType: ''
    returnType: void
    signature: "void window_copy_cursor_next_word_end(struct window_mode_entry *wme,\n
      \   const char *separators, int no_reset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:6185,1
    - Dst: grid_reader_start
      Src: /src/tmux/window-copy.c:6188,1
    - Dst: grid_reader_cursor_previous_word
      Src: /src/tmux/window-copy.c:6189,1
    - Dst: grid_reader_get_cursor
      Src: /src/tmux/window-copy.c:6190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - wme
    - separators
    - ppx
    - ppy
    argTypes:
    - struct window_mode_entry*
    - char*
    - u_int*
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6193
      start: 6175
    functionDepth: 4
    functionLinenumber: 6175
    functionLinenumberEnd: 6193
    functionName: window_copy_cursor_previous_word_pos
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - screen_hsize
    - grid_reader_get_cursor
    - grid_reader_cursor_previous_word
    - grid_reader_start
    linkageType: ''
    returnType: void
    signature: "void window_copy_cursor_previous_word_pos(struct window_mode_entry
      *wme,\n    const char *separators, u_int *ppx, u_int *ppy)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/window-copy.c:6207,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:6213,1
    - Dst: grid_reader_start
      Src: /src/tmux/window-copy.c:6217,1
    - Dst: grid_reader_cursor_previous_word
      Src: /src/tmux/window-copy.c:6218,1
    - Dst: grid_reader_get_cursor
      Src: /src/tmux/window-copy.c:6219,1
    - Dst: window_copy_acquire_cursor_up
      Src: /src/tmux/window-copy.c:6220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - wme
    - separators
    - already
    argTypes:
    - struct window_mode_entry*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6221
      start: 6196
    functionDepth: 4
    functionLinenumber: 6196
    functionLinenumberEnd: 6221
    functionName: window_copy_cursor_previous_word
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 4
    functionsReached:
    - grid_reader_get_cursor
    - screen_hsize
    - grid_reader_cursor_previous_word
    - grid_reader_start
    - options_get_number
    - window_copy_acquire_cursor_up
    linkageType: ''
    returnType: void
    signature: "void window_copy_cursor_previous_word(struct window_mode_entry *wme,\n
      \   const char *separators, int already)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_line
      Src: /src/tmux/window-copy.c:6254,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:6267,1
    - Dst: window_copy_redraw_screen
      Src: /src/tmux/window-copy.c:6268,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - wme
    - direction
    - start_output
    argTypes:
    - struct window_mode_entry*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6269
      start: 6223
    functionDepth: 8
    functionLinenumber: 6223
    functionLinenumberEnd: 6269
    functionName: window_copy_cursor_prompt
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 2
    functionsReached:
    - grid_get_line
    - window_copy_redraw_screen
    - window_copy_update_selection
    linkageType: ''
    returnType: void
    signature: "void window_copy_cursor_prompt(struct window_mode_entry *wme, int
      direction,\n    int start_output)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_search_marks
      Src: /src/tmux/window-copy.c:6286,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:6287,1
    - Dst: window_copy_line_numbers_active
      Src: /src/tmux/window-copy.c:6288,1
    - Dst: window_copy_line_number_mode
      Src: /src/tmux/window-copy.c:6289,1
    - Dst: window_copy_redraw_screen
      Src: /src/tmux/window-copy.c:6291,1
    - Dst: screen_write_start
      Src: /src/tmux/window-copy.c:6294,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-copy.c:6295,1
    - Dst: screen_write_deleteline
      Src: /src/tmux/window-copy.c:6296,1
    - Dst: window_copy_write_lines
      Src: /src/tmux/window-copy.c:6297,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:6297,1
    - Dst: window_copy_write_line
      Src: /src/tmux/window-copy.c:6298,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:6299,1
    - Dst: window_copy_write_line
      Src: /src/tmux/window-copy.c:6300,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:6301,1
    - Dst: window_copy_write_line
      Src: /src/tmux/window-copy.c:6302,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:6302,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:6303,1
    - Dst: window_copy_write_line
      Src: /src/tmux/window-copy.c:6304,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:6305,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-copy.c:6307,1
    - Dst: window_copy_cursor_offset
      Src: /src/tmux/window-copy.c:6308,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:6308,1
    - Dst: screen_write_stop
      Src: /src/tmux/window-copy.c:6310,1
    - Dst: screen_write_start_pane
      Src: /src/tmux/window-copy.c:6315,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-copy.c:6316,1
    - Dst: screen_write_deleteline
      Src: /src/tmux/window-copy.c:6317,1
    - Dst: window_copy_write_lines
      Src: /src/tmux/window-copy.c:6318,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:6318,1
    - Dst: window_copy_write_line
      Src: /src/tmux/window-copy.c:6319,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:6320,1
    - Dst: window_copy_write_line
      Src: /src/tmux/window-copy.c:6321,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:6322,1
    - Dst: window_copy_write_line
      Src: /src/tmux/window-copy.c:6323,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:6323,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:6324,1
    - Dst: window_copy_write_line
      Src: /src/tmux/window-copy.c:6325,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:6325,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-copy.c:6326,1
    - Dst: window_copy_cursor_offset
      Src: /src/tmux/window-copy.c:6327,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:6327,1
    - Dst: screen_write_stop
      Src: /src/tmux/window-copy.c:6329,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 2
    argNames:
    - wme
    - ny
    argTypes:
    - struct window_mode_entry*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6331
      start: 6271
    functionDepth: 8
    functionLinenumber: 6271
    functionLinenumberEnd: 6331
    functionName: window_copy_scroll_up
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 3
    functionsReached:
    - window_copy_redraw_screen
    - screen_size_y
    - window_copy_cursor_offset
    - window_copy_line_numbers_active
    - screen_size_x
    - screen_write_start_pane
    - screen_write_cursormove
    - window_copy_search_marks
    - screen_write_deleteline
    - window_copy_update_selection
    - window_copy_write_lines
    - window_copy_write_line
    - screen_write_start
    - window_copy_line_number_mode
    - screen_write_stop
    linkageType: ''
    returnType: void
    signature: void window_copy_scroll_up(struct window_mode_entry *wme, u_int ny)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:6341,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:6344,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:6345,1
    - Dst: window_copy_search_marks
      Src: /src/tmux/window-copy.c:6351,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:6352,1
    - Dst: window_copy_line_numbers_active
      Src: /src/tmux/window-copy.c:6353,1
    - Dst: window_copy_line_number_mode
      Src: /src/tmux/window-copy.c:6354,1
    - Dst: window_copy_redraw_screen
      Src: /src/tmux/window-copy.c:6356,1
    - Dst: screen_write_start
      Src: /src/tmux/window-copy.c:6359,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-copy.c:6360,1
    - Dst: screen_write_insertline
      Src: /src/tmux/window-copy.c:6361,1
    - Dst: window_copy_write_lines
      Src: /src/tmux/window-copy.c:6362,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:6363,1
    - Dst: window_copy_write_line
      Src: /src/tmux/window-copy.c:6364,1
    - Dst: window_copy_write_line
      Src: /src/tmux/window-copy.c:6366,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-copy.c:6367,1
    - Dst: window_copy_cursor_offset
      Src: /src/tmux/window-copy.c:6368,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:6368,1
    - Dst: screen_write_stop
      Src: /src/tmux/window-copy.c:6370,1
    - Dst: screen_write_start_pane
      Src: /src/tmux/window-copy.c:6375,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-copy.c:6376,1
    - Dst: screen_write_insertline
      Src: /src/tmux/window-copy.c:6377,1
    - Dst: window_copy_write_lines
      Src: /src/tmux/window-copy.c:6378,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:6379,1
    - Dst: window_copy_write_line
      Src: /src/tmux/window-copy.c:6380,1
    - Dst: window_copy_write_line
      Src: /src/tmux/window-copy.c:6382,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-copy.c:6383,1
    - Dst: window_copy_cursor_offset
      Src: /src/tmux/window-copy.c:6383,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:6384,1
    - Dst: screen_write_stop
      Src: /src/tmux/window-copy.c:6385,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 2
    argNames:
    - wme
    - ny
    argTypes:
    - struct window_mode_entry*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6387
      start: 6333
    functionDepth: 8
    functionLinenumber: 6333
    functionLinenumberEnd: 6387
    functionName: window_copy_scroll_down
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 3
    functionsReached:
    - window_copy_redraw_screen
    - screen_size_y
    - window_copy_cursor_offset
    - window_copy_line_numbers_active
    - screen_size_x
    - screen_write_insertline
    - screen_write_start_pane
    - screen_write_cursormove
    - screen_hsize
    - window_copy_search_marks
    - window_copy_write_line
    - window_copy_update_selection
    - window_copy_write_lines
    - screen_write_start
    - window_copy_line_number_mode
    - screen_write_stop
    linkageType: ''
    returnType: void
    signature: void window_copy_scroll_down(struct window_mode_entry *wme, u_int ny)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:6397,1
    - Dst: window_copy_cursor_limit
      Src: /src/tmux/window-copy.c:6398,1
    - Dst: window_copy_update_cursor
      Src: /src/tmux/window-copy.c:6400,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:6402,1
    - Dst: window_copy_redraw_screen
      Src: /src/tmux/window-copy.c:6403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - wme
    - rectflag
    argTypes:
    - struct window_mode_entry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6404
      start: 6389
    functionDepth: 9
    functionLinenumber: 6389
    functionLinenumberEnd: 6404
    functionName: window_copy_rectangle_set
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 3
    functionsReached:
    - window_copy_redraw_screen
    - window_copy_update_cursor
    - screen_hsize
    - window_copy_cursor_limit
    - window_copy_update_selection
    linkageType: ''
    returnType: void
    signature: void window_copy_rectangle_set(struct window_mode_entry *wme, int rectflag)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cmd_mouse_pane
      Src: /src/tmux/window-copy.c:6414,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window-copy.c:6417,1
    - Dst: cmd_mouse_at
      Src: /src/tmux/window-copy.c:6423,1
    - Dst: window_copy_cursor_unoffset
      Src: /src/tmux/window-copy.c:6427,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:6427,1
    - Dst: window_copy_update_cursor
      Src: /src/tmux/window-copy.c:6428,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct mouse_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6429
      start: 6406
    functionDepth: 9
    functionLinenumber: 6406
    functionLinenumberEnd: 6429
    functionName: window_copy_move_mouse
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - window_copy_update_cursor
    - screen_size_x
    - cmd_mouse_at
    - TAILQ_FIRST
    - cmd_mouse_pane
    - window_copy_cursor_unoffset
    linkageType: ''
    returnType: void
    signature: void window_copy_move_mouse(struct mouse_event *m)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: cmd_mouse_pane
      Src: /src/tmux/window-copy.c:6442,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window-copy.c:6445,1
    - Dst: cmd_mouse_at
      Src: /src/tmux/window-copy.c:6451,1
    - Dst: window_copy_cursor_unoffset
      Src: /src/tmux/window-copy.c:6458,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:6458,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:6459,1
    - Dst: window_copy_update_cursor
      Src: /src/tmux/window-copy.c:6465,1
    - Dst: window_copy_cursor_previous_word_pos
      Src: /src/tmux/window-copy.c:6466,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:6468,1
    - Dst: window_copy_update_cursor
      Src: /src/tmux/window-copy.c:6470,1
    - Dst: window_copy_update_cursor
      Src: /src/tmux/window-copy.c:6473,1
    - Dst: window_copy_update_cursor
      Src: /src/tmux/window-copy.c:6476,1
    - Dst: window_copy_start_selection
      Src: /src/tmux/window-copy.c:6477,1
    - Dst: window_copy_redraw_screen
      Src: /src/tmux/window-copy.c:6481,1
    - Dst: window_copy_drag_update
      Src: /src/tmux/window-copy.c:6482,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - c
    - m
    argTypes:
    - struct client*
    - struct mouse_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6483
      start: 6431
    functionDepth: 9
    functionLinenumber: 6431
    functionLinenumberEnd: 6483
    functionName: window_copy_start_drag
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 2
    functionsReached:
    - window_copy_cursor_previous_word_pos
    - window_copy_redraw_screen
    - window_copy_update_cursor
    - window_copy_drag_update
    - screen_size_x
    - cmd_mouse_at
    - TAILQ_FIRST
    - window_copy_start_selection
    - screen_hsize
    - cmd_mouse_pane
    - window_copy_cursor_unoffset
    linkageType: ''
    returnType: void
    signature: void window_copy_start_drag(struct client *c, struct mouse_event *m)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cmd_mouse_pane
      Src: /src/tmux/window-copy.c:6499,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window-copy.c:6502,1
    - Dst: evtimer_del
      Src: /src/tmux/window-copy.c:6509,1
    - Dst: cmd_mouse_at
      Src: /src/tmux/window-copy.c:6511,1
    - Dst: window_copy_cursor_unoffset
      Src: /src/tmux/window-copy.c:6513,1
    - Dst: screen_size_x
      Src: /src/tmux/window-copy.c:6513,1
    - Dst: window_copy_update_cursor
      Src: /src/tmux/window-copy.c:6517,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:6518,1
    - Dst: window_copy_redraw_selection
      Src: /src/tmux/window-copy.c:6519,1
    - Dst: evtimer_add
      Src: /src/tmux/window-copy.c:6522,1
    - Dst: window_copy_cursor_up
      Src: /src/tmux/window-copy.c:6523,1
    - Dst: screen_size_y
      Src: /src/tmux/window-copy.c:6524,1
    - Dst: evtimer_add
      Src: /src/tmux/window-copy.c:6525,1
    - Dst: window_copy_cursor_down
      Src: /src/tmux/window-copy.c:6526,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - c
    - m
    argTypes:
    - struct client*
    - struct mouse_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6529
      start: 6485
    functionDepth: 10
    functionLinenumber: 6485
    functionLinenumberEnd: 6529
    functionName: window_copy_drag_update
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - window_copy_cursor_up
    - window_copy_update_cursor
    - evtimer_add
    - screen_size_y
    - evtimer_del
    - screen_size_x
    - cmd_mouse_at
    - TAILQ_FIRST
    - window_copy_redraw_selection
    - window_copy_update_selection
    - cmd_mouse_pane
    - window_copy_cursor_down
    - window_copy_cursor_unoffset
    linkageType: ''
    returnType: void
    signature: void window_copy_drag_update(struct client *c, struct mouse_event *m)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cmd_mouse_pane
      Src: /src/tmux/window-copy.c:6541,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window-copy.c:6544,1
    - Dst: window_copy_line_numbers_active
      Src: /src/tmux/window-copy.c:6551,1
    - Dst: window_copy_drag_update
      Src: /src/tmux/window-copy.c:6552,1
    - Dst: evtimer_del
      Src: /src/tmux/window-copy.c:6553,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - c
    - m
    argTypes:
    - struct client*
    - struct mouse_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6554
      start: 6531
    functionDepth: 11
    functionLinenumber: 6531
    functionLinenumberEnd: 6554
    functionName: window_copy_drag_release
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 0
    functionsReached:
    - window_copy_drag_update
    - window_copy_line_numbers_active
    - evtimer_del
    - TAILQ_FIRST
    - cmd_mouse_pane
    linkageType: ''
    returnType: void
    signature: void window_copy_drag_release(struct client *c, struct mouse_event
      *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:6563,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:6565,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:6567,1
    - Dst: screen_hsize
      Src: /src/tmux/window-copy.c:6569,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:6575,1
    - Dst: window_copy_redraw_screen
      Src: /src/tmux/window-copy.c:6576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6577
      start: 6556
    functionDepth: 8
    functionLinenumber: 6556
    functionLinenumberEnd: 6577
    functionName: window_copy_jump_to_mark
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 1
    functionsReached:
    - screen_hsize
    - window_copy_redraw_screen
    - window_copy_update_selection
    linkageType: ''
    returnType: void
    signature: void window_copy_jump_to_mark(struct window_mode_entry *wme)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cursor_up
      Src: /src/tmux/window-copy.c:6597,1
    - Dst: window_copy_update_cursor
      Src: /src/tmux/window-copy.c:6600,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:6601,1
    - Dst: window_copy_redraw_lines
      Src: /src/tmux/window-copy.c:6602,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 6
    argNames:
    - wme
    - hsize
    - oy
    - oldy
    - px
    - py
    argTypes:
    - struct window_mode_entry*
    - u_int
    - u_int
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6603
      start: 6580
    functionDepth: 10
    functionLinenumber: 6580
    functionLinenumberEnd: 6603
    functionName: window_copy_acquire_cursor_up
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 6
    functionsReached:
    - window_copy_cursor_up
    - window_copy_update_cursor
    - window_copy_update_selection
    - window_copy_redraw_lines
    linkageType: ''
    returnType: void
    signature: "void window_copy_acquire_cursor_up(struct window_mode_entry *wme,
      u_int hsize,\n    u_int oy, u_int oldy, u_int px, u_int py)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: window_copy_cursor_down
      Src: /src/tmux/window-copy.c:6623,1
    - Dst: window_copy_update_cursor
      Src: /src/tmux/window-copy.c:6627,1
    - Dst: window_copy_update_cursor
      Src: /src/tmux/window-copy.c:6629,1
    - Dst: window_copy_update_selection
      Src: /src/tmux/window-copy.c:6630,1
    - Dst: window_copy_redraw_lines
      Src: /src/tmux/window-copy.c:6631,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 8
    argNames:
    - wme
    - hsize
    - sy
    - oy
    - oldy
    - px
    - py
    - no_reset
    argTypes:
    - struct window_mode_entry*
    - u_int
    - u_int
    - u_int
    - u_int
    - u_int
    - u_int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6632
      start: 6606
    functionDepth: 10
    functionLinenumber: 6606
    functionLinenumberEnd: 6632
    functionName: window_copy_acquire_cursor_down
    functionSourceFile: /src/tmux/window-copy.c
    functionUses: 6
    functionsReached:
    - window_copy_update_cursor
    - window_copy_update_selection
    - window_copy_redraw_lines
    - window_copy_cursor_down
    linkageType: ''
    returnType: void
    signature: "void window_copy_acquire_cursor_down(struct window_mode_entry *wme,
      u_int hsize,\n    u_int sy, u_int oy, u_int oldy, u_int px, u_int py, int no_reset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fatalx
      Src: /src/tmux/xmalloc.c:32,1
    - Dst: malloc
      Src: /src/tmux/xmalloc.c:33,1
    - Dst: fatalx
      Src: /src/tmux/xmalloc.c:35,1
    - Dst: strerror
      Src: /src/tmux/xmalloc.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 38
    functionName: xmalloc
    functionSourceFile: /src/tmux/xmalloc.c
    functionUses: 33
    functionsReached:
    - fatalx
    - malloc
    - strerror
    linkageType: ''
    returnType: void
    signature: 'void *

      xmalloc(size_t size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fatalx
      Src: /src/tmux/xmalloc.c:46,1
    - Dst: calloc
      Src: /src/tmux/xmalloc.c:47,1
    - Dst: fatalx
      Src: /src/tmux/xmalloc.c:49,1
    - Dst: strerror
      Src: /src/tmux/xmalloc.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 52
    functionName: xcalloc
    functionSourceFile: /src/tmux/xmalloc.c
    functionUses: 42
    functionsReached:
    - fatalx
    - calloc
    - strerror
    linkageType: ''
    returnType: void
    signature: 'void *

      xcalloc(size_t nmemb, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xreallocarray
      Src: /src/tmux/xmalloc.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: xrealloc
    functionSourceFile: /src/tmux/xmalloc.c
    functionUses: 13
    functionsReached:
    - xreallocarray
    linkageType: ''
    returnType: void
    signature: 'void *

      xrealloc(void *ptr, size_t size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fatalx
      Src: /src/tmux/xmalloc.c:66,1
    - Dst: reallocarray
      Src: /src/tmux/xmalloc.c:67,1
    - Dst: fatalx
      Src: /src/tmux/xmalloc.c:69,1
    - Dst: strerror
      Src: /src/tmux/xmalloc.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - nmemb
    - size
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 72
    functionName: xreallocarray
    functionSourceFile: /src/tmux/xmalloc.c
    functionUses: 35
    functionsReached:
    - fatalx
    - reallocarray
    - strerror
    linkageType: ''
    returnType: void
    signature: 'void *

      xreallocarray(void *ptr, size_t nmemb, size_t size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fatalx
      Src: /src/tmux/xmalloc.c:80,1
    - Dst: recallocarray
      Src: /src/tmux/xmalloc.c:81,1
    - Dst: fatalx
      Src: /src/tmux/xmalloc.c:83,1
    - Dst: strerror
      Src: /src/tmux/xmalloc.c:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - ptr
    - oldnmemb
    - nmemb
    - size
    argTypes:
    - void*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 86
    functionName: xrecallocarray
    functionSourceFile: /src/tmux/xmalloc.c
    functionUses: 3
    functionsReached:
    - recallocarray
    - fatalx
    - strerror
    linkageType: ''
    returnType: void
    signature: 'void *

      xrecallocarray(void *ptr, size_t oldnmemb, size_t nmemb, size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/tmux/xmalloc.c:93,1
    - Dst: fatalx
      Src: /src/tmux/xmalloc.c:94,1
    - Dst: strerror
      Src: /src/tmux/xmalloc.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: xstrdup
    functionSourceFile: /src/tmux/xmalloc.c
    functionUses: 66
    functionsReached:
    - fatalx
    - strerror
    - strdup
    linkageType: ''
    returnType: char
    signature: 'char *

      xstrdup(const char *str)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strndup
      Src: /src/tmux/xmalloc.c:103,1
    - Dst: fatalx
      Src: /src/tmux/xmalloc.c:104,1
    - Dst: strerror
      Src: /src/tmux/xmalloc.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - maxlen
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 106
    functionName: xstrndup
    functionSourceFile: /src/tmux/xmalloc.c
    functionUses: 2
    functionsReached:
    - strndup
    - fatalx
    - strerror
    linkageType: ''
    returnType: char
    signature: 'char *

      xstrndup(const char *str, size_t maxlen)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/tmux/xmalloc.c:114,1
    - Dst: xvasprintf
      Src: /src/tmux/xmalloc.c:115,1
    - Dst: va_end
      Src: /src/tmux/xmalloc.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ret
    - fmt
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 119
    functionName: xasprintf
    functionSourceFile: /src/tmux/xmalloc.c
    functionUses: 29
    functionsReached:
    - va_end
    - xvasprintf
    - va_start
    linkageType: ''
    returnType: int
    signature: int xasprintf(char **ret, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vasprintf
      Src: /src/tmux/xmalloc.c:126,1
    - Dst: fatalx
      Src: /src/tmux/xmalloc.c:129,1
    - Dst: strerror
      Src: /src/tmux/xmalloc.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ret
    - fmt
    - ap
    argTypes:
    - char**
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: xvasprintf
    functionSourceFile: /src/tmux/xmalloc.c
    functionUses: 4
    functionsReached:
    - fatalx
    - strerror
    - vasprintf
    linkageType: ''
    returnType: int
    signature: int xvasprintf(char **ret, const char *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/tmux/xmalloc.c:140,1
    - Dst: xvsnprintf
      Src: /src/tmux/xmalloc.c:141,1
    - Dst: va_end
      Src: /src/tmux/xmalloc.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - str
    - len
    - fmt
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 145
    functionName: xsnprintf
    functionSourceFile: /src/tmux/xmalloc.c
    functionUses: 19
    functionsReached:
    - va_end
    - xvsnprintf
    - va_start
    linkageType: ''
    returnType: int
    signature: int xsnprintf(char *str, size_t len, const char *fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fatalx
      Src: /src/tmux/xmalloc.c:153,1
    - Dst: vsnprintf
      Src: /src/tmux/xmalloc.c:155,1
    - Dst: fatalx
      Src: /src/tmux/xmalloc.c:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - str
    - len
    - fmt
    - ap
    argTypes:
    - char*
    - size_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 161
    functionName: xvsnprintf
    functionSourceFile: /src/tmux/xmalloc.c
    functionUses: 1
    functionsReached:
    - fatalx
    - vsnprintf
    linkageType: ''
    returnType: int
    signature: int xvsnprintf(char *str, size_t len, const char *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: printflike
    functionSourceFile: /src/tmux/tmux.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: printflike(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: nitems
    functionSourceFile: /src/tmux/tmux.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nitems(_a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: KEYC_SHIFT_TYPE
    functionSourceFile: /src/tmux/tmux.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEYC_SHIFT_TYPE(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - k
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: KEYC_IS_TYPE
    functionSourceFile: /src/tmux/tmux.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEYC_IS_TYPE(k, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: KEYC_IS_UNICODE
    functionSourceFile: /src/tmux/tmux.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEYC_IS_UNICODE(key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 203
    functionName: KEYC_IS_USER
    functionSourceFile: /src/tmux/tmux.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEYC_IS_USER(key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: KEYC_IS_SPECIAL
    functionSourceFile: /src/tmux/tmux.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEYC_IS_SPECIAL(key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: KEYC_IS_MOUSE
    functionSourceFile: /src/tmux/tmux.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEYC_IS_MOUSE(key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: KEYC_IS_PASTE
    functionSourceFile: /src/tmux/tmux.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEYC_IS_PASTE(key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 248
    functionName: KEYC_MOUSE_KEYS
    functionSourceFile: /src/tmux/tmux.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEYC_MOUSE_KEYS(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p
    - ','
    - t
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 259
    functionName: KEYC_MOUSE_KEY
    functionSourceFile: /src/tmux/tmux.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEYC_MOUSE_KEY(p, t, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - t
    - ','
    - b
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 263
    functionName: KEYC_MAKE_MOUSE_KEY
    functionSourceFile: /src/tmux/tmux.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEYC_MAKE_MOUSE_KEY(t, b, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 283
    functionName: KEYC_MOUSE_STRING
    functionSourceFile: /src/tmux/tmux.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEYC_MOUSE_STRING(name, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 732
    functionName: COLOUR_DEFAULT
    functionSourceFile: /src/tmux/tmux.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COLOUR_DEFAULT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1125
    functionDepth: 0
    functionLinenumber: 1125
    functionLinenumberEnd: 1126
    functionName: screen_size_x
    functionSourceFile: /src/tmux/tmux.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: screen_size_x(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1126
    functionDepth: 0
    functionLinenumber: 1126
    functionLinenumberEnd: 1127
    functionName: screen_size_y
    functionSourceFile: /src/tmux/tmux.h
    functionUses: 45
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: screen_size_y(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1127
    functionDepth: 0
    functionLinenumber: 1127
    functionLinenumberEnd: 1128
    functionName: screen_hsize
    functionSourceFile: /src/tmux/tmux.h
    functionUses: 58
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: screen_hsize(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1128
    functionDepth: 0
    functionLinenumber: 1128
    functionLinenumberEnd: 1129
    functionName: screen_hlimit
    functionSourceFile: /src/tmux/tmux.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: screen_hlimit(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1460
    functionDepth: 0
    functionLinenumber: 1460
    functionLinenumberEnd: 1461
    functionName: SCREEN_IS_ALTERNATE
    functionSourceFile: /src/tmux/tmux.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCREEN_IS_ALTERNATE(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1574
      start: 1573
    functionDepth: 0
    functionLinenumber: 1573
    functionLinenumberEnd: 1574
    functionName: MOUSE_BUTTONS
    functionSourceFile: /src/tmux/tmux.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOUSE_BUTTONS(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1574
    functionDepth: 0
    functionLinenumber: 1574
    functionLinenumberEnd: 1577
    functionName: MOUSE_WHEEL
    functionSourceFile: /src/tmux/tmux.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOUSE_WHEEL(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1577
    functionDepth: 0
    functionLinenumber: 1577
    functionLinenumberEnd: 1578
    functionName: MOUSE_DRAG
    functionSourceFile: /src/tmux/tmux.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOUSE_DRAG(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1578
    functionDepth: 0
    functionLinenumber: 1578
    functionLinenumberEnd: 1579
    functionName: MOUSE_RELEASE
    functionSourceFile: /src/tmux/tmux.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOUSE_RELEASE(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cb
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2953
      start: 2952
    functionDepth: 0
    functionLinenumber: 2952
    functionLinenumberEnd: 2953
    functionName: cmdq_get_callback
    functionSourceFile: /src/tmux/tmux.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cmdq_get_callback(cb, data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xrealloc
      Src: /src/tmux/regsub.c:31,1
    - Dst: memcpy
      Src: /src/tmux/regsub.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - buf
    - len
    - text
    - start
    - end
    argTypes:
    - char**
    - ssize_t*
    - char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: regsub_copy
    functionSourceFile: /src/tmux/regsub.c
    functionUses: 0
    functionsReached:
    - xrealloc
    - memcpy
    linkageType: ''
    returnType: void
    signature: void regsub_copy(char **buf, ssize_t *len, const char *text, size_t
      start, size_t end)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: regsub_copy
      Src: /src/tmux/regsub.c:49,1
    - Dst: xrealloc
      Src: /src/tmux/regsub.c:55,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 6
    argNames:
    - buf
    - len
    - with
    - text
    - m
    - n
    argTypes:
    - char**
    - ssize_t*
    - char*
    - char*
    - regmatch_t*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 58
    functionName: regsub_expand
    functionSourceFile: /src/tmux/regsub.c
    functionUses: 0
    functionsReached:
    - regsub_copy
    - xrealloc
    linkageType: ''
    returnType: void
    signature: "void regsub_expand(char **buf, ssize_t *len, const char *with, const
      char *text,\n    regmatch_t *m, u_int n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/regsub.c:70,1
    - Dst: xstrdup
      Src: /src/tmux/regsub.c:72,1
    - Dst: regcomp
      Src: /src/tmux/regsub.c:73,1
    - Dst: strlen
      Src: /src/tmux/regsub.c:78,1
    - Dst: regexec
      Src: /src/tmux/regsub.c:81,1
    - Dst: nitems
      Src: /src/tmux/regsub.c:81,1
    - Dst: regsub_copy
      Src: /src/tmux/regsub.c:82,1
    - Dst: regsub_copy
      Src: /src/tmux/regsub.c:90,1
    - Dst: regsub_expand
      Src: /src/tmux/regsub.c:100,1
    - Dst: nitems
      Src: /src/tmux/regsub.c:101,1
    - Dst: regsub_copy
      Src: /src/tmux/regsub.c:114,1
    - Dst: regfree
      Src: /src/tmux/regsub.c:120,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 4
    argNames:
    - pattern
    - with
    - text
    - flags
    argTypes:
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 122
    functionName: regsub
    functionSourceFile: /src/tmux/regsub.c
    functionUses: 0
    functionsReached:
    - regfree
    - regexec
    - nitems
    - regcomp
    - regsub_copy
    - strlen
    - xstrdup
    - regsub_expand
    linkageType: ''
    returnType: char
    signature: 'char *

      regsub(const char *pattern, const char *with, const char *text, int flags)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - o
    - idx
    - oe
    argTypes:
    - struct options_entry*
    - int
    - struct options_table_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 123
    functionName: window_customize_get_tag
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t window_customize_get_tag(struct options_entry *o, int idx,\n
      \   const struct options_table_entry *oe)"
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - scope
    - fs
    argTypes:
    - enum window_customize_scope
    - struct cmd_find_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 147
    functionName: window_customize_get_tree
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct options
    signature: "struct options *\nwindow_customize_get_tree(enum window_customize_scope
      scope,\n    struct cmd_find_state *fs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmd_find_valid_state
      Src: /src/tmux/window-customize.c:158,1
    - Dst: cmd_find_copy_state
      Src: /src/tmux/window-customize.c:159,1
    - Dst: cmd_find_from_pane
      Src: /src/tmux/window-customize.c:161,1
    - Dst: window_customize_get_tree
      Src: /src/tmux/window-customize.c:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - data
    - item
    - fsp
    argTypes:
    - struct window_customize_modedata*
    - struct window_customize_itemdata*
    - struct cmd_find_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 149
    functionDepth: 6
    functionLinenumber: 149
    functionLinenumberEnd: 163
    functionName: window_customize_check_item
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - cmd_find_valid_state
    - cmd_find_from_pane
    - window_customize_get_tree
    - cmd_find_copy_state
    linkageType: ''
    returnType: int
    signature: "int window_customize_check_item(struct window_customize_modedata *data,\n
      \   struct window_customize_itemdata *item, struct cmd_find_state *fsp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: key_bindings_get_table
      Src: /src/tmux/window-customize.c:172,1
    - Dst: key_bindings_get
      Src: /src/tmux/window-customize.c:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - item
    - ktp
    - bdp
    argTypes:
    - struct window_customize_itemdata*
    - struct key_table**
    - struct key_binding**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 184
    functionName: window_customize_get_key
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - key_bindings_get
    - key_bindings_get_table
    linkageType: ''
    returnType: int
    signature: "int window_customize_get_key(struct window_customize_itemdata *item,\n
      \   struct key_table **ktp, struct key_binding **bdp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: window_pane_index
      Src: /src/tmux/window-customize.c:195,1
    - Dst: xasprintf
      Src: /src/tmux/window-customize.c:196,1
    - Dst: xasprintf
      Src: /src/tmux/window-customize.c:199,1
    - Dst: xasprintf
      Src: /src/tmux/window-customize.c:202,1
    - Dst: xstrdup
      Src: /src/tmux/window-customize.c:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - scope
    - fs
    argTypes:
    - enum window_customize_scope
    - struct cmd_find_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 209
    functionName: window_customize_scope_text
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - xstrdup
    - window_pane_index
    linkageType: ''
    returnType: char
    signature: "char *\nwindow_customize_scope_text(enum window_customize_scope scope,\n
      \   struct cmd_find_state *fs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xreallocarray
      Src: /src/tmux/window-customize.c:216,1
    - Dst: xcalloc
      Src: /src/tmux/window-customize.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct window_customize_modedata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 220
    functionName: window_customize_add_item
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - xreallocarray
    linkageType: ''
    returnType: struct window_customize_itemdata
    signature: 'struct window_customize_itemdata *

      window_customize_add_item(struct window_customize_modedata *data)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/window-customize.c:225,1
    - Dst: free
      Src: /src/tmux/window-customize.c:226,1
    - Dst: free
      Src: /src/tmux/window-customize.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct window_customize_itemdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 228
    functionName: window_customize_free_item
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void window_customize_free_item(struct window_customize_itemdata *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: options_table_entry
      Src: /src/tmux/window-customize.c:235,1
    - Dst: options_owner
      Src: /src/tmux/window-customize.c:236,1
    - Dst: options_array_first
      Src: /src/tmux/window-customize.c:243,1
    - Dst: options_array_item_index
      Src: /src/tmux/window-customize.c:245,1
    - Dst: xasprintf
      Src: /src/tmux/window-customize.c:247,1
    - Dst: options_name
      Src: /src/tmux/window-customize.c:247,1
    - Dst: format_add
      Src: /src/tmux/window-customize.c:248,1
    - Dst: options_to_string
      Src: /src/tmux/window-customize.c:249,1
    - Dst: format_add
      Src: /src/tmux/window-customize.c:250,1
    - Dst: window_customize_add_item
      Src: /src/tmux/window-customize.c:252,1
    - Dst: xstrdup
      Src: /src/tmux/window-customize.c:255,1
    - Dst: options_name
      Src: /src/tmux/window-customize.c:255,1
    - Dst: format_expand
      Src: /src/tmux/window-customize.c:258,1
    - Dst: window_customize_get_tag
      Src: /src/tmux/window-customize.c:259,1
    - Dst: mode_tree_add
      Src: /src/tmux/window-customize.c:260,1
    - Dst: free
      Src: /src/tmux/window-customize.c:261,1
    - Dst: free
      Src: /src/tmux/window-customize.c:263,1
    - Dst: free
      Src: /src/tmux/window-customize.c:264,1
    - Dst: options_array_next
      Src: /src/tmux/window-customize.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 5
    argNames:
    - data
    - top
    - scope
    - o
    - ft
    argTypes:
    - struct window_customize_modedata*
    - struct mode_tree_item*
    - enum window_customize_scope
    - struct options_entry*
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 230
    functionDepth: 3
    functionLinenumber: 230
    functionLinenumberEnd: 268
    functionName: window_customize_build_array
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - options_array_first
    - window_customize_get_tag
    - options_array_next
    - options_to_string
    - window_customize_add_item
    - options_owner
    - options_name
    - options_table_entry
    - free
    - format_add
    - mode_tree_add
    - xstrdup
    - format_expand
    - options_array_item_index
    linkageType: ''
    returnType: void
    signature: "void window_customize_build_array(struct window_customize_modedata
      *data,\n    struct mode_tree_item *top, enum window_customize_scope scope,\n
      \   struct options_entry *o, struct format_tree *ft)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: options_table_entry
      Src: /src/tmux/window-customize.c:276,1
    - Dst: options_owner
      Src: /src/tmux/window-customize.c:277,1
    - Dst: options_name
      Src: /src/tmux/window-customize.c:278,1
    - Dst: format_add
      Src: /src/tmux/window-customize.c:296,1
    - Dst: format_add
      Src: /src/tmux/window-customize.c:297,1
    - Dst: format_add
      Src: /src/tmux/window-customize.c:298,1
    - Dst: window_customize_scope_text
      Src: /src/tmux/window-customize.c:300,1
    - Dst: format_add
      Src: /src/tmux/window-customize.c:301,1
    - Dst: free
      Src: /src/tmux/window-customize.c:302,1
    - Dst: format_add
      Src: /src/tmux/window-customize.c:305,1
    - Dst: format_add
      Src: /src/tmux/window-customize.c:307,1
    - Dst: options_to_string
      Src: /src/tmux/window-customize.c:310,1
    - Dst: format_add
      Src: /src/tmux/window-customize.c:311,1
    - Dst: free
      Src: /src/tmux/window-customize.c:312,1
    - Dst: format_expand
      Src: /src/tmux/window-customize.c:316,1
    - Dst: format_true
      Src: /src/tmux/window-customize.c:317,1
    - Dst: free
      Src: /src/tmux/window-customize.c:318,1
    - Dst: free
      Src: /src/tmux/window-customize.c:321,1
    - Dst: window_customize_add_item
      Src: /src/tmux/window-customize.c:323,1
    - Dst: xstrdup
      Src: /src/tmux/window-customize.c:326,1
    - Dst: format_expand
      Src: /src/tmux/window-customize.c:332,1
    - Dst: window_customize_get_tag
      Src: /src/tmux/window-customize.c:333,1
    - Dst: mode_tree_add
      Src: /src/tmux/window-customize.c:334,1
    - Dst: free
      Src: /src/tmux/window-customize.c:335,1
    - Dst: window_customize_build_array
      Src: /src/tmux/window-customize.c:338,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 7
    argNames:
    - data
    - top
    - scope
    - o
    - ft
    - filter
    - fs
    argTypes:
    - struct window_customize_modedata*
    - struct mode_tree_item*
    - enum window_customize_scope
    - struct options_entry*
    - struct format_tree*
    - char*
    - struct cmd_find_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 270
    functionDepth: 4
    functionLinenumber: 270
    functionLinenumberEnd: 339
    functionName: window_customize_build_option
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - window_customize_get_tag
    - window_customize_scope_text
    - options_to_string
    - window_customize_add_item
    - options_owner
    - options_name
    - options_table_entry
    - free
    - format_add
    - mode_tree_add
    - window_customize_build_array
    - format_true
    - xstrdup
    - format_expand
    linkageType: ''
    returnType: void
    signature: "void window_customize_build_option(struct window_customize_modedata
      *data,\n    struct mode_tree_item *top, enum window_customize_scope scope,\n
      \   struct options_entry *o, struct format_tree *ft,\n    const char *filter,
      struct cmd_find_state *fs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: options_first
      Src: /src/tmux/window-customize.c:349,1
    - Dst: options_name
      Src: /src/tmux/window-customize.c:351,1
    - Dst: options_next
      Src: /src/tmux/window-customize.c:353,1
    - Dst: strcmp
      Src: /src/tmux/window-customize.c:357,1
    - Dst: options_next
      Src: /src/tmux/window-customize.c:361,1
    - Dst: xreallocarray
      Src: /src/tmux/window-customize.c:364,1
    - Dst: options_next
      Src: /src/tmux/window-customize.c:367,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - oo
    - list
    - size
    argTypes:
    - struct options*
    - char***
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 369
    functionName: window_customize_find_user_options
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - options_next
    - options_name
    - strcmp
    - xreallocarray
    - options_first
    linkageType: ''
    returnType: void
    signature: "void window_customize_find_user_options(struct options *oo, const
      char ***list,\n    u_int *size)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_add
      Src: /src/tmux/window-customize.c:385,1
    - Dst: mode_tree_no_tag
      Src: /src/tmux/window-customize.c:386,1
    - Dst: window_customize_find_user_options
      Src: /src/tmux/window-customize.c:394,1
    - Dst: window_customize_find_user_options
      Src: /src/tmux/window-customize.c:396,1
    - Dst: window_customize_find_user_options
      Src: /src/tmux/window-customize.c:398,1
    - Dst: options_get
      Src: /src/tmux/window-customize.c:402,1
    - Dst: options_get
      Src: /src/tmux/window-customize.c:404,1
    - Dst: options_get
      Src: /src/tmux/window-customize.c:406,1
    - Dst: options_owner
      Src: /src/tmux/window-customize.c:407,1
    - Dst: options_owner
      Src: /src/tmux/window-customize.c:409,1
    - Dst: window_customize_build_option
      Src: /src/tmux/window-customize.c:413,1
    - Dst: free
      Src: /src/tmux/window-customize.c:416,1
    - Dst: options_first
      Src: /src/tmux/window-customize.c:418,1
    - Dst: options_name
      Src: /src/tmux/window-customize.c:420,1
    - Dst: options_next
      Src: /src/tmux/window-customize.c:422,1
    - Dst: options_get
      Src: /src/tmux/window-customize.c:426,1
    - Dst: options_get
      Src: /src/tmux/window-customize.c:428,1
    - Dst: options_owner
      Src: /src/tmux/window-customize.c:431,1
    - Dst: options_owner
      Src: /src/tmux/window-customize.c:433,1
    - Dst: window_customize_build_option
      Src: /src/tmux/window-customize.c:437,1
    - Dst: options_next
      Src: /src/tmux/window-customize.c:439,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 12
    argNames:
    - data
    - title
    - tag
    - scope0
    - oo0
    - scope1
    - oo1
    - scope2
    - oo2
    - ft
    - filter
    - fs
    argTypes:
    - struct window_customize_modedata*
    - char*
    - uint64_t
    - enum window_customize_scope
    - struct options*
    - enum window_customize_scope
    - struct options*
    - enum window_customize_scope
    - struct options*
    - struct format_tree*
    - char*
    - struct cmd_find_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 371
    functionDepth: 5
    functionLinenumber: 371
    functionLinenumberEnd: 441
    functionName: window_customize_build_options
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - window_customize_find_user_options
    - options_owner
    - options_next
    - options_name
    - mode_tree_no_tag
    - window_customize_build_option
    - free
    - mode_tree_add
    - options_first
    - options_get
    linkageType: ''
    returnType: void
    signature: "void window_customize_build_options(struct window_customize_modedata
      *data,\n    const char *title, uint64_t tag,\n    enum window_customize_scope
      scope0, struct options *oo0,\n    enum window_customize_scope scope1, struct
      options *oo1,\n    enum window_customize_scope scope2, struct options *oo2,\n
      \   struct format_tree *ft, const char *filter, struct cmd_find_state *fs)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/tmux/window-customize.c:457,1
    - Dst: mode_tree_add
      Src: /src/tmux/window-customize.c:458,1
    - Dst: mode_tree_no_tag
      Src: /src/tmux/window-customize.c:459,1
    - Dst: free
      Src: /src/tmux/window-customize.c:460,1
    - Dst: format_create_from_state
      Src: /src/tmux/window-customize.c:462,1
    - Dst: format_add
      Src: /src/tmux/window-customize.c:463,1
    - Dst: format_add
      Src: /src/tmux/window-customize.c:464,1
    - Dst: key_bindings_first
      Src: /src/tmux/window-customize.c:466,1
    - Dst: format_add
      Src: /src/tmux/window-customize.c:468,1
    - Dst: key_string_lookup_key
      Src: /src/tmux/window-customize.c:468,1
    - Dst: format_add
      Src: /src/tmux/window-customize.c:470,1
    - Dst: format_expand
      Src: /src/tmux/window-customize.c:472,1
    - Dst: format_true
      Src: /src/tmux/window-customize.c:473,1
    - Dst: free
      Src: /src/tmux/window-customize.c:474,1
    - Dst: free
      Src: /src/tmux/window-customize.c:477,1
    - Dst: window_customize_add_item
      Src: /src/tmux/window-customize.c:480,1
    - Dst: xstrdup
      Src: /src/tmux/window-customize.c:482,1
    - Dst: xstrdup
      Src: /src/tmux/window-customize.c:484,1
    - Dst: key_string_lookup_key
      Src: /src/tmux/window-customize.c:484,1
    - Dst: format_expand
      Src: /src/tmux/window-customize.c:487,1
    - Dst: mode_tree_add
      Src: /src/tmux/window-customize.c:488,1
    - Dst: free
      Src: /src/tmux/window-customize.c:490,1
    - Dst: cmd_list_print
      Src: /src/tmux/window-customize.c:492,1
    - Dst: xasprintf
      Src: /src/tmux/window-customize.c:493,1
    - Dst: free
      Src: /src/tmux/window-customize.c:494,1
    - Dst: mode_tree_add
      Src: /src/tmux/window-customize.c:495,1
    - Dst: mode_tree_draw_as_parent
      Src: /src/tmux/window-customize.c:497,1
    - Dst: mode_tree_no_tag
      Src: /src/tmux/window-customize.c:498,1
    - Dst: free
      Src: /src/tmux/window-customize.c:499,1
    - Dst: xasprintf
      Src: /src/tmux/window-customize.c:502,1
    - Dst: xstrdup
      Src: /src/tmux/window-customize.c:504,1
    - Dst: mode_tree_add
      Src: /src/tmux/window-customize.c:505,1
    - Dst: mode_tree_draw_as_parent
      Src: /src/tmux/window-customize.c:507,1
    - Dst: mode_tree_no_tag
      Src: /src/tmux/window-customize.c:508,1
    - Dst: free
      Src: /src/tmux/window-customize.c:509,1
    - Dst: mode_tree_add
      Src: /src/tmux/window-customize.c:515,1
    - Dst: mode_tree_draw_as_parent
      Src: /src/tmux/window-customize.c:517,1
    - Dst: mode_tree_no_tag
      Src: /src/tmux/window-customize.c:518,1
    - Dst: key_bindings_next
      Src: /src/tmux/window-customize.c:520,1
    - Dst: format_free
      Src: /src/tmux/window-customize.c:523,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 54
    argCount: 6
    argNames:
    - data
    - kt
    - ft
    - filter
    - fs
    - number
    argTypes:
    - struct window_customize_modedata*
    - struct key_table*
    - struct format_tree*
    - char*
    - struct cmd_find_state*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 443
    functionDepth: 3
    functionLinenumber: 443
    functionLinenumberEnd: 524
    functionName: window_customize_build_keys
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - cmd_list_print
    - window_customize_add_item
    - format_free
    - key_bindings_first
    - mode_tree_no_tag
    - key_bindings_next
    - key_string_lookup_key
    - free
    - format_add
    - format_create_from_state
    - mode_tree_add
    - format_true
    - mode_tree_draw_as_parent
    - xstrdup
    - format_expand
    linkageType: ''
    returnType: void
    signature: "void window_customize_build_keys(struct window_customize_modedata
      *data,\n    struct key_table *kt, struct format_tree *ft, const char *filter,\n
      \   struct cmd_find_state *fs, u_int number)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: window_customize_free_item
      Src: /src/tmux/window-customize.c:538,1
    - Dst: free
      Src: /src/tmux/window-customize.c:539,1
    - Dst: cmd_find_valid_state
      Src: /src/tmux/window-customize.c:543,1
    - Dst: cmd_find_copy_state
      Src: /src/tmux/window-customize.c:544,1
    - Dst: cmd_find_from_pane
      Src: /src/tmux/window-customize.c:546,1
    - Dst: format_create_from_state
      Src: /src/tmux/window-customize.c:548,1
    - Dst: format_add
      Src: /src/tmux/window-customize.c:549,1
    - Dst: format_add
      Src: /src/tmux/window-customize.c:550,1
    - Dst: window_customize_build_options
      Src: /src/tmux/window-customize.c:552,1
    - Dst: window_customize_build_options
      Src: /src/tmux/window-customize.c:558,1
    - Dst: window_customize_build_options
      Src: /src/tmux/window-customize.c:564,1
    - Dst: format_free
      Src: /src/tmux/window-customize.c:571,1
    - Dst: format_create_from_state
      Src: /src/tmux/window-customize.c:572,1
    - Dst: key_bindings_first_table
      Src: /src/tmux/window-customize.c:575,1
    - Dst: RB_EMPTY
      Src: /src/tmux/window-customize.c:577,1
    - Dst: window_customize_build_keys
      Src: /src/tmux/window-customize.c:578,1
    - Dst: key_bindings_next_table
      Src: /src/tmux/window-customize.c:583,1
    - Dst: format_free
      Src: /src/tmux/window-customize.c:586,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - modedata
    - sort_crit
    - tag
    - filter
    argTypes:
    - void*
    - __unused*
    - __unused*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 526
    functionDepth: 6
    functionLinenumber: 526
    functionLinenumberEnd: 587
    functionName: window_customize_build
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - cmd_find_valid_state
    - cmd_find_from_pane
    - cmd_find_copy_state
    - window_customize_build_options
    - format_free
    - key_bindings_next_table
    - key_bindings_first_table
    - window_customize_build_keys
    - free
    - RB_EMPTY
    - format_add
    - format_create_from_state
    - window_customize_free_item
    linkageType: ''
    returnType: void
    signature: "void window_customize_build(void *modedata,\n    __unused struct sort_criteria
      *sort_crit, __unused uint64_t *tag,\n    const char *filter)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: window_customize_get_key
      Src: /src/tmux/window-customize.c:601,1
    - Dst: strlen
      Src: /src/tmux/window-customize.c:607,1
    - Dst: screen_write_text
      Src: /src/tmux/window-customize.c:609,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-customize.c:612,1
    - Dst: screen_write_text
      Src: /src/tmux/window-customize.c:616,1
    - Dst: screen_write_text
      Src: /src/tmux/window-customize.c:619,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-customize.c:623,1
    - Dst: cmd_list_print
      Src: /src/tmux/window-customize.c:627,1
    - Dst: screen_write_text
      Src: /src/tmux/window-customize.c:628,1
    - Dst: free
      Src: /src/tmux/window-customize.c:630,1
    - Dst: key_bindings_get_default
      Src: /src/tmux/window-customize.c:633,1
    - Dst: cmd_list_print
      Src: /src/tmux/window-customize.c:635,1
    - Dst: strcmp
      Src: /src/tmux/window-customize.c:636,1
    - Dst: screen_write_text
      Src: /src/tmux/window-customize.c:637,1
    - Dst: free
      Src: /src/tmux/window-customize.c:639,1
    - Dst: free
      Src: /src/tmux/window-customize.c:640,1
    - Dst: free
      Src: /src/tmux/window-customize.c:643,1
    - Dst: free
      Src: /src/tmux/window-customize.c:645,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 5
    argNames:
    - data
    - item
    - ctx
    - sx
    - sy
    argTypes:
    - __unused*
    - struct window_customize_itemdata*
    - struct screen_write_ctx*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 589
    functionDepth: 3
    functionLinenumber: 589
    functionLinenumberEnd: 646
    functionName: window_customize_draw_key
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - key_bindings_get_default
    - cmd_list_print
    - window_customize_get_key
    - screen_write_cursormove
    - strcmp
    - free
    - strlen
    - screen_write_text
    linkageType: ''
    returnType: void
    signature: "void window_customize_draw_key(__unused struct window_customize_modedata
      *data,\n    struct window_customize_itemdata *item, struct screen_write_ctx
      *ctx,\n    u_int sx, u_int sy)"
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: window_customize_check_item
      Src: /src/tmux/window-customize.c:668,1
    - Dst: options_get
      Src: /src/tmux/window-customize.c:673,1
    - Dst: options_table_entry
      Src: /src/tmux/window-customize.c:676,1
    - Dst: format_create_from_state
      Src: /src/tmux/window-customize.c:682,1
    - Dst: screen_write_text
      Src: /src/tmux/window-customize.c:688,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-customize.c:691,1
    - Dst: screen_write_text
      Src: /src/tmux/window-customize.c:706,1
    - Dst: screen_write_text
      Src: /src/tmux/window-customize.c:711,1
    - Dst: screen_write_text
      Src: /src/tmux/window-customize.c:716,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-customize.c:723,1
    - Dst: options_to_string
      Src: /src/tmux/window-customize.c:727,1
    - Dst: options_default_to_string
      Src: /src/tmux/window-customize.c:729,1
    - Dst: strcmp
      Src: /src/tmux/window-customize.c:730,1
    - Dst: free
      Src: /src/tmux/window-customize.c:731,1
    - Dst: screen_write_text
      Src: /src/tmux/window-customize.c:735,1
    - Dst: format_expand
      Src: /src/tmux/window-customize.c:739,1
    - Dst: strcmp
      Src: /src/tmux/window-customize.c:740,1
    - Dst: screen_write_text
      Src: /src/tmux/window-customize.c:741,1
    - Dst: free
      Src: /src/tmux/window-customize.c:746,1
    - Dst: strlcat
      Src: /src/tmux/window-customize.c:750,1
    - Dst: strlcat
      Src: /src/tmux/window-customize.c:751,1
    - Dst: strlen
      Src: /src/tmux/window-customize.c:753,1
    - Dst: screen_write_text
      Src: /src/tmux/window-customize.c:754,1
    - Dst: screen_write_text
      Src: /src/tmux/window-customize.c:760,1
    - Dst: memcpy
      Src: /src/tmux/window-customize.c:763,1
    - Dst: options_get_number
      Src: /src/tmux/window-customize.c:764,1
    - Dst: screen_write_text
      Src: /src/tmux/window-customize.c:765,1
    - Dst: screen_write_text
      Src: /src/tmux/window-customize.c:770,1
    - Dst: style_apply
      Src: /src/tmux/window-customize.c:773,1
    - Dst: screen_write_text
      Src: /src/tmux/window-customize.c:774,1
    - Dst: screen_write_text
      Src: /src/tmux/window-customize.c:779,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-customize.c:785,1
    - Dst: options_get_parent
      Src: /src/tmux/window-customize.c:794,1
    - Dst: options_get_parent
      Src: /src/tmux/window-customize.c:795,1
    - Dst: options_get_parent
      Src: /src/tmux/window-customize.c:800,1
    - Dst: options_owner
      Src: /src/tmux/window-customize.c:808,1
    - Dst: options_get_only
      Src: /src/tmux/window-customize.c:809,1
    - Dst: options_to_string
      Src: /src/tmux/window-customize.c:811,1
    - Dst: screen_write_text
      Src: /src/tmux/window-customize.c:812,1
    - Dst: options_owner
      Src: /src/tmux/window-customize.c:819,1
    - Dst: options_get_only
      Src: /src/tmux/window-customize.c:820,1
    - Dst: options_to_string
      Src: /src/tmux/window-customize.c:822,1
    - Dst: screen_write_text
      Src: /src/tmux/window-customize.c:823,1
    - Dst: free
      Src: /src/tmux/window-customize.c:831,1
    - Dst: free
      Src: /src/tmux/window-customize.c:832,1
    - Dst: format_free
      Src: /src/tmux/window-customize.c:833,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 155
    argCount: 5
    argNames:
    - data
    - item
    - ctx
    - sx
    - sy
    argTypes:
    - struct window_customize_modedata*
    - struct window_customize_itemdata*
    - struct screen_write_ctx*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 648
    functionDepth: 7
    functionLinenumber: 648
    functionLinenumberEnd: 834
    functionName: window_customize_draw_option
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - options_owner
    - strlcat
    - style_apply
    - options_default_to_string
    - format_free
    - options_get_only
    - options_table_entry
    - memcpy
    - strlen
    - options_get
    - screen_write_text
    - options_get_parent
    - options_to_string
    - window_customize_check_item
    - screen_write_cursormove
    - strcmp
    - free
    - format_create_from_state
    - options_get_number
    - format_expand
    linkageType: ''
    returnType: void
    signature: "void window_customize_draw_option(struct window_customize_modedata
      *data,\n    struct window_customize_itemdata *item, struct screen_write_ctx
      *ctx,\n    u_int sx, u_int sy)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: window_customize_draw_key
      Src: /src/tmux/window-customize.c:847,1
    - Dst: window_customize_draw_option
      Src: /src/tmux/window-customize.c:849,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - modedata
    - itemdata
    - ctx
    - sx
    - sy
    argTypes:
    - void*
    - void*
    - struct screen_write_ctx*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 836
    functionDepth: 8
    functionLinenumber: 836
    functionLinenumberEnd: 850
    functionName: window_customize_draw
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - window_customize_draw_option
    - window_customize_draw_key
    linkageType: ''
    returnType: void
    signature: "void window_customize_draw(void *modedata, void *itemdata,\n    struct
      screen_write_ctx *ctx, u_int sx, u_int sy)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window-customize.c:859,1
    - Dst: window_customize_key
      Src: /src/tmux/window-customize.c:862,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - modedata
    - c
    - key
    argTypes:
    - void*
    - struct client*
    - key_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 852
    functionDepth: 1
    functionLinenumber: 852
    functionLinenumberEnd: 863
    functionName: window_customize_menu
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - window_customize_key
    - TAILQ_FIRST
    linkageType: ''
    returnType: void
    signature: void window_customize_menu(void *modedata, struct client *c, key_code
      key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - modedata
    - height
    argTypes:
    - __unused*
    - __unused
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 869
    functionName: window_customize_height
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int
    signature: u_int window_customize_height(__unused void *modedata, __unused u_int
      height)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 890
    functionName: window_customize_help
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char **

      window_customize_help(u_int *width, const char **item)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/window-customize.c:900,1
    - Dst: memcpy
      Src: /src/tmux/window-customize.c:904,1
    - Dst: args_has
      Src: /src/tmux/window-customize.c:906,1
    - Dst: xstrdup
      Src: /src/tmux/window-customize.c:907,1
    - Dst: xstrdup
      Src: /src/tmux/window-customize.c:909,1
    - Dst: args_get
      Src: /src/tmux/window-customize.c:909,1
    - Dst: args_has
      Src: /src/tmux/window-customize.c:910,1
    - Dst: mode_tree_start
      Src: /src/tmux/window-customize.c:913,1
    - Dst: mode_tree_zoom
      Src: /src/tmux/window-customize.c:917,1
    - Dst: mode_tree_build
      Src: /src/tmux/window-customize.c:919,1
    - Dst: mode_tree_draw
      Src: /src/tmux/window-customize.c:920,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - wme
    - fs
    - args
    argTypes:
    - struct window_mode_entry*
    - struct cmd_find_state*
    - struct args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 892
    functionDepth: 2
    functionLinenumber: 892
    functionLinenumberEnd: 923
    functionName: window_customize_init
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - mode_tree_draw
    - xcalloc
    - mode_tree_zoom
    - mode_tree_start
    - mode_tree_build
    - memcpy
    - args_get
    - xstrdup
    - args_has
    linkageType: ''
    returnType: struct screen
    signature: "struct screen *\nwindow_customize_init(struct window_mode_entry *wme,
      struct cmd_find_state *fs,\n    struct args *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: window_customize_free_item
      Src: /src/tmux/window-customize.c:934,1
    - Dst: free
      Src: /src/tmux/window-customize.c:935,1
    - Dst: free
      Src: /src/tmux/window-customize.c:937,1
    - Dst: free
      Src: /src/tmux/window-customize.c:939,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct window_customize_modedata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 940
    functionName: window_customize_destroy
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - window_customize_free_item
    - free
    linkageType: ''
    returnType: void
    signature: void window_customize_destroy(struct window_customize_modedata *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_free
      Src: /src/tmux/window-customize.c:951,1
    - Dst: window_customize_destroy
      Src: /src/tmux/window-customize.c:952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 942
    functionDepth: 2
    functionLinenumber: 942
    functionLinenumberEnd: 953
    functionName: window_customize_free
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - window_customize_destroy
    - mode_tree_free
    linkageType: ''
    returnType: void
    signature: void window_customize_free(struct window_mode_entry *wme)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_resize
      Src: /src/tmux/window-customize.c:960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - wme
    - sx
    - sy
    argTypes:
    - struct window_mode_entry*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 955
    functionDepth: 1
    functionLinenumber: 955
    functionLinenumberEnd: 961
    functionName: window_customize_resize
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - mode_tree_resize
    linkageType: ''
    returnType: void
    signature: void window_customize_resize(struct window_mode_entry *wme, u_int sx,
      u_int sy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_customize_destroy
      Src: /src/tmux/window-customize.c:966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - modedata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 963
    functionDepth: 2
    functionLinenumber: 963
    functionLinenumberEnd: 967
    functionName: window_customize_free_callback
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - window_customize_destroy
    linkageType: ''
    returnType: void
    signature: void window_customize_free_callback(void *modedata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_customize_free_item
      Src: /src/tmux/window-customize.c:975,1
    - Dst: window_customize_destroy
      Src: /src/tmux/window-customize.c:976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - itemdata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 969
    functionDepth: 2
    functionLinenumber: 969
    functionLinenumberEnd: 977
    functionName: window_customize_free_item_callback
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - window_customize_free_item
    - window_customize_destroy
    linkageType: ''
    returnType: void
    signature: void window_customize_free_item_callback(void *itemdata)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: window_customize_check_item
      Src: /src/tmux/window-customize.c:994,1
    - Dst: options_get
      Src: /src/tmux/window-customize.c:996,1
    - Dst: options_table_entry
      Src: /src/tmux/window-customize.c:999,1
    - Dst: options_array_get
      Src: /src/tmux/window-customize.c:1004,1
    - Dst: options_array_set
      Src: /src/tmux/window-customize.c:1008,1
    - Dst: options_from_string
      Src: /src/tmux/window-customize.c:1011,1
    - Dst: options_push_changes
      Src: /src/tmux/window-customize.c:1015,1
    - Dst: mode_tree_build
      Src: /src/tmux/window-customize.c:1016,1
    - Dst: mode_tree_draw
      Src: /src/tmux/window-customize.c:1017,1
    - Dst: toupper
      Src: /src/tmux/window-customize.c:1023,1
    - Dst: status_message_set
      Src: /src/tmux/window-customize.c:1024,1
    - Dst: free
      Src: /src/tmux/window-customize.c:1025,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 4
    argNames:
    - c
    - itemdata
    - s
    - done
    argTypes:
    - struct client*
    - void*
    - char*
    - __unused
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 979
    functionDepth: 7
    functionLinenumber: 979
    functionLinenumberEnd: 1027
    functionName: window_customize_set_option_callback
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - options_array_set
    - options_push_changes
    - window_customize_check_item
    - mode_tree_draw
    - toupper
    - options_array_get
    - options_table_entry
    - mode_tree_build
    - free
    - status_message_set
    - options_get
    - options_from_string
    linkageType: ''
    returnType: int
    signature: "int window_customize_set_option_callback(struct client *c, void *itemdata,\n
      \   const char *s, __unused int done)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: window_customize_check_item
      Src: /src/tmux/window-customize.c:1045,1
    - Dst: options_get
      Src: /src/tmux/window-customize.c:1047,1
    - Dst: options_table_entry
      Src: /src/tmux/window-customize.c:1051,1
    - Dst: window_customize_get_tree
      Src: /src/tmux/window-customize.c:1104,1
    - Dst: options_get_number
      Src: /src/tmux/window-customize.c:1108,1
    - Dst: options_set_number
      Src: /src/tmux/window-customize.c:1109,1
    - Dst: options_get_number
      Src: /src/tmux/window-customize.c:1111,1
    - Dst: options_set_number
      Src: /src/tmux/window-customize.c:1116,1
    - Dst: window_customize_scope_text
      Src: /src/tmux/window-customize.c:1118,1
    - Dst: xasprintf
      Src: /src/tmux/window-customize.c:1125,1
    - Dst: xasprintf
      Src: /src/tmux/window-customize.c:1128,1
    - Dst: xasprintf
      Src: /src/tmux/window-customize.c:1132,1
    - Dst: free
      Src: /src/tmux/window-customize.c:1133,1
    - Dst: options_to_string
      Src: /src/tmux/window-customize.c:1135,1
    - Dst: xcalloc
      Src: /src/tmux/window-customize.c:1137,1
    - Dst: xstrdup
      Src: /src/tmux/window-customize.c:1141,1
    - Dst: status_prompt_set
      Src: /src/tmux/window-customize.c:1145,1
    - Dst: free
      Src: /src/tmux/window-customize.c:1150,1
    - Dst: free
      Src: /src/tmux/window-customize.c:1151,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 95
    argCount: 5
    argNames:
    - c
    - data
    - item
    - global
    - pane
    argTypes:
    - struct client*
    - struct window_customize_modedata*
    - struct window_customize_itemdata*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1029
    functionDepth: 7
    functionLinenumber: 1029
    functionLinenumberEnd: 1153
    functionName: window_customize_set_option
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - window_customize_scope_text
    - options_to_string
    - window_customize_check_item
    - xcalloc
    - options_table_entry
    - options_set_number
    - free
    - window_customize_get_tree
    - xstrdup
    - options_get_number
    - options_get
    - status_prompt_set
    linkageType: ''
    returnType: void
    signature: "void window_customize_set_option(struct client *c,\n    struct window_customize_modedata
      *data,\n    struct window_customize_itemdata *item, int global, int pane)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: window_customize_check_item
      Src: /src/tmux/window-customize.c:1161,1
    - Dst: options_get
      Src: /src/tmux/window-customize.c:1164,1
    - Dst: mode_tree_get_current
      Src: /src/tmux/window-customize.c:1167,1
    - Dst: mode_tree_up
      Src: /src/tmux/window-customize.c:1168,1
    - Dst: options_remove_or_default
      Src: /src/tmux/window-customize.c:1169,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - data
    - item
    argTypes:
    - struct window_customize_modedata*
    - struct window_customize_itemdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1155
    functionDepth: 7
    functionLinenumber: 1155
    functionLinenumberEnd: 1170
    functionName: window_customize_unset_option
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - options_remove_or_default
    - window_customize_check_item
    - mode_tree_up
    - options_get
    - mode_tree_get_current
    linkageType: ''
    returnType: void
    signature: "void window_customize_unset_option(struct window_customize_modedata
      *data,\n    struct window_customize_itemdata *item)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: window_customize_check_item
      Src: /src/tmux/window-customize.c:1179,1
    - Dst: options_get_only
      Src: /src/tmux/window-customize.c:1186,1
    - Dst: options_remove_or_default
      Src: /src/tmux/window-customize.c:1188,1
    - Dst: options_get_parent
      Src: /src/tmux/window-customize.c:1189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - data
    - item
    argTypes:
    - struct window_customize_modedata*
    - struct window_customize_itemdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1172
    functionDepth: 7
    functionLinenumber: 1172
    functionLinenumberEnd: 1191
    functionName: window_customize_reset_option
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - window_customize_check_item
    - options_get_only
    - options_remove_or_default
    - options_get_parent
    linkageType: ''
    returnType: void
    signature: "void window_customize_reset_option(struct window_customize_modedata
      *data,\n    struct window_customize_itemdata *item)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: window_customize_get_key
      Src: /src/tmux/window-customize.c:1205,1
    - Dst: cmd_parse_from_string
      Src: /src/tmux/window-customize.c:1208,1
    - Dst: cmd_list_free
      Src: /src/tmux/window-customize.c:1216,1
    - Dst: mode_tree_build
      Src: /src/tmux/window-customize.c:1219,1
    - Dst: mode_tree_draw
      Src: /src/tmux/window-customize.c:1220,1
    - Dst: toupper
      Src: /src/tmux/window-customize.c:1226,1
    - Dst: status_message_set
      Src: /src/tmux/window-customize.c:1227,1
    - Dst: free
      Src: /src/tmux/window-customize.c:1228,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - c
    - itemdata
    - s
    - done
    argTypes:
    - struct client*
    - void*
    - char*
    - __unused
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1193
    functionDepth: 3
    functionLinenumber: 1193
    functionLinenumberEnd: 1230
    functionName: window_customize_set_command_callback
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - cmd_list_free
    - mode_tree_draw
    - window_customize_get_key
    - toupper
    - mode_tree_build
    - free
    - cmd_parse_from_string
    - status_message_set
    linkageType: ''
    returnType: int
    signature: "int window_customize_set_command_callback(struct client *c, void *itemdata,\n
      \   const char *s, __unused int done)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: window_customize_get_key
      Src: /src/tmux/window-customize.c:1242,1
    - Dst: free
      Src: /src/tmux/window-customize.c:1245,1
    - Dst: xstrdup
      Src: /src/tmux/window-customize.c:1246,1
    - Dst: mode_tree_build
      Src: /src/tmux/window-customize.c:1248,1
    - Dst: mode_tree_draw
      Src: /src/tmux/window-customize.c:1249,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - c
    - itemdata
    - s
    - done
    argTypes:
    - __unused*
    - void*
    - char*
    - __unused
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1232
    functionDepth: 3
    functionLinenumber: 1232
    functionLinenumberEnd: 1253
    functionName: window_customize_set_note_callback
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - mode_tree_draw
    - window_customize_get_key
    - mode_tree_build
    - free
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int window_customize_set_note_callback(__unused struct client *c,
      void *itemdata,\n    const char *s, __unused int done)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: window_customize_get_key
      Src: /src/tmux/window-customize.c:1266,1
    - Dst: mode_tree_get_current_name
      Src: /src/tmux/window-customize.c:1269,1
    - Dst: strcmp
      Src: /src/tmux/window-customize.c:1270,1
    - Dst: strcmp
      Src: /src/tmux/window-customize.c:1272,1
    - Dst: xasprintf
      Src: /src/tmux/window-customize.c:1273,1
    - Dst: key_string_lookup_key
      Src: /src/tmux/window-customize.c:1273,1
    - Dst: cmd_list_print
      Src: /src/tmux/window-customize.c:1274,1
    - Dst: xcalloc
      Src: /src/tmux/window-customize.c:1276,1
    - Dst: xstrdup
      Src: /src/tmux/window-customize.c:1279,1
    - Dst: status_prompt_set
      Src: /src/tmux/window-customize.c:1283,1
    - Dst: free
      Src: /src/tmux/window-customize.c:1287,1
    - Dst: free
      Src: /src/tmux/window-customize.c:1288,1
    - Dst: strcmp
      Src: /src/tmux/window-customize.c:1289,1
    - Dst: xasprintf
      Src: /src/tmux/window-customize.c:1290,1
    - Dst: key_string_lookup_key
      Src: /src/tmux/window-customize.c:1290,1
    - Dst: xcalloc
      Src: /src/tmux/window-customize.c:1292,1
    - Dst: xstrdup
      Src: /src/tmux/window-customize.c:1295,1
    - Dst: status_prompt_set
      Src: /src/tmux/window-customize.c:1299,1
    - Dst: free
      Src: /src/tmux/window-customize.c:1304,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - c
    - data
    - item
    argTypes:
    - struct client*
    - struct window_customize_modedata*
    - struct window_customize_itemdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1255
    functionDepth: 3
    functionLinenumber: 1255
    functionLinenumberEnd: 1306
    functionName: window_customize_set_key
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - cmd_list_print
    - window_customize_get_key
    - xcalloc
    - strcmp
    - key_string_lookup_key
    - free
    - mode_tree_get_current_name
    - xstrdup
    - status_prompt_set
    linkageType: ''
    returnType: void
    signature: "void window_customize_set_key(struct client *c,\n    struct window_customize_modedata
      *data,\n    struct window_customize_itemdata *item)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: window_customize_get_key
      Src: /src/tmux/window-customize.c:1315,1
    - Dst: mode_tree_get_current
      Src: /src/tmux/window-customize.c:1318,1
    - Dst: mode_tree_collapse_current
      Src: /src/tmux/window-customize.c:1319,1
    - Dst: mode_tree_up
      Src: /src/tmux/window-customize.c:1320,1
    - Dst: key_bindings_remove
      Src: /src/tmux/window-customize.c:1322,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - data
    - item
    argTypes:
    - struct window_customize_modedata*
    - struct window_customize_itemdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1308
    functionDepth: 6
    functionLinenumber: 1308
    functionLinenumberEnd: 1323
    functionName: window_customize_unset_key
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - mode_tree_collapse_current
    - key_bindings_remove
    - window_customize_get_key
    - mode_tree_up
    - mode_tree_get_current
    linkageType: ''
    returnType: void
    signature: "void window_customize_unset_key(struct window_customize_modedata *data,\n
      \   struct window_customize_itemdata *item)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: window_customize_get_key
      Src: /src/tmux/window-customize.c:1332,1
    - Dst: key_bindings_get_default
      Src: /src/tmux/window-customize.c:1335,1
    - Dst: mode_tree_get_current
      Src: /src/tmux/window-customize.c:1338,1
    - Dst: mode_tree_collapse_current
      Src: /src/tmux/window-customize.c:1339,1
    - Dst: mode_tree_up
      Src: /src/tmux/window-customize.c:1340,1
    - Dst: key_bindings_reset
      Src: /src/tmux/window-customize.c:1342,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - data
    - item
    argTypes:
    - struct window_customize_modedata*
    - struct window_customize_itemdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1325
    functionDepth: 7
    functionLinenumber: 1325
    functionLinenumberEnd: 1343
    functionName: window_customize_reset_key
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - key_bindings_get_default
    - mode_tree_collapse_current
    - key_bindings_reset
    - window_customize_get_key
    - mode_tree_up
    - mode_tree_get_current
    linkageType: ''
    returnType: void
    signature: "void window_customize_reset_key(struct window_customize_modedata *data,\n
      \   struct window_customize_itemdata *item)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: window_customize_unset_key
      Src: /src/tmux/window-customize.c:1355,1
    - Dst: window_customize_unset_option
      Src: /src/tmux/window-customize.c:1357,1
    - Dst: window_customize_reset_key
      Src: /src/tmux/window-customize.c:1361,1
    - Dst: window_customize_reset_option
      Src: /src/tmux/window-customize.c:1363,1
    - Dst: options_push_changes
      Src: /src/tmux/window-customize.c:1367,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - modedata
    - itemdata
    - c
    - key_code
    argTypes:
    - void*
    - void*
    - __unused*
    - __unused
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1345
    functionDepth: 8
    functionLinenumber: 1345
    functionLinenumberEnd: 1368
    functionName: window_customize_change_each
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - window_customize_reset_option
    - options_push_changes
    - window_customize_reset_key
    - window_customize_unset_option
    - window_customize_unset_key
    linkageType: ''
    returnType: void
    signature: "void window_customize_change_each(void *modedata, void *itemdata,\n
      \   __unused struct client *c, __unused key_code key)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/tmux/window-customize.c:1379,1
    - Dst: mode_tree_get_current
      Src: /src/tmux/window-customize.c:1382,1
    - Dst: window_customize_unset_key
      Src: /src/tmux/window-customize.c:1386,1
    - Dst: window_customize_unset_option
      Src: /src/tmux/window-customize.c:1388,1
    - Dst: window_customize_reset_key
      Src: /src/tmux/window-customize.c:1392,1
    - Dst: window_customize_reset_option
      Src: /src/tmux/window-customize.c:1394,1
    - Dst: options_push_changes
      Src: /src/tmux/window-customize.c:1398,1
    - Dst: mode_tree_build
      Src: /src/tmux/window-customize.c:1399,1
    - Dst: mode_tree_draw
      Src: /src/tmux/window-customize.c:1400,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 4
    argNames:
    - c
    - modedata
    - s
    - done
    argTypes:
    - __unused*
    - void*
    - char*
    - __unused
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1370
    functionDepth: 8
    functionLinenumber: 1370
    functionLinenumberEnd: 1404
    functionName: window_customize_change_current_callback
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - window_customize_reset_option
    - window_customize_reset_key
    - options_push_changes
    - mode_tree_draw
    - mode_tree_build
    - window_customize_unset_option
    - tolower
    - window_customize_unset_key
    - mode_tree_get_current
    linkageType: ''
    returnType: int
    signature: "int window_customize_change_current_callback(__unused struct client
      *c,\n    void *modedata, const char *s, __unused int done)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/tmux/window-customize.c:1414,1
    - Dst: mode_tree_each_tagged
      Src: /src/tmux/window-customize.c:1417,1
    - Dst: mode_tree_build
      Src: /src/tmux/window-customize.c:1419,1
    - Dst: mode_tree_draw
      Src: /src/tmux/window-customize.c:1420,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - c
    - modedata
    - s
    - done
    argTypes:
    - struct client*
    - void*
    - char*
    - __unused
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1406
    functionDepth: 1
    functionLinenumber: 1406
    functionLinenumberEnd: 1424
    functionName: window_customize_change_tagged_callback
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 0
    functionsReached:
    - mode_tree_build
    - mode_tree_draw
    - mode_tree_each_tagged
    - tolower
    linkageType: ''
    returnType: int
    signature: "int window_customize_change_tagged_callback(struct client *c, void
      *modedata,\n    const char *s, __unused int done)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_get_current
      Src: /src/tmux/window-customize.c:1438,1
    - Dst: mode_tree_key
      Src: /src/tmux/window-customize.c:1439,1
    - Dst: mode_tree_get_current
      Src: /src/tmux/window-customize.c:1440,1
    - Dst: window_customize_set_key
      Src: /src/tmux/window-customize.c:1449,1
    - Dst: window_customize_set_option
      Src: /src/tmux/window-customize.c:1451,1
    - Dst: options_push_changes
      Src: /src/tmux/window-customize.c:1452,1
    - Dst: mode_tree_build
      Src: /src/tmux/window-customize.c:1454,1
    - Dst: window_customize_set_option
      Src: /src/tmux/window-customize.c:1459,1
    - Dst: options_push_changes
      Src: /src/tmux/window-customize.c:1460,1
    - Dst: mode_tree_build
      Src: /src/tmux/window-customize.c:1461,1
    - Dst: window_customize_set_option
      Src: /src/tmux/window-customize.c:1467,1
    - Dst: options_push_changes
      Src: /src/tmux/window-customize.c:1468,1
    - Dst: mode_tree_build
      Src: /src/tmux/window-customize.c:1469,1
    - Dst: xasprintf
      Src: /src/tmux/window-customize.c:1474,1
    - Dst: status_prompt_set
      Src: /src/tmux/window-customize.c:1477,1
    - Dst: free
      Src: /src/tmux/window-customize.c:1482,1
    - Dst: mode_tree_count_tagged
      Src: /src/tmux/window-customize.c:1485,1
    - Dst: xasprintf
      Src: /src/tmux/window-customize.c:1488,1
    - Dst: status_prompt_set
      Src: /src/tmux/window-customize.c:1491,1
    - Dst: free
      Src: /src/tmux/window-customize.c:1496,1
    - Dst: xasprintf
      Src: /src/tmux/window-customize.c:1503,1
    - Dst: xasprintf
      Src: /src/tmux/window-customize.c:1505,1
    - Dst: status_prompt_set
      Src: /src/tmux/window-customize.c:1508,1
    - Dst: free
      Src: /src/tmux/window-customize.c:1513,1
    - Dst: mode_tree_count_tagged
      Src: /src/tmux/window-customize.c:1516,1
    - Dst: xasprintf
      Src: /src/tmux/window-customize.c:1519,1
    - Dst: status_prompt_set
      Src: /src/tmux/window-customize.c:1522,1
    - Dst: free
      Src: /src/tmux/window-customize.c:1527,1
    - Dst: mode_tree_build
      Src: /src/tmux/window-customize.c:1531,1
    - Dst: window_pane_reset_mode
      Src: /src/tmux/window-customize.c:1535,1
    - Dst: mode_tree_draw
      Src: /src/tmux/window-customize.c:1537,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 83
    argCount: 6
    argNames:
    - wme
    - c
    - s
    - wl
    - key
    - m
    argTypes:
    - struct window_mode_entry*
    - struct client*
    - __unused*
    - __unused*
    - key_code
    - struct mouse_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1426
    functionDepth: 8
    functionLinenumber: 1426
    functionLinenumberEnd: 1540
    functionName: window_customize_key
    functionSourceFile: /src/tmux/window-customize.c
    functionUses: 1
    functionsReached:
    - xasprintf
    - mode_tree_key
    - options_push_changes
    - mode_tree_draw
    - mode_tree_count_tagged
    - window_customize_set_option
    - window_pane_reset_mode
    - window_customize_set_key
    - mode_tree_build
    - free
    - mode_tree_get_current
    - status_prompt_set
    linkageType: ''
    returnType: void
    signature: "void window_customize_key(struct window_mode_entry *wme, struct client
      *c,\n    __unused struct session *s, __unused struct winlink *wl, key_code key,\n
      \   struct mouse_event *m)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a1
    - a2
    argTypes:
    - struct args_entry*
    - struct args_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: args_cmp
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int args_cmp(struct args_entry *a1, struct args_entry *a2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FIND
      Src: /src/tmux/arguments.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - args
    - flag
    argTypes:
    - struct args*
    - u_char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: args_find
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 0
    functionsReached:
    - RB_FIND
    linkageType: ''
    returnType: struct args_entry
    signature: 'struct args_entry *

      args_find(struct args *args, u_char flag)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - struct args_value*
    - struct args_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 99
    functionName: args_copy_value
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void args_copy_value(struct args_value *to, struct args_value *from)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - type
    argTypes:
    - enum args_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 115
    functionName: args_type_to_string
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      args_type_to_string (enum args_type type)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cmd_list_print
      Src: /src/tmux/arguments.c:126,1
    - Dst: fatalx
      Src: /src/tmux/arguments.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - value
    argTypes:
    - struct args_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 132
    functionName: args_value_as_string
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 0
    functionsReached:
    - cmd_list_print
    - fatalx
    linkageType: ''
    returnType: char
    signature: 'char *

      args_value_as_string(struct args_value *value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/arguments.c:140,1
    - Dst: RB_INIT
      Src: /src/tmux/arguments.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 143
    functionName: args_create
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 0
    functionsReached:
    - RB_INIT
    - xcalloc
    linkageType: ''
    returnType: struct args
    signature: 'struct args *

      args_create(void)'
  - BBCount: 107
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc::xcalloc
      Src: /src/tmux/arguments.c:154,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:157,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:166,1
    - Dst: log_debug
      Src: /src/tmux/arguments.c:176,1
    - Dst: args_set
      Src: /src/tmux/arguments.c:177,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:180,1
    - Dst: args_value_as_string
      Src: /src/tmux/arguments.c:187,1
    - Dst: log_debug
      Src: /src/tmux/arguments.c:188,1
    - Dst: log_debug
      Src: /src/tmux/arguments.c:208,1
    - Dst: isalnum
      Src: /src/tmux/arguments.c:221,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:222,1
    - Dst: strchr
      Src: /src/tmux/arguments.c:226,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:228,1
    - Dst: log_debug
      Src: /src/tmux/arguments.c:232,1
    - Dst: args_set
      Src: /src/tmux/arguments.c:233,1
    - Dst: args_parse_flag_argument
      Src: /src/tmux/arguments.c:237,1
    - Dst: args_create
      Src: /src/tmux/arguments.c:255,1
    - Dst: args_create
      Src: /src/tmux/arguments.c:257,1
    - Dst: args_parse_flags
      Src: /src/tmux/arguments.c:259,1
    - Dst: args_free
      Src: /src/tmux/arguments.c:261,1
    - Dst: log_debug
      Src: /src/tmux/arguments.c:267,1
    - Dst: args_value_as_string
      Src: /src/tmux/arguments.c:272,1
    - Dst: log_debug
      Src: /src/tmux/arguments.c:273,1
    - Dst: args_type_to_string
      Src: /src/tmux/arguments.c:274,1
    - Dst: cb
      Src: /src/tmux/arguments.c:277,1
    - Dst: args_free
      Src: /src/tmux/arguments.c:279,1
    - Dst: xrecallocarray
      Src: /src/tmux/arguments.c:285,1
    - Dst: args::args
      Src: /src/tmux/arguments.c:287,1
    - Dst: fatalx
      Src: /src/tmux/arguments.c:291,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:294,1
    - Dst: args_free
      Src: /src/tmux/arguments.c:297,1
    - Dst: args_copy_value
      Src: /src/tmux/arguments.c:300,1
    - Dst: value::value
      Src: /src/tmux/arguments.c:300,1
    - Dst: args_copy_value
      Src: /src/tmux/arguments.c:303,1
    - Dst: value::value
      Src: /src/tmux/arguments.c:303,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:307,1
    - Dst: args_free
      Src: /src/tmux/arguments.c:310,1
    - Dst: args_copy_value
      Src: /src/tmux/arguments.c:313,1
    - Dst: value::value
      Src: /src/tmux/arguments.c:313,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:320,1
    - Dst: args_free
      Src: /src/tmux/arguments.c:323,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:327,1
    - Dst: args_free
      Src: /src/tmux/arguments.c:330,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:349,1
    - Dst: cmd_template_replace
      Src: /src/tmux/arguments.c:351,1
    - Dst: free
      Src: /src/tmux/arguments.c:352,1
    - Dst: cmd_list_copy
      Src: /src/tmux/arguments.c:358,1
    - Dst: cmd_log_argv
      Src: /src/tmux/arguments.c:372,1
    - Dst: args_create
      Src: /src/tmux/arguments.c:374,1
    - Dst: RB_FOREACH
      Src: /src/tmux/arguments.c:375,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/arguments.c:376,1
    - Dst: args_set
      Src: /src/tmux/arguments.c:378,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/arguments.c:381,1
    - Dst: xcalloc
      Src: /src/tmux/arguments.c:382,1
    - Dst: args_copy_copy_value
      Src: /src/tmux/arguments.c:383,1
    - Dst: args_set
      Src: /src/tmux/arguments.c:384,1
    - Dst: xcalloc
      Src: /src/tmux/arguments.c:390,1
    - Dst: args_copy_copy_value
      Src: /src/tmux/arguments.c:393,1
    - Dst: free
      Src: /src/tmux/arguments.c:406,1
    - Dst: cmd_list_free
      Src: /src/tmux/arguments.c:409,1
    - Dst: free
      Src: /src/tmux/arguments.c:412,1
    - Dst: args_free_value
      Src: /src/tmux/arguments.c:422,1
    - Dst: args_free_values
      Src: /src/tmux/arguments.c:434,1
    - Dst: free
      Src: /src/tmux/arguments.c:435,1
    - Dst: RB_FOREACH_SAFE
      Src: /src/tmux/arguments.c:437,1
    - Dst: RB_REMOVE
      Src: /src/tmux/arguments.c:438,1
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/arguments.c:439,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/arguments.c:440,1
    - Dst: args_free_value
      Src: /src/tmux/arguments.c:441,1
    - Dst: free
      Src: /src/tmux/arguments.c:442,1
    - Dst: free
      Src: /src/tmux/arguments.c:444,1
    - Dst: free
      Src: /src/tmux/arguments.c:447,1
    - Dst: cmd_append_argv
      Src: /src/tmux/arguments.c:465,1
    - Dst: cmd_list_print
      Src: /src/tmux/arguments.c:468,1
    - Dst: cmd_append_argv
      Src: /src/tmux/arguments.c:469,1
    - Dst: free
      Src: /src/tmux/arguments.c:470,1
    - Dst: xcalloc
      Src: /src/tmux/arguments.c:483,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:486,1
    - Dst: va_start
      Src: /src/tmux/arguments.c:499,1
    - Dst: xvasprintf
      Src: /src/tmux/arguments.c:500,1
    - Dst: va_end
      Src: /src/tmux/arguments.c:501,1
    - Dst: xrealloc
      Src: /src/tmux/arguments.c:504,1
    - Dst: strlcat
      Src: /src/tmux/arguments.c:506,1
    - Dst: free
      Src: /src/tmux/arguments.c:507,1
    - Dst: args_print_add
      Src: /src/tmux/arguments.c:517,1
    - Dst: cmd_list_print
      Src: /src/tmux/arguments.c:523,1
    - Dst: args_print_add
      Src: /src/tmux/arguments.c:524,1
    - Dst: args_escape
      Src: /src/tmux/arguments.c:527,1
    - Dst: args_print_add
      Src: /src/tmux/arguments.c:528,1
    - Dst: free
      Src: /src/tmux/arguments.c:531,1
    - Dst: xcalloc
      Src: /src/tmux/arguments.c:546,1
    - Dst: RB_FOREACH
      Src: /src/tmux/arguments.c:549,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/arguments.c:552,1
    - Dst: args_print_add
      Src: /src/tmux/arguments.c:556,1
    - Dst: args_print_add
      Src: /src/tmux/arguments.c:558,1
    - Dst: RB_FOREACH
      Src: /src/tmux/arguments.c:562,1
    - Dst: args_print_add
      Src: /src/tmux/arguments.c:565,1
    - Dst: args_print_add
      Src: /src/tmux/arguments.c:567,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/arguments.c:571,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/arguments.c:573,1
    - Dst: args_print_add
      Src: /src/tmux/arguments.c:575,1
    - Dst: args_print_add
      Src: /src/tmux/arguments.c:577,1
    - Dst: args_print_add_value
      Src: /src/tmux/arguments.c:578,1
    - Dst: args_print_add
      Src: /src/tmux/arguments.c:583,1
    - Dst: args_print_add_value
      Src: /src/tmux/arguments.c:587,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:602,1
    - Dst: strcspn
      Src: /src/tmux/arguments.c:605,1
    - Dst: strcspn
      Src: /src/tmux/arguments.c:607,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:613,1
    - Dst: utf8_stravis
      Src: /src/tmux/arguments.c:620,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:623,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:626,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:628,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:631,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:633,1
    - Dst: free
      Src: /src/tmux/arguments.c:635,1
    - Dst: args_find
      Src: /src/tmux/arguments.c:645,1
    - Dst: args_find
      Src: /src/tmux/arguments.c:657,1
    - Dst: xcalloc
      Src: /src/tmux/arguments.c:659,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/arguments.c:663,1
    - Dst: RB_INSERT
      Src: /src/tmux/arguments.c:664,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/arguments.c:668,1
    - Dst: free
      Src: /src/tmux/arguments.c:670,1
    - Dst: args_find
      Src: /src/tmux/arguments.c:679,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/arguments.c:681,1
    - Dst: TAILQ_LAST
      Src: /src/tmux/arguments.c:683,1
    - Dst: RB_MIN
      Src: /src/tmux/arguments.c:690,1
    - Dst: RB_NEXT
      Src: /src/tmux/arguments.c:700,1
    - Dst: args_value_as_string
      Src: /src/tmux/arguments.c:735,1
    - Dst: args_make_commands_prepare
      Src: /src/tmux/arguments.c:747,1
    - Dst: args_make_commands
      Src: /src/tmux/arguments.c:748,1
    - Dst: cmdq_error
      Src: /src/tmux/arguments.c:750,1
    - Dst: free
      Src: /src/tmux/arguments.c:751,1
    - Dst: args_make_commands_free
      Src: /src/tmux/arguments.c:755,1
    - Dst: cmd_get_args
      Src: /src/tmux/arguments.c:764,1
    - Dst: cmdq_get_target
      Src: /src/tmux/arguments.c:765,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/arguments.c:766,1
    - Dst: xcalloc
      Src: /src/tmux/arguments.c:772,1
    - Dst: fatalx
      Src: /src/tmux/arguments.c:784,1
    - Dst: format_single_from_target
      Src: /src/tmux/arguments.c:790,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:792,1
    - Dst: log_debug
      Src: /src/tmux/arguments.c:793,1
    - Dst: cmd_get_source
      Src: /src/tmux/arguments.c:797,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:799,1
    - Dst: cmd_find_copy_state
      Src: /src/tmux/arguments.c:803,1
    - Dst: cmd_list_copy
      Src: /src/tmux/arguments.c:820,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:823,1
    - Dst: log_debug
      Src: /src/tmux/arguments.c:824,1
    - Dst: cmd_log_argv
      Src: /src/tmux/arguments.c:825,1
    - Dst: cmd_template_replace
      Src: /src/tmux/arguments.c:827,1
    - Dst: log_debug
      Src: /src/tmux/arguments.c:828,1
    - Dst: free
      Src: /src/tmux/arguments.c:829,1
    - Dst: log_debug
      Src: /src/tmux/arguments.c:832,1
    - Dst: cmd_parse_from_string
      Src: /src/tmux/arguments.c:834,1
    - Dst: free
      Src: /src/tmux/arguments.c:835,1
    - Dst: fatalx
      Src: /src/tmux/arguments.c:843,1
    - Dst: cmd_list_free
      Src: /src/tmux/arguments.c:851,1
    - Dst: server_client_unref
      Src: /src/tmux/arguments.c:853,1
    - Dst: free
      Src: /src/tmux/arguments.c:854,1
    - Dst: free
      Src: /src/tmux/arguments.c:855,1
    - Dst: free
      Src: /src/tmux/arguments.c:856,1
    - Dst: cmd_list_first
      Src: /src/tmux/arguments.c:868,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:870,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:871,1
    - Dst: cmd_get_entry
      Src: /src/tmux/arguments.c:871,1
    - Dst: strcspn
      Src: /src/tmux/arguments.c:873,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:874,1
    - Dst: args_find
      Src: /src/tmux/arguments.c:884,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/arguments.c:886,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/arguments.c:893,1
    - Dst: args_find
      Src: /src/tmux/arguments.c:906,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:907,1
    - Dst: TAILQ_LAST
      Src: /src/tmux/arguments.c:910,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:914,1
    - Dst: strtonum
      Src: /src/tmux/arguments.c:918,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:920,1
    - Dst: args_find
      Src: /src/tmux/arguments.c:939,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:940,1
    - Dst: TAILQ_LAST
      Src: /src/tmux/arguments.c:943,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:947,1
    - Dst: format_single_from_target
      Src: /src/tmux/arguments.c:951,1
    - Dst: strtonum
      Src: /src/tmux/arguments.c:952,1
    - Dst: free
      Src: /src/tmux/arguments.c:953,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:955,1
    - Dst: args_find
      Src: /src/tmux/arguments.c:971,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:972,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/arguments.c:975,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:976,1
    - Dst: TAILQ_LAST
      Src: /src/tmux/arguments.c:979,1
    - Dst: args_string_percentage
      Src: /src/tmux/arguments.c:980,1
    - Dst: strlen
      Src: /src/tmux/arguments.c:990,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:994,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:998,1
    - Dst: strtonum
      Src: /src/tmux/arguments.c:1001,1
    - Dst: free
      Src: /src/tmux/arguments.c:1002,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:1004,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:1009,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:1013,1
    - Dst: strtonum
      Src: /src/tmux/arguments.c:1017,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:1019,1
    - Dst: args_find
      Src: /src/tmux/arguments.c:1039,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:1040,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/arguments.c:1043,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:1044,1
    - Dst: TAILQ_LAST
      Src: /src/tmux/arguments.c:1047,1
    - Dst: args_string_percentage_and_expand
      Src: /src/tmux/arguments.c:1048,1
    - Dst: strlen
      Src: /src/tmux/arguments.c:1061,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:1065,1
    - Dst: format_single_from_target
      Src: /src/tmux/arguments.c:1068,1
    - Dst: strtonum
      Src: /src/tmux/arguments.c:1069,1
    - Dst: free
      Src: /src/tmux/arguments.c:1070,1
    - Dst: free
      Src: /src/tmux/arguments.c:1071,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:1073,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:1078,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:1082,1
    - Dst: format_single_from_target
      Src: /src/tmux/arguments.c:1086,1
    - Dst: strtonum
      Src: /src/tmux/arguments.c:1087,1
    - Dst: free
      Src: /src/tmux/arguments.c:1088,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:1090,1
    CyclomaticComplexity: 142
    EdgeCount: 142
    ICount: 572
    argCount: 8
    argNames:
    - values
    - count
    - cause
    - args
    - i
    - string
    - flag
    - optional_argument
    argTypes:
    - struct args_value*
    - u_int
    - char**
    - struct args*
    - u_int*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 146
    functionDepth: 4
    functionLinenumber: 146
    functionLinenumberEnd: 1097
    functionName: args_parse_flag_argument
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 1
    functionsReached:
    - cmd_list_print
    - cmd_find_copy_state
    - args_set
    - strlen
    - strlcat
    - args_free_values
    - args_type_to_string
    - strcspn
    - args_parse_flag_argument
    - args_parse_flags
    - args_print_add
    - RB_REMOVE
    - args_copy_copy_value
    - RB_INSERT
    - args_create
    - RB_MIN
    - strtonum
    - cmd_log_argv
    - xcalloc
    - format_single_from_target
    - args_escape
    - strchr
    - args::args
    - RB_FOREACH
    - TAILQ_FOREACH_SAFE
    - cmdq_get_target_client
    - va_start
    - isalnum
    - log_debug
    - va_end
    - cb
    - args_make_commands
    - args_free
    - xstrdup
    - TAILQ_INIT
    - TAILQ_INSERT_TAIL
    - utf8_stravis
    - cmd_parse_from_string
    - cmd_list_free
    - cmd_list_first
    - args_copy_value
    - args_make_commands_free
    - cmd_get_args
    - TAILQ_FIRST
    - cmd_get_entry
    - args_string_percentage
    - args_value_as_string
    - xcalloc::xcalloc
    - args_free_value
    - RB_FOREACH_SAFE
    - cmd_append_argv
    - xrealloc
    - args_find
    - TAILQ_NEXT
    - TAILQ_LAST
    - xrecallocarray
    - RB_NEXT
    - cmdq_get_target
    - args_make_commands_prepare
    - TAILQ_REMOVE
    - value::value
    - xasprintf
    - args_string_percentage_and_expand
    - args_print_add_value
    - TAILQ_FOREACH
    - cmdq_error
    - server_client_unref
    - fatalx
    - cmd_get_source
    - xvasprintf
    - free
    - TAILQ_EMPTY
    - cmd_list_copy
    - cmd_template_replace
    linkageType: ''
    returnType: int
    signature: "int args_parse_flag_argument(struct args_value *values, u_int count,
      char **cause,\n    struct args *args, u_int *i, const char *string, int flag,\n
      \   int optional_argument)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/arguments.c:208,1
    - Dst: isalnum
      Src: /src/tmux/arguments.c:221,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:222,1
    - Dst: strchr
      Src: /src/tmux/arguments.c:226,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:228,1
    - Dst: log_debug
      Src: /src/tmux/arguments.c:232,1
    - Dst: args_set
      Src: /src/tmux/arguments.c:233,1
    - Dst: args_parse_flag_argument
      Src: /src/tmux/arguments.c:237,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 1
    argNames:
    - args_parse_flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 189
    functionDepth: 5
    functionLinenumber: 189
    functionLinenumberEnd: 240
    functionName: args_set
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 2
    functionsReached:
    - xasprintf
    - args_set
    - strchr
    - args_parse_flag_argument
    - isalnum
    - log_debug
    linkageType: ''
    returnType: void
    signature: "void args_set(args, flag, new, 0);\n\treturn (0);\n}\n\n/* Parse flags
      argument. */\nstatic int\nargs_parse_flags(const struct args_parse *parse, struct
      args_value *values,\n    u_int count, char **cause, struct args *args, u_int
      *i)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: args_create
      Src: /src/tmux/arguments.c:255,1
    - Dst: args_create
      Src: /src/tmux/arguments.c:257,1
    - Dst: args_parse_flags
      Src: /src/tmux/arguments.c:259,1
    - Dst: args_free
      Src: /src/tmux/arguments.c:261,1
    - Dst: log_debug
      Src: /src/tmux/arguments.c:267,1
    - Dst: args_value_as_string
      Src: /src/tmux/arguments.c:272,1
    - Dst: log_debug
      Src: /src/tmux/arguments.c:273,1
    - Dst: args_type_to_string
      Src: /src/tmux/arguments.c:274,1
    - Dst: struct args_parse*::cb
      Src: /src/tmux/arguments.c:277,1
    - Dst: args_free
      Src: /src/tmux/arguments.c:279,1
    - Dst: xrecallocarray
      Src: /src/tmux/arguments.c:285,1
    - Dst: args::args
      Src: /src/tmux/arguments.c:287,1
    - Dst: fatalx
      Src: /src/tmux/arguments.c:291,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:294,1
    - Dst: args_free
      Src: /src/tmux/arguments.c:297,1
    - Dst: args_copy_value
      Src: /src/tmux/arguments.c:300,1
    - Dst: value::value
      Src: /src/tmux/arguments.c:300,1
    - Dst: args_copy_value
      Src: /src/tmux/arguments.c:303,1
    - Dst: value::value
      Src: /src/tmux/arguments.c:303,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:307,1
    - Dst: args_free
      Src: /src/tmux/arguments.c:310,1
    - Dst: args_copy_value
      Src: /src/tmux/arguments.c:313,1
    - Dst: value::value
      Src: /src/tmux/arguments.c:313,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:320,1
    - Dst: args_free
      Src: /src/tmux/arguments.c:323,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:327,1
    - Dst: args_free
      Src: /src/tmux/arguments.c:330,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 65
    argCount: 4
    argNames:
    - parse
    - values
    - count
    - cause
    argTypes:
    - struct args_parse*
    - struct args_value*
    - u_int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 243
    functionDepth: 4
    functionLinenumber: 243
    functionLinenumberEnd: 334
    functionName: args_parse
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 2
    functionsReached:
    - value::value
    - xasprintf
    - args_create
    - log_debug
    - args_copy_value
    - fatalx
    - args_type_to_string
    - args_value_as_string
    - struct args_parse*::cb
    - args::args
    - args_parse_flags
    - xrecallocarray
    - args_free
    linkageType: ''
    returnType: struct args
    signature: "struct args *\nargs_parse(const struct args_parse *parse, struct args_value
      *values,\n    u_int count, char **cause)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:349,1
    - Dst: cmd_template_replace
      Src: /src/tmux/arguments.c:351,1
    - Dst: free
      Src: /src/tmux/arguments.c:352,1
    - Dst: cmd_list_copy
      Src: /src/tmux/arguments.c:358,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - to
    - from
    - argc
    - argv
    argTypes:
    - struct args_value*
    - struct args_value*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 337
    functionDepth: 3
    functionLinenumber: 337
    functionLinenumberEnd: 361
    functionName: args_copy_copy_value
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 1
    functionsReached:
    - cmd_list_copy
    - cmd_template_replace
    - free
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void args_copy_copy_value(struct args_value *to, struct args_value
      *from, int argc,\n    char **argv)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmd_log_argv
      Src: /src/tmux/arguments.c:372,1
    - Dst: args_create
      Src: /src/tmux/arguments.c:374,1
    - Dst: RB_FOREACH
      Src: /src/tmux/arguments.c:375,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/arguments.c:376,1
    - Dst: args_set
      Src: /src/tmux/arguments.c:378,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/arguments.c:381,1
    - Dst: xcalloc
      Src: /src/tmux/arguments.c:382,1
    - Dst: args_copy_copy_value
      Src: /src/tmux/arguments.c:383,1
    - Dst: args_set
      Src: /src/tmux/arguments.c:384,1
    - Dst: xcalloc
      Src: /src/tmux/arguments.c:390,1
    - Dst: args_copy_copy_value
      Src: /src/tmux/arguments.c:393,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - args
    - argc
    - argv
    argTypes:
    - struct args*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 364
    functionDepth: 6
    functionLinenumber: 364
    functionLinenumberEnd: 396
    functionName: args_copy
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 1
    functionsReached:
    - args_create
    - args_set
    - TAILQ_FOREACH
    - cmd_log_argv
    - xcalloc
    - RB_FOREACH
    - TAILQ_EMPTY
    - args_copy_copy_value
    linkageType: ''
    returnType: struct args
    signature: 'struct args *

      args_copy(struct args *args, int argc, char **argv)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/arguments.c:406,1
    - Dst: cmd_list_free
      Src: /src/tmux/arguments.c:409,1
    - Dst: free
      Src: /src/tmux/arguments.c:412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - value
    argTypes:
    - struct args_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 399
    functionDepth: 3
    functionLinenumber: 399
    functionLinenumberEnd: 413
    functionName: args_free_value
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 1
    functionsReached:
    - cmd_list_free
    - free
    linkageType: ''
    returnType: void
    signature: void args_free_value(struct args_value *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: args_free_value
      Src: /src/tmux/arguments.c:422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - values
    - count
    argTypes:
    - struct args_value*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 416
    functionDepth: 4
    functionLinenumber: 416
    functionLinenumberEnd: 423
    functionName: args_free_values
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 2
    functionsReached:
    - args_free_value
    linkageType: ''
    returnType: void
    signature: void args_free_values(struct args_value *values, u_int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: args_free_values
      Src: /src/tmux/arguments.c:434,1
    - Dst: free
      Src: /src/tmux/arguments.c:435,1
    - Dst: RB_FOREACH_SAFE
      Src: /src/tmux/arguments.c:437,1
    - Dst: RB_REMOVE
      Src: /src/tmux/arguments.c:438,1
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/arguments.c:439,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/arguments.c:440,1
    - Dst: args_free_value
      Src: /src/tmux/arguments.c:441,1
    - Dst: free
      Src: /src/tmux/arguments.c:442,1
    - Dst: free
      Src: /src/tmux/arguments.c:444,1
    - Dst: free
      Src: /src/tmux/arguments.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - args
    argTypes:
    - struct args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 426
    functionDepth: 5
    functionLinenumber: 426
    functionLinenumberEnd: 448
    functionName: args_free
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 4
    functionsReached:
    - args_free_values
    - args_free_value
    - TAILQ_FOREACH_SAFE
    - free
    - RB_FOREACH_SAFE
    - RB_REMOVE
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void args_free(struct args *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cmd_append_argv
      Src: /src/tmux/arguments.c:465,1
    - Dst: cmd_list_print
      Src: /src/tmux/arguments.c:468,1
    - Dst: cmd_append_argv
      Src: /src/tmux/arguments.c:469,1
    - Dst: free
      Src: /src/tmux/arguments.c:470,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - args
    - argc
    - argv
    argTypes:
    - struct args*
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 451
    functionDepth: 3
    functionLinenumber: 451
    functionLinenumberEnd: 474
    functionName: args_to_vector
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 2
    functionsReached:
    - cmd_append_argv
    - cmd_list_print
    - free
    linkageType: ''
    returnType: void
    signature: void args_to_vector(struct args *args, int *argc, char ***argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/arguments.c:483,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 477
    functionDepth: 2
    functionLinenumber: 477
    functionLinenumberEnd: 489
    functionName: args_from_vector
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 1
    functionsReached:
    - xcalloc
    - xstrdup
    linkageType: ''
    returnType: struct args_value
    signature: 'struct args_value *

      args_from_vector(int argc, char **argv)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/tmux/arguments.c:499,1
    - Dst: xvasprintf
      Src: /src/tmux/arguments.c:500,1
    - Dst: va_end
      Src: /src/tmux/arguments.c:501,1
    - Dst: xrealloc
      Src: /src/tmux/arguments.c:504,1
    - Dst: strlcat
      Src: /src/tmux/arguments.c:506,1
    - Dst: free
      Src: /src/tmux/arguments.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - buf
    - len
    - fmt
    argTypes:
    - char**
    - size_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 493
    functionDepth: 2
    functionLinenumber: 493
    functionLinenumberEnd: 508
    functionName: args_print_add
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 1
    functionsReached:
    - strlcat
    - xvasprintf
    - free
    - xrealloc
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void args_print_add(char **buf, size_t *len, const char *fmt, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: args_print_add
      Src: /src/tmux/arguments.c:517,1
    - Dst: cmd_list_print
      Src: /src/tmux/arguments.c:523,1
    - Dst: args_print_add
      Src: /src/tmux/arguments.c:524,1
    - Dst: args_escape
      Src: /src/tmux/arguments.c:527,1
    - Dst: args_print_add
      Src: /src/tmux/arguments.c:528,1
    - Dst: free
      Src: /src/tmux/arguments.c:531,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - buf
    - len
    - value
    argTypes:
    - char**
    - size_t*
    - struct args_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 511
    functionDepth: 3
    functionLinenumber: 511
    functionLinenumberEnd: 532
    functionName: args_print_add_value
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 1
    functionsReached:
    - cmd_list_print
    - args_print_add
    - free
    - args_escape
    linkageType: ''
    returnType: void
    signature: void args_print_add_value(char **buf, size_t *len, struct args_value
      *value)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/arguments.c:546,1
    - Dst: RB_FOREACH
      Src: /src/tmux/arguments.c:549,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/arguments.c:552,1
    - Dst: args_print_add
      Src: /src/tmux/arguments.c:556,1
    - Dst: args_print_add
      Src: /src/tmux/arguments.c:558,1
    - Dst: RB_FOREACH
      Src: /src/tmux/arguments.c:562,1
    - Dst: args_print_add
      Src: /src/tmux/arguments.c:565,1
    - Dst: args_print_add
      Src: /src/tmux/arguments.c:567,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/arguments.c:571,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/arguments.c:573,1
    - Dst: args_print_add
      Src: /src/tmux/arguments.c:575,1
    - Dst: args_print_add
      Src: /src/tmux/arguments.c:577,1
    - Dst: args_print_add_value
      Src: /src/tmux/arguments.c:578,1
    - Dst: args_print_add
      Src: /src/tmux/arguments.c:583,1
    - Dst: args_print_add_value
      Src: /src/tmux/arguments.c:587,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 1
    argNames:
    - args
    argTypes:
    - struct args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 535
    functionDepth: 4
    functionLinenumber: 535
    functionLinenumberEnd: 590
    functionName: args_print
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 1
    functionsReached:
    - args_print_add_value
    - TAILQ_FOREACH
    - xcalloc
    - RB_FOREACH
    - TAILQ_EMPTY
    - args_print_add
    linkageType: ''
    returnType: char
    signature: 'char *

      args_print(struct args *args)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:602,1
    - Dst: strcspn
      Src: /src/tmux/arguments.c:605,1
    - Dst: strcspn
      Src: /src/tmux/arguments.c:607,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:613,1
    - Dst: utf8_stravis
      Src: /src/tmux/arguments.c:620,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:623,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:626,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:628,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:631,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:633,1
    - Dst: free
      Src: /src/tmux/arguments.c:635,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 593
    functionDepth: 2
    functionLinenumber: 593
    functionLinenumberEnd: 637
    functionName: args_escape
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 4
    functionsReached:
    - utf8_stravis
    - xasprintf
    - strcspn
    - free
    - xstrdup
    linkageType: ''
    returnType: char
    signature: 'char *

      args_escape(const char *s)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: args_find
      Src: /src/tmux/arguments.c:645,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - args
    - flag
    argTypes:
    - struct args*
    - u_char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 649
    functionName: args_has
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 44
    functionsReached:
    - args_find
    linkageType: ''
    returnType: int
    signature: int args_has(struct args *args, u_char flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: args_find
      Src: /src/tmux/arguments.c:657,1
    - Dst: xcalloc
      Src: /src/tmux/arguments.c:659,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/arguments.c:663,1
    - Dst: RB_INSERT
      Src: /src/tmux/arguments.c:664,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/arguments.c:668,1
    - Dst: free
      Src: /src/tmux/arguments.c:670,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - args
    - flag
    - value
    - flags
    argTypes:
    - struct args*
    - u_char
    - struct args_value*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 652
    functionDepth: 2
    functionLinenumber: 652
    functionLinenumberEnd: 671
    functionName: args_set
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 3
    functionsReached:
    - xcalloc
    - free
    - args_find
    - TAILQ_INIT
    - TAILQ_INSERT_TAIL
    - RB_INSERT
    linkageType: ''
    returnType: void
    signature: void args_set(struct args *args, u_char flag, struct args_value *value,
      int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: args_find
      Src: /src/tmux/arguments.c:679,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/arguments.c:681,1
    - Dst: TAILQ_LAST
      Src: /src/tmux/arguments.c:683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - args
    - flag
    argTypes:
    - struct args*
    - u_char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 684
    functionName: args_get
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 16
    functionsReached:
    - TAILQ_EMPTY
    - TAILQ_LAST
    - args_find
    linkageType: ''
    returnType: char
    signature: 'char *

      args_get(struct args *args, u_char flag)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_MIN
      Src: /src/tmux/arguments.c:690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - args
    - entry
    argTypes:
    - struct args*
    - struct args_entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 694
    functionName: args_first
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 0
    functionsReached:
    - RB_MIN
    linkageType: ''
    returnType: u_char
    signature: u_char args_first(struct args *args, struct args_entry **entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_NEXT
      Src: /src/tmux/arguments.c:700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct args_entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 704
    functionName: args_next
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 0
    functionsReached:
    - RB_NEXT
    linkageType: ''
    returnType: u_char
    signature: u_char args_next(struct args_entry **entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - args
    argTypes:
    - struct args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 711
    functionName: args_count
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: u_int
    signature: u_int args_count(struct args *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - args
    argTypes:
    - struct args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 718
    functionName: args_values
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct args_value
    signature: 'struct args_value *

      args_values(struct args *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - args
    - idx
    argTypes:
    - struct args*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 727
    functionName: args_value
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct args_value
    signature: 'struct args_value *

      args_value(struct args *args, u_int idx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: args_value_as_string
      Src: /src/tmux/arguments.c:735,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - args
    - idx
    argTypes:
    - struct args*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 730
    functionDepth: 4
    functionLinenumber: 730
    functionLinenumberEnd: 736
    functionName: args_string
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 25
    functionsReached:
    - args_value_as_string
    linkageType: ''
    returnType: char
    signature: 'char *

      args_string(struct args *args, u_int idx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: args_make_commands_prepare
      Src: /src/tmux/arguments.c:747,1
    - Dst: args_make_commands
      Src: /src/tmux/arguments.c:748,1
    - Dst: cmdq_error
      Src: /src/tmux/arguments.c:750,1
    - Dst: free
      Src: /src/tmux/arguments.c:751,1
    - Dst: args_make_commands_free
      Src: /src/tmux/arguments.c:755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - self
    - item
    - idx
    - expand
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    - u_int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 757
    functionName: args_make_commands_now
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 0
    functionsReached:
    - cmdq_error
    - args_make_commands_free
    - free
    - args_make_commands
    - args_make_commands_prepare
    linkageType: ''
    returnType: struct cmd_list
    signature: "struct cmd_list *\nargs_make_commands_now(struct cmd *self, struct
      cmdq_item *item, u_int idx,\n    int expand)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/arguments.c:764,1
    - Dst: cmdq_get_target
      Src: /src/tmux/arguments.c:765,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/arguments.c:766,1
    - Dst: xcalloc
      Src: /src/tmux/arguments.c:772,1
    - Dst: fatalx
      Src: /src/tmux/arguments.c:784,1
    - Dst: format_single_from_target
      Src: /src/tmux/arguments.c:790,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:792,1
    - Dst: log_debug
      Src: /src/tmux/arguments.c:793,1
    - Dst: cmd_get_source
      Src: /src/tmux/arguments.c:797,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:799,1
    - Dst: cmd_find_copy_state
      Src: /src/tmux/arguments.c:803,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 6
    argNames:
    - self
    - item
    - idx
    - default_command
    - wait
    - expand
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    - u_int
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 760
    functionDepth: 2
    functionLinenumber: 760
    functionLinenumberEnd: 806
    functionName: args_make_commands_prepare
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 3
    functionsReached:
    - cmd_find_copy_state
    - xcalloc
    - cmd_get_args
    - fatalx
    - format_single_from_target
    - cmd_get_source
    - cmdq_get_target_client
    - log_debug
    - xstrdup
    - cmdq_get_target
    linkageType: ''
    returnType: struct args_command_state
    signature: "struct args_command_state *\nargs_make_commands_prepare(struct cmd
      *self, struct cmdq_item *item, u_int idx,\n    const char *default_command,
      int wait, int expand)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cmd_list_copy
      Src: /src/tmux/arguments.c:820,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:823,1
    - Dst: log_debug
      Src: /src/tmux/arguments.c:824,1
    - Dst: cmd_log_argv
      Src: /src/tmux/arguments.c:825,1
    - Dst: cmd_template_replace
      Src: /src/tmux/arguments.c:827,1
    - Dst: log_debug
      Src: /src/tmux/arguments.c:828,1
    - Dst: free
      Src: /src/tmux/arguments.c:829,1
    - Dst: log_debug
      Src: /src/tmux/arguments.c:832,1
    - Dst: cmd_parse_from_string
      Src: /src/tmux/arguments.c:834,1
    - Dst: free
      Src: /src/tmux/arguments.c:835,1
    - Dst: fatalx
      Src: /src/tmux/arguments.c:843,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - state
    - argc
    - argv
    - error
    argTypes:
    - struct args_command_state*
    - int
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 809
    functionDepth: 3
    functionLinenumber: 809
    functionLinenumberEnd: 844
    functionName: args_make_commands
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 3
    functionsReached:
    - cmd_log_argv
    - fatalx
    - free
    - cmd_parse_from_string
    - log_debug
    - cmd_list_copy
    - cmd_template_replace
    - xstrdup
    linkageType: ''
    returnType: struct cmd_list
    signature: "struct cmd_list *\nargs_make_commands(struct args_command_state *state,
      int argc, char **argv,\n    char **error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmd_list_free
      Src: /src/tmux/arguments.c:851,1
    - Dst: server_client_unref
      Src: /src/tmux/arguments.c:853,1
    - Dst: free
      Src: /src/tmux/arguments.c:854,1
    - Dst: free
      Src: /src/tmux/arguments.c:855,1
    - Dst: free
      Src: /src/tmux/arguments.c:856,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct args_command_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 847
    functionDepth: 3
    functionLinenumber: 847
    functionLinenumberEnd: 857
    functionName: args_make_commands_free
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 3
    functionsReached:
    - server_client_unref
    - cmd_list_free
    - free
    linkageType: ''
    returnType: void
    signature: void args_make_commands_free(struct args_command_state *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmd_list_first
      Src: /src/tmux/arguments.c:868,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:870,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:871,1
    - Dst: cmd_get_entry
      Src: /src/tmux/arguments.c:871,1
    - Dst: strcspn
      Src: /src/tmux/arguments.c:873,1
    - Dst: xasprintf
      Src: /src/tmux/arguments.c:874,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct args_command_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 860
    functionDepth: 2
    functionLinenumber: 860
    functionLinenumberEnd: 876
    functionName: args_make_commands_get_command
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - cmd_list_first
    - cmd_get_entry
    - strcspn
    - xstrdup
    linkageType: ''
    returnType: char
    signature: 'char *

      args_make_commands_get_command(struct args_command_state *state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: args_find
      Src: /src/tmux/arguments.c:884,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/arguments.c:886,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - args
    - flag
    argTypes:
    - struct args*
    - u_char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 887
    functionName: args_first_value
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 2
    functionsReached:
    - TAILQ_FIRST
    - args_find
    linkageType: ''
    returnType: struct args_value
    signature: 'struct args_value *

      args_first_value(struct args *args, u_char flag)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_NEXT
      Src: /src/tmux/arguments.c:893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - struct args_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 894
    functionName: args_next_value
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 2
    functionsReached:
    - TAILQ_NEXT
    linkageType: ''
    returnType: struct args_value
    signature: 'struct args_value *

      args_next_value(struct args_value *value)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: args_find
      Src: /src/tmux/arguments.c:906,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:907,1
    - Dst: TAILQ_LAST
      Src: /src/tmux/arguments.c:910,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:914,1
    - Dst: strtonum
      Src: /src/tmux/arguments.c:918,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:920,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - args
    - flag
    - minval
    - maxval
    - cause
    argTypes:
    - struct args*
    - u_char
    - long long
    - long long
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 897
    functionDepth: 2
    functionLinenumber: 897
    functionLinenumberEnd: 926
    functionName: args_strtonum
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 0
    functionsReached:
    - strtonum
    - TAILQ_LAST
    - xstrdup
    - args_find
    linkageType: ''
    returnType: long long
    signature: "long long args_strtonum(struct args *args, u_char flag, long long
      minval,\n    long long maxval, char **cause)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: args_find
      Src: /src/tmux/arguments.c:939,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:940,1
    - Dst: TAILQ_LAST
      Src: /src/tmux/arguments.c:943,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:947,1
    - Dst: format_single_from_target
      Src: /src/tmux/arguments.c:951,1
    - Dst: strtonum
      Src: /src/tmux/arguments.c:952,1
    - Dst: free
      Src: /src/tmux/arguments.c:953,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:955,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 6
    argNames:
    - args
    - flag
    - minval
    - maxval
    - item
    - cause
    argTypes:
    - struct args*
    - u_char
    - long long
    - long long
    - struct cmdq_item*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 929
    functionDepth: 2
    functionLinenumber: 929
    functionLinenumberEnd: 961
    functionName: args_strtonum_and_expand
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 3
    functionsReached:
    - strtonum
    - format_single_from_target
    - free
    - args_find
    - TAILQ_LAST
    - xstrdup
    linkageType: ''
    returnType: long long
    signature: "long long args_strtonum_and_expand(struct args *args, u_char flag,
      long long minval,\n    long long maxval, struct cmdq_item *item, char **cause)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: args_find
      Src: /src/tmux/arguments.c:971,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:972,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/arguments.c:975,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:976,1
    - Dst: TAILQ_LAST
      Src: /src/tmux/arguments.c:979,1
    - Dst: args_string_percentage
      Src: /src/tmux/arguments.c:980,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - args
    - flag
    - minval
    - maxval
    - curval
    - cause
    argTypes:
    - struct args*
    - u_char
    - long long
    - long long
    - long long
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 964
    functionDepth: 2
    functionLinenumber: 964
    functionLinenumberEnd: 981
    functionName: args_percentage
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 0
    functionsReached:
    - args_string_percentage
    - args_find
    - TAILQ_EMPTY
    - TAILQ_LAST
    - xstrdup
    linkageType: ''
    returnType: long long
    signature: "long long args_percentage(struct args *args, u_char flag, long long
      minval,\n    long long maxval, long long curval, char **cause)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/tmux/arguments.c:990,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:994,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:998,1
    - Dst: strtonum
      Src: /src/tmux/arguments.c:1001,1
    - Dst: free
      Src: /src/tmux/arguments.c:1002,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:1004,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:1009,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:1013,1
    - Dst: strtonum
      Src: /src/tmux/arguments.c:1017,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:1019,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 5
    argNames:
    - value
    - minval
    - maxval
    - curval
    - cause
    argTypes:
    - char*
    - long long
    - long long
    - long long
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 984
    functionDepth: 2
    functionLinenumber: 984
    functionLinenumberEnd: 1026
    functionName: args_string_percentage
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 6
    functionsReached:
    - strlen
    - strtonum
    - free
    - xstrdup
    linkageType: ''
    returnType: long long
    signature: "long long args_string_percentage(const char *value, long long minval,
      long long maxval,\n    long long curval, char **cause)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: args_find
      Src: /src/tmux/arguments.c:1039,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:1040,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/arguments.c:1043,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:1044,1
    - Dst: TAILQ_LAST
      Src: /src/tmux/arguments.c:1047,1
    - Dst: args_string_percentage_and_expand
      Src: /src/tmux/arguments.c:1048,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 7
    argNames:
    - args
    - flag
    - minval
    - maxval
    - curval
    - item
    - cause
    argTypes:
    - struct args*
    - u_char
    - long long
    - long long
    - long long
    - struct cmdq_item*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1032
    functionDepth: 2
    functionLinenumber: 1032
    functionLinenumberEnd: 1050
    functionName: args_percentage_and_expand
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 3
    functionsReached:
    - args_string_percentage_and_expand
    - args_find
    - TAILQ_EMPTY
    - TAILQ_LAST
    - xstrdup
    linkageType: ''
    returnType: long long
    signature: "long long args_percentage_and_expand(struct args *args, u_char flag,
      long long minval,\n    long long maxval, long long curval, struct cmdq_item
      *item, char **cause)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/tmux/arguments.c:1061,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:1065,1
    - Dst: format_single_from_target
      Src: /src/tmux/arguments.c:1068,1
    - Dst: strtonum
      Src: /src/tmux/arguments.c:1069,1
    - Dst: free
      Src: /src/tmux/arguments.c:1070,1
    - Dst: free
      Src: /src/tmux/arguments.c:1071,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:1073,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:1078,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:1082,1
    - Dst: format_single_from_target
      Src: /src/tmux/arguments.c:1086,1
    - Dst: strtonum
      Src: /src/tmux/arguments.c:1087,1
    - Dst: free
      Src: /src/tmux/arguments.c:1088,1
    - Dst: xstrdup
      Src: /src/tmux/arguments.c:1090,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 6
    argNames:
    - value
    - minval
    - maxval
    - curval
    - item
    - cause
    argTypes:
    - char*
    - long long
    - long long
    - long long
    - struct cmdq_item*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1097
    functionName: args_string_percentage_and_expand
    functionSourceFile: /src/tmux/arguments.c
    functionUses: 2
    functionsReached:
    - strtonum
    - format_single_from_target
    - free
    - strlen
    - xstrdup
    linkageType: ''
    returnType: long long
    signature: "long long args_string_percentage_and_expand(const char *value, long
      long minval,\n    long long maxval, long long curval, struct cmdq_item *item,
      char **cause)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-pipe-pane.c:58,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-pipe-pane.c:59,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/cmd-pipe-pane.c:60,1
    - Dst: window_pane_exited
      Src: /src/tmux/cmd-pipe-pane.c:71,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-pipe-pane.c:72,1
    - Dst: bufferevent_free
      Src: /src/tmux/cmd-pipe-pane.c:79,1
    - Dst: close
      Src: /src/tmux/cmd-pipe-pane.c:80,1
    - Dst: window_pane_destroy_ready
      Src: /src/tmux/cmd-pipe-pane.c:83,1
    - Dst: server_destroy_pane
      Src: /src/tmux/cmd-pipe-pane.c:84,1
    - Dst: args_count
      Src: /src/tmux/cmd-pipe-pane.c:90,1
    - Dst: args_string
      Src: /src/tmux/cmd-pipe-pane.c:90,1
    - Dst: args_has
      Src: /src/tmux/cmd-pipe-pane.c:99,1
    - Dst: args_has
      Src: /src/tmux/cmd-pipe-pane.c:103,1
    - Dst: args_has
      Src: /src/tmux/cmd-pipe-pane.c:105,1
    - Dst: socketpair
      Src: /src/tmux/cmd-pipe-pane.c:112,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-pipe-pane.c:113,1
    - Dst: strerror
      Src: /src/tmux/cmd-pipe-pane.c:113,1
    - Dst: format_create
      Src: /src/tmux/cmd-pipe-pane.c:118,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-pipe-pane.c:118,1
    - Dst: format_defaults
      Src: /src/tmux/cmd-pipe-pane.c:119,1
    - Dst: format_expand_time
      Src: /src/tmux/cmd-pipe-pane.c:120,1
    - Dst: args_string
      Src: /src/tmux/cmd-pipe-pane.c:120,1
    - Dst: format_free
      Src: /src/tmux/cmd-pipe-pane.c:121,1
    - Dst: sigfillset
      Src: /src/tmux/cmd-pipe-pane.c:124,1
    - Dst: sigprocmask
      Src: /src/tmux/cmd-pipe-pane.c:125,1
    - Dst: fork
      Src: /src/tmux/cmd-pipe-pane.c:126,1
    - Dst: sigprocmask
      Src: /src/tmux/cmd-pipe-pane.c:128,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-pipe-pane.c:129,1
    - Dst: strerror
      Src: /src/tmux/cmd-pipe-pane.c:129,1
    - Dst: close
      Src: /src/tmux/cmd-pipe-pane.c:131,1
    - Dst: close
      Src: /src/tmux/cmd-pipe-pane.c:132,1
    - Dst: free
      Src: /src/tmux/cmd-pipe-pane.c:133,1
    - Dst: proc_clear_signals
      Src: /src/tmux/cmd-pipe-pane.c:137,1
    - Dst: sigprocmask
      Src: /src/tmux/cmd-pipe-pane.c:138,1
    - Dst: close
      Src: /src/tmux/cmd-pipe-pane.c:139,1
    - Dst: setpgid
      Src: /src/tmux/cmd-pipe-pane.c:141,1
    - Dst: _exit
      Src: /src/tmux/cmd-pipe-pane.c:142,1
    - Dst: open
      Src: /src/tmux/cmd-pipe-pane.c:144,1
    - Dst: dup2
      Src: /src/tmux/cmd-pipe-pane.c:146,1
    - Dst: _exit
      Src: /src/tmux/cmd-pipe-pane.c:147,1
    - Dst: dup2
      Src: /src/tmux/cmd-pipe-pane.c:149,1
    - Dst: _exit
      Src: /src/tmux/cmd-pipe-pane.c:150,1
    - Dst: dup2
      Src: /src/tmux/cmd-pipe-pane.c:153,1
    - Dst: _exit
      Src: /src/tmux/cmd-pipe-pane.c:154,1
    - Dst: close
      Src: /src/tmux/cmd-pipe-pane.c:156,1
    - Dst: dup2
      Src: /src/tmux/cmd-pipe-pane.c:158,1
    - Dst: _exit
      Src: /src/tmux/cmd-pipe-pane.c:159,1
    - Dst: dup2
      Src: /src/tmux/cmd-pipe-pane.c:161,1
    - Dst: _exit
      Src: /src/tmux/cmd-pipe-pane.c:162,1
    - Dst: closefrom
      Src: /src/tmux/cmd-pipe-pane.c:163,1
    - Dst: execl
      Src: /src/tmux/cmd-pipe-pane.c:165,1
    - Dst: _exit
      Src: /src/tmux/cmd-pipe-pane.c:166,1
    - Dst: sigprocmask
      Src: /src/tmux/cmd-pipe-pane.c:169,1
    - Dst: close
      Src: /src/tmux/cmd-pipe-pane.c:170,1
    - Dst: memcpy
      Src: /src/tmux/cmd-pipe-pane.c:173,1
    - Dst: setblocking
      Src: /src/tmux/cmd-pipe-pane.c:175,1
    - Dst: bufferevent_new
      Src: /src/tmux/cmd-pipe-pane.c:176,1
    - Dst: fatalx
      Src: /src/tmux/cmd-pipe-pane.c:182,1
    - Dst: bufferevent_enable
      Src: /src/tmux/cmd-pipe-pane.c:184,1
    - Dst: bufferevent_enable
      Src: /src/tmux/cmd-pipe-pane.c:186,1
    - Dst: free
      Src: /src/tmux/cmd-pipe-pane.c:188,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 88
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 55
    functionDepth: 7
    functionLinenumber: 55
    functionLinenumberEnd: 191
    functionName: cmd_pipe_pane_exec
    functionSourceFile: /src/tmux/cmd-pipe-pane.c
    functionUses: 0
    functionsReached:
    - closefrom
    - setpgid
    - bufferevent_free
    - open
    - server_destroy_pane
    - format_create
    - cmdq_get_client
    - args_count
    - args_has
    - execl
    - window_pane_destroy_ready
    - args_string
    - format_free
    - sigfillset
    - format_expand_time
    - cmdq_get_target_client
    - strerror
    - proc_clear_signals
    - memcpy
    - dup2
    - _exit
    - close
    - socketpair
    - window_pane_exited
    - cmd_get_args
    - format_defaults
    - setblocking
    - cmdq_get_target
    - sigprocmask
    - cmdq_error
    - bufferevent_new
    - fatalx
    - free
    - bufferevent_enable
    - fork
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_pipe_pane_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/cmd-pipe-pane.c:200,1
    - Dst: log_debug
      Src: /src/tmux/cmd-pipe-pane.c:201,1
    - Dst: bufferevent_write
      Src: /src/tmux/cmd-pipe-pane.c:203,1
    - Dst: EVBUFFER_DATA
      Src: /src/tmux/cmd-pipe-pane.c:203,1
    - Dst: evbuffer_drain
      Src: /src/tmux/cmd-pipe-pane.c:204,1
    - Dst: window_pane_destroy_ready
      Src: /src/tmux/cmd-pipe-pane.c:206,1
    - Dst: server_destroy_pane
      Src: /src/tmux/cmd-pipe-pane.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - bufev
    - data
    argTypes:
    - __unused*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 193
    functionDepth: 7
    functionLinenumber: 193
    functionLinenumberEnd: 208
    functionName: cmd_pipe_pane_read_callback
    functionSourceFile: /src/tmux/cmd-pipe-pane.c
    functionUses: 0
    functionsReached:
    - window_pane_destroy_ready
    - EVBUFFER_DATA
    - server_destroy_pane
    - log_debug
    - bufferevent_write
    - evbuffer_drain
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: void cmd_pipe_pane_read_callback(__unused struct bufferevent *bufev,
      void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/cmd-pipe-pane.c:215,1
    - Dst: window_pane_destroy_ready
      Src: /src/tmux/cmd-pipe-pane.c:217,1
    - Dst: server_destroy_pane
      Src: /src/tmux/cmd-pipe-pane.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bufev
    - data
    argTypes:
    - __unused*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 210
    functionDepth: 7
    functionLinenumber: 210
    functionLinenumberEnd: 219
    functionName: cmd_pipe_pane_write_callback
    functionSourceFile: /src/tmux/cmd-pipe-pane.c
    functionUses: 0
    functionsReached:
    - log_debug
    - server_destroy_pane
    - window_pane_destroy_ready
    linkageType: ''
    returnType: void
    signature: void cmd_pipe_pane_write_callback(__unused struct bufferevent *bufev,
      void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/cmd-pipe-pane.c:227,1
    - Dst: bufferevent_free
      Src: /src/tmux/cmd-pipe-pane.c:229,1
    - Dst: close
      Src: /src/tmux/cmd-pipe-pane.c:230,1
    - Dst: window_pane_destroy_ready
      Src: /src/tmux/cmd-pipe-pane.c:233,1
    - Dst: server_destroy_pane
      Src: /src/tmux/cmd-pipe-pane.c:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - bufev
    - what
    - data
    argTypes:
    - __unused*
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 221
    functionDepth: 7
    functionLinenumber: 221
    functionLinenumberEnd: 235
    functionName: cmd_pipe_pane_error_callback
    functionSourceFile: /src/tmux/cmd-pipe-pane.c
    functionUses: 0
    functionsReached:
    - close
    - window_pane_destroy_ready
    - bufferevent_free
    - server_destroy_pane
    - log_debug
    linkageType: ''
    returnType: void
    signature: "void cmd_pipe_pane_error_callback(__unused struct bufferevent *bufev,\n
      \   __unused short what, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - int
    - tty
    argTypes:
    - __unused
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: osdep_get_name
    functionSourceFile: /src/tmux/osdep-aix.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      osdep_get_name(__unused int fd, __unused char *tty)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - int
    argTypes:
    - __unused
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: osdep_get_cwd
    functionSourceFile: /src/tmux/osdep-aix.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      osdep_get_cwd(__unused int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_init
      Src: /src/tmux/osdep-aix.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: osdep_event_init
    functionSourceFile: /src/tmux/osdep-aix.c
    functionUses: 1
    functionsReached:
    - event_init
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      osdep_event_init(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-show-prompt-history.c:55,1
    - Dst: args_get
      Src: /src/tmux/cmd-show-prompt-history.c:56,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-show-prompt-history.c:60,1
    - Dst: free
      Src: /src/tmux/cmd-show-prompt-history.c:65,1
    - Dst: free
      Src: /src/tmux/cmd-show-prompt-history.c:66,1
    - Dst: status_prompt_type
      Src: /src/tmux/cmd-show-prompt-history.c:71,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-show-prompt-history.c:73,1
    - Dst: free
      Src: /src/tmux/cmd-show-prompt-history.c:77,1
    - Dst: free
      Src: /src/tmux/cmd-show-prompt-history.c:78,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-show-prompt-history.c:88,1
    - Dst: status_prompt_type_string
      Src: /src/tmux/cmd-show-prompt-history.c:89,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-show-prompt-history.c:92,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-show-prompt-history.c:95,1
    - Dst: status_prompt_type
      Src: /src/tmux/cmd-show-prompt-history.c:98,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-show-prompt-history.c:100,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-show-prompt-history.c:103,1
    - Dst: status_prompt_type_string
      Src: /src/tmux/cmd-show-prompt-history.c:104,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-show-prompt-history.c:106,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-show-prompt-history.c:109,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 113
    functionName: cmd_show_prompt_history_exec
    functionSourceFile: /src/tmux/cmd-show-prompt-history.c
    functionUses: 0
    functionsReached:
    - status_prompt_type
    - cmdq_error
    - cmdq_print
    - cmd_get_args
    - cmd_get_entry
    - free
    - args_get
    - status_prompt_type_string
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_show_prompt_history_exec(struct cmd *self, struct
      cmdq_item *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - args
    - u_int
    - cause
    argTypes:
    - __unused*
    - __unused
    - __unused**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: cmd_bind_key_args_parse
    functionSourceFile: /src/tmux/cmd-bind-key.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum args_parse_type
    signature: "enum args_parse_type cmd_bind_key_args_parse(__unused struct args
      *args, __unused u_int idx,\n    __unused char **cause)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-bind-key.c:57,1
    - Dst: args_get
      Src: /src/tmux/cmd-bind-key.c:59,1
    - Dst: args_count
      Src: /src/tmux/cmd-bind-key.c:63,1
    - Dst: key_string_lookup_string
      Src: /src/tmux/cmd-bind-key.c:65,1
    - Dst: args_string
      Src: /src/tmux/cmd-bind-key.c:65,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-bind-key.c:67,1
    - Dst: args_string
      Src: /src/tmux/cmd-bind-key.c:67,1
    - Dst: args_has
      Src: /src/tmux/cmd-bind-key.c:71,1
    - Dst: args_get
      Src: /src/tmux/cmd-bind-key.c:72,1
    - Dst: args_has
      Src: /src/tmux/cmd-bind-key.c:73,1
    - Dst: args_has
      Src: /src/tmux/cmd-bind-key.c:77,1
    - Dst: key_bindings_add
      Src: /src/tmux/cmd-bind-key.c:80,1
    - Dst: args_value
      Src: /src/tmux/cmd-bind-key.c:84,1
    - Dst: key_bindings_add
      Src: /src/tmux/cmd-bind-key.c:86,1
    - Dst: cmd_parse_from_string
      Src: /src/tmux/cmd-bind-key.c:92,1
    - Dst: args_string
      Src: /src/tmux/cmd-bind-key.c:92,1
    - Dst: cmd_parse_from_arguments
      Src: /src/tmux/cmd-bind-key.c:94,1
    - Dst: args_values
      Src: /src/tmux/cmd-bind-key.c:94,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-bind-key.c:99,1
    - Dst: free
      Src: /src/tmux/cmd-bind-key.c:100,1
    - Dst: key_bindings_add
      Src: /src/tmux/cmd-bind-key.c:105,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 54
    functionDepth: 5
    functionLinenumber: 54
    functionLinenumberEnd: 107
    functionName: cmd_bind_key_exec
    functionSourceFile: /src/tmux/cmd-bind-key.c
    functionUses: 0
    functionsReached:
    - cmd_parse_from_arguments
    - cmdq_error
    - args_string
    - cmd_get_args
    - args_value
    - free
    - args_values
    - args_get
    - cmd_parse_from_string
    - args_count
    - key_bindings_add
    - args_has
    - key_string_lookup_string
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_bind_key_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/log.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - severity
    - msg
    argTypes:
    - __unused
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: log_event_cb
    functionSourceFile: /src/tmux/log.c
    functionUses: 0
    functionsReached:
    - log_debug
    linkageType: ''
    returnType: void
    signature: void log_event_cb(__unused int severity, const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: log_add_level
    functionSourceFile: /src/tmux/log.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void log_add_level(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: log_get_level
    functionSourceFile: /src/tmux/log.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int log_get_level(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_close
      Src: /src/tmux/log.c:61,1
    - Dst: xasprintf
      Src: /src/tmux/log.c:63,1
    - Dst: getpid
      Src: /src/tmux/log.c:63,1
    - Dst: fopen
      Src: /src/tmux/log.c:64,1
    - Dst: free
      Src: /src/tmux/log.c:65,1
    - Dst: setvbuf
      Src: /src/tmux/log.c:69,1
    - Dst: event_set_log_callback
      Src: /src/tmux/log.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 71
    functionName: log_open
    functionSourceFile: /src/tmux/log.c
    functionUses: 1
    functionsReached:
    - xasprintf
    - event_set_log_callback
    - log_close
    - free
    - getpid
    - setvbuf
    - fopen
    linkageType: ''
    returnType: void
    signature: void log_open(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_open
      Src: /src/tmux/log.c:79,1
    - Dst: log_debug
      Src: /src/tmux/log.c:80,1
    - Dst: log_debug
      Src: /src/tmux/log.c:82,1
    - Dst: log_close
      Src: /src/tmux/log.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 86
    functionName: log_toggle
    functionSourceFile: /src/tmux/log.c
    functionUses: 1
    functionsReached:
    - log_debug
    - log_open
    - log_close
    linkageType: ''
    returnType: void
    signature: void log_toggle(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/tmux/log.c:93,1
    - Dst: event_set_log_callback
      Src: /src/tmux/log.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: log_close
    functionSourceFile: /src/tmux/log.c
    functionUses: 3
    functionsReached:
    - fclose
    - event_set_log_callback
    linkageType: ''
    returnType: void
    signature: void log_close(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vasprintf
      Src: /src/tmux/log.c:109,1
    - Dst: stravis
      Src: /src/tmux/log.c:111,1
    - Dst: free
      Src: /src/tmux/log.c:112,1
    - Dst: free
      Src: /src/tmux/log.c:115,1
    - Dst: gettimeofday
      Src: /src/tmux/log.c:117,1
    - Dst: fprintf
      Src: /src/tmux/log.c:118,1
    - Dst: fflush
      Src: /src/tmux/log.c:120,1
    - Dst: free
      Src: /src/tmux/log.c:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - msg
    - ap
    - prefix
    argTypes:
    - char*
    - va_list
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 122
    functionName: log_vwrite
    functionSourceFile: /src/tmux/log.c
    functionUses: 0
    functionsReached:
    - fflush
    - stravis
    - gettimeofday
    - free
    - vasprintf
    - fprintf
    linkageType: ''
    returnType: void
    signature: void log_vwrite(const char *msg, va_list ap, const char *prefix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/tmux/log.c:133,1
    - Dst: log_vwrite
      Src: /src/tmux/log.c:134,1
    - Dst: va_end
      Src: /src/tmux/log.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 136
    functionName: log_debug
    functionSourceFile: /src/tmux/log.c
    functionUses: 202
    functionsReached:
    - va_end
    - log_vwrite
    - va_start
    linkageType: ''
    returnType: void
    signature: void log_debug(const char *msg, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/tmux/log.c:145,1
    - Dst: strerror
      Src: /src/tmux/log.c:145,1
    - Dst: exit
      Src: /src/tmux/log.c:146,1
    - Dst: va_start
      Src: /src/tmux/log.c:148,1
    - Dst: log_vwrite
      Src: /src/tmux/log.c:149,1
    - Dst: va_end
      Src: /src/tmux/log.c:150,1
    - Dst: exit
      Src: /src/tmux/log.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 153
    functionName: fatal
    functionSourceFile: /src/tmux/log.c
    functionUses: 18
    functionsReached:
    - exit
    - log_vwrite
    - strerror
    - va_start
    - va_end
    - snprintf
    linkageType: ''
    returnType: __dead
    signature: __dead fatal(const char *msg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/tmux/log.c:161,1
    - Dst: log_vwrite
      Src: /src/tmux/log.c:162,1
    - Dst: va_end
      Src: /src/tmux/log.c:163,1
    - Dst: exit
      Src: /src/tmux/log.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 166
    functionName: fatalx
    functionSourceFile: /src/tmux/log.c
    functionUses: 48
    functionsReached:
    - va_end
    - exit
    - log_vwrite
    - va_start
    linkageType: ''
    returnType: __dead
    signature: __dead fatalx(const char *msg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - gd
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: grid_view_x
    functionSourceFile: /src/tmux/grid-view.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: grid_view_x(gd, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - gd
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: grid_view_y
    functionSourceFile: /src/tmux/grid-view.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: grid_view_y(gd, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_cell
      Src: /src/tmux/grid-view.c:37,1
    - Dst: grid_view_x
      Src: /src/tmux/grid-view.c:37,1
    - Dst: grid_view_y
      Src: /src/tmux/grid-view.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - gd
    - px
    - py
    - gc
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: grid_view_get_cell
    functionSourceFile: /src/tmux/grid-view.c
    functionUses: 0
    functionsReached:
    - grid_view_x
    - grid_get_cell
    - grid_view_y
    linkageType: ''
    returnType: void
    signature: void grid_view_get_cell(struct grid *gd, u_int px, u_int py, struct
      grid_cell *gc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grid_set_cell
      Src: /src/tmux/grid-view.c:45,1
    - Dst: grid_view_x
      Src: /src/tmux/grid-view.c:45,1
    - Dst: grid_view_y
      Src: /src/tmux/grid-view.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - gd
    - px
    - py
    - gc
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 6
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: grid_view_set_cell
    functionSourceFile: /src/tmux/grid-view.c
    functionUses: 1
    functionsReached:
    - grid_view_x
    - grid_set_cell
    - grid_view_y
    linkageType: ''
    returnType: void
    signature: "void grid_view_set_cell(struct grid *gd, u_int px, u_int py,\n    const
      struct grid_cell *gc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grid_set_padding
      Src: /src/tmux/grid-view.c:52,1
    - Dst: grid_view_x
      Src: /src/tmux/grid-view.c:52,1
    - Dst: grid_view_y
      Src: /src/tmux/grid-view.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gd
    - px
    - py
    argTypes:
    - struct grid*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 7
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: grid_view_set_padding
    functionSourceFile: /src/tmux/grid-view.c
    functionUses: 0
    functionsReached:
    - grid_view_x
    - grid_view_y
    - grid_set_padding
    linkageType: ''
    returnType: void
    signature: void grid_view_set_padding(struct grid *gd, u_int px, u_int py)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grid_set_cells
      Src: /src/tmux/grid-view.c:60,1
    - Dst: grid_view_x
      Src: /src/tmux/grid-view.c:60,1
    - Dst: grid_view_y
      Src: /src/tmux/grid-view.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - gd
    - px
    - py
    - gc
    - s
    - slen
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - struct grid_cell*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 6
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: grid_view_set_cells
    functionSourceFile: /src/tmux/grid-view.c
    functionUses: 0
    functionsReached:
    - grid_view_x
    - grid_set_cells
    - grid_view_y
    linkageType: ''
    returnType: void
    signature: "void grid_view_set_cells(struct grid *gd, u_int px, u_int py,\n    const
      struct grid_cell *gc, const char *s, size_t slen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_line
      Src: /src/tmux/grid-view.c:74,1
    - Dst: grid_view_y
      Src: /src/tmux/grid-view.c:74,1
    - Dst: grid_view_clear
      Src: /src/tmux/grid-view.c:79,1
    - Dst: grid_collect_history
      Src: /src/tmux/grid-view.c:85,1
    - Dst: grid_scroll_history
      Src: /src/tmux/grid-view.c:86,1
    - Dst: grid_view_clear
      Src: /src/tmux/grid-view.c:89,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - gd
    - bg
    argTypes:
    - struct grid*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 65
    functionDepth: 4
    functionLinenumber: 65
    functionLinenumberEnd: 91
    functionName: grid_view_clear_history
    functionSourceFile: /src/tmux/grid-view.c
    functionUses: 0
    functionsReached:
    - grid_view_y
    - grid_get_line
    - grid_collect_history
    - grid_scroll_history
    - grid_view_clear
    linkageType: ''
    returnType: void
    signature: void grid_view_clear_history(struct grid *gd, u_int bg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grid_view_x
      Src: /src/tmux/grid-view.c:98,1
    - Dst: grid_view_y
      Src: /src/tmux/grid-view.c:99,1
    - Dst: grid_clear
      Src: /src/tmux/grid-view.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - gd
    - px
    - py
    - nx
    - ny
    - bg
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 6
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: grid_view_clear
    functionSourceFile: /src/tmux/grid-view.c
    functionUses: 1
    functionsReached:
    - grid_view_x
    - grid_clear
    - grid_view_y
    linkageType: ''
    returnType: void
    signature: "void grid_view_clear(struct grid *gd, u_int px, u_int py, u_int nx,
      u_int ny,\n    u_int bg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: grid_collect_history
      Src: /src/tmux/grid-view.c:110,1
    - Dst: grid_scroll_history
      Src: /src/tmux/grid-view.c:112,1
    - Dst: grid_view_y
      Src: /src/tmux/grid-view.c:114,1
    - Dst: grid_view_y
      Src: /src/tmux/grid-view.c:115,1
    - Dst: grid_scroll_history_region
      Src: /src/tmux/grid-view.c:116,1
    - Dst: grid_view_y
      Src: /src/tmux/grid-view.c:119,1
    - Dst: grid_view_y
      Src: /src/tmux/grid-view.c:120,1
    - Dst: grid_move_lines
      Src: /src/tmux/grid-view.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - gd
    - rupper
    - rlower
    - bg
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 105
    functionDepth: 7
    functionLinenumber: 105
    functionLinenumberEnd: 123
    functionName: grid_view_scroll_region_up
    functionSourceFile: /src/tmux/grid-view.c
    functionUses: 0
    functionsReached:
    - grid_scroll_history_region
    - grid_view_y
    - grid_scroll_history
    - grid_collect_history
    - grid_move_lines
    linkageType: ''
    returnType: void
    signature: "void grid_view_scroll_region_up(struct grid *gd, u_int rupper, u_int
      rlower,\n    u_int bg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grid_view_y
      Src: /src/tmux/grid-view.c:130,1
    - Dst: grid_view_y
      Src: /src/tmux/grid-view.c:131,1
    - Dst: grid_move_lines
      Src: /src/tmux/grid-view.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - gd
    - rupper
    - rlower
    - bg
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 126
    functionDepth: 7
    functionLinenumber: 126
    functionLinenumberEnd: 134
    functionName: grid_view_scroll_region_down
    functionSourceFile: /src/tmux/grid-view.c
    functionUses: 0
    functionsReached:
    - grid_view_y
    - grid_move_lines
    linkageType: ''
    returnType: void
    signature: "void grid_view_scroll_region_down(struct grid *gd, u_int rupper, u_int
      rlower,\n    u_int bg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grid_view_y
      Src: /src/tmux/grid-view.c:142,1
    - Dst: grid_view_y
      Src: /src/tmux/grid-view.c:144,1
    - Dst: grid_move_lines
      Src: /src/tmux/grid-view.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - gd
    - py
    - ny
    - bg
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 137
    functionDepth: 7
    functionLinenumber: 137
    functionLinenumberEnd: 147
    functionName: grid_view_insert_lines
    functionSourceFile: /src/tmux/grid-view.c
    functionUses: 0
    functionsReached:
    - grid_view_y
    - grid_move_lines
    linkageType: ''
    returnType: void
    signature: void grid_view_insert_lines(struct grid *gd, u_int py, u_int ny, u_int
      bg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grid_view_y
      Src: /src/tmux/grid-view.c:156,1
    - Dst: grid_view_y
      Src: /src/tmux/grid-view.c:158,1
    - Dst: grid_move_lines
      Src: /src/tmux/grid-view.c:161,1
    - Dst: grid_clear
      Src: /src/tmux/grid-view.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - gd
    - rlower
    - py
    - ny
    - bg
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 150
    functionDepth: 7
    functionLinenumber: 150
    functionLinenumberEnd: 163
    functionName: grid_view_insert_lines_region
    functionSourceFile: /src/tmux/grid-view.c
    functionUses: 0
    functionsReached:
    - grid_clear
    - grid_view_y
    - grid_move_lines
    linkageType: ''
    returnType: void
    signature: "void grid_view_insert_lines_region(struct grid *gd, u_int rlower,
      u_int py,\n    u_int ny, u_int bg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grid_view_y
      Src: /src/tmux/grid-view.c:171,1
    - Dst: grid_view_y
      Src: /src/tmux/grid-view.c:173,1
    - Dst: grid_move_lines
      Src: /src/tmux/grid-view.c:175,1
    - Dst: grid_clear
      Src: /src/tmux/grid-view.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - gd
    - py
    - ny
    - bg
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 166
    functionDepth: 7
    functionLinenumber: 166
    functionLinenumberEnd: 177
    functionName: grid_view_delete_lines
    functionSourceFile: /src/tmux/grid-view.c
    functionUses: 0
    functionsReached:
    - grid_clear
    - grid_view_y
    - grid_move_lines
    linkageType: ''
    returnType: void
    signature: void grid_view_delete_lines(struct grid *gd, u_int py, u_int ny, u_int
      bg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grid_view_y
      Src: /src/tmux/grid-view.c:186,1
    - Dst: grid_view_y
      Src: /src/tmux/grid-view.c:188,1
    - Dst: grid_move_lines
      Src: /src/tmux/grid-view.c:191,1
    - Dst: grid_clear
      Src: /src/tmux/grid-view.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - gd
    - rlower
    - py
    - ny
    - bg
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 180
    functionDepth: 7
    functionLinenumber: 180
    functionLinenumberEnd: 193
    functionName: grid_view_delete_lines_region
    functionSourceFile: /src/tmux/grid-view.c
    functionUses: 0
    functionsReached:
    - grid_clear
    - grid_view_y
    - grid_move_lines
    linkageType: ''
    returnType: void
    signature: "void grid_view_delete_lines_region(struct grid *gd, u_int rlower,
      u_int py,\n    u_int ny, u_int bg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: grid_view_x
      Src: /src/tmux/grid-view.c:201,1
    - Dst: grid_view_y
      Src: /src/tmux/grid-view.c:202,1
    - Dst: grid_view_x
      Src: /src/tmux/grid-view.c:204,1
    - Dst: grid_clear
      Src: /src/tmux/grid-view.c:207,1
    - Dst: grid_move_cells
      Src: /src/tmux/grid-view.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - gd
    - px
    - py
    - nx
    - bg
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 196
    functionDepth: 6
    functionLinenumber: 196
    functionLinenumberEnd: 210
    functionName: grid_view_insert_cells
    functionSourceFile: /src/tmux/grid-view.c
    functionUses: 0
    functionsReached:
    - grid_view_x
    - grid_move_cells
    - grid_clear
    - grid_view_y
    linkageType: ''
    returnType: void
    signature: void grid_view_insert_cells(struct grid *gd, u_int px, u_int py, u_int
      nx, u_int bg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grid_view_x
      Src: /src/tmux/grid-view.c:218,1
    - Dst: grid_view_y
      Src: /src/tmux/grid-view.c:219,1
    - Dst: grid_view_x
      Src: /src/tmux/grid-view.c:221,1
    - Dst: grid_move_cells
      Src: /src/tmux/grid-view.c:223,1
    - Dst: grid_clear
      Src: /src/tmux/grid-view.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - gd
    - px
    - py
    - nx
    - bg
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 213
    functionDepth: 6
    functionLinenumber: 213
    functionLinenumberEnd: 225
    functionName: grid_view_delete_cells
    functionSourceFile: /src/tmux/grid-view.c
    functionUses: 0
    functionsReached:
    - grid_view_x
    - grid_move_cells
    - grid_clear
    - grid_view_y
    linkageType: ''
    returnType: void
    signature: void grid_view_delete_cells(struct grid *gd, u_int px, u_int py, u_int
      nx, u_int bg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grid_view_x
      Src: /src/tmux/grid-view.c:231,1
    - Dst: grid_view_y
      Src: /src/tmux/grid-view.c:232,1
    - Dst: grid_string_cells
      Src: /src/tmux/grid-view.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - gd
    - px
    - py
    - nx
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 228
    functionDepth: 4
    functionLinenumber: 228
    functionLinenumberEnd: 235
    functionName: grid_view_string_cells
    functionSourceFile: /src/tmux/grid-view.c
    functionUses: 1
    functionsReached:
    - grid_string_cells
    - grid_view_x
    - grid_view_y
    linkageType: ''
    returnType: char
    signature: 'char *

      grid_view_string_cells(struct grid *gd, u_int px, u_int py, u_int nx)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-rename-session.c:49,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-rename-session.c:50,1
    - Dst: format_single_from_target
      Src: /src/tmux/cmd-rename-session.c:54,1
    - Dst: args_string
      Src: /src/tmux/cmd-rename-session.c:54,1
    - Dst: clean_name
      Src: /src/tmux/cmd-rename-session.c:55,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-rename-session.c:57,1
    - Dst: free
      Src: /src/tmux/cmd-rename-session.c:58,1
    - Dst: free
      Src: /src/tmux/cmd-rename-session.c:61,1
    - Dst: strcmp
      Src: /src/tmux/cmd-rename-session.c:62,1
    - Dst: free
      Src: /src/tmux/cmd-rename-session.c:63,1
    - Dst: session_find
      Src: /src/tmux/cmd-rename-session.c:66,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-rename-session.c:67,1
    - Dst: free
      Src: /src/tmux/cmd-rename-session.c:68,1
    - Dst: RB_REMOVE
      Src: /src/tmux/cmd-rename-session.c:72,1
    - Dst: free
      Src: /src/tmux/cmd-rename-session.c:73,1
    - Dst: RB_INSERT
      Src: /src/tmux/cmd-rename-session.c:75,1
    - Dst: server_status_session
      Src: /src/tmux/cmd-rename-session.c:77,1
    - Dst: notify_session
      Src: /src/tmux/cmd-rename-session.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 46
    functionDepth: 5
    functionLinenumber: 46
    functionLinenumberEnd: 81
    functionName: cmd_rename_session_exec
    functionSourceFile: /src/tmux/cmd-rename-session.c
    functionUses: 0
    functionsReached:
    - notify_session
    - clean_name
    - cmdq_error
    - args_string
    - session_find
    - cmd_get_args
    - format_single_from_target
    - strcmp
    - free
    - server_status_session
    - RB_REMOVE
    - cmdq_get_target
    - RB_INSERT
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_rename_session_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/names.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - int
    - events
    - arg
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: name_time_callback
    functionSourceFile: /src/tmux/names.c
    functionUses: 0
    functionsReached:
    - log_debug
    linkageType: ''
    returnType: void
    signature: void name_time_callback(__unused int fd, __unused short events, void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: timersub
      Src: /src/tmux/names.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - w
    - tv
    argTypes:
    - struct window*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: name_time_expired
    functionSourceFile: /src/tmux/names.c
    functionUses: 0
    functionsReached:
    - timersub
    linkageType: ''
    returnType: int
    signature: int name_time_expired(struct window *w, struct timeval *tv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/names.c:63,1
    - Dst: log_debug
      Src: /src/tmux/names.c:67,1
    - Dst: log_debug
      Src: /src/tmux/names.c:70,1
    - Dst: gettimeofday
      Src: /src/tmux/names.c:72,1
    - Dst: name_time_expired
      Src: /src/tmux/names.c:73,1
    - Dst: event_initialized
      Src: /src/tmux/names.c:75,1
    - Dst: evtimer_set
      Src: /src/tmux/names.c:76,1
    - Dst: evtimer_pending
      Src: /src/tmux/names.c:77,1
    - Dst: log_debug
      Src: /src/tmux/names.c:78,1
    - Dst: timerclear
      Src: /src/tmux/names.c:80,1
    - Dst: event_add
      Src: /src/tmux/names.c:82,1
    - Dst: log_debug
      Src: /src/tmux/names.c:84,1
    - Dst: memcpy
      Src: /src/tmux/names.c:89,1
    - Dst: event_initialized
      Src: /src/tmux/names.c:90,1
    - Dst: evtimer_del
      Src: /src/tmux/names.c:91,1
    - Dst: format_window_name
      Src: /src/tmux/names.c:95,1
    - Dst: strcmp
      Src: /src/tmux/names.c:96,1
    - Dst: log_debug
      Src: /src/tmux/names.c:97,1
    - Dst: window_set_name
      Src: /src/tmux/names.c:98,1
    - Dst: server_redraw_window_borders
      Src: /src/tmux/names.c:99,1
    - Dst: server_status_window
      Src: /src/tmux/names.c:100,1
    - Dst: log_debug
      Src: /src/tmux/names.c:102,1
    - Dst: free
      Src: /src/tmux/names.c:104,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 105
    functionName: check_window_name
    functionSourceFile: /src/tmux/names.c
    functionUses: 0
    functionsReached:
    - server_status_window
    - evtimer_del
    - window_set_name
    - strcmp
    - format_window_name
    - server_redraw_window_borders
    - evtimer_pending
    - gettimeofday
    - timerclear
    - event_add
    - memcpy
    - log_debug
    - free
    - options_get_number
    - name_time_expired
    - event_initialized
    - evtimer_set
    linkageType: ''
    returnType: void
    signature: void check_window_name(struct window *w)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/names.c:113,1
    - Dst: cmd_stringify_argv
      Src: /src/tmux/names.c:114,1
    - Dst: parse_window_name
      Src: /src/tmux/names.c:116,1
    - Dst: parse_window_name
      Src: /src/tmux/names.c:118,1
    - Dst: free
      Src: /src/tmux/names.c:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 121
    functionName: default_window_name
    functionSourceFile: /src/tmux/names.c
    functionUses: 2
    functionsReached:
    - parse_window_name
    - free
    - xstrdup
    - cmd_stringify_argv
    linkageType: ''
    returnType: char
    signature: 'char *

      default_window_name(struct window *w)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_create
      Src: /src/tmux/names.c:130,1
    - Dst: format_defaults_window
      Src: /src/tmux/names.c:131,1
    - Dst: format_defaults_pane
      Src: /src/tmux/names.c:132,1
    - Dst: options_get_string
      Src: /src/tmux/names.c:134,1
    - Dst: format_expand
      Src: /src/tmux/names.c:135,1
    - Dst: format_free
      Src: /src/tmux/names.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 139
    functionName: format_window_name
    functionSourceFile: /src/tmux/names.c
    functionUses: 1
    functionsReached:
    - format_defaults_window
    - format_free
    - format_create
    - options_get_string
    - format_expand
    - format_defaults_pane
    linkageType: ''
    returnType: char
    signature: 'char *

      format_window_name(struct window *w)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/names.c:146,1
    - Dst: strcspn
      Src: /src/tmux/names.c:149,1
    - Dst: strncmp
      Src: /src/tmux/names.c:151,1
    - Dst: strchr
      Src: /src/tmux/names.c:156,1
    - Dst: strlen
      Src: /src/tmux/names.c:160,1
    - Dst: isalnum
      Src: /src/tmux/names.c:162,1
    - Dst: ispunct
      Src: /src/tmux/names.c:163,1
    - Dst: basename
      Src: /src/tmux/names.c:168,1
    - Dst: clean_name
      Src: /src/tmux/names.c:169,1
    - Dst: free
      Src: /src/tmux/names.c:170,1
    - Dst: xstrdup
      Src: /src/tmux/names.c:172,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 1
    argNames:
    - in
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 174
    functionName: parse_window_name
    functionSourceFile: /src/tmux/names.c
    functionUses: 1
    functionsReached:
    - clean_name
    - strncmp
    - strchr
    - strcspn
    - ispunct
    - basename
    - free
    - isalnum
    - strlen
    - xstrdup
    linkageType: ''
    returnType: char
    signature: 'char *

      parse_window_name(const char *in)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/environ.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - envent1
    - envent2
    argTypes:
    - struct environ_entry*
    - struct environ_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: environ_cmp
    functionSourceFile: /src/tmux/environ.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int environ_cmp(struct environ_entry *envent1, struct environ_entry
      *envent2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/environ.c:48,1
    - Dst: RB_INIT
      Src: /src/tmux/environ.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: environ_create
    functionSourceFile: /src/tmux/environ.c
    functionUses: 3
    functionsReached:
    - RB_INIT
    - xcalloc
    linkageType: ''
    returnType: struct environ
    signature: 'struct environ *

      environ_create(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_REMOVE
      Src: /src/tmux/environ.c:64,1
    - Dst: free
      Src: /src/tmux/environ.c:65,1
    - Dst: free
      Src: /src/tmux/environ.c:66,1
    - Dst: free
      Src: /src/tmux/environ.c:67,1
    - Dst: free
      Src: /src/tmux/environ.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - env
    argTypes:
    - struct environ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 70
    functionName: environ_free
    functionSourceFile: /src/tmux/environ.c
    functionUses: 6
    functionsReached:
    - free
    - RB_REMOVE
    linkageType: ''
    returnType: void
    signature: void environ_free(struct environ *env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_REMOVE
      Src: /src/tmux/environ.c:64,1
    - Dst: free
      Src: /src/tmux/environ.c:65,1
    - Dst: free
      Src: /src/tmux/environ.c:66,1
    - Dst: free
      Src: /src/tmux/environ.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: RB_FOREACH_SAFE
    functionSourceFile: /src/tmux/environ.c
    functionUses: 11
    functionsReached:
    - free
    - RB_REMOVE
    linkageType: ''
    returnType: void
    signature: void RB_FOREACH_SAFE(envent, environ, env, envent1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_MIN
      Src: /src/tmux/environ.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - env
    argTypes:
    - struct environ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: environ_first
    functionSourceFile: /src/tmux/environ.c
    functionUses: 0
    functionsReached:
    - RB_MIN
    linkageType: ''
    returnType: struct environ_entry
    signature: 'struct environ_entry *

      environ_first(struct environ *env)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_NEXT
      Src: /src/tmux/environ.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - envent
    argTypes:
    - struct environ_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: environ_next
    functionSourceFile: /src/tmux/environ.c
    functionUses: 0
    functionsReached:
    - RB_NEXT
    linkageType: ''
    returnType: struct environ_entry
    signature: 'struct environ_entry *

      environ_next(struct environ_entry *envent)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: environ_clear
      Src: /src/tmux/environ.c:92,1
    - Dst: environ_set
      Src: /src/tmux/environ.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - srcenv
    - dstenv
    argTypes:
    - struct environ*
    - struct environ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 98
    functionName: environ_copy
    functionSourceFile: /src/tmux/environ.c
    functionUses: 2
    functionsReached:
    - environ_clear
    - environ_set
    linkageType: ''
    returnType: void
    signature: void environ_copy(struct environ *srcenv, struct environ *dstenv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: environ_clear
      Src: /src/tmux/environ.c:92,1
    - Dst: environ_set
      Src: /src/tmux/environ.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: RB_FOREACH
    functionSourceFile: /src/tmux/environ.c
    functionUses: 38
    functionsReached:
    - environ_clear
    - environ_set
    linkageType: ''
    returnType: void
    signature: void RB_FOREACH(envent, environ, srcenv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FIND
      Src: /src/tmux/environ.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - env
    - name
    argTypes:
    - struct environ*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: environ_find
    functionSourceFile: /src/tmux/environ.c
    functionUses: 4
    functionsReached:
    - RB_FIND
    linkageType: ''
    returnType: struct environ_entry
    signature: 'struct environ_entry *

      environ_find(struct environ *env, const char *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/tmux/environ.c:118,1
    - Dst: environ_find
      Src: /src/tmux/environ.c:119,1
    - Dst: free
      Src: /src/tmux/environ.c:121,1
    - Dst: xvasprintf
      Src: /src/tmux/environ.c:122,1
    - Dst: xmalloc
      Src: /src/tmux/environ.c:124,1
    - Dst: xstrdup
      Src: /src/tmux/environ.c:125,1
    - Dst: xvasprintf
      Src: /src/tmux/environ.c:127,1
    - Dst: RB_INSERT
      Src: /src/tmux/environ.c:128,1
    - Dst: va_end
      Src: /src/tmux/environ.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - env
    - name
    - flags
    - fmt
    argTypes:
    - struct environ*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 131
    functionName: environ_set
    functionSourceFile: /src/tmux/environ.c
    functionUses: 6
    functionsReached:
    - environ_find
    - xmalloc
    - xvasprintf
    - free
    - va_start
    - va_end
    - xstrdup
    - RB_INSERT
    linkageType: ''
    returnType: void
    signature: "void environ_set(struct environ *env, const char *name, int flags,
      const char *fmt,\n    ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: environ_find
      Src: /src/tmux/environ.c:139,1
    - Dst: free
      Src: /src/tmux/environ.c:140,1
    - Dst: xmalloc
      Src: /src/tmux/environ.c:143,1
    - Dst: xstrdup
      Src: /src/tmux/environ.c:144,1
    - Dst: RB_INSERT
      Src: /src/tmux/environ.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - env
    - name
    argTypes:
    - struct environ*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 149
    functionName: environ_clear
    functionSourceFile: /src/tmux/environ.c
    functionUses: 3
    functionsReached:
    - environ_find
    - xmalloc
    - free
    - xstrdup
    - RB_INSERT
    linkageType: ''
    returnType: void
    signature: void environ_clear(struct environ *env, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/tmux/environ.c:157,1
    - Dst: xstrdup
      Src: /src/tmux/environ.c:162,1
    - Dst: strcspn
      Src: /src/tmux/environ.c:163,1
    - Dst: environ_set
      Src: /src/tmux/environ.c:165,1
    - Dst: free
      Src: /src/tmux/environ.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - env
    - var
    - flags
    argTypes:
    - struct environ*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 167
    functionName: environ_put
    functionSourceFile: /src/tmux/environ.c
    functionUses: 3
    functionsReached:
    - strchr
    - strcspn
    - environ_set
    - free
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void environ_put(struct environ *env, const char *var, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: environ_find
      Src: /src/tmux/environ.c:175,1
    - Dst: RB_REMOVE
      Src: /src/tmux/environ.c:177,1
    - Dst: free
      Src: /src/tmux/environ.c:178,1
    - Dst: free
      Src: /src/tmux/environ.c:179,1
    - Dst: free
      Src: /src/tmux/environ.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - env
    - name
    argTypes:
    - struct environ*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 181
    functionName: environ_unset
    functionSourceFile: /src/tmux/environ.c
    functionUses: 1
    functionsReached:
    - free
    - RB_REMOVE
    - environ_find
    linkageType: ''
    returnType: void
    signature: void environ_unset(struct environ *env, const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: options_get
      Src: /src/tmux/environ.c:194,1
    - Dst: options_array_first
      Src: /src/tmux/environ.c:197,1
    - Dst: options_array_item_value
      Src: /src/tmux/environ.c:199,1
    - Dst: fnmatch
      Src: /src/tmux/environ.c:202,1
    - Dst: environ_set
      Src: /src/tmux/environ.c:203,1
    - Dst: environ_clear
      Src: /src/tmux/environ.c:208,1
    - Dst: options_array_next
      Src: /src/tmux/environ.c:209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - oo
    - src
    - dst
    argTypes:
    - struct options*
    - struct environ*
    - struct environ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 211
    functionName: environ_update
    functionSourceFile: /src/tmux/environ.c
    functionUses: 1
    functionsReached:
    - environ_clear
    - options_array_first
    - environ_set
    - fnmatch
    - options_get
    - options_array_item_value
    - options_array_next
    linkageType: ''
    returnType: void
    signature: void environ_update(struct options *oo, struct environ *src, struct
      environ *dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fnmatch
      Src: /src/tmux/environ.c:202,1
    - Dst: environ_set
      Src: /src/tmux/environ.c:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 206
    functionName: RB_FOREACH_SAFE
    functionSourceFile: /src/tmux/environ.c
    functionUses: 11
    functionsReached:
    - environ_set
    - fnmatch
    linkageType: ''
    returnType: void
    signature: void RB_FOREACH_SAFE(envent, environ, src, envent1)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/environ.c:219,1
    - Dst: setenv
      Src: /src/tmux/environ.c:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - env
    argTypes:
    - struct environ*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 226
    functionName: environ_push
    functionSourceFile: /src/tmux/environ.c
    functionUses: 2
    functionsReached:
    - setenv
    - xcalloc
    linkageType: ''
    returnType: void
    signature: void environ_push(struct environ *env)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/tmux/environ.c:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: RB_FOREACH
    functionSourceFile: /src/tmux/environ.c
    functionUses: 38
    functionsReached:
    - setenv
    linkageType: ''
    returnType: void
    signature: void RB_FOREACH(envent, environ, env)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/tmux/environ.c:236,1
    - Dst: vasprintf
      Src: /src/tmux/environ.c:237,1
    - Dst: va_end
      Src: /src/tmux/environ.c:238,1
    - Dst: log_debug
      Src: /src/tmux/environ.c:242,1
    - Dst: free
      Src: /src/tmux/environ.c:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - env
    - fmt
    argTypes:
    - struct environ*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 248
    functionName: environ_log
    functionSourceFile: /src/tmux/environ.c
    functionUses: 1
    functionsReached:
    - free
    - va_end
    - va_start
    - log_debug
    - vasprintf
    linkageType: ''
    returnType: void
    signature: void environ_log(struct environ *env, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/environ.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: RB_FOREACH
    functionSourceFile: /src/tmux/environ.c
    functionUses: 38
    functionsReached:
    - log_debug
    linkageType: ''
    returnType: void
    signature: void RB_FOREACH(envent, environ, env)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: environ_create
      Src: /src/tmux/environ.c:258,1
    - Dst: environ_copy
      Src: /src/tmux/environ.c:259,1
    - Dst: environ_copy
      Src: /src/tmux/environ.c:261,1
    - Dst: options_get_string
      Src: /src/tmux/environ.c:264,1
    - Dst: environ_set
      Src: /src/tmux/environ.c:265,1
    - Dst: environ_set
      Src: /src/tmux/environ.c:266,1
    - Dst: environ_set
      Src: /src/tmux/environ.c:267,1
    - Dst: getversion
      Src: /src/tmux/environ.c:267,1
    - Dst: environ_set
      Src: /src/tmux/environ.c:268,1
    - Dst: environ_clear
      Src: /src/tmux/environ.c:272,1
    - Dst: environ_clear
      Src: /src/tmux/environ.c:273,1
    - Dst: environ_clear
      Src: /src/tmux/environ.c:274,1
    - Dst: environ_set
      Src: /src/tmux/environ.c:281,1
    - Dst: getpid
      Src: /src/tmux/environ.c:281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - s
    - no_TERM
    argTypes:
    - struct session*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 285
    functionName: environ_for_session
    functionSourceFile: /src/tmux/environ.c
    functionUses: 2
    functionsReached:
    - environ_clear
    - getversion
    - environ_copy
    - environ_set
    - getpid
    - options_get_string
    - environ_create
    linkageType: ''
    returnType: struct environ
    signature: 'struct environ *

      environ_for_session(struct session *s, int no_TERM)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-list-windows.c:61,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-list-windows.c:62,1
    - Dst: args_get
      Src: /src/tmux/cmd-list-windows.c:73,1
    - Dst: sort_order_from_string
      Src: /src/tmux/cmd-list-windows.c:75,1
    - Dst: args_get
      Src: /src/tmux/cmd-list-windows.c:75,1
    - Dst: args_has
      Src: /src/tmux/cmd-list-windows.c:76,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-list-windows.c:77,1
    - Dst: args_has
      Src: /src/tmux/cmd-list-windows.c:80,1
    - Dst: args_has
      Src: /src/tmux/cmd-list-windows.c:82,1
    - Dst: sort_get_winlinks
      Src: /src/tmux/cmd-list-windows.c:83,1
    - Dst: sort_get_winlinks_session
      Src: /src/tmux/cmd-list-windows.c:87,1
    - Dst: format_create
      Src: /src/tmux/cmd-list-windows.c:95,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-list-windows.c:95,1
    - Dst: format_add
      Src: /src/tmux/cmd-list-windows.c:96,1
    - Dst: format_defaults
      Src: /src/tmux/cmd-list-windows.c:97,1
    - Dst: format_expand
      Src: /src/tmux/cmd-list-windows.c:100,1
    - Dst: format_true
      Src: /src/tmux/cmd-list-windows.c:101,1
    - Dst: free
      Src: /src/tmux/cmd-list-windows.c:102,1
    - Dst: format_expand
      Src: /src/tmux/cmd-list-windows.c:106,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-list-windows.c:107,1
    - Dst: free
      Src: /src/tmux/cmd-list-windows.c:108,1
    - Dst: format_free
      Src: /src/tmux/cmd-list-windows.c:111,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 115
    functionName: cmd_list_windows_exec
    functionSourceFile: /src/tmux/cmd-list-windows.c
    functionUses: 0
    functionsReached:
    - sort_get_winlinks
    - cmdq_error
    - cmdq_print
    - format_expand
    - cmd_get_args
    - format_true
    - format_defaults
    - format_free
    - sort_get_winlinks_session
    - free
    - sort_order_from_string
    - args_get
    - format_create
    - cmdq_get_client
    - format_add
    - cmdq_get_target
    - args_has
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_list_windows_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/tmux/attributes.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - attr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 54
    functionName: attributes_tostring
    functionSourceFile: /src/tmux/attributes.c
    functionUses: 0
    functionsReached:
    - xsnprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      attributes_tostring(int attr)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcspn
      Src: /src/tmux/attributes.c:84,1
    - Dst: strchr
      Src: /src/tmux/attributes.c:86,1
    - Dst: strlen
      Src: /src/tmux/attributes.c:86,1
    - Dst: strcasecmp
      Src: /src/tmux/attributes.c:89,1
    - Dst: strcasecmp
      Src: /src/tmux/attributes.c:89,1
    - Dst: strcspn
      Src: /src/tmux/attributes.c:94,1
    - Dst: nitems
      Src: /src/tmux/attributes.c:95,1
    - Dst: strlen
      Src: /src/tmux/attributes.c:96,1
    - Dst: strncasecmp
      Src: /src/tmux/attributes.c:98,1
    - Dst: nitems
      Src: /src/tmux/attributes.c:103,1
    - Dst: strspn
      Src: /src/tmux/attributes.c:105,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 109
    functionName: attributes_fromstring
    functionSourceFile: /src/tmux/attributes.c
    functionUses: 0
    functionsReached:
    - nitems
    - strcasecmp
    - strchr
    - strncasecmp
    - strcspn
    - strlen
    - strspn
    linkageType: ''
    returnType: int
    signature: int attributes_fromstring(const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a1
    - a2
    argTypes:
    - struct options_array_item*
    - struct options_array_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: options_array_cmp
    functionSourceFile: /src/tmux/options.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int options_array_cmp(struct options_array_item *a1, struct options_array_item
      *a2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: OPTIONS_IS_STRING
    functionSourceFile: /src/tmux/options.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPTIONS_IS_STRING(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: OPTIONS_IS_NUMBER
    functionSourceFile: /src/tmux/options.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPTIONS_IS_NUMBER(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: OPTIONS_IS_COMMAND
    functionSourceFile: /src/tmux/options.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPTIONS_IS_COMMAND(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: OPTIONS_IS_ARRAY
    functionSourceFile: /src/tmux/options.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPTIONS_IS_ARRAY(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/options.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - struct options_entry*
    - struct options_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: options_cmp
    functionSourceFile: /src/tmux/options.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int options_cmp(struct options_entry *lhs, struct options_entry *rhs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/options.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 108
    functionName: options_map_name
    functionSourceFile: /src/tmux/options.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: char
    signature: 'char *

      options_map_name(const char *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fatalx
      Src: /src/tmux/options.c:116,1
    - Dst: options_get
      Src: /src/tmux/options.c:117,1
    - Dst: fatalx
      Src: /src/tmux/options.c:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - oo
    - s
    argTypes:
    - struct options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 121
    functionName: options_parent_table_entry
    functionSourceFile: /src/tmux/options.c
    functionUses: 0
    functionsReached:
    - fatalx
    - options_get
    linkageType: ''
    returnType: struct options_table_entry
    signature: 'struct options_table_entry *

      options_parent_table_entry(struct options *oo, const char *s)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPTIONS_IS_STRING
      Src: /src/tmux/options.c:126,1
    - Dst: free
      Src: /src/tmux/options.c:127,1
    - Dst: OPTIONS_IS_COMMAND
      Src: /src/tmux/options.c:128,1
    - Dst: cmd_list_free
      Src: /src/tmux/options.c:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - o
    - ov
    argTypes:
    - struct options_entry*
    - union options_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 130
    functionName: options_value_free
    functionSourceFile: /src/tmux/options.c
    functionUses: 0
    functionsReached:
    - OPTIONS_IS_STRING
    - cmd_list_free
    - free
    - OPTIONS_IS_COMMAND
    linkageType: ''
    returnType: void
    signature: void options_value_free(struct options_entry *o, union options_value
      *ov)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OPTIONS_IS_COMMAND
      Src: /src/tmux/options.c:138,1
    - Dst: cmd_list_print
      Src: /src/tmux/options.c:139,1
    - Dst: OPTIONS_IS_NUMBER
      Src: /src/tmux/options.c:140,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:143,1
    - Dst: xstrdup
      Src: /src/tmux/options.c:146,1
    - Dst: key_string_lookup_key
      Src: /src/tmux/options.c:146,1
    - Dst: xstrdup
      Src: /src/tmux/options.c:149,1
    - Dst: colour_tostring
      Src: /src/tmux/options.c:149,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:153,1
    - Dst: xstrdup
      Src: /src/tmux/options.c:155,1
    - Dst: xstrdup
      Src: /src/tmux/options.c:158,1
    - Dst: fatalx
      Src: /src/tmux/options.c:161,1
    - Dst: OPTIONS_IS_STRING
      Src: /src/tmux/options.c:165,1
    - Dst: xstrdup
      Src: /src/tmux/options.c:166,1
    - Dst: xstrdup
      Src: /src/tmux/options.c:167,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - o
    - ov
    - numeric
    argTypes:
    - struct options_entry*
    - union options_value*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 168
    functionName: options_value_to_string
    functionSourceFile: /src/tmux/options.c
    functionUses: 0
    functionsReached:
    - OPTIONS_IS_STRING
    - xasprintf
    - cmd_list_print
    - fatalx
    - OPTIONS_IS_COMMAND
    - key_string_lookup_key
    - colour_tostring
    - xstrdup
    - OPTIONS_IS_NUMBER
    linkageType: ''
    returnType: char
    signature: "char *\noptions_value_to_string(struct options_entry *o, union options_value
      *ov,\n    int numeric)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/options.c:175,1
    - Dst: RB_INIT
      Src: /src/tmux/options.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - parent
    argTypes:
    - struct options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 179
    functionName: options_create
    functionSourceFile: /src/tmux/options.c
    functionUses: 3
    functionsReached:
    - RB_INIT
    - xcalloc
    linkageType: ''
    returnType: struct options
    signature: 'struct options *

      options_create(struct options *parent)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH_SAFE
      Src: /src/tmux/options.c:186,1
    - Dst: options_remove
      Src: /src/tmux/options.c:187,1
    - Dst: free
      Src: /src/tmux/options.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - oo
    argTypes:
    - struct options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 189
    functionName: options_free
    functionSourceFile: /src/tmux/options.c
    functionUses: 4
    functionsReached:
    - options_remove
    - RB_FOREACH_SAFE
    - free
    linkageType: ''
    returnType: void
    signature: void options_free(struct options *oo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oo
    argTypes:
    - struct options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: options_get_parent
    functionSourceFile: /src/tmux/options.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct options
    signature: 'struct options *

      options_get_parent(struct options *oo)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - oo
    - parent
    argTypes:
    - struct options*
    - struct options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: options_set_parent
    functionSourceFile: /src/tmux/options.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void options_set_parent(struct options *oo, struct options *parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_MIN
      Src: /src/tmux/options.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oo
    argTypes:
    - struct options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: options_first
    functionSourceFile: /src/tmux/options.c
    functionUses: 3
    functionsReached:
    - RB_MIN
    linkageType: ''
    returnType: struct options_entry
    signature: 'struct options_entry *

      options_first(struct options *oo)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_NEXT
      Src: /src/tmux/options.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct options_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: options_next
    functionSourceFile: /src/tmux/options.c
    functionUses: 3
    functionsReached:
    - RB_NEXT
    linkageType: ''
    returnType: struct options_entry
    signature: 'struct options_entry *

      options_next(struct options_entry *o)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_FIND
      Src: /src/tmux/options.c:220,1
    - Dst: options_map_name
      Src: /src/tmux/options.c:222,1
    - Dst: RB_FIND
      Src: /src/tmux/options.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - oo
    - name
    argTypes:
    - struct options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 226
    functionName: options_get_only
    functionSourceFile: /src/tmux/options.c
    functionUses: 9
    functionsReached:
    - RB_FIND
    - options_map_name
    linkageType: ''
    returnType: struct options_entry
    signature: 'struct options_entry *

      options_get_only(struct options *oo, const char *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: options_get_only
      Src: /src/tmux/options.c:233,1
    - Dst: options_get_only
      Src: /src/tmux/options.c:238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - oo
    - name
    argTypes:
    - struct options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 241
    functionName: options_get
    functionSourceFile: /src/tmux/options.c
    functionUses: 10
    functionsReached:
    - options_get_only
    linkageType: ''
    returnType: struct options_entry
    signature: 'struct options_entry *

      options_get(struct options *oo, const char *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: options_add
      Src: /src/tmux/options.c:248,1
    - Dst: RB_INIT
      Src: /src/tmux/options.c:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - oo
    - oe
    argTypes:
    - struct options*
    - struct options_table_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 255
    functionName: options_empty
    functionSourceFile: /src/tmux/options.c
    functionUses: 1
    functionsReached:
    - RB_INIT
    - options_add
    linkageType: ''
    returnType: struct options_entry
    signature: 'struct options_entry *

      options_empty(struct options *oo, const struct options_table_entry *oe)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: options_empty
      Src: /src/tmux/options.c:265,1
    - Dst: options_array_assign
      Src: /src/tmux/options.c:270,1
    - Dst: options_array_set
      Src: /src/tmux/options.c:274,1
    - Dst: xstrdup
      Src: /src/tmux/options.c:280,1
    - Dst: cmd_parse_from_string
      Src: /src/tmux/options.c:283,1
    - Dst: free
      Src: /src/tmux/options.c:286,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - oo
    - oe
    argTypes:
    - struct options*
    - struct options_table_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 298
    functionName: options_default
    functionSourceFile: /src/tmux/options.c
    functionUses: 1
    functionsReached:
    - options_array_set
    - options_array_assign
    - options_empty
    - free
    - cmd_parse_from_string
    - xstrdup
    linkageType: ''
    returnType: struct options_entry
    signature: 'struct options_entry *

      options_default(struct options *oo, const struct options_table_entry *oe)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/options.c:308,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:311,1
    - Dst: xstrdup
      Src: /src/tmux/options.c:314,1
    - Dst: key_string_lookup_key
      Src: /src/tmux/options.c:314,1
    - Dst: xstrdup
      Src: /src/tmux/options.c:317,1
    - Dst: colour_tostring
      Src: /src/tmux/options.c:317,1
    - Dst: xstrdup
      Src: /src/tmux/options.c:320,1
    - Dst: xstrdup
      Src: /src/tmux/options.c:323,1
    - Dst: fatalx
      Src: /src/tmux/options.c:326,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - oe
    argTypes:
    - struct options_table_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 329
    functionName: options_default_to_string
    functionSourceFile: /src/tmux/options.c
    functionUses: 1
    functionsReached:
    - xasprintf
    - fatalx
    - key_string_lookup_key
    - colour_tostring
    - xstrdup
    linkageType: ''
    returnType: char
    signature: 'char *

      options_default_to_string(const struct options_table_entry *oe)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: options_get_only
      Src: /src/tmux/options.c:336,1
    - Dst: options_remove
      Src: /src/tmux/options.c:338,1
    - Dst: xcalloc
      Src: /src/tmux/options.c:340,1
    - Dst: xstrdup
      Src: /src/tmux/options.c:342,1
    - Dst: RB_INSERT
      Src: /src/tmux/options.c:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - oo
    - name
    argTypes:
    - struct options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 346
    functionName: options_add
    functionSourceFile: /src/tmux/options.c
    functionUses: 1
    functionsReached:
    - xcalloc
    - options_get_only
    - options_remove
    - xstrdup
    - RB_INSERT
    linkageType: ''
    returnType: struct options_entry
    signature: 'struct options_entry *

      options_add(struct options *oo, const char *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPTIONS_IS_ARRAY
      Src: /src/tmux/options.c:353,1
    - Dst: options_array_clear
      Src: /src/tmux/options.c:354,1
    - Dst: options_value_free
      Src: /src/tmux/options.c:356,1
    - Dst: RB_REMOVE
      Src: /src/tmux/options.c:357,1
    - Dst: free
      Src: /src/tmux/options.c:358,1
    - Dst: free
      Src: /src/tmux/options.c:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct options_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 348
    functionDepth: 4
    functionLinenumber: 348
    functionLinenumberEnd: 360
    functionName: options_remove
    functionSourceFile: /src/tmux/options.c
    functionUses: 2
    functionsReached:
    - options_array_clear
    - free
    - options_value_free
    - OPTIONS_IS_ARRAY
    - RB_REMOVE
    linkageType: ''
    returnType: void
    signature: void options_remove(struct options_entry *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct options_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 366
    functionName: options_name
    functionSourceFile: /src/tmux/options.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      options_name(struct options_entry *o)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct options_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 372
    functionName: options_owner
    functionSourceFile: /src/tmux/options.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: struct options
    signature: 'struct options *

      options_owner(struct options_entry *o)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct options_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 378
    functionName: options_table_entry
    functionSourceFile: /src/tmux/options.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: struct options_table_entry
    signature: 'struct options_table_entry *

      options_table_entry(struct options_entry *o)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FIND
      Src: /src/tmux/options.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - o
    - idx
    argTypes:
    - struct options_entry*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 387
    functionName: options_array_item
    functionSourceFile: /src/tmux/options.c
    functionUses: 0
    functionsReached:
    - RB_FIND
    linkageType: ''
    returnType: struct options_array_item
    signature: 'struct options_array_item *

      options_array_item(struct options_entry *o, u_int idx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/options.c:394,1
    - Dst: RB_INSERT
      Src: /src/tmux/options.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - o
    - idx
    argTypes:
    - struct options_entry*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 398
    functionName: options_array_new
    functionSourceFile: /src/tmux/options.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - RB_INSERT
    linkageType: ''
    returnType: struct options_array_item
    signature: 'struct options_array_item *

      options_array_new(struct options_entry *o, u_int idx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: options_value_free
      Src: /src/tmux/options.c:403,1
    - Dst: RB_REMOVE
      Src: /src/tmux/options.c:404,1
    - Dst: free
      Src: /src/tmux/options.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - o
    - a
    argTypes:
    - struct options_entry*
    - struct options_array_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 400
    functionDepth: 4
    functionLinenumber: 400
    functionLinenumberEnd: 406
    functionName: options_array_free
    functionSourceFile: /src/tmux/options.c
    functionUses: 0
    functionsReached:
    - free
    - RB_REMOVE
    - options_value_free
    linkageType: ''
    returnType: void
    signature: void options_array_free(struct options_entry *o, struct options_array_item
      *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPTIONS_IS_ARRAY
      Src: /src/tmux/options.c:413,1
    - Dst: RB_FOREACH_SAFE
      Src: /src/tmux/options.c:416,1
    - Dst: options_array_free
      Src: /src/tmux/options.c:417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct options_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 408
    functionDepth: 5
    functionLinenumber: 408
    functionLinenumberEnd: 418
    functionName: options_array_clear
    functionSourceFile: /src/tmux/options.c
    functionUses: 2
    functionsReached:
    - OPTIONS_IS_ARRAY
    - options_array_free
    - RB_FOREACH_SAFE
    linkageType: ''
    returnType: void
    signature: void options_array_clear(struct options_entry *o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OPTIONS_IS_ARRAY
      Src: /src/tmux/options.c:425,1
    - Dst: options_array_item
      Src: /src/tmux/options.c:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - o
    - idx
    argTypes:
    - struct options_entry*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 431
    functionName: options_array_get
    functionSourceFile: /src/tmux/options.c
    functionUses: 2
    functionsReached:
    - OPTIONS_IS_ARRAY
    - options_array_item
    linkageType: ''
    returnType: union options_value
    signature: 'union options_value *

      options_array_get(struct options_entry *o, u_int idx)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: OPTIONS_IS_ARRAY
      Src: /src/tmux/options.c:442,1
    - Dst: xstrdup
      Src: /src/tmux/options.c:444,1
    - Dst: options_array_item
      Src: /src/tmux/options.c:449,1
    - Dst: options_array_free
      Src: /src/tmux/options.c:451,1
    - Dst: OPTIONS_IS_COMMAND
      Src: /src/tmux/options.c:455,1
    - Dst: cmd_parse_from_string
      Src: /src/tmux/options.c:456,1
    - Dst: free
      Src: /src/tmux/options.c:462,1
    - Dst: options_array_item
      Src: /src/tmux/options.c:468,1
    - Dst: options_array_new
      Src: /src/tmux/options.c:470,1
    - Dst: options_value_free
      Src: /src/tmux/options.c:472,1
    - Dst: OPTIONS_IS_STRING
      Src: /src/tmux/options.c:477,1
    - Dst: options_array_item
      Src: /src/tmux/options.c:478,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:480,1
    - Dst: xstrdup::xstrdup
      Src: /src/tmux/options.c:482,1
    - Dst: options_array_new
      Src: /src/tmux/options.c:484,1
    - Dst: options_value_free
      Src: /src/tmux/options.c:486,1
    - Dst: colour_fromstring
      Src: /src/tmux/options.c:492,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:493,1
    - Dst: options_array_item
      Src: /src/tmux/options.c:496,1
    - Dst: options_array_new
      Src: /src/tmux/options.c:498,1
    - Dst: options_value_free
      Src: /src/tmux/options.c:500,1
    - Dst: xstrdup
      Src: /src/tmux/options.c:506,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 5
    argNames:
    - o
    - idx
    - value
    - append
    - cause
    argTypes:
    - struct options_entry*
    - u_int
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 433
    functionDepth: 5
    functionLinenumber: 433
    functionLinenumberEnd: 508
    functionName: options_array_set
    functionSourceFile: /src/tmux/options.c
    functionUses: 3
    functionsReached:
    - OPTIONS_IS_STRING
    - xasprintf
    - options_array_new
    - OPTIONS_IS_COMMAND
    - free
    - colour_fromstring
    - options_value_free
    - cmd_parse_from_string
    - OPTIONS_IS_ARRAY
    - options_array_free
    - xstrdup
    - options_array_item
    - xstrdup::xstrdup
    linkageType: ''
    returnType: int
    signature: "int options_array_set(struct options_entry *o, u_int idx, const char
      *value,\n    int append, char **cause)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: options_array_item
      Src: /src/tmux/options.c:524,1
    - Dst: options_array_set
      Src: /src/tmux/options.c:527,1
    - Dst: xstrdup
      Src: /src/tmux/options.c:532,1
    - Dst: strsep
      Src: /src/tmux/options.c:533,1
    - Dst: options_array_item
      Src: /src/tmux/options.c:537,1
    - Dst: options_array_set
      Src: /src/tmux/options.c:542,1
    - Dst: free
      Src: /src/tmux/options.c:543,1
    - Dst: free
      Src: /src/tmux/options.c:547,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 3
    argNames:
    - o
    - s
    - cause
    argTypes:
    - struct options_entry*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 510
    functionDepth: 6
    functionLinenumber: 510
    functionLinenumberEnd: 549
    functionName: options_array_assign
    functionSourceFile: /src/tmux/options.c
    functionUses: 2
    functionsReached:
    - options_array_set
    - strsep
    - free
    - xstrdup
    - options_array_item
    linkageType: ''
    returnType: int
    signature: int options_array_assign(struct options_entry *o, const char *s, char
      **cause)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPTIONS_IS_ARRAY
      Src: /src/tmux/options.c:554,1
    - Dst: RB_MIN
      Src: /src/tmux/options.c:556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct options_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 557
    functionName: options_array_first
    functionSourceFile: /src/tmux/options.c
    functionUses: 7
    functionsReached:
    - OPTIONS_IS_ARRAY
    - RB_MIN
    linkageType: ''
    returnType: struct options_array_item
    signature: 'struct options_array_item *

      options_array_first(struct options_entry *o)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_NEXT
      Src: /src/tmux/options.c:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - struct options_array_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 563
    functionName: options_array_next
    functionSourceFile: /src/tmux/options.c
    functionUses: 7
    functionsReached:
    - RB_NEXT
    linkageType: ''
    returnType: struct options_array_item
    signature: 'struct options_array_item *

      options_array_next(struct options_array_item *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - struct options_array_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 569
    functionName: options_array_item_index
    functionSourceFile: /src/tmux/options.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: u_int
    signature: u_int options_array_item_index(struct options_array_item *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - struct options_array_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 575
    functionName: options_array_item_value
    functionSourceFile: /src/tmux/options.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: union options_value
    signature: 'union options_value *

      options_array_item_value(struct options_array_item *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPTIONS_IS_ARRAY
      Src: /src/tmux/options.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct options_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 581
    functionName: options_is_array
    functionSourceFile: /src/tmux/options.c
    functionUses: 3
    functionsReached:
    - OPTIONS_IS_ARRAY
    linkageType: ''
    returnType: int
    signature: int options_is_array(struct options_entry *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPTIONS_IS_STRING
      Src: /src/tmux/options.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - struct options_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 587
    functionName: options_is_string
    functionSourceFile: /src/tmux/options.c
    functionUses: 1
    functionsReached:
    - OPTIONS_IS_STRING
    linkageType: ''
    returnType: int
    signature: int options_is_string(struct options_entry *o)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OPTIONS_IS_ARRAY
      Src: /src/tmux/options.c:597,1
    - Dst: RB_FOREACH
      Src: /src/tmux/options.c:599,1
    - Dst: options_value_to_string
      Src: /src/tmux/options.c:600,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:605,1
    - Dst: free
      Src: /src/tmux/options.c:606,1
    - Dst: free
      Src: /src/tmux/options.c:607,1
    - Dst: xstrdup
      Src: /src/tmux/options.c:612,1
    - Dst: options_array_item
      Src: /src/tmux/options.c:615,1
    - Dst: xstrdup
      Src: /src/tmux/options.c:617,1
    - Dst: options_value_to_string
      Src: /src/tmux/options.c:618,1
    - Dst: options_value_to_string
      Src: /src/tmux/options.c:620,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - o
    - idx
    - numeric
    argTypes:
    - struct options_entry*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 589
    functionDepth: 4
    functionLinenumber: 589
    functionLinenumberEnd: 621
    functionName: options_to_string
    functionSourceFile: /src/tmux/options.c
    functionUses: 5
    functionsReached:
    - options_value_to_string
    - xasprintf
    - RB_FOREACH
    - free
    - OPTIONS_IS_ARRAY
    - xstrdup
    - options_array_item
    linkageType: ''
    returnType: char
    signature: 'char *

      options_to_string(struct options_entry *o, int idx, int numeric)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/options.c:630,1
    - Dst: strchr
      Src: /src/tmux/options.c:631,1
    - Dst: strchr
      Src: /src/tmux/options.c:635,1
    - Dst: isdigit
      Src: /src/tmux/options.c:636,1
    - Dst: free
      Src: /src/tmux/options.c:637,1
    - Dst: sscanf
      Src: /src/tmux/options.c:640,1
    - Dst: free
      Src: /src/tmux/options.c:641,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - name
    - idx
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 623
    functionDepth: 2
    functionLinenumber: 623
    functionLinenumberEnd: 646
    functionName: options_parse
    functionSourceFile: /src/tmux/options.c
    functionUses: 0
    functionsReached:
    - strchr
    - isdigit
    - sscanf
    - free
    - xstrdup
    linkageType: ''
    returnType: char
    signature: 'char *

      options_parse(const char *name, int *idx)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: options_parse
      Src: /src/tmux/options.c:654,1
    - Dst: options_get_only
      Src: /src/tmux/options.c:658,1
    - Dst: options_get
      Src: /src/tmux/options.c:660,1
    - Dst: free
      Src: /src/tmux/options.c:661,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - oo
    - s
    - idx
    - only
    argTypes:
    - struct options*
    - char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 648
    functionDepth: 3
    functionLinenumber: 648
    functionLinenumberEnd: 663
    functionName: options_parse_get
    functionSourceFile: /src/tmux/options.c
    functionUses: 0
    functionsReached:
    - options_get
    - options_parse
    - options_get_only
    - free
    linkageType: ''
    returnType: struct options_entry
    signature: 'struct options_entry *

      options_parse_get(struct options *oo, const char *s, int *idx, int only)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: options_parse
      Src: /src/tmux/options.c:673,1
    - Dst: options_map_name
      Src: /src/tmux/options.c:681,1
    - Dst: strlen
      Src: /src/tmux/options.c:682,1
    - Dst: strcmp
      Src: /src/tmux/options.c:686,1
    - Dst: strncmp
      Src: /src/tmux/options.c:690,1
    - Dst: free
      Src: /src/tmux/options.c:693,1
    - Dst: free
      Src: /src/tmux/options.c:699,1
    - Dst: xstrdup
      Src: /src/tmux/options.c:704,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - s
    - idx
    - ambiguous
    argTypes:
    - char*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 665
    functionDepth: 3
    functionLinenumber: 665
    functionLinenumberEnd: 705
    functionName: options_match
    functionSourceFile: /src/tmux/options.c
    functionUses: 2
    functionsReached:
    - strncmp
    - options_map_name
    - strcmp
    - options_parse
    - free
    - strlen
    - xstrdup
    linkageType: ''
    returnType: char
    signature: 'char *

      options_match(const char *s, int *idx, int *ambiguous)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: options_match
      Src: /src/tmux/options.c:714,1
    - Dst: options_get_only
      Src: /src/tmux/options.c:719,1
    - Dst: options_get
      Src: /src/tmux/options.c:721,1
    - Dst: free
      Src: /src/tmux/options.c:722,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - oo
    - s
    - idx
    - only
    - ambiguous
    argTypes:
    - struct options*
    - char*
    - int*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 707
    functionDepth: 4
    functionLinenumber: 707
    functionLinenumberEnd: 724
    functionName: options_match_get
    functionSourceFile: /src/tmux/options.c
    functionUses: 0
    functionsReached:
    - options_get
    - free
    - options_match
    - options_get_only
    linkageType: ''
    returnType: struct options_entry
    signature: "struct options_entry *\noptions_match_get(struct options *oo, const
      char *s, int *idx, int only,\n    int *ambiguous)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: options_get
      Src: /src/tmux/options.c:731,1
    - Dst: fatalx
      Src: /src/tmux/options.c:733,1
    - Dst: OPTIONS_IS_STRING
      Src: /src/tmux/options.c:734,1
    - Dst: fatalx
      Src: /src/tmux/options.c:735,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - oo
    - name
    argTypes:
    - struct options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 726
    functionDepth: 3
    functionLinenumber: 726
    functionLinenumberEnd: 737
    functionName: options_get_string
    functionSourceFile: /src/tmux/options.c
    functionUses: 23
    functionsReached:
    - OPTIONS_IS_STRING
    - fatalx
    - options_get
    linkageType: ''
    returnType: char
    signature: 'char *

      options_get_string(struct options *oo, const char *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: options_get
      Src: /src/tmux/options.c:744,1
    - Dst: fatalx
      Src: /src/tmux/options.c:746,1
    - Dst: OPTIONS_IS_NUMBER
      Src: /src/tmux/options.c:747,1
    - Dst: fatalx
      Src: /src/tmux/options.c:748,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - oo
    - name
    argTypes:
    - struct options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 739
    functionDepth: 3
    functionLinenumber: 739
    functionLinenumberEnd: 750
    functionName: options_get_number
    functionSourceFile: /src/tmux/options.c
    functionUses: 76
    functionsReached:
    - fatalx
    - options_get
    - OPTIONS_IS_NUMBER
    linkageType: ''
    returnType: long long
    signature: long long options_get_number(struct options *oo, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: options_get
      Src: /src/tmux/options.c:757,1
    - Dst: fatalx
      Src: /src/tmux/options.c:759,1
    - Dst: OPTIONS_IS_COMMAND
      Src: /src/tmux/options.c:760,1
    - Dst: fatalx
      Src: /src/tmux/options.c:761,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - oo
    - name
    argTypes:
    - struct options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 752
    functionDepth: 3
    functionLinenumber: 752
    functionLinenumberEnd: 763
    functionName: options_get_command
    functionSourceFile: /src/tmux/options.c
    functionUses: 0
    functionsReached:
    - OPTIONS_IS_COMMAND
    - fatalx
    - options_get
    linkageType: ''
    returnType: struct cmd_list
    signature: 'struct cmd_list *

      options_get_command(struct options *oo, const char *name)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/tmux/options.c:774,1
    - Dst: xvasprintf
      Src: /src/tmux/options.c:775,1
    - Dst: va_end
      Src: /src/tmux/options.c:776,1
    - Dst: options_get_only
      Src: /src/tmux/options.c:778,1
    - Dst: OPTIONS_IS_STRING
      Src: /src/tmux/options.c:779,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:785,1
    - Dst: free
      Src: /src/tmux/options.c:786,1
    - Dst: options_add
      Src: /src/tmux/options.c:790,1
    - Dst: options_default
      Src: /src/tmux/options.c:792,1
    - Dst: options_parent_table_entry
      Src: /src/tmux/options.c:792,1
    - Dst: OPTIONS_IS_STRING
      Src: /src/tmux/options.c:797,1
    - Dst: fatalx
      Src: /src/tmux/options.c:798,1
    - Dst: free
      Src: /src/tmux/options.c:799,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - oo
    - name
    - append
    - fmt
    argTypes:
    - struct options*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 765
    functionDepth: 4
    functionLinenumber: 765
    functionLinenumberEnd: 803
    functionName: options_set_string
    functionSourceFile: /src/tmux/options.c
    functionUses: 4
    functionsReached:
    - OPTIONS_IS_STRING
    - xasprintf
    - fatalx
    - options_get_only
    - options_add
    - xvasprintf
    - free
    - options_default
    - va_end
    - va_start
    - options_parent_table_entry
    linkageType: ''
    returnType: struct options_entry
    signature: "struct options_entry *\noptions_set_string(struct options *oo, const
      char *name, int append,\n    const char *fmt, ...)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fatalx
      Src: /src/tmux/options.c:811,1
    - Dst: options_get_only
      Src: /src/tmux/options.c:813,1
    - Dst: options_default
      Src: /src/tmux/options.c:815,1
    - Dst: options_parent_table_entry
      Src: /src/tmux/options.c:815,1
    - Dst: OPTIONS_IS_NUMBER
      Src: /src/tmux/options.c:820,1
    - Dst: fatalx
      Src: /src/tmux/options.c:821,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - oo
    - name
    - value
    argTypes:
    - struct options*
    - char*
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 805
    functionDepth: 4
    functionLinenumber: 805
    functionLinenumberEnd: 824
    functionName: options_set_number
    functionSourceFile: /src/tmux/options.c
    functionUses: 8
    functionsReached:
    - fatalx
    - options_get_only
    - options_default
    - options_parent_table_entry
    - OPTIONS_IS_NUMBER
    linkageType: ''
    returnType: struct options_entry
    signature: 'struct options_entry *

      options_set_number(struct options *oo, const char *name, long long value)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fatalx
      Src: /src/tmux/options.c:833,1
    - Dst: options_get_only
      Src: /src/tmux/options.c:835,1
    - Dst: options_default
      Src: /src/tmux/options.c:837,1
    - Dst: options_parent_table_entry
      Src: /src/tmux/options.c:837,1
    - Dst: OPTIONS_IS_COMMAND
      Src: /src/tmux/options.c:842,1
    - Dst: fatalx
      Src: /src/tmux/options.c:843,1
    - Dst: cmd_list_free
      Src: /src/tmux/options.c:845,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - oo
    - name
    - value
    argTypes:
    - struct options*
    - char*
    - struct cmd_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 826
    functionDepth: 4
    functionLinenumber: 826
    functionLinenumberEnd: 848
    functionName: options_set_command
    functionSourceFile: /src/tmux/options.c
    functionUses: 0
    functionsReached:
    - cmd_list_free
    - fatalx
    - options_get_only
    - OPTIONS_IS_COMMAND
    - options_default
    - options_parent_table_entry
    linkageType: ''
    returnType: struct options_entry
    signature: "struct options_entry *\noptions_set_command(struct options *oo, const
      char *name,\n    struct cmd_list *value)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: args_get
      Src: /src/tmux/options.c:858,1
    - Dst: options_scope_from_flags
      Src: /src/tmux/options.c:863,1
    - Dst: strcmp
      Src: /src/tmux/options.c:866,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:870,1
    - Dst: args_has
      Src: /src/tmux/options.c:879,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:883,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:885,1
    - Dst: args_has
      Src: /src/tmux/options.c:892,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:894,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:896,1
    - Dst: args_has
      Src: /src/tmux/options.c:905,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:909,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:911,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 6
    argNames:
    - args
    - window
    - name
    - fs
    - oo
    - cause
    argTypes:
    - struct args*
    - int
    - char*
    - struct cmd_find_state*
    - struct options**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 850
    functionDepth: 2
    functionLinenumber: 850
    functionLinenumberEnd: 919
    functionName: options_scope_from_name
    functionSourceFile: /src/tmux/options.c
    functionUses: 2
    functionsReached:
    - xasprintf
    - strcmp
    - args_get
    - options_scope_from_flags
    - args_has
    linkageType: ''
    returnType: int
    signature: "int options_scope_from_name(struct args *args, int window,\n    const
      char *name, struct cmd_find_state *fs, struct options **oo,\n    char **cause)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: args_get
      Src: /src/tmux/options.c:928,1
    - Dst: args_has
      Src: /src/tmux/options.c:930,1
    - Dst: args_has
      Src: /src/tmux/options.c:935,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:938,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:940,1
    - Dst: args_has
      Src: /src/tmux/options.c:945,1
    - Dst: args_has
      Src: /src/tmux/options.c:946,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:952,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:954,1
    - Dst: args_has
      Src: /src/tmux/options.c:960,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:966,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:968,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 5
    argNames:
    - args
    - window
    - fs
    - oo
    - cause
    argTypes:
    - struct args*
    - int
    - struct cmd_find_state*
    - struct options**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 921
    functionDepth: 2
    functionLinenumber: 921
    functionLinenumberEnd: 974
    functionName: options_scope_from_flags
    functionSourceFile: /src/tmux/options.c
    functionUses: 2
    functionsReached:
    - xasprintf
    - args_get
    - args_has
    linkageType: ''
    returnType: int
    signature: "int options_scope_from_flags(struct args *args, int window,\n    struct
      cmd_find_state *fs, struct options **oo, char **cause)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: options_get
      Src: /src/tmux/options.c:984,1
    - Dst: OPTIONS_IS_STRING
      Src: /src/tmux/options.c:985,1
    - Dst: log_debug
      Src: /src/tmux/options.c:991,1
    - Dst: style_set
      Src: /src/tmux/options.c:993,1
    - Dst: strstr
      Src: /src/tmux/options.c:994,1
    - Dst: format_expand
      Src: /src/tmux/options.c:997,1
    - Dst: style_parse
      Src: /src/tmux/options.c:998,1
    - Dst: free
      Src: /src/tmux/options.c:999,1
    - Dst: free
      Src: /src/tmux/options.c:1002,1
    - Dst: style_parse
      Src: /src/tmux/options.c:1004,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - oo
    - name
    - ft
    argTypes:
    - struct options*
    - char*
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 976
    functionDepth: 3
    functionLinenumber: 976
    functionLinenumberEnd: 1008
    functionName: options_string_to_style
    functionSourceFile: /src/tmux/options.c
    functionUses: 0
    functionsReached:
    - OPTIONS_IS_STRING
    - style_set
    - free
    - strstr
    - log_debug
    - style_parse
    - options_get
    - format_expand
    linkageType: ''
    returnType: struct style
    signature: "struct style *\noptions_string_to_style(struct options *oo, const
      char *name,\n    struct format_tree *ft)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/options.c:1018,1
    - Dst: checkshell
      Src: /src/tmux/options.c:1018,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:1019,1
    - Dst: fnmatch
      Src: /src/tmux/options.c:1022,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:1023,1
    - Dst: strstr
      Src: /src/tmux/options.c:1027,1
    - Dst: style_parse
      Src: /src/tmux/options.c:1028,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:1029,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - oe
    - value
    - cause
    argTypes:
    - struct options_table_entry*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1010
    functionDepth: 2
    functionLinenumber: 1010
    functionLinenumberEnd: 1033
    functionName: options_from_string_check
    functionSourceFile: /src/tmux/options.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - strcmp
    - checkshell
    - strstr
    - fnmatch
    - style_parse
    linkageType: ''
    returnType: int
    signature: "int options_from_string_check(const struct options_table_entry *oe,\n
      \   const char *value, char **cause)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/options.c:1042,1
    - Dst: strcmp
      Src: /src/tmux/options.c:1043,1
    - Dst: strcasecmp
      Src: /src/tmux/options.c:1044,1
    - Dst: strcasecmp
      Src: /src/tmux/options.c:1045,1
    - Dst: strcmp
      Src: /src/tmux/options.c:1047,1
    - Dst: strcasecmp
      Src: /src/tmux/options.c:1048,1
    - Dst: strcasecmp
      Src: /src/tmux/options.c:1049,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:1052,1
    - Dst: options_set_number
      Src: /src/tmux/options.c:1055,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 4
    argNames:
    - oo
    - name
    - value
    - cause
    argTypes:
    - struct options*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1035
    functionDepth: 5
    functionLinenumber: 1035
    functionLinenumberEnd: 1057
    functionName: options_from_string_flag
    functionSourceFile: /src/tmux/options.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - strcasecmp
    - strcmp
    - options_set_number
    - options_get_number
    linkageType: ''
    returnType: int
    signature: "int options_from_string_flag(struct options *oo, const char *name,\n
      \   const char *value, char **cause)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/options.c:1067,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:1072,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - oe
    - value
    - cause
    argTypes:
    - struct options_table_entry*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1059
    functionDepth: 2
    functionLinenumber: 1059
    functionLinenumberEnd: 1076
    functionName: options_find_choice
    functionSourceFile: /src/tmux/options.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int options_find_choice(const struct options_table_entry *oe, const
      char *value,\n    char **cause)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/options.c:1085,1
    - Dst: options_find_choice
      Src: /src/tmux/options.c:1089,1
    - Dst: options_set_number
      Src: /src/tmux/options.c:1093,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - oe
    - oo
    - name
    - value
    - cause
    argTypes:
    - struct options_table_entry*
    - struct options*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1078
    functionDepth: 5
    functionLinenumber: 1078
    functionLinenumberEnd: 1095
    functionName: options_from_string_choice
    functionSourceFile: /src/tmux/options.c
    functionUses: 0
    functionsReached:
    - options_find_choice
    - options_get_number
    - options_set_number
    linkageType: ''
    returnType: int
    signature: "int options_from_string_choice(const struct options_table_entry *oe,\n
      \   struct options *oo, const char *name, const char *value, char **cause)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/tmux/options.c:1112,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:1118,1
    - Dst: xstrdup
      Src: /src/tmux/options.c:1126,1
    - Dst: options_get_string
      Src: /src/tmux/options.c:1126,1
    - Dst: options_set_string
      Src: /src/tmux/options.c:1127,1
    - Dst: options_get_string::options_get_string
      Src: /src/tmux/options.c:1129,1
    - Dst: options_from_string_check
      Src: /src/tmux/options.c:1130,1
    - Dst: cause::cause
      Src: /src/tmux/options.c:1130,1
    - Dst: options_set_string
      Src: /src/tmux/options.c:1131,1
    - Dst: free
      Src: /src/tmux/options.c:1132,1
    - Dst: free
      Src: /src/tmux/options.c:1135,1
    - Dst: strtonum
      Src: /src/tmux/options.c:1138,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:1140,1
    - Dst: options_set_number
      Src: /src/tmux/options.c:1143,1
    - Dst: key_string_lookup_string
      Src: /src/tmux/options.c:1146,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:1148,1
    - Dst: options_set_number
      Src: /src/tmux/options.c:1151,1
    - Dst: colour_fromstring
      Src: /src/tmux/options.c:1154,1
    - Dst: xasprintf
      Src: /src/tmux/options.c:1155,1
    - Dst: options_set_number
      Src: /src/tmux/options.c:1158,1
    - Dst: options_from_string_flag
      Src: /src/tmux/options.c:1161,1
    - Dst: options_from_string_choice
      Src: /src/tmux/options.c:1163,1
    - Dst: cmd_parse_from_string
      Src: /src/tmux/options.c:1165,1
    - Dst: options_set_command
      Src: /src/tmux/options.c:1171,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 66
    argCount: 6
    argNames:
    - oo
    - oe
    - name
    - value
    - append
    - cause
    argTypes:
    - struct options*
    - struct options_table_entry*
    - char*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1097
    functionDepth: 6
    functionLinenumber: 1097
    functionLinenumberEnd: 1177
    functionName: options_from_string
    functionSourceFile: /src/tmux/options.c
    functionUses: 2
    functionsReached:
    - options_from_string_check
    - xasprintf
    - cause::cause
    - strtonum
    - options_from_string_flag
    - options_get_string::options_get_string
    - free
    - options_set_number
    - colour_fromstring
    - options_set_string
    - options_from_string_choice
    - options_set_command
    - cmd_parse_from_string
    - xstrdup
    - options_get_string
    - key_string_lookup_string
    linkageType: ''
    returnType: int
    signature: "int options_from_string(struct options *oo, const struct options_table_entry
      *oe,\n    const char *name, const char *value, int append, char **cause)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/options.c:1187,1
    - Dst: strcmp
      Src: /src/tmux/options.c:1189,1
    - Dst: RB_FOREACH
      Src: /src/tmux/options.c:1190,1
    - Dst: options_get_number
      Src: /src/tmux/options.c:1193,1
    - Dst: strcmp
      Src: /src/tmux/options.c:1197,1
    - Dst: RB_FOREACH
      Src: /src/tmux/options.c:1198,1
    - Dst: window_pane_default_cursor
      Src: /src/tmux/options.c:1199,1
    - Dst: strcmp
      Src: /src/tmux/options.c:1201,1
    - Dst: RB_FOREACH
      Src: /src/tmux/options.c:1202,1
    - Dst: window_pane_default_cursor
      Src: /src/tmux/options.c:1203,1
    - Dst: strcmp
      Src: /src/tmux/options.c:1205,1
    - Dst: RB_FOREACH
      Src: /src/tmux/options.c:1206,1
    - Dst: window_set_fill_character
      Src: /src/tmux/options.c:1207,1
    - Dst: strcmp
      Src: /src/tmux/options.c:1209,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/options.c:1210,1
    - Dst: server_client_set_key_table
      Src: /src/tmux/options.c:1211,1
    - Dst: strcmp
      Src: /src/tmux/options.c:1213,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/options.c:1214,1
    - Dst: tty_keys_build
      Src: /src/tmux/options.c:1216,1
    - Dst: strcmp
      Src: /src/tmux/options.c:1219,1
    - Dst: strcmp
      Src: /src/tmux/options.c:1220,1
    - Dst: status_timer_start_all
      Src: /src/tmux/options.c:1221,1
    - Dst: strcmp
      Src: /src/tmux/options.c:1222,1
    - Dst: alerts_reset_all
      Src: /src/tmux/options.c:1223,1
    - Dst: strcmp
      Src: /src/tmux/options.c:1224,1
    - Dst: strcmp
      Src: /src/tmux/options.c:1225,1
    - Dst: RB_FOREACH
      Src: /src/tmux/options.c:1226,1
    - Dst: RB_FOREACH
      Src: /src/tmux/options.c:1230,1
    - Dst: strcmp
      Src: /src/tmux/options.c:1233,1
    - Dst: RB_FOREACH
      Src: /src/tmux/options.c:1234,1
    - Dst: colour_palette_from_option
      Src: /src/tmux/options.c:1235,1
    - Dst: strcmp
      Src: /src/tmux/options.c:1237,1
    - Dst: strcmp
      Src: /src/tmux/options.c:1238,1
    - Dst: strcmp
      Src: /src/tmux/options.c:1239,1
    - Dst: RB_FOREACH
      Src: /src/tmux/options.c:1240,1
    - Dst: layout_fix_panes
      Src: /src/tmux/options.c:1241,1
    - Dst: strcmp
      Src: /src/tmux/options.c:1243,1
    - Dst: RB_FOREACH
      Src: /src/tmux/options.c:1244,1
    - Dst: style_set_scrollbar_style_from_option
      Src: /src/tmux/options.c:1245,1
    - Dst: RB_FOREACH
      Src: /src/tmux/options.c:1248,1
    - Dst: layout_fix_panes
      Src: /src/tmux/options.c:1249,1
    - Dst: strcmp
      Src: /src/tmux/options.c:1251,1
    - Dst: utf8_update_width_cache
      Src: /src/tmux/options.c:1252,1
    - Dst: strcmp
      Src: /src/tmux/options.c:1253,1
    - Dst: input_set_buffer_size
      Src: /src/tmux/options.c:1254,1
    - Dst: options_get_number
      Src: /src/tmux/options.c:1254,1
    - Dst: strcmp
      Src: /src/tmux/options.c:1255,1
    - Dst: RB_FOREACH
      Src: /src/tmux/options.c:1256,1
    - Dst: session_update_history
      Src: /src/tmux/options.c:1257,1
    - Dst: RB_FOREACH
      Src: /src/tmux/options.c:1259,1
    - Dst: status_update_cache
      Src: /src/tmux/options.c:1260,1
    - Dst: recalculate_sizes
      Src: /src/tmux/options.c:1262,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/options.c:1263,1
    - Dst: server_redraw_client
      Src: /src/tmux/options.c:1265,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 72
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1179
    functionDepth: 4
    functionLinenumber: 1179
    functionLinenumberEnd: 1267
    functionName: options_push_changes
    functionSourceFile: /src/tmux/options.c
    functionUses: 5
    functionsReached:
    - colour_palette_from_option
    - server_client_set_key_table
    - recalculate_sizes
    - window_pane_default_cursor
    - RB_FOREACH
    - log_debug
    - window_set_fill_character
    - status_update_cache
    - style_set_scrollbar_style_from_option
    - status_timer_start_all
    - alerts_reset_all
    - layout_fix_panes
    - tty_keys_build
    - TAILQ_FOREACH
    - session_update_history
    - input_set_buffer_size
    - strcmp
    - utf8_update_width_cache
    - server_redraw_client
    - options_get_number
    linkageType: ''
    returnType: void
    signature: void options_push_changes(const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: options_default
      Src: /src/tmux/options.c:1279,1
    - Dst: options_remove
      Src: /src/tmux/options.c:1281,1
    - Dst: options_array_set
      Src: /src/tmux/options.c:1282,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - o
    - idx
    - cause
    argTypes:
    - struct options_entry*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1269
    functionDepth: 6
    functionLinenumber: 1269
    functionLinenumberEnd: 1285
    functionName: options_remove_or_default
    functionSourceFile: /src/tmux/options.c
    functionUses: 4
    functionsReached:
    - options_default
    - options_remove
    - options_array_set
    linkageType: ''
    returnType: int
    signature: int options_remove_or_default(struct options_entry *o, int idx, char
      **cause)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/cmd-refresh-client.c:53,1
    - Dst: strchr
      Src: /src/tmux/cmd-refresh-client.c:54,1
    - Dst: control_remove_sub
      Src: /src/tmux/cmd-refresh-client.c:55,1
    - Dst: strchr
      Src: /src/tmux/cmd-refresh-client.c:61,1
    - Dst: strcmp
      Src: /src/tmux/cmd-refresh-client.c:65,1
    - Dst: sscanf
      Src: /src/tmux/cmd-refresh-client.c:67,1
    - Dst: strcmp
      Src: /src/tmux/cmd-refresh-client.c:69,1
    - Dst: sscanf
      Src: /src/tmux/cmd-refresh-client.c:71,1
    - Dst: control_add_sub
      Src: /src/tmux/cmd-refresh-client.c:75,1
    - Dst: free
      Src: /src/tmux/cmd-refresh-client.c:78,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - tc
    - value
    argTypes:
    - struct client*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 79
    functionName: cmd_refresh_client_update_subscription
    functionSourceFile: /src/tmux/cmd-refresh-client.c
    functionUses: 0
    functionsReached:
    - control_add_sub
    - strcmp
    - strchr
    - control_remove_sub
    - free
    - sscanf
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void cmd_refresh_client_update_subscription(struct client *tc, const
      char *value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-refresh-client.c:84,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/cmd-refresh-client.c:85,1
    - Dst: args_get
      Src: /src/tmux/cmd-refresh-client.c:86,1
    - Dst: sscanf
      Src: /src/tmux/cmd-refresh-client.c:90,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-refresh-client.c:93,1
    - Dst: log_debug
      Src: /src/tmux/cmd-refresh-client.c:96,1
    - Dst: server_client_add_client_window
      Src: /src/tmux/cmd-refresh-client.c:98,1
    - Dst: recalculate_sizes_now
      Src: /src/tmux/cmd-refresh-client.c:102,1
    - Dst: sscanf
      Src: /src/tmux/cmd-refresh-client.c:105,1
    - Dst: server_client_get_client_window
      Src: /src/tmux/cmd-refresh-client.c:106,1
    - Dst: log_debug
      Src: /src/tmux/cmd-refresh-client.c:108,1
    - Dst: recalculate_sizes_now
      Src: /src/tmux/cmd-refresh-client.c:112,1
    - Dst: sscanf
      Src: /src/tmux/cmd-refresh-client.c:117,1
    - Dst: sscanf
      Src: /src/tmux/cmd-refresh-client.c:118,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-refresh-client.c:119,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-refresh-client.c:124,1
    - Dst: tty_set_size
      Src: /src/tmux/cmd-refresh-client.c:127,1
    - Dst: recalculate_sizes_now
      Src: /src/tmux/cmd-refresh-client.c:129,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 81
    functionDepth: 8
    functionLinenumber: 81
    functionLinenumberEnd: 131
    functionName: cmd_refresh_client_control_client_size
    functionSourceFile: /src/tmux/cmd-refresh-client.c
    functionUses: 0
    functionsReached:
    - cmdq_error
    - tty_set_size
    - cmd_get_args
    - server_client_get_client_window
    - server_client_add_client_window
    - sscanf
    - cmdq_get_target_client
    - args_get
    - recalculate_sizes_now
    - log_debug
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_refresh_client_control_client_size(struct cmd *self,
      struct cmdq_item *item)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/cmd-refresh-client.c:142,1
    - Dst: strchr
      Src: /src/tmux/cmd-refresh-client.c:143,1
    - Dst: sscanf
      Src: /src/tmux/cmd-refresh-client.c:147,1
    - Dst: window_pane_find_by_id
      Src: /src/tmux/cmd-refresh-client.c:149,1
    - Dst: strcmp
      Src: /src/tmux/cmd-refresh-client.c:153,1
    - Dst: control_set_pane_on
      Src: /src/tmux/cmd-refresh-client.c:154,1
    - Dst: strcmp
      Src: /src/tmux/cmd-refresh-client.c:155,1
    - Dst: control_set_pane_off
      Src: /src/tmux/cmd-refresh-client.c:156,1
    - Dst: strcmp
      Src: /src/tmux/cmd-refresh-client.c:157,1
    - Dst: control_continue_pane
      Src: /src/tmux/cmd-refresh-client.c:158,1
    - Dst: strcmp
      Src: /src/tmux/cmd-refresh-client.c:159,1
    - Dst: control_pause_pane
      Src: /src/tmux/cmd-refresh-client.c:160,1
    - Dst: free
      Src: /src/tmux/cmd-refresh-client.c:163,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - tc
    - value
    argTypes:
    - struct client*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 164
    functionName: cmd_refresh_client_update_offset
    functionSourceFile: /src/tmux/cmd-refresh-client.c
    functionUses: 0
    functionsReached:
    - control_set_pane_off
    - control_pause_pane
    - strcmp
    - strchr
    - free
    - sscanf
    - control_continue_pane
    - control_set_pane_on
    - window_pane_find_by_id
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void cmd_refresh_client_update_offset(struct client *tc, const char
      *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/cmd-refresh-client.c:176,1
    - Dst: strchr
      Src: /src/tmux/cmd-refresh-client.c:177,1
    - Dst: sscanf
      Src: /src/tmux/cmd-refresh-client.c:181,1
    - Dst: window_pane_find_by_id
      Src: /src/tmux/cmd-refresh-client.c:183,1
    - Dst: tty_keys_colours
      Src: /src/tmux/cmd-refresh-client.c:187,1
    - Dst: strlen
      Src: /src/tmux/cmd-refresh-client.c:187,1
    - Dst: free
      Src: /src/tmux/cmd-refresh-client.c:191,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - tty
    - value
    argTypes:
    - struct tty*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 192
    functionName: cmd_refresh_report
    functionSourceFile: /src/tmux/cmd-refresh-client.c
    functionUses: 0
    functionsReached:
    - tty_keys_colours
    - strchr
    - free
    - sscanf
    - window_pane_find_by_id
    - strlen
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void cmd_refresh_report(struct tty *tty, const char *value)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-refresh-client.c:197,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/cmd-refresh-client.c:198,1
    - Dst: args_has
      Src: /src/tmux/cmd-refresh-client.c:205,1
    - Dst: args_has
      Src: /src/tmux/cmd-refresh-client.c:206,1
    - Dst: args_has
      Src: /src/tmux/cmd-refresh-client.c:207,1
    - Dst: args_has
      Src: /src/tmux/cmd-refresh-client.c:208,1
    - Dst: args_has
      Src: /src/tmux/cmd-refresh-client.c:209,1
    - Dst: args_count
      Src: /src/tmux/cmd-refresh-client.c:211,1
    - Dst: strtonum
      Src: /src/tmux/cmd-refresh-client.c:214,1
    - Dst: args_string
      Src: /src/tmux/cmd-refresh-client.c:214,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-refresh-client.c:217,1
    - Dst: args_has
      Src: /src/tmux/cmd-refresh-client.c:222,1
    - Dst: args_has
      Src: /src/tmux/cmd-refresh-client.c:231,1
    - Dst: args_has
      Src: /src/tmux/cmd-refresh-client.c:236,1
    - Dst: args_has
      Src: /src/tmux/cmd-refresh-client.c:240,1
    - Dst: args_has
      Src: /src/tmux/cmd-refresh-client.c:245,1
    - Dst: tty_update_client_offset
      Src: /src/tmux/cmd-refresh-client.c:251,1
    - Dst: server_redraw_client
      Src: /src/tmux/cmd-refresh-client.c:252,1
    - Dst: args_has
      Src: /src/tmux/cmd-refresh-client.c:256,1
    - Dst: tty_clipboard_query
      Src: /src/tmux/cmd-refresh-client.c:257,1
    - Dst: args_has
      Src: /src/tmux/cmd-refresh-client.c:261,1
    - Dst: server_client_set_flags
      Src: /src/tmux/cmd-refresh-client.c:262,1
    - Dst: args_get
      Src: /src/tmux/cmd-refresh-client.c:262,1
    - Dst: args_has
      Src: /src/tmux/cmd-refresh-client.c:263,1
    - Dst: server_client_set_flags
      Src: /src/tmux/cmd-refresh-client.c:264,1
    - Dst: args_get
      Src: /src/tmux/cmd-refresh-client.c:264,1
    - Dst: args_has
      Src: /src/tmux/cmd-refresh-client.c:265,1
    - Dst: cmd_refresh_report
      Src: /src/tmux/cmd-refresh-client.c:266,1
    - Dst: args_get
      Src: /src/tmux/cmd-refresh-client.c:266,1
    - Dst: args_has
      Src: /src/tmux/cmd-refresh-client.c:268,1
    - Dst: args_first_value
      Src: /src/tmux/cmd-refresh-client.c:271,1
    - Dst: cmd_refresh_client_update_offset
      Src: /src/tmux/cmd-refresh-client.c:273,1
    - Dst: args_next_value
      Src: /src/tmux/cmd-refresh-client.c:274,1
    - Dst: args_has
      Src: /src/tmux/cmd-refresh-client.c:278,1
    - Dst: args_first_value
      Src: /src/tmux/cmd-refresh-client.c:281,1
    - Dst: cmd_refresh_client_update_subscription
      Src: /src/tmux/cmd-refresh-client.c:283,1
    - Dst: args_next_value
      Src: /src/tmux/cmd-refresh-client.c:284,1
    - Dst: args_has
      Src: /src/tmux/cmd-refresh-client.c:288,1
    - Dst: cmd_refresh_client_control_client_size
      Src: /src/tmux/cmd-refresh-client.c:291,1
    - Dst: args_has
      Src: /src/tmux/cmd-refresh-client.c:294,1
    - Dst: server_status_client
      Src: /src/tmux/cmd-refresh-client.c:296,1
    - Dst: server_redraw_client
      Src: /src/tmux/cmd-refresh-client.c:299,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-refresh-client.c:304,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 93
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 194
    functionDepth: 9
    functionLinenumber: 194
    functionLinenumberEnd: 306
    functionName: cmd_refresh_client_exec
    functionSourceFile: /src/tmux/cmd-refresh-client.c
    functionUses: 0
    functionsReached:
    - cmd_refresh_report
    - server_status_client
    - args_first_value
    - args_count
    - tty_clipboard_query
    - args_has
    - tty_update_client_offset
    - args_string
    - strtonum
    - cmd_refresh_client_update_offset
    - cmdq_get_target_client
    - args_get
    - cmd_refresh_client_update_subscription
    - server_client_set_flags
    - cmd_get_args
    - args_next_value
    - cmdq_error
    - server_redraw_client
    - cmd_refresh_client_control_client_size
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_refresh_client_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-send-keys.c:64,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/cmd-send-keys.c:65,1
    - Dst: args_has
      Src: /src/tmux/cmd-send-keys.c:74,1
    - Dst: xcalloc
      Src: /src/tmux/cmd-send-keys.c:77,1
    - Dst: memset
      Src: /src/tmux/cmd-send-keys.c:79,1
    - Dst: server_client_handle_key
      Src: /src/tmux/cmd-send-keys.c:80,1
    - Dst: free
      Src: /src/tmux/cmd-send-keys.c:81,1
    - Dst: free
      Src: /src/tmux/cmd-send-keys.c:82,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/cmd-send-keys.c:87,1
    - Dst: window_pane_key
      Src: /src/tmux/cmd-send-keys.c:89,1
    - Dst: key_bindings_get_table
      Src: /src/tmux/cmd-send-keys.c:93,1
    - Dst: struct window_mode_entry*::mode::key_table
      Src: /src/tmux/cmd-send-keys.c:93,1
    - Dst: key_bindings_get
      Src: /src/tmux/cmd-send-keys.c:95,1
    - Dst: key_bindings_dispatch
      Src: /src/tmux/cmd-send-keys.c:98,1
    - Dst: key_bindings_unref_table
      Src: /src/tmux/cmd-send-keys.c:99,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - item
    - after
    - args
    - key
    argTypes:
    - struct cmdq_item*
    - struct cmdq_item*
    - struct args*
    - key_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 60
    functionDepth: 5
    functionLinenumber: 60
    functionLinenumberEnd: 102
    functionName: cmd_send_keys_inject_key
    functionSourceFile: /src/tmux/cmd-send-keys.c
    functionUses: 0
    functionsReached:
    - key_bindings_unref_table
    - xcalloc
    - TAILQ_FIRST
    - key_bindings_get
    - server_client_handle_key
    - memset
    - window_pane_key
    - free
    - cmdq_get_target_client
    - key_bindings_dispatch
    - key_bindings_get_table
    - struct window_mode_entry*::mode::key_table
    - cmdq_get_target
    - args_has
    linkageType: ''
    returnType: struct cmdq_item
    signature: "struct cmdq_item *\ncmd_send_keys_inject_key(struct cmdq_item *item,
      struct cmdq_item *after,\n    struct args *args, key_code key)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: args_string
      Src: /src/tmux/cmd-send-keys.c:108,1
    - Dst: args_has
      Src: /src/tmux/cmd-send-keys.c:116,1
    - Dst: strtol
      Src: /src/tmux/cmd-send-keys.c:117,1
    - Dst: cmd_send_keys_inject_key
      Src: /src/tmux/cmd-send-keys.c:120,1
    - Dst: args_has
      Src: /src/tmux/cmd-send-keys.c:124,1
    - Dst: key_string_lookup_string
      Src: /src/tmux/cmd-send-keys.c:126,1
    - Dst: cmd_send_keys_inject_key
      Src: /src/tmux/cmd-send-keys.c:128,1
    - Dst: utf8_fromcstr
      Src: /src/tmux/cmd-send-keys.c:136,1
    - Dst: utf8_from_data
      Src: /src/tmux/cmd-send-keys.c:141,1
    - Dst: cmd_send_keys_inject_key
      Src: /src/tmux/cmd-send-keys.c:145,1
    - Dst: free
      Src: /src/tmux/cmd-send-keys.c:148,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 4
    argNames:
    - item
    - after
    - args
    - i
    argTypes:
    - struct cmdq_item*
    - struct cmdq_item*
    - struct args*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 104
    functionDepth: 6
    functionLinenumber: 104
    functionLinenumberEnd: 151
    functionName: cmd_send_keys_inject_string
    functionSourceFile: /src/tmux/cmd-send-keys.c
    functionUses: 0
    functionsReached:
    - utf8_fromcstr
    - args_string
    - free
    - strtol
    - utf8_from_data
    - cmd_send_keys_inject_key
    - args_has
    - key_string_lookup_string
    linkageType: ''
    returnType: struct cmdq_item
    signature: "struct cmdq_item *\ncmd_send_keys_inject_string(struct cmdq_item *item,
      struct cmdq_item *after,\n    struct args *args, int i)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-send-keys.c:156,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-send-keys.c:157,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/cmd-send-keys.c:158,1
    - Dst: cmdq_get_event
      Src: /src/tmux/cmd-send-keys.c:162,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/cmd-send-keys.c:164,1
    - Dst: args_count
      Src: /src/tmux/cmd-send-keys.c:168,1
    - Dst: args_has
      Src: /src/tmux/cmd-send-keys.c:171,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-send-keys.c:172,1
    - Dst: args_has
      Src: /src/tmux/cmd-send-keys.c:176,1
    - Dst: args_strtonum_and_expand
      Src: /src/tmux/cmd-send-keys.c:177,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-send-keys.c:180,1
    - Dst: free
      Src: /src/tmux/cmd-send-keys.c:181,1
    - Dst: args_has
      Src: /src/tmux/cmd-send-keys.c:184,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-send-keys.c:186,1
    - Dst: args_has
      Src: /src/tmux/cmd-send-keys.c:193,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-send-keys.c:195,1
    - Dst: struct window_mode_entry*::mode::command
      Src: /src/tmux/cmd-send-keys.c:200,1
    - Dst: args_has
      Src: /src/tmux/cmd-send-keys.c:204,1
    - Dst: cmd_mouse_pane
      Src: /src/tmux/cmd-send-keys.c:205,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-send-keys.c:207,1
    - Dst: window_pane_key
      Src: /src/tmux/cmd-send-keys.c:210,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-send-keys.c:214,1
    - Dst: args_has
      Src: /src/tmux/cmd-send-keys.c:215,1
    - Dst: options_get_number
      Src: /src/tmux/cmd-send-keys.c:216,1
    - Dst: options_get_number
      Src: /src/tmux/cmd-send-keys.c:218,1
    - Dst: cmd_send_keys_inject_key
      Src: /src/tmux/cmd-send-keys.c:219,1
    - Dst: args_has
      Src: /src/tmux/cmd-send-keys.c:223,1
    - Dst: colour_palette_clear
      Src: /src/tmux/cmd-send-keys.c:224,1
    - Dst: input_reset
      Src: /src/tmux/cmd-send-keys.c:225,1
    - Dst: args_has
      Src: /src/tmux/cmd-send-keys.c:230,1
    - Dst: args_has
      Src: /src/tmux/cmd-send-keys.c:230,1
    - Dst: cmd_send_keys_inject_key
      Src: /src/tmux/cmd-send-keys.c:233,1
    - Dst: cmd_send_keys_inject_string
      Src: /src/tmux/cmd-send-keys.c:239,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 64
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 153
    functionDepth: 7
    functionLinenumber: 153
    functionLinenumberEnd: 245
    functionName: cmd_send_keys_exec
    functionSourceFile: /src/tmux/cmd-send-keys.c
    functionUses: 0
    functionsReached:
    - args_count
    - args_has
    - window_pane_key
    - cmdq_get_target_client
    - cmd_mouse_pane
    - input_reset
    - args_strtonum_and_expand
    - struct window_mode_entry*::mode::command
    - cmd_get_args
    - TAILQ_FIRST
    - cmd_get_entry
    - cmd_send_keys_inject_string
    - cmdq_get_target
    - colour_palette_clear
    - cmdq_get_event
    - cmdq_error
    - free
    - options_get_number
    - cmd_send_keys_inject_key
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_send_keys_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-move-window.c:62,1
    - Dst: cmdq_get_source
      Src: /src/tmux/cmd-move-window.c:63,1
    - Dst: args_get
      Src: /src/tmux/cmd-move-window.c:65,1
    - Dst: args_has
      Src: /src/tmux/cmd-move-window.c:72,1
    - Dst: cmd_find_target
      Src: /src/tmux/cmd-move-window.c:73,1
    - Dst: session_renumber_windows
      Src: /src/tmux/cmd-move-window.c:77,1
    - Dst: recalculate_sizes
      Src: /src/tmux/cmd-move-window.c:78,1
    - Dst: server_status_session
      Src: /src/tmux/cmd-move-window.c:79,1
    - Dst: cmd_find_target
      Src: /src/tmux/cmd-move-window.c:83,1
    - Dst: args_has
      Src: /src/tmux/cmd-move-window.c:89,1
    - Dst: args_has
      Src: /src/tmux/cmd-move-window.c:90,1
    - Dst: args_has
      Src: /src/tmux/cmd-move-window.c:91,1
    - Dst: args_has
      Src: /src/tmux/cmd-move-window.c:93,1
    - Dst: args_has
      Src: /src/tmux/cmd-move-window.c:94,1
    - Dst: winlink_shuffle_up
      Src: /src/tmux/cmd-move-window.c:96,1
    - Dst: winlink_shuffle_up
      Src: /src/tmux/cmd-move-window.c:98,1
    - Dst: server_link_window
      Src: /src/tmux/cmd-move-window.c:103,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-move-window.c:104,1
    - Dst: free
      Src: /src/tmux/cmd-move-window.c:105,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-move-window.c:108,1
    - Dst: server_unlink_window
      Src: /src/tmux/cmd-move-window.c:109,1
    - Dst: options_get_number
      Src: /src/tmux/cmd-move-window.c:116,1
    - Dst: session_renumber_windows
      Src: /src/tmux/cmd-move-window.c:117,1
    - Dst: recalculate_sizes
      Src: /src/tmux/cmd-move-window.c:119,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 59
    functionDepth: 7
    functionLinenumber: 59
    functionLinenumberEnd: 122
    functionName: cmd_move_window_exec
    functionSourceFile: /src/tmux/cmd-move-window.c
    functionUses: 0
    functionsReached:
    - cmd_find_target
    - winlink_shuffle_up
    - cmdq_error
    - server_link_window
    - recalculate_sizes
    - cmd_get_args
    - cmd_get_entry
    - server_unlink_window
    - free
    - server_status_session
    - args_get
    - session_renumber_windows
    - cmdq_get_source
    - options_get_number
    - args_has
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_move_window_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_LAST
      Src: /src/tmux/layout-custom.c:42,1
    - Dst: layout_find_bottomright
      Src: /src/tmux/layout-custom.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - lc
    argTypes:
    - struct layout_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: layout_find_bottomright
    functionSourceFile: /src/tmux/layout-custom.c
    functionUses: 1
    functionsReached:
    - TAILQ_LAST
    - layout_find_bottomright
    linkageType: ''
    returnType: struct layout_cell
    signature: 'struct layout_cell *

      layout_find_bottomright(struct layout_cell *lc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - layout
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 58
    functionName: layout_checksum
    functionSourceFile: /src/tmux/layout-custom.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_short
    signature: u_short layout_checksum(const char *layout)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: layout_append
      Src: /src/tmux/layout-custom.c:69,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout-custom.c:72,1
    - Dst: strlcat
      Src: /src/tmux/layout-custom.c:76,1
    - Dst: layout_append
      Src: /src/tmux/layout-custom.c:79,1
    - Dst: strlcat
      Src: /src/tmux/layout-custom.c:81,1
    - Dst: strlen
      Src: /src/tmux/layout-custom.c:84,1
    - Dst: xasprintf
      Src: /src/tmux/layout-custom.c:86,1
    - Dst: layout_checksum
      Src: /src/tmux/layout-custom.c:86,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - w
    - root
    argTypes:
    - struct window*
    - struct layout_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 88
    functionName: layout_dump
    functionSourceFile: /src/tmux/layout-custom.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - TAILQ_FOREACH
    - layout_append
    - strlcat
    - layout_checksum
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      layout_dump(struct window *w, struct layout_cell *root)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/tmux/layout-custom.c:104,1
    - Dst: xsnprintf
      Src: /src/tmux/layout-custom.c:107,1
    - Dst: strlcat
      Src: /src/tmux/layout-custom.c:112,1
    - Dst: strlcat
      Src: /src/tmux/layout-custom.c:120,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout-custom.c:122,1
    - Dst: layout_append
      Src: /src/tmux/layout-custom.c:123,1
    - Dst: strlcat
      Src: /src/tmux/layout-custom.c:125,1
    - Dst: strlen
      Src: /src/tmux/layout-custom.c:128,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - lc
    - buf
    - len
    argTypes:
    - struct layout_cell*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 136
    functionName: layout_append
    functionSourceFile: /src/tmux/layout-custom.c
    functionUses: 2
    functionsReached:
    - TAILQ_FOREACH
    - layout_append
    - strlcat
    - xsnprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int layout_append(struct layout_cell *lc, char *buf, size_t len)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout-custom.c:150,1
    - Dst: layout_check
      Src: /src/tmux/layout-custom.c:153,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout-custom.c:161,1
    - Dst: layout_check
      Src: /src/tmux/layout-custom.c:164,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - lc
    argTypes:
    - struct layout_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 173
    functionName: layout_check
    functionSourceFile: /src/tmux/layout-custom.c
    functionUses: 1
    functionsReached:
    - layout_check
    - TAILQ_FOREACH
    linkageType: ''
    returnType: int
    signature: int layout_check(struct layout_cell *lc)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/tmux/layout-custom.c:186,1
    - Dst: xstrdup
      Src: /src/tmux/layout-custom.c:187,1
    - Dst: layout_checksum
      Src: /src/tmux/layout-custom.c:191,1
    - Dst: xstrdup
      Src: /src/tmux/layout-custom.c:192,1
    - Dst: layout_construct
      Src: /src/tmux/layout-custom.c:197,1
    - Dst: xstrdup
      Src: /src/tmux/layout-custom.c:198,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout-custom.c:203,1
    - Dst: layout_set_size
      Src: /src/tmux/layout-custom.c:205,1
    - Dst: xstrdup
      Src: /src/tmux/layout-custom.c:208,1
    - Dst: window_count_panes
      Src: /src/tmux/layout-custom.c:213,1
    - Dst: layout_count_cells
      Src: /src/tmux/layout-custom.c:215,1
    - Dst: layout_count_cells
      Src: /src/tmux/layout-custom.c:217,1
    - Dst: xasprintf
      Src: /src/tmux/layout-custom.c:219,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/layout-custom.c:230,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/layout-custom.c:231,1
    - Dst: layout_destroy_cell
      Src: /src/tmux/layout-custom.c:232,1
    - Dst: layout_find_bottomright
      Src: /src/tmux/layout-custom.c:234,1
    - Dst: layout_destroy_cell
      Src: /src/tmux/layout-custom.c:235,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout-custom.c:249,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout-custom.c:255,1
    - Dst: xstrdup
      Src: /src/tmux/layout-custom.c:261,1
    - Dst: layout_print_cell
      Src: /src/tmux/layout-custom.c:266,1
    - Dst: layout_check
      Src: /src/tmux/layout-custom.c:271,1
    - Dst: xstrdup
      Src: /src/tmux/layout-custom.c:272,1
    - Dst: window_resize
      Src: /src/tmux/layout-custom.c:278,1
    - Dst: layout_free_cell
      Src: /src/tmux/layout-custom.c:281,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/layout-custom.c:285,1
    - Dst: layout_assign
      Src: /src/tmux/layout-custom.c:287,1
    - Dst: layout_assign
      Src: /src/tmux/layout-custom.c:289,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/layout-custom.c:292,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/layout-custom.c:293,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/layout-custom.c:294,1
    - Dst: layout_fix_zindexes
      Src: /src/tmux/layout-custom.c:297,1
    - Dst: layout_fix_zindexes
      Src: /src/tmux/layout-custom.c:298,1
    - Dst: layout_fix_offsets
      Src: /src/tmux/layout-custom.c:301,1
    - Dst: layout_fix_panes
      Src: /src/tmux/layout-custom.c:302,1
    - Dst: recalculate_sizes
      Src: /src/tmux/layout-custom.c:303,1
    - Dst: layout_print_cell
      Src: /src/tmux/layout-custom.c:304,1
    - Dst: layout_free_cell
      Src: /src/tmux/layout-custom.c:307,1
    - Dst: notify_window
      Src: /src/tmux/layout-custom.c:309,1
    - Dst: layout_free_cell
      Src: /src/tmux/layout-custom.c:314,1
    - Dst: layout_free_cell
      Src: /src/tmux/layout-custom.c:315,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 102
    argCount: 3
    argNames:
    - w
    - layout
    - cause
    argTypes:
    - struct window*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 176
    functionDepth: 5
    functionLinenumber: 176
    functionLinenumberEnd: 317
    functionName: layout_parse
    functionSourceFile: /src/tmux/layout-custom.c
    functionUses: 0
    functionsReached:
    - layout_assign
    - layout_fix_offsets
    - layout_destroy_cell
    - notify_window
    - recalculate_sizes
    - layout_checksum
    - sscanf
    - layout_create_cell
    - xstrdup
    - layout_find_bottomright
    - window_count_panes
    - TAILQ_FIRST
    - layout_construct
    - layout_free_cell
    - layout_count_cells
    - TAILQ_REMOVE
    - xasprintf
    - layout_fix_panes
    - layout_print_cell
    - layout_fix_zindexes
    - TAILQ_FOREACH
    - layout_set_size
    - TAILQ_EMPTY
    - window_resize
    - layout_check
    linkageType: ''
    returnType: int
    signature: int layout_parse(struct window *w, const char *layout, char **cause)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: layout_make_leaf
      Src: /src/tmux/layout-custom.c:330,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/layout-custom.c:332,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/layout-custom.c:337,1
    - Dst: layout_assign
      Src: /src/tmux/layout-custom.c:338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - wp
    - lc
    - flags
    argTypes:
    - struct window_pane**
    - struct layout_cell*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 341
    functionName: layout_assign
    functionSourceFile: /src/tmux/layout-custom.c
    functionUses: 2
    functionsReached:
    - TAILQ_NEXT
    - layout_assign
    - layout_make_leaf
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void layout_assign(struct window_pane **wp, struct layout_cell *lc,
      int flags)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/tmux/layout-custom.c:351,1
    - Dst: sscanf
      Src: /src/tmux/layout-custom.c:353,1
    - Dst: isdigit
      Src: /src/tmux/layout-custom.c:356,1
    - Dst: isdigit
      Src: /src/tmux/layout-custom.c:361,1
    - Dst: isdigit
      Src: /src/tmux/layout-custom.c:366,1
    - Dst: isdigit
      Src: /src/tmux/layout-custom.c:371,1
    - Dst: isdigit
      Src: /src/tmux/layout-custom.c:376,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout-custom.c:382,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - lcparent
    - layout
    argTypes:
    - struct layout_cell*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 389
    functionName: layout_construct_cell
    functionSourceFile: /src/tmux/layout-custom.c
    functionUses: 0
    functionsReached:
    - isdigit
    - sscanf
    - layout_create_cell
    linkageType: ''
    returnType: struct layout_cell
    signature: 'struct layout_cell *

      layout_construct_cell(struct layout_cell *lcparent, const char **layout)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: layout_construct_cell
      Src: /src/tmux/layout-custom.c:404,1
    - Dst: layout_create_cell
      Src: /src/tmux/layout-custom.c:421,1
    - Dst: layout_construct
      Src: /src/tmux/layout-custom.c:430,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/layout-custom.c:432,1
    - Dst: layout_free_cell
      Src: /src/tmux/layout-custom.c:458,1
    - Dst: layout_free_cell
      Src: /src/tmux/layout-custom.c:459,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 4
    argNames:
    - lcparent
    - layout
    - lc
    - floating_lc
    argTypes:
    - struct layout_cell*
    - char**
    - struct layout_cell**
    - struct layout_cell**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 461
    functionName: layout_construct
    functionSourceFile: /src/tmux/layout-custom.c
    functionUses: 2
    functionsReached:
    - layout_construct
    - layout_free_cell
    - layout_construct_cell
    - layout_create_cell
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: int
    signature: "int layout_construct(struct layout_cell *lcparent, const char **layout,\n
      \   struct layout_cell **lc, struct layout_cell **floating_lc)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get_current
      Src: /src/tmux/cmd-attach-session.c:54,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-attach-session.c:58,1
    - Dst: RB_EMPTY
      Src: /src/tmux/cmd-attach-session.c:66,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-attach-session.c:67,1
    - Dst: server_client_check_nested
      Src: /src/tmux/cmd-attach-session.c:74,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-attach-session.c:75,1
    - Dst: strcspn
      Src: /src/tmux/cmd-attach-session.c:80,1
    - Dst: cmd_find_target
      Src: /src/tmux/cmd-attach-session.c:87,1
    - Dst: window_set_active_pane
      Src: /src/tmux/cmd-attach-session.c:95,1
    - Dst: session_set_current
      Src: /src/tmux/cmd-attach-session.c:96,1
    - Dst: cmd_find_from_winlink_pane
      Src: /src/tmux/cmd-attach-session.c:98,1
    - Dst: cmd_find_from_winlink
      Src: /src/tmux/cmd-attach-session.c:100,1
    - Dst: format_single
      Src: /src/tmux/cmd-attach-session.c:104,1
    - Dst: free
      Src: /src/tmux/cmd-attach-session.c:105,1
    - Dst: server_client_set_flags
      Src: /src/tmux/cmd-attach-session.c:109,1
    - Dst: proc_get_peer_uid
      Src: /src/tmux/cmd-attach-session.c:112,1
    - Dst: getuid
      Src: /src/tmux/cmd-attach-session.c:113,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-attach-session.c:114,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/cmd-attach-session.c:128,1
    - Dst: server_client_detach
      Src: /src/tmux/cmd-attach-session.c:131,1
    - Dst: environ_update
      Src: /src/tmux/cmd-attach-session.c:135,1
    - Dst: server_client_set_session
      Src: /src/tmux/cmd-attach-session.c:137,1
    - Dst: cmdq_get_flags
      Src: /src/tmux/cmd-attach-session.c:138,1
    - Dst: server_client_set_key_table
      Src: /src/tmux/cmd-attach-session.c:139,1
    - Dst: server_client_open
      Src: /src/tmux/cmd-attach-session.c:141,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-attach-session.c:142,1
    - Dst: free
      Src: /src/tmux/cmd-attach-session.c:143,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/cmd-attach-session.c:152,1
    - Dst: server_client_detach
      Src: /src/tmux/cmd-attach-session.c:155,1
    - Dst: environ_update
      Src: /src/tmux/cmd-attach-session.c:159,1
    - Dst: server_client_set_session
      Src: /src/tmux/cmd-attach-session.c:161,1
    - Dst: server_client_set_key_table
      Src: /src/tmux/cmd-attach-session.c:162,1
    - Dst: proc_send
      Src: /src/tmux/cmd-attach-session.c:165,1
    - Dst: notify_client
      Src: /src/tmux/cmd-attach-session.c:166,1
    - Dst: cfg_show_causes
      Src: /src/tmux/cmd-attach-session.c:171,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 93
    argCount: 8
    argNames:
    - item
    - tflag
    - dflag
    - xflag
    - rflag
    - cflag
    - Eflag
    - fflag
    argTypes:
    - struct cmdq_item*
    - char*
    - int
    - int
    - int
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 50
    functionDepth: 7
    functionLinenumber: 50
    functionLinenumberEnd: 174
    functionName: cmd_attach_session
    functionSourceFile: /src/tmux/cmd-attach-session.c
    functionUses: 0
    functionsReached:
    - proc_get_peer_uid
    - environ_update
    - strcspn
    - RB_EMPTY
    - cmdq_get_client
    - notify_client
    - session_set_current
    - server_client_set_key_table
    - cmdq_get_current
    - cmdq_get_flags
    - getuid
    - cmd_find_from_winlink
    - server_client_set_flags
    - cmd_find_target
    - server_client_set_session
    - server_client_detach
    - server_client_check_nested
    - cmd_find_from_winlink_pane
    - proc_send
    - cmdq_error
    - TAILQ_FOREACH
    - cfg_show_causes
    - format_single
    - free
    - server_client_open
    - window_set_active_pane
    linkageType: ''
    returnType: enum cmd_retval
    signature: "enum cmd_retval cmd_attach_session(struct cmdq_item *item, const char
      *tflag, int dflag,\n    int xflag, int rflag, const char *cflag, int Eflag,
      const char *fflag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-attach-session.c:179,1
    - Dst: cmd_attach_session
      Src: /src/tmux/cmd-attach-session.c:181,1
    - Dst: args_get
      Src: /src/tmux/cmd-attach-session.c:181,1
    - Dst: args_has
      Src: /src/tmux/cmd-attach-session.c:182,1
    - Dst: args_has
      Src: /src/tmux/cmd-attach-session.c:182,1
    - Dst: args_has
      Src: /src/tmux/cmd-attach-session.c:182,1
    - Dst: args_get
      Src: /src/tmux/cmd-attach-session.c:183,1
    - Dst: args_has
      Src: /src/tmux/cmd-attach-session.c:183,1
    - Dst: args_get
      Src: /src/tmux/cmd-attach-session.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 176
    functionDepth: 8
    functionLinenumber: 176
    functionLinenumberEnd: 184
    functionName: cmd_attach_session_exec
    functionSourceFile: /src/tmux/cmd-attach-session.c
    functionUses: 0
    functionsReached:
    - args_has
    - cmd_get_args
    - args_get
    - cmd_attach_session
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_attach_session_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xreallocarray
      Src: /src/tmux/window-buffer.c:116,1
    - Dst: xcalloc
      Src: /src/tmux/window-buffer.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct window_buffer_modedata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: window_buffer_add_item
    functionSourceFile: /src/tmux/window-buffer.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - xreallocarray
    linkageType: ''
    returnType: struct window_buffer_itemdata
    signature: 'struct window_buffer_itemdata *

      window_buffer_add_item(struct window_buffer_modedata *data)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/window-buffer.c:125,1
    - Dst: free
      Src: /src/tmux/window-buffer.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct window_buffer_itemdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: window_buffer_free_item
    functionSourceFile: /src/tmux/window-buffer.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void window_buffer_free_item(struct window_buffer_itemdata *item)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: window_buffer_free_item
      Src: /src/tmux/window-buffer.c:144,1
    - Dst: free
      Src: /src/tmux/window-buffer.c:145,1
    - Dst: sort_get_buffers
      Src: /src/tmux/window-buffer.c:149,1
    - Dst: window_buffer_add_item
      Src: /src/tmux/window-buffer.c:151,1
    - Dst: xstrdup
      Src: /src/tmux/window-buffer.c:152,1
    - Dst: paste_buffer_name
      Src: /src/tmux/window-buffer.c:152,1
    - Dst: paste_buffer_data
      Src: /src/tmux/window-buffer.c:153,1
    - Dst: paste_buffer_order
      Src: /src/tmux/window-buffer.c:154,1
    - Dst: cmd_find_valid_state
      Src: /src/tmux/window-buffer.c:157,1
    - Dst: paste_get_name
      Src: /src/tmux/window-buffer.c:166,1
    - Dst: format_create
      Src: /src/tmux/window-buffer.c:169,1
    - Dst: format_defaults
      Src: /src/tmux/window-buffer.c:170,1
    - Dst: format_defaults_paste_buffer
      Src: /src/tmux/window-buffer.c:171,1
    - Dst: format_expand
      Src: /src/tmux/window-buffer.c:174,1
    - Dst: format_true
      Src: /src/tmux/window-buffer.c:175,1
    - Dst: free
      Src: /src/tmux/window-buffer.c:176,1
    - Dst: format_free
      Src: /src/tmux/window-buffer.c:177,1
    - Dst: free
      Src: /src/tmux/window-buffer.c:180,1
    - Dst: format_expand
      Src: /src/tmux/window-buffer.c:183,1
    - Dst: mode_tree_add
      Src: /src/tmux/window-buffer.c:184,1
    - Dst: free
      Src: /src/tmux/window-buffer.c:186,1
    - Dst: format_free
      Src: /src/tmux/window-buffer.c:188,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 4
    argNames:
    - modedata
    - sort_crit
    - tag
    - filter
    argTypes:
    - void*
    - struct sort_criteria*
    - __unused*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 190
    functionName: window_buffer_build
    functionSourceFile: /src/tmux/window-buffer.c
    functionUses: 0
    functionsReached:
    - cmd_find_valid_state
    - format_defaults_paste_buffer
    - window_buffer_free_item
    - paste_buffer_name
    - format_free
    - format_expand
    - paste_buffer_data
    - format_defaults
    - paste_buffer_order
    - paste_get_name
    - free
    - sort_get_buffers
    - format_create
    - mode_tree_add
    - format_true
    - xstrdup
    - window_buffer_add_item
    linkageType: ''
    returnType: void
    signature: "void window_buffer_build(void *modedata, struct sort_criteria *sort_crit,\n
      \   __unused uint64_t *tag, const char *filter)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: paste_get_name
      Src: /src/tmux/window-buffer.c:203,1
    - Dst: paste_buffer_data
      Src: /src/tmux/window-buffer.c:207,1
    - Dst: xreallocarray
      Src: /src/tmux/window-buffer.c:212,1
    - Dst: utf8_strvis
      Src: /src/tmux/window-buffer.c:213,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-buffer.c:216,1
    - Dst: screen_write_nputs
      Src: /src/tmux/window-buffer.c:217,1
    - Dst: free
      Src: /src/tmux/window-buffer.c:225,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 5
    argNames:
    - modedata
    - itemdata
    - ctx
    - sx
    - sy
    argTypes:
    - __unused*
    - void*
    - struct screen_write_ctx*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 226
    functionName: window_buffer_draw
    functionSourceFile: /src/tmux/window-buffer.c
    functionUses: 0
    functionsReached:
    - utf8_strvis
    - screen_write_cursormove
    - paste_buffer_data
    - paste_get_name
    - screen_write_nputs
    - free
    - xreallocarray
    linkageType: ''
    returnType: void
    signature: "void window_buffer_draw(__unused void *modedata, void *itemdata,\n
      \   struct screen_write_ctx *ctx, u_int sx, u_int sy)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/tmux/window-buffer.c:241,1
    - Dst: tolower
      Src: /src/tmux/window-buffer.c:241,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 14
    argCount: 5
    argNames:
    - data
    - datalen
    - find
    - findlen
    - icase
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 248
    functionName: window_buffer_find
    functionSourceFile: /src/tmux/window-buffer.c
    functionUses: 0
    functionsReached:
    - tolower
    linkageType: ''
    returnType: int
    signature: "int window_buffer_find(const void *data, size_t datalen, const void
      *find,\n    size_t findlen, int icase)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: paste_get_name
      Src: /src/tmux/window-buffer.c:259,1
    - Dst: strcasestr
      Src: /src/tmux/window-buffer.c:262,1
    - Dst: paste_buffer_data
      Src: /src/tmux/window-buffer.c:264,1
    - Dst: window_buffer_find
      Src: /src/tmux/window-buffer.c:265,1
    - Dst: strlen
      Src: /src/tmux/window-buffer.c:265,1
    - Dst: strstr
      Src: /src/tmux/window-buffer.c:268,1
    - Dst: paste_buffer_data
      Src: /src/tmux/window-buffer.c:270,1
    - Dst: window_buffer_find
      Src: /src/tmux/window-buffer.c:271,1
    - Dst: strlen
      Src: /src/tmux/window-buffer.c:271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - modedata
    - itemdata
    - ss
    - icase
    argTypes:
    - __unused*
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 274
    functionName: window_buffer_search
    functionSourceFile: /src/tmux/window-buffer.c
    functionUses: 0
    functionsReached:
    - strcasestr
    - paste_buffer_data
    - window_buffer_find
    - paste_get_name
    - strstr
    - strlen
    linkageType: ''
    returnType: int
    signature: "int window_buffer_search(__unused void *modedata, void *itemdata,
      const char *ss,\n    int icase)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window-buffer.c:283,1
    - Dst: window_buffer_key
      Src: /src/tmux/window-buffer.c:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - modedata
    - c
    - key
    argTypes:
    - void*
    - struct client*
    - key_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 287
    functionName: window_buffer_menu
    functionSourceFile: /src/tmux/window-buffer.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - window_buffer_key
    linkageType: ''
    returnType: void
    signature: void window_buffer_menu(void *modedata, struct client *c, key_code
      key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmd_find_valid_state
      Src: /src/tmux/window-buffer.c:302,1
    - Dst: paste_get_name
      Src: /src/tmux/window-buffer.c:307,1
    - Dst: format_create
      Src: /src/tmux/window-buffer.c:311,1
    - Dst: format_defaults
      Src: /src/tmux/window-buffer.c:312,1
    - Dst: format_defaults
      Src: /src/tmux/window-buffer.c:313,1
    - Dst: format_defaults_paste_buffer
      Src: /src/tmux/window-buffer.c:314,1
    - Dst: format_add
      Src: /src/tmux/window-buffer.c:315,1
    - Dst: format_expand
      Src: /src/tmux/window-buffer.c:317,1
    - Dst: key_string_lookup_string
      Src: /src/tmux/window-buffer.c:318,1
    - Dst: free
      Src: /src/tmux/window-buffer.c:319,1
    - Dst: format_free
      Src: /src/tmux/window-buffer.c:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - modedata
    - itemdata
    - line
    argTypes:
    - void*
    - void*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 322
    functionName: window_buffer_get_key
    functionSourceFile: /src/tmux/window-buffer.c
    functionUses: 0
    functionsReached:
    - cmd_find_valid_state
    - format_defaults_paste_buffer
    - format_free
    - format_defaults
    - paste_get_name
    - free
    - format_create
    - format_add
    - format_expand
    - key_string_lookup_string
    linkageType: ''
    returnType: key_code
    signature: key_code window_buffer_get_key(void *modedata, void *itemdata, u_int
      line)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sort_crit
    argTypes:
    - struct sort_criteria*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 330
    functionName: window_buffer_sort
    functionSourceFile: /src/tmux/window-buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void window_buffer_sort(struct sort_criteria *sort_crit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 349
    functionName: window_buffer_help
    functionSourceFile: /src/tmux/window-buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char **

      window_buffer_help(u_int *width, const char **item)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/window-buffer.c:359,1
    - Dst: cmd_find_copy_state
      Src: /src/tmux/window-buffer.c:361,1
    - Dst: args_has
      Src: /src/tmux/window-buffer.c:363,1
    - Dst: xstrdup
      Src: /src/tmux/window-buffer.c:364,1
    - Dst: xstrdup
      Src: /src/tmux/window-buffer.c:366,1
    - Dst: args_get
      Src: /src/tmux/window-buffer.c:366,1
    - Dst: args_has
      Src: /src/tmux/window-buffer.c:367,1
    - Dst: xstrdup
      Src: /src/tmux/window-buffer.c:368,1
    - Dst: xstrdup
      Src: /src/tmux/window-buffer.c:370,1
    - Dst: args_get
      Src: /src/tmux/window-buffer.c:370,1
    - Dst: args_count
      Src: /src/tmux/window-buffer.c:371,1
    - Dst: xstrdup
      Src: /src/tmux/window-buffer.c:372,1
    - Dst: xstrdup
      Src: /src/tmux/window-buffer.c:374,1
    - Dst: args_string
      Src: /src/tmux/window-buffer.c:374,1
    - Dst: mode_tree_start
      Src: /src/tmux/window-buffer.c:376,1
    - Dst: mode_tree_zoom
      Src: /src/tmux/window-buffer.c:380,1
    - Dst: mode_tree_build
      Src: /src/tmux/window-buffer.c:382,1
    - Dst: mode_tree_draw
      Src: /src/tmux/window-buffer.c:383,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - wme
    - fs
    - args
    argTypes:
    - struct window_mode_entry*
    - struct cmd_find_state*
    - struct args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 351
    functionDepth: 5
    functionLinenumber: 351
    functionLinenumberEnd: 386
    functionName: window_buffer_init
    functionSourceFile: /src/tmux/window-buffer.c
    functionUses: 0
    functionsReached:
    - cmd_find_copy_state
    - args_string
    - mode_tree_draw
    - xcalloc
    - mode_tree_zoom
    - mode_tree_start
    - mode_tree_build
    - args_get
    - args_count
    - xstrdup
    - args_has
    linkageType: ''
    returnType: struct screen
    signature: "struct screen *\nwindow_buffer_init(struct window_mode_entry *wme,
      struct cmd_find_state *fs,\n    struct args *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_free
      Src: /src/tmux/window-buffer.c:397,1
    - Dst: window_buffer_free_item
      Src: /src/tmux/window-buffer.c:400,1
    - Dst: free
      Src: /src/tmux/window-buffer.c:401,1
    - Dst: free
      Src: /src/tmux/window-buffer.c:403,1
    - Dst: free
      Src: /src/tmux/window-buffer.c:404,1
    - Dst: free
      Src: /src/tmux/window-buffer.c:405,1
    - Dst: free
      Src: /src/tmux/window-buffer.c:407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 408
    functionName: window_buffer_free
    functionSourceFile: /src/tmux/window-buffer.c
    functionUses: 0
    functionsReached:
    - free
    - mode_tree_free
    - window_buffer_free_item
    linkageType: ''
    returnType: void
    signature: void window_buffer_free(struct window_mode_entry *wme)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_resize
      Src: /src/tmux/window-buffer.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - wme
    - sx
    - sy
    argTypes:
    - struct window_mode_entry*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 416
    functionName: window_buffer_resize
    functionSourceFile: /src/tmux/window-buffer.c
    functionUses: 0
    functionsReached:
    - mode_tree_resize
    linkageType: ''
    returnType: void
    signature: void window_buffer_resize(struct window_mode_entry *wme, u_int sx,
      u_int sy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_build
      Src: /src/tmux/window-buffer.c:423,1
    - Dst: mode_tree_draw
      Src: /src/tmux/window-buffer.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 426
    functionName: window_buffer_update
    functionSourceFile: /src/tmux/window-buffer.c
    functionUses: 0
    functionsReached:
    - mode_tree_draw
    - mode_tree_build
    linkageType: ''
    returnType: void
    signature: void window_buffer_update(struct window_mode_entry *wme)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_get_current
      Src: /src/tmux/window-buffer.c:436,1
    - Dst: mode_tree_down
      Src: /src/tmux/window-buffer.c:437,1
    - Dst: mode_tree_up
      Src: /src/tmux/window-buffer.c:444,1
    - Dst: paste_get_name
      Src: /src/tmux/window-buffer.c:447,1
    - Dst: paste_free
      Src: /src/tmux/window-buffer.c:448,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - modedata
    - itemdata
    - c
    - key_code
    argTypes:
    - void*
    - void*
    - __unused*
    - __unused
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 449
    functionName: window_buffer_do_delete
    functionSourceFile: /src/tmux/window-buffer.c
    functionUses: 0
    functionsReached:
    - paste_free
    - mode_tree_down
    - mode_tree_up
    - paste_get_name
    - mode_tree_get_current
    linkageType: ''
    returnType: void
    signature: "void window_buffer_do_delete(void *modedata, void *itemdata,\n    __unused
      struct client *c, __unused key_code key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paste_get_name
      Src: /src/tmux/window-buffer.c:458,1
    - Dst: mode_tree_run_command
      Src: /src/tmux/window-buffer.c:459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - modedata
    - itemdata
    - c
    - key_code
    argTypes:
    - void*
    - void*
    - struct client*
    - __unused
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 460
    functionName: window_buffer_do_paste
    functionSourceFile: /src/tmux/window-buffer.c
    functionUses: 0
    functionsReached:
    - paste_get_name
    - mode_tree_run_command
    linkageType: ''
    returnType: void
    signature: "void window_buffer_do_paste(void *modedata, void *itemdata, struct
      client *c,\n    __unused key_code key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/window-buffer.c:465,1
    - Dst: free
      Src: /src/tmux/window-buffer.c:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ed
    argTypes:
    - struct window_buffer_editdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 467
    functionName: window_buffer_finish_edit
    functionSourceFile: /src/tmux/window-buffer.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void window_buffer_finish_edit(struct window_buffer_editdata *ed)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: window_buffer_finish_edit
      Src: /src/tmux/window-buffer.c:481,1
    - Dst: paste_get_name
      Src: /src/tmux/window-buffer.c:485,1
    - Dst: window_buffer_finish_edit
      Src: /src/tmux/window-buffer.c:487,1
    - Dst: paste_buffer_data
      Src: /src/tmux/window-buffer.c:491,1
    - Dst: paste_replace
      Src: /src/tmux/window-buffer.c:497,1
    - Dst: window_pane_find_by_id
      Src: /src/tmux/window-buffer.c:499,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window-buffer.c:501,1
    - Dst: mode_tree_build
      Src: /src/tmux/window-buffer.c:504,1
    - Dst: mode_tree_draw
      Src: /src/tmux/window-buffer.c:505,1
    - Dst: window_buffer_finish_edit
      Src: /src/tmux/window-buffer.c:509,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - buf
    - len
    - arg
    argTypes:
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 510
    functionName: window_buffer_edit_close_cb
    functionSourceFile: /src/tmux/window-buffer.c
    functionUses: 0
    functionsReached:
    - paste_replace
    - mode_tree_draw
    - paste_buffer_data
    - TAILQ_FIRST
    - window_buffer_finish_edit
    - paste_get_name
    - mode_tree_build
    - window_pane_find_by_id
    linkageType: ''
    returnType: void
    signature: void window_buffer_edit_close_cb(char *buf, size_t len, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: paste_get_name
      Src: /src/tmux/window-buffer.c:521,1
    - Dst: paste_buffer_data
      Src: /src/tmux/window-buffer.c:523,1
    - Dst: xcalloc
      Src: /src/tmux/window-buffer.c:525,1
    - Dst: xstrdup
      Src: /src/tmux/window-buffer.c:527,1
    - Dst: paste_buffer_name
      Src: /src/tmux/window-buffer.c:527,1
    - Dst: popup_editor
      Src: /src/tmux/window-buffer.c:530,1
    - Dst: window_buffer_finish_edit
      Src: /src/tmux/window-buffer.c:531,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - data
    - item
    - c
    argTypes:
    - struct window_buffer_modedata*
    - struct window_buffer_itemdata*
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 512
    functionDepth: 5
    functionLinenumber: 512
    functionLinenumberEnd: 532
    functionName: window_buffer_start_edit
    functionSourceFile: /src/tmux/window-buffer.c
    functionUses: 0
    functionsReached:
    - paste_buffer_name
    - xcalloc
    - paste_buffer_data
    - window_buffer_finish_edit
    - popup_editor
    - paste_get_name
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void window_buffer_start_edit(struct window_buffer_modedata *data,\n
      \   struct window_buffer_itemdata *item, struct client *c)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: paste_is_empty
      Src: /src/tmux/window-buffer.c:545,1
    - Dst: mode_tree_key
      Src: /src/tmux/window-buffer.c:550,1
    - Dst: mode_tree_get_current
      Src: /src/tmux/window-buffer.c:553,1
    - Dst: window_buffer_start_edit
      Src: /src/tmux/window-buffer.c:554,1
    - Dst: mode_tree_get_current
      Src: /src/tmux/window-buffer.c:557,1
    - Dst: window_buffer_do_delete
      Src: /src/tmux/window-buffer.c:558,1
    - Dst: mode_tree_build
      Src: /src/tmux/window-buffer.c:559,1
    - Dst: mode_tree_each_tagged
      Src: /src/tmux/window-buffer.c:562,1
    - Dst: mode_tree_build
      Src: /src/tmux/window-buffer.c:563,1
    - Dst: mode_tree_each_tagged
      Src: /src/tmux/window-buffer.c:566,1
    - Dst: mode_tree_get_current
      Src: /src/tmux/window-buffer.c:571,1
    - Dst: window_buffer_do_paste
      Src: /src/tmux/window-buffer.c:572,1
    - Dst: paste_is_empty
      Src: /src/tmux/window-buffer.c:578,1
    - Dst: window_pane_reset_mode
      Src: /src/tmux/window-buffer.c:579,1
    - Dst: mode_tree_draw
      Src: /src/tmux/window-buffer.c:581,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 6
    argNames:
    - wme
    - c
    - s
    - wl
    - key
    - m
    argTypes:
    - struct window_mode_entry*
    - struct client*
    - __unused*
    - __unused*
    - key_code
    - struct mouse_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 534
    functionDepth: 6
    functionLinenumber: 534
    functionLinenumberEnd: 584
    functionName: window_buffer_key
    functionSourceFile: /src/tmux/window-buffer.c
    functionUses: 1
    functionsReached:
    - mode_tree_each_tagged
    - mode_tree_key
    - window_buffer_start_edit
    - mode_tree_draw
    - window_buffer_do_delete
    - paste_is_empty
    - window_buffer_do_paste
    - mode_tree_build
    - mode_tree_get_current
    - window_pane_reset_mode
    linkageType: ''
    returnType: void
    signature: "void window_buffer_key(struct window_mode_entry *wme, struct client
      *c,\n    __unused struct session *s, __unused struct winlink *wl, key_code key,\n
      \   struct mouse_event *m)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-swap-pane.c:48,1
    - Dst: cmdq_get_source
      Src: /src/tmux/cmd-swap-pane.c:49,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-swap-pane.c:50,1
    - Dst: window_push_zoom
      Src: /src/tmux/cmd-swap-pane.c:61,1
    - Dst: args_has
      Src: /src/tmux/cmd-swap-pane.c:61,1
    - Dst: server_redraw_window
      Src: /src/tmux/cmd-swap-pane.c:62,1
    - Dst: args_has
      Src: /src/tmux/cmd-swap-pane.c:64,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/cmd-swap-pane.c:66,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/cmd-swap-pane.c:68,1
    - Dst: args_has
      Src: /src/tmux/cmd-swap-pane.c:69,1
    - Dst: TAILQ_PREV
      Src: /src/tmux/cmd-swap-pane.c:71,1
    - Dst: TAILQ_LAST
      Src: /src/tmux/cmd-swap-pane.c:73,1
    - Dst: window_push_zoom
      Src: /src/tmux/cmd-swap-pane.c:76,1
    - Dst: args_has
      Src: /src/tmux/cmd-swap-pane.c:76,1
    - Dst: server_redraw_window
      Src: /src/tmux/cmd-swap-pane.c:77,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-swap-pane.c:84,1
    - Dst: server_client_remove_pane
      Src: /src/tmux/cmd-swap-pane.c:88,1
    - Dst: server_client_remove_pane
      Src: /src/tmux/cmd-swap-pane.c:89,1
    - Dst: TAILQ_PREV
      Src: /src/tmux/cmd-swap-pane.c:91,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/cmd-swap-pane.c:92,1
    - Dst: TAILQ_REPLACE
      Src: /src/tmux/cmd-swap-pane.c:93,1
    - Dst: TAILQ_INSERT_HEAD
      Src: /src/tmux/cmd-swap-pane.c:97,1
    - Dst: TAILQ_INSERT_AFTER
      Src: /src/tmux/cmd-swap-pane.c:99,1
    - Dst: TAILQ_PREV
      Src: /src/tmux/cmd-swap-pane.c:101,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/cmd-swap-pane.c:102,1
    - Dst: TAILQ_REPLACE
      Src: /src/tmux/cmd-swap-pane.c:103,1
    - Dst: TAILQ_INSERT_HEAD
      Src: /src/tmux/cmd-swap-pane.c:107,1
    - Dst: TAILQ_INSERT_AFTER
      Src: /src/tmux/cmd-swap-pane.c:109,1
    - Dst: options_set_parent
      Src: /src/tmux/cmd-swap-pane.c:123,1
    - Dst: options_set_parent
      Src: /src/tmux/cmd-swap-pane.c:126,1
    - Dst: window_pane_resize
      Src: /src/tmux/cmd-swap-pane.c:132,1
    - Dst: window_pane_resize
      Src: /src/tmux/cmd-swap-pane.c:134,1
    - Dst: args_has
      Src: /src/tmux/cmd-swap-pane.c:136,1
    - Dst: window_set_active_pane
      Src: /src/tmux/cmd-swap-pane.c:138,1
    - Dst: window_set_active_pane
      Src: /src/tmux/cmd-swap-pane.c:139,1
    - Dst: window_set_active_pane
      Src: /src/tmux/cmd-swap-pane.c:142,1
    - Dst: window_set_active_pane
      Src: /src/tmux/cmd-swap-pane.c:146,1
    - Dst: window_set_active_pane
      Src: /src/tmux/cmd-swap-pane.c:148,1
    - Dst: window_pane_stack_remove
      Src: /src/tmux/cmd-swap-pane.c:151,1
    - Dst: window_pane_stack_remove
      Src: /src/tmux/cmd-swap-pane.c:152,1
    - Dst: colour_palette_from_option
      Src: /src/tmux/cmd-swap-pane.c:153,1
    - Dst: colour_palette_from_option
      Src: /src/tmux/cmd-swap-pane.c:154,1
    - Dst: layout_fix_panes
      Src: /src/tmux/cmd-swap-pane.c:155,1
    - Dst: server_redraw_window
      Src: /src/tmux/cmd-swap-pane.c:156,1
    - Dst: layout_fix_panes
      Src: /src/tmux/cmd-swap-pane.c:158,1
    - Dst: server_redraw_window
      Src: /src/tmux/cmd-swap-pane.c:159,1
    - Dst: notify_window
      Src: /src/tmux/cmd-swap-pane.c:161,1
    - Dst: notify_window
      Src: /src/tmux/cmd-swap-pane.c:163,1
    - Dst: window_pop_zoom
      Src: /src/tmux/cmd-swap-pane.c:166,1
    - Dst: server_redraw_window
      Src: /src/tmux/cmd-swap-pane.c:167,1
    - Dst: window_pop_zoom
      Src: /src/tmux/cmd-swap-pane.c:168,1
    - Dst: server_redraw_window
      Src: /src/tmux/cmd-swap-pane.c:169,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 106
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 45
    functionDepth: 5
    functionLinenumber: 45
    functionLinenumberEnd: 171
    functionName: cmd_swap_pane_exec
    functionSourceFile: /src/tmux/cmd-swap-pane.c
    functionUses: 0
    functionsReached:
    - TAILQ_INSERT_HEAD
    - TAILQ_PREV
    - server_redraw_window
    - colour_palette_from_option
    - args_has
    - window_push_zoom
    - window_pane_resize
    - notify_window
    - window_pop_zoom
    - window_pane_stack_remove
    - cmdq_get_source
    - server_client_remove_pane
    - cmd_get_args
    - TAILQ_FIRST
    - TAILQ_NEXT
    - TAILQ_LAST
    - cmdq_get_target
    - TAILQ_REMOVE
    - layout_fix_panes
    - cmdq_error
    - options_set_parent
    - TAILQ_REPLACE
    - TAILQ_INSERT_AFTER
    - window_set_active_pane
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_swap_pane_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - cp1
    - cp2
    argTypes:
    - struct control_pane*
    - struct control_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 154
    functionName: control_pane_cmp
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int control_pane_cmp(struct control_pane *cp1, struct control_pane
      *cp2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/control.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - csub1
    - csub2
    argTypes:
    - struct control_sub*
    - struct control_sub*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: control_sub_cmp
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int control_sub_cmp(struct control_sub *csub1, struct control_sub *csub2)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - csp1
    - csp2
    argTypes:
    - struct control_sub_pane*
    - struct control_sub_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 179
    functionName: control_sub_pane_cmp
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int control_sub_pane_cmp(struct control_sub_pane *csp1,\n    struct
      control_sub_pane *csp2)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - csw1
    - csw2
    argTypes:
    - struct control_sub_window*
    - struct control_sub_window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 197
    functionName: control_sub_window_cmp
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int control_sub_window_cmp(struct control_sub_window *csw1,\n    struct
      control_sub_window *csw2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH_SAFE
      Src: /src/tmux/control.c:208,1
    - Dst: RB_REMOVE
      Src: /src/tmux/control.c:209,1
    - Dst: free
      Src: /src/tmux/control.c:210,1
    - Dst: free
      Src: /src/tmux/control.c:211,1
    - Dst: RB_FOREACH_SAFE
      Src: /src/tmux/control.c:213,1
    - Dst: RB_REMOVE
      Src: /src/tmux/control.c:214,1
    - Dst: free
      Src: /src/tmux/control.c:215,1
    - Dst: free
      Src: /src/tmux/control.c:216,1
    - Dst: free
      Src: /src/tmux/control.c:218,1
    - Dst: RB_REMOVE
      Src: /src/tmux/control.c:220,1
    - Dst: free
      Src: /src/tmux/control.c:221,1
    - Dst: free
      Src: /src/tmux/control.c:222,1
    - Dst: free
      Src: /src/tmux/control.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - cs
    - csub
    argTypes:
    - struct control_state*
    - struct control_sub*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 224
    functionName: control_free_sub
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - RB_REMOVE
    - free
    - RB_FOREACH_SAFE
    linkageType: ''
    returnType: void
    signature: void control_free_sub(struct control_state *cs, struct control_sub
      *csub)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/control.c:230,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/control.c:231,1
    - Dst: free
      Src: /src/tmux/control.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cs
    - cb
    argTypes:
    - struct control_state*
    - struct control_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 233
    functionName: control_free_block
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - free
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void control_free_block(struct control_state *cs, struct control_block
      *cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FIND
      Src: /src/tmux/control.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - wp
    argTypes:
    - struct client*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 243
    functionName: control_get_pane
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - RB_FIND
    linkageType: ''
    returnType: struct control_pane
    signature: 'struct control_pane *

      control_get_pane(struct client *c, struct window_pane *wp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: control_get_pane
      Src: /src/tmux/control.c:252,1
    - Dst: xcalloc
      Src: /src/tmux/control.c:256,1
    - Dst: RB_INSERT
      Src: /src/tmux/control.c:258,1
    - Dst: memcpy
      Src: /src/tmux/control.c:260,1
    - Dst: memcpy
      Src: /src/tmux/control.c:261,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/control.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - c
    - wp
    argTypes:
    - struct client*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 265
    functionName: control_add_pane
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - control_get_pane
    - xcalloc
    - memcpy
    - TAILQ_INIT
    - RB_INSERT
    linkageType: ''
    returnType: struct control_pane
    signature: 'struct control_pane *

      control_add_pane(struct client *c, struct window_pane *wp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/control.c:274,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/control.c:275,1
    - Dst: control_free_block
      Src: /src/tmux/control.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - c
    - cp
    argTypes:
    - struct client*
    - struct control_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 278
    functionName: control_discard_pane
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH_SAFE
    - control_free_block
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void control_discard_pane(struct client *c, struct control_pane *cp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: window_pane_find_by_id
      Src: /src/tmux/control.c:288,1
    - Dst: winlink_find_by_window
      Src: /src/tmux/control.c:290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - c
    - pane
    argTypes:
    - struct client*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 293
    functionName: control_window_pane
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - window_pane_find_by_id
    - winlink_find_by_window
    linkageType: ''
    returnType: struct window_pane
    signature: 'struct window_pane *

      control_window_pane(struct client *c, u_int pane)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH_SAFE
      Src: /src/tmux/control.c:302,1
    - Dst: control_discard_pane
      Src: /src/tmux/control.c:303,1
    - Dst: RB_REMOVE
      Src: /src/tmux/control.c:304,1
    - Dst: free
      Src: /src/tmux/control.c:305,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/control.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 310
    functionName: control_reset_offsets
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - free
    - RB_FOREACH_SAFE
    - RB_REMOVE
    - TAILQ_INIT
    - control_discard_pane
    linkageType: ''
    returnType: void
    signature: void control_reset_offsets(struct client *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: control_get_pane
      Src: /src/tmux/control.c:324,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/control.c:333,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - c
    - wp
    - 'off'
    argTypes:
    - struct client*
    - struct window_pane*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 335
    functionName: control_pane_offset
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - control_get_pane
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: struct window_pane_offset
    signature: 'struct window_pane_offset *

      control_pane_offset(struct client *c, struct window_pane *wp, int *off)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: control_get_pane
      Src: /src/tmux/control.c:343,1
    - Dst: memcpy
      Src: /src/tmux/control.c:346,1
    - Dst: memcpy
      Src: /src/tmux/control.c:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - c
    - wp
    argTypes:
    - struct client*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 349
    functionName: control_set_pane_on
    functionSourceFile: /src/tmux/control.c
    functionUses: 1
    functionsReached:
    - control_get_pane
    - memcpy
    linkageType: ''
    returnType: void
    signature: void control_set_pane_on(struct client *c, struct window_pane *wp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: control_add_pane
      Src: /src/tmux/control.c:357,1
    - Dst: control_discard_pane
      Src: /src/tmux/control.c:358,1
    - Dst: memcpy
      Src: /src/tmux/control.c:359,1
    - Dst: memcpy
      Src: /src/tmux/control.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - c
    - wp
    argTypes:
    - struct client*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 352
    functionDepth: 3
    functionLinenumber: 352
    functionLinenumberEnd: 362
    functionName: control_set_pane_off
    functionSourceFile: /src/tmux/control.c
    functionUses: 1
    functionsReached:
    - control_add_pane
    - memcpy
    - control_discard_pane
    linkageType: ''
    returnType: void
    signature: void control_set_pane_off(struct client *c, struct window_pane *wp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: control_get_pane
      Src: /src/tmux/control.c:370,1
    - Dst: memcpy
      Src: /src/tmux/control.c:373,1
    - Dst: memcpy
      Src: /src/tmux/control.c:374,1
    - Dst: control_write
      Src: /src/tmux/control.c:375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - c
    - wp
    argTypes:
    - struct client*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 377
    functionName: control_continue_pane
    functionSourceFile: /src/tmux/control.c
    functionUses: 1
    functionsReached:
    - control_get_pane
    - memcpy
    - control_write
    linkageType: ''
    returnType: void
    signature: void control_continue_pane(struct client *c, struct window_pane *wp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: control_add_pane
      Src: /src/tmux/control.c:385,1
    - Dst: control_discard_pane
      Src: /src/tmux/control.c:388,1
    - Dst: control_write
      Src: /src/tmux/control.c:389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - c
    - wp
    argTypes:
    - struct client*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 391
    functionName: control_pause_pane
    functionSourceFile: /src/tmux/control.c
    functionUses: 1
    functionsReached:
    - control_add_pane
    - control_write
    - control_discard_pane
    linkageType: ''
    returnType: void
    signature: void control_pause_pane(struct client *c, struct window_pane *wp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xvasprintf
      Src: /src/tmux/control.c:400,1
    - Dst: log_debug
      Src: /src/tmux/control.c:401,1
    - Dst: bufferevent_write
      Src: /src/tmux/control.c:403,1
    - Dst: strlen
      Src: /src/tmux/control.c:403,1
    - Dst: bufferevent_write
      Src: /src/tmux/control.c:404,1
    - Dst: bufferevent_enable
      Src: /src/tmux/control.c:406,1
    - Dst: free
      Src: /src/tmux/control.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - c
    - fmt
    - ap
    argTypes:
    - struct client*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 408
    functionName: control_vwrite
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - strlen
    - xvasprintf
    - free
    - log_debug
    - bufferevent_enable
    - bufferevent_write
    linkageType: ''
    returnType: void
    signature: void control_vwrite(struct client *c, const char *fmt, va_list ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/tmux/control.c:418,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/control.c:420,1
    - Dst: control_vwrite
      Src: /src/tmux/control.c:421,1
    - Dst: va_end
      Src: /src/tmux/control.c:422,1
    - Dst: xcalloc
      Src: /src/tmux/control.c:426,1
    - Dst: xvasprintf
      Src: /src/tmux/control.c:427,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/control.c:428,1
    - Dst: get_timer
      Src: /src/tmux/control.c:429,1
    - Dst: log_debug
      Src: /src/tmux/control.c:431,1
    - Dst: bufferevent_enable
      Src: /src/tmux/control.c:432,1
    - Dst: va_end
      Src: /src/tmux/control.c:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - c
    - fmt
    argTypes:
    - struct client*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 411
    functionDepth: 4
    functionLinenumber: 411
    functionLinenumberEnd: 435
    functionName: control_write
    functionSourceFile: /src/tmux/control.c
    functionUses: 17
    functionsReached:
    - log_debug
    - control_vwrite
    - get_timer
    - xcalloc
    - xvasprintf
    - va_end
    - va_start
    - TAILQ_EMPTY
    - bufferevent_enable
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: void
    signature: void control_write(struct client *c, const char *fmt, ...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/control.c:445,1
    - Dst: get_timer
      Src: /src/tmux/control.c:448,1
    - Dst: log_debug
      Src: /src/tmux/control.c:453,1
    - Dst: control_discard_pane
      Src: /src/tmux/control.c:460,1
    - Dst: control_write
      Src: /src/tmux/control.c:461,1
    - Dst: xstrdup
      Src: /src/tmux/control.c:465,1
    - Dst: control_discard
      Src: /src/tmux/control.c:467,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - c
    - wp
    - cp
    argTypes:
    - struct client*
    - struct window_pane*
    - struct control_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 438
    functionDepth: 5
    functionLinenumber: 438
    functionLinenumberEnd: 470
    functionName: control_check_age
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - control_discard
    - get_timer
    - TAILQ_FIRST
    - log_debug
    - xstrdup
    - control_write
    - control_discard_pane
    linkageType: ''
    returnType: int
    signature: "int control_check_age(struct client *c, struct window_pane *wp,\n
      \   struct control_pane *cp)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: winlink_find_by_window
      Src: /src/tmux/control.c:481,1
    - Dst: control_get_pane
      Src: /src/tmux/control.c:485,1
    - Dst: control_add_pane
      Src: /src/tmux/control.c:490,1
    - Dst: control_check_age
      Src: /src/tmux/control.c:493,1
    - Dst: window_pane_get_new_data
      Src: /src/tmux/control.c:496,1
    - Dst: window_pane_update_used_data
      Src: /src/tmux/control.c:499,1
    - Dst: xcalloc
      Src: /src/tmux/control.c:501,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/control.c:503,1
    - Dst: get_timer
      Src: /src/tmux/control.c:504,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/control.c:506,1
    - Dst: log_debug
      Src: /src/tmux/control.c:507,1
    - Dst: log_debug
      Src: /src/tmux/control.c:511,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/control.c:513,1
    - Dst: bufferevent_enable
      Src: /src/tmux/control.c:517,1
    - Dst: log_debug
      Src: /src/tmux/control.c:521,1
    - Dst: window_pane_update_used_data
      Src: /src/tmux/control.c:522,1
    - Dst: window_pane_update_used_data
      Src: /src/tmux/control.c:523,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - c
    - wp
    argTypes:
    - struct client*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 473
    functionDepth: 6
    functionLinenumber: 473
    functionLinenumberEnd: 524
    functionName: control_write_output
    functionSourceFile: /src/tmux/control.c
    functionUses: 1
    functionsReached:
    - control_get_pane
    - window_pane_update_used_data
    - get_timer
    - xcalloc
    - control_check_age
    - bufferevent_enable
    - log_debug
    - control_add_pane
    - window_pane_get_new_data
    - TAILQ_INSERT_TAIL
    - winlink_find_by_window
    linkageType: ''
    returnType: void
    signature: void control_write_output(struct client *c, struct window_pane *wp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get_client
      Src: /src/tmux/control.c:530,1
    - Dst: cmdq_guard
      Src: /src/tmux/control.c:533,1
    - Dst: control_write
      Src: /src/tmux/control.c:534,1
    - Dst: cmdq_guard
      Src: /src/tmux/control.c:535,1
    - Dst: free
      Src: /src/tmux/control.c:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - item
    - data
    argTypes:
    - struct cmdq_item*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 527
    functionDepth: 5
    functionLinenumber: 527
    functionLinenumberEnd: 539
    functionName: control_error
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - cmdq_guard
    - free
    - control_write
    - cmdq_get_client
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval control_error(struct cmdq_item *item, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bufev
    - what
    - data
    argTypes:
    - __unused*
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 549
    functionName: control_error_callback
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void control_error_callback(__unused struct bufferevent *bufev,\n
      \   __unused short what, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_readln
      Src: /src/tmux/control.c:563,1
    - Dst: log_debug
      Src: /src/tmux/control.c:566,1
    - Dst: free
      Src: /src/tmux/control.c:568,1
    - Dst: cmdq_new_state
      Src: /src/tmux/control.c:573,1
    - Dst: cmd_parse_and_append
      Src: /src/tmux/control.c:574,1
    - Dst: cmdq_append
      Src: /src/tmux/control.c:576,1
    - Dst: cmdq_get_callback
      Src: /src/tmux/control.c:576,1
    - Dst: cmdq_free_state
      Src: /src/tmux/control.c:577,1
    - Dst: free
      Src: /src/tmux/control.c:579,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - bufev
    - data
    argTypes:
    - __unused*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 552
    functionDepth: 3
    functionLinenumber: 552
    functionLinenumberEnd: 581
    functionName: control_read_callback
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - cmdq_get_callback
    - cmdq_new_state
    - cmdq_append
    - cmdq_free_state
    - evbuffer_readln
    - free
    - log_debug
    - cmd_parse_and_append
    linkageType: ''
    returnType: void
    signature: void control_read_callback(__unused struct bufferevent *bufev, void
      *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/control.c:589,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/control.c:591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 592
    functionName: control_all_done
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - TAILQ_EMPTY
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: int
    signature: int control_all_done(struct client *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/control.c:601,1
    - Dst: log_debug
      Src: /src/tmux/control.c:604,1
    - Dst: bufferevent_write
      Src: /src/tmux/control.c:607,1
    - Dst: strlen
      Src: /src/tmux/control.c:607,1
    - Dst: bufferevent_write
      Src: /src/tmux/control.c:608,1
    - Dst: control_free_block
      Src: /src/tmux/control.c:609,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 595
    functionDepth: 3
    functionLinenumber: 595
    functionLinenumberEnd: 611
    functionName: control_flush_all_blocks
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - control_free_block
    - strlen
    - TAILQ_FOREACH_SAFE
    - log_debug
    - bufferevent_write
    linkageType: ''
    returnType: void
    signature: void control_flush_all_blocks(struct client *c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/tmux/control.c:623,1
    - Dst: fatalx
      Src: /src/tmux/control.c:625,1
    - Dst: evbuffer_add_printf
      Src: /src/tmux/control.c:627,1
    - Dst: evbuffer_add_printf
      Src: /src/tmux/control.c:631,1
    - Dst: window_pane_get_new_data
      Src: /src/tmux/control.c:634,1
    - Dst: fatalx
      Src: /src/tmux/control.c:636,1
    - Dst: evbuffer_add_printf
      Src: /src/tmux/control.c:639,1
    - Dst: evbuffer_add
      Src: /src/tmux/control.c:646,1
    - Dst: window_pane_update_used_data
      Src: /src/tmux/control.c:649,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 6
    argNames:
    - c
    - cp
    - age
    - message
    - wp
    - size
    argTypes:
    - struct client*
    - struct control_pane*
    - uint64_t
    - struct evbuffer*
    - struct window_pane*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 614
    functionDepth: 3
    functionLinenumber: 614
    functionLinenumberEnd: 651
    functionName: control_append_data
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    - window_pane_update_used_data
    - fatalx
    - evbuffer_add_printf
    - evbuffer_new
    - window_pane_get_new_data
    linkageType: ''
    returnType: struct evbuffer
    signature: "struct evbuffer *\ncontrol_append_data(struct client *c, struct control_pane
      *cp, uint64_t age,\n    struct evbuffer *message, struct window_pane *wp, size_t
      size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/control.c:659,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/control.c:660,1
    - Dst: EVBUFFER_DATA
      Src: /src/tmux/control.c:660,1
    - Dst: evbuffer_add
      Src: /src/tmux/control.c:662,1
    - Dst: bufferevent_write_buffer
      Src: /src/tmux/control.c:663,1
    - Dst: evbuffer_free
      Src: /src/tmux/control.c:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - c
    - message
    argTypes:
    - struct client*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 654
    functionDepth: 3
    functionLinenumber: 654
    functionLinenumberEnd: 665
    functionName: control_write_data
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - bufferevent_write_buffer
    - evbuffer_add
    - EVBUFFER_DATA
    - evbuffer_free
    - log_debug
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: void control_write_data(struct client *c, struct evbuffer *message)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_timer
      Src: /src/tmux/control.c:676,1
    - Dst: control_window_pane
      Src: /src/tmux/control.c:678,1
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/control.c:680,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/control.c:681,1
    - Dst: control_free_block
      Src: /src/tmux/control.c:682,1
    - Dst: control_flush_all_blocks
      Src: /src/tmux/control.c:684,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/control.c:688,1
    - Dst: control_check_age
      Src: /src/tmux/control.c:689,1
    - Dst: evbuffer_free
      Src: /src/tmux/control.c:691,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/control.c:696,1
    - Dst: log_debug
      Src: /src/tmux/control.c:701,1
    - Dst: control_append_data
      Src: /src/tmux/control.c:710,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/control.c:714,1
    - Dst: control_free_block
      Src: /src/tmux/control.c:715,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/control.c:717,1
    - Dst: control_write_data
      Src: /src/tmux/control.c:720,1
    - Dst: control_flush_all_blocks
      Src: /src/tmux/control.c:723,1
    - Dst: control_write_data
      Src: /src/tmux/control.c:728,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/control.c:729,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 3
    argNames:
    - c
    - cp
    - limit
    argTypes:
    - struct client*
    - struct control_pane*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 668
    functionDepth: 6
    functionLinenumber: 668
    functionLinenumberEnd: 730
    functionName: control_write_pending
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - control_append_data
    - control_flush_all_blocks
    - log_debug
    - control_free_block
    - get_timer
    - evbuffer_free
    - TAILQ_FIRST
    - control_window_pane
    - control_check_age
    - TAILQ_FOREACH_SAFE
    - control_write_data
    - TAILQ_EMPTY
    - TAILQ_REMOVE
    linkageType: ''
    returnType: int
    signature: int control_write_pending(struct client *c, struct control_pane *cp,
      size_t limit)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: control_flush_all_blocks
      Src: /src/tmux/control.c:742,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/control.c:744,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/control.c:747,1
    - Dst: log_debug
      Src: /src/tmux/control.c:748,1
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/control.c:755,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/control.c:756,1
    - Dst: control_write_pending
      Src: /src/tmux/control.c:758,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/control.c:760,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/control.c:765,1
    - Dst: bufferevent_disable
      Src: /src/tmux/control.c:766,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - bufev
    - data
    argTypes:
    - __unused*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 733
    functionDepth: 7
    functionLinenumber: 733
    functionLinenumberEnd: 767
    functionName: control_write_callback
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - control_flush_all_blocks
    - TAILQ_REMOVE
    - bufferevent_disable
    - control_write_pending
    - TAILQ_FOREACH_SAFE
    - log_debug
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: void control_write_callback(__unused struct bufferevent *bufev, void
      *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/tmux/control.c:776,1
    - Dst: setblocking
      Src: /src/tmux/control.c:779,1
    - Dst: setblocking
      Src: /src/tmux/control.c:780,1
    - Dst: xcalloc
      Src: /src/tmux/control.c:782,1
    - Dst: RB_INIT
      Src: /src/tmux/control.c:783,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/control.c:784,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/control.c:785,1
    - Dst: RB_INIT
      Src: /src/tmux/control.c:786,1
    - Dst: bufferevent_new
      Src: /src/tmux/control.c:788,1
    - Dst: fatalx
      Src: /src/tmux/control.c:791,1
    - Dst: bufferevent_new
      Src: /src/tmux/control.c:796,1
    - Dst: fatalx
      Src: /src/tmux/control.c:799,1
    - Dst: bufferevent_setwatermark
      Src: /src/tmux/control.c:801,1
    - Dst: bufferevent_write
      Src: /src/tmux/control.c:805,1
    - Dst: bufferevent_enable
      Src: /src/tmux/control.c:806,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 770
    functionDepth: 3
    functionLinenumber: 770
    functionLinenumberEnd: 808
    functionName: control_start
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - RB_INIT
    - close
    - bufferevent_new
    - xcalloc
    - fatalx
    - bufferevent_setwatermark
    - bufferevent_enable
    - setblocking
    - bufferevent_write
    - TAILQ_INIT
    linkageType: ''
    returnType: void
    signature: void control_start(struct client *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_enable
      Src: /src/tmux/control.c:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 815
    functionName: control_ready
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - bufferevent_enable
    linkageType: ''
    returnType: void
    signature: void control_ready(struct client *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/control.c:824,1
    - Dst: control_discard_pane
      Src: /src/tmux/control.c:825,1
    - Dst: bufferevent_disable
      Src: /src/tmux/control.c:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 818
    functionDepth: 2
    functionLinenumber: 818
    functionLinenumberEnd: 827
    functionName: control_discard
    functionSourceFile: /src/tmux/control.c
    functionUses: 1
    functionsReached:
    - RB_FOREACH
    - bufferevent_disable
    - control_discard_pane
    linkageType: ''
    returnType: void
    signature: void control_discard(struct client *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_free
      Src: /src/tmux/control.c:841,1
    - Dst: bufferevent_free
      Src: /src/tmux/control.c:842,1
    - Dst: RB_FOREACH_SAFE
      Src: /src/tmux/control.c:844,1
    - Dst: control_free_sub
      Src: /src/tmux/control.c:845,1
    - Dst: evtimer_initialized
      Src: /src/tmux/control.c:846,1
    - Dst: evtimer_del
      Src: /src/tmux/control.c:847,1
    - Dst: control_reset_offsets
      Src: /src/tmux/control.c:849,1
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/control.c:850,1
    - Dst: control_free_block
      Src: /src/tmux/control.c:851,1
    - Dst: free
      Src: /src/tmux/control.c:854,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 830
    functionDepth: 3
    functionLinenumber: 830
    functionLinenumberEnd: 855
    functionName: control_stop
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - control_free_sub
    - evtimer_initialized
    - control_free_block
    - evtimer_del
    - bufferevent_free
    - TAILQ_FOREACH_SAFE
    - free
    - RB_FOREACH_SAFE
    - control_reset_offsets
    linkageType: ''
    returnType: void
    signature: void control_stop(struct client *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_expand
      Src: /src/tmux/control.c:865,1
    - Dst: strcmp
      Src: /src/tmux/control.c:867,1
    - Dst: free
      Src: /src/tmux/control.c:868,1
    - Dst: control_write
      Src: /src/tmux/control.c:871,1
    - Dst: free
      Src: /src/tmux/control.c:874,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - c
    - csub
    - ft
    argTypes:
    - struct client*
    - struct control_sub*
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 858
    functionDepth: 5
    functionLinenumber: 858
    functionLinenumberEnd: 876
    functionName: control_check_subs_session
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - free
    - control_write
    - format_expand
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void control_check_subs_session(struct client *c, struct control_sub
      *csub,\n    struct format_tree *ft)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: window_pane_find_by_id
      Src: /src/tmux/control.c:890,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/control.c:895,1
    - Dst: format_create_defaults
      Src: /src/tmux/control.c:899,1
    - Dst: format_expand
      Src: /src/tmux/control.c:900,1
    - Dst: format_free
      Src: /src/tmux/control.c:901,1
    - Dst: RB_FIND
      Src: /src/tmux/control.c:906,1
    - Dst: xcalloc
      Src: /src/tmux/control.c:908,1
    - Dst: RB_INSERT
      Src: /src/tmux/control.c:911,1
    - Dst: strcmp
      Src: /src/tmux/control.c:914,1
    - Dst: free
      Src: /src/tmux/control.c:915,1
    - Dst: control_write
      Src: /src/tmux/control.c:918,1
    - Dst: free
      Src: /src/tmux/control.c:921,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - c
    - csub
    argTypes:
    - struct client*
    - struct control_sub*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 879
    functionDepth: 5
    functionLinenumber: 879
    functionLinenumberEnd: 924
    functionName: control_check_subs_pane
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH
    - control_write
    - format_free
    - xcalloc
    - strcmp
    - free
    - window_pane_find_by_id
    - format_create_defaults
    - RB_FIND
    - format_expand
    - RB_INSERT
    linkageType: ''
    returnType: void
    signature: void control_check_subs_pane(struct client *c, struct control_sub *csub)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: format_expand
      Src: /src/tmux/control.c:936,1
    - Dst: RB_FIND
      Src: /src/tmux/control.c:941,1
    - Dst: xcalloc
      Src: /src/tmux/control.c:943,1
    - Dst: RB_INSERT
      Src: /src/tmux/control.c:946,1
    - Dst: strcmp
      Src: /src/tmux/control.c:949,1
    - Dst: free
      Src: /src/tmux/control.c:950,1
    - Dst: control_write
      Src: /src/tmux/control.c:953,1
    - Dst: free
      Src: /src/tmux/control.c:956,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - c
    - csub
    - ft
    - wl
    - wp
    argTypes:
    - struct client*
    - struct control_sub*
    - struct format_tree*
    - struct winlink*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 927
    functionDepth: 5
    functionLinenumber: 927
    functionLinenumberEnd: 958
    functionName: control_check_subs_all_panes_one
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - control_write
    - xcalloc
    - strcmp
    - free
    - RB_FIND
    - format_expand
    - RB_INSERT
    linkageType: ''
    returnType: void
    signature: "void control_check_subs_all_panes_one(struct client *c, struct control_sub
      *csub,\n    struct format_tree *ft, struct winlink *wl, struct window_pane *wp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: window_find_by_id
      Src: /src/tmux/control.c:971,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/control.c:975,1
    - Dst: format_create_defaults
      Src: /src/tmux/control.c:979,1
    - Dst: format_expand
      Src: /src/tmux/control.c:980,1
    - Dst: format_free
      Src: /src/tmux/control.c:981,1
    - Dst: RB_FIND
      Src: /src/tmux/control.c:986,1
    - Dst: xcalloc
      Src: /src/tmux/control.c:988,1
    - Dst: RB_INSERT
      Src: /src/tmux/control.c:991,1
    - Dst: strcmp
      Src: /src/tmux/control.c:994,1
    - Dst: free
      Src: /src/tmux/control.c:995,1
    - Dst: control_write
      Src: /src/tmux/control.c:998,1
    - Dst: free
      Src: /src/tmux/control.c:1001,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - c
    - csub
    argTypes:
    - struct client*
    - struct control_sub*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 961
    functionDepth: 5
    functionLinenumber: 961
    functionLinenumberEnd: 1004
    functionName: control_check_subs_window
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - window_find_by_id
    - TAILQ_FOREACH
    - control_write
    - format_free
    - xcalloc
    - strcmp
    - free
    - format_create_defaults
    - RB_FIND
    - format_expand
    - RB_INSERT
    linkageType: ''
    returnType: void
    signature: void control_check_subs_window(struct client *c, struct control_sub
      *csub)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: format_expand
      Src: /src/tmux/control.c:1016,1
    - Dst: RB_FIND
      Src: /src/tmux/control.c:1021,1
    - Dst: xcalloc
      Src: /src/tmux/control.c:1023,1
    - Dst: RB_INSERT
      Src: /src/tmux/control.c:1026,1
    - Dst: strcmp
      Src: /src/tmux/control.c:1029,1
    - Dst: free
      Src: /src/tmux/control.c:1030,1
    - Dst: control_write
      Src: /src/tmux/control.c:1033,1
    - Dst: free
      Src: /src/tmux/control.c:1036,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - c
    - csub
    - ft
    - wl
    argTypes:
    - struct client*
    - struct control_sub*
    - struct format_tree*
    - struct winlink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1007
    functionDepth: 5
    functionLinenumber: 1007
    functionLinenumberEnd: 1038
    functionName: control_check_subs_all_windows_one
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - control_write
    - xcalloc
    - strcmp
    - free
    - RB_FIND
    - format_expand
    - RB_INSERT
    linkageType: ''
    returnType: void
    signature: "void control_check_subs_all_windows_one(struct client *c, struct control_sub
      *csub,\n    struct format_tree *ft, struct winlink *wl)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/control.c:1055,1
    - Dst: evtimer_add
      Src: /src/tmux/control.c:1056,1
    - Dst: RB_FOREACH
      Src: /src/tmux/control.c:1062,1
    - Dst: format_create_defaults
      Src: /src/tmux/control.c:1080,1
    - Dst: RB_FOREACH_SAFE
      Src: /src/tmux/control.c:1081,1
    - Dst: control_check_subs_session
      Src: /src/tmux/control.c:1083,1
    - Dst: format_free
      Src: /src/tmux/control.c:1085,1
    - Dst: RB_FOREACH_SAFE
      Src: /src/tmux/control.c:1089,1
    - Dst: control_check_subs_pane
      Src: /src/tmux/control.c:1092,1
    - Dst: control_check_subs_window
      Src: /src/tmux/control.c:1095,1
    - Dst: RB_FOREACH
      Src: /src/tmux/control.c:1106,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/control.c:1107,1
    - Dst: format_create_defaults
      Src: /src/tmux/control.c:1108,1
    - Dst: RB_FOREACH_SAFE
      Src: /src/tmux/control.c:1109,1
    - Dst: control_check_subs_all_panes_one
      Src: /src/tmux/control.c:1113,1
    - Dst: format_free
      Src: /src/tmux/control.c:1116,1
    - Dst: RB_FOREACH
      Src: /src/tmux/control.c:1123,1
    - Dst: format_create_defaults
      Src: /src/tmux/control.c:1124,1
    - Dst: RB_FOREACH_SAFE
      Src: /src/tmux/control.c:1125,1
    - Dst: control_check_subs_all_windows_one
      Src: /src/tmux/control.c:1129,1
    - Dst: format_free
      Src: /src/tmux/control.c:1132,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 66
    argCount: 3
    argNames:
    - int
    - events
    - data
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1041
    functionDepth: 6
    functionLinenumber: 1041
    functionLinenumberEnd: 1135
    functionName: control_check_subs_timer
    functionSourceFile: /src/tmux/control.c
    functionUses: 0
    functionsReached:
    - control_check_subs_pane
    - evtimer_add
    - TAILQ_FOREACH
    - control_check_subs_all_panes_one
    - format_free
    - control_check_subs_all_windows_one
    - RB_FOREACH
    - RB_FOREACH_SAFE
    - log_debug
    - control_check_subs_window
    - format_create_defaults
    - control_check_subs_session
    linkageType: ''
    returnType: void
    signature: void control_check_subs_timer(__unused int fd, __unused short events,
      void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RB_FIND
      Src: /src/tmux/control.c:1147,1
    - Dst: control_free_sub
      Src: /src/tmux/control.c:1148,1
    - Dst: xcalloc
      Src: /src/tmux/control.c:1150,1
    - Dst: xstrdup
      Src: /src/tmux/control.c:1151,1
    - Dst: xstrdup
      Src: /src/tmux/control.c:1154,1
    - Dst: RB_INSERT
      Src: /src/tmux/control.c:1155,1
    - Dst: RB_INIT
      Src: /src/tmux/control.c:1157,1
    - Dst: RB_INIT
      Src: /src/tmux/control.c:1158,1
    - Dst: evtimer_initialized
      Src: /src/tmux/control.c:1160,1
    - Dst: evtimer_set
      Src: /src/tmux/control.c:1161,1
    - Dst: evtimer_pending
      Src: /src/tmux/control.c:1162,1
    - Dst: evtimer_add
      Src: /src/tmux/control.c:1163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - c
    - name
    - type
    - id
    - format
    argTypes:
    - struct client*
    - char*
    - enum control_sub_type
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1138
    functionDepth: 2
    functionLinenumber: 1138
    functionLinenumberEnd: 1164
    functionName: control_add_sub
    functionSourceFile: /src/tmux/control.c
    functionUses: 1
    functionsReached:
    - control_free_sub
    - RB_INIT
    - evtimer_initialized
    - evtimer_add
    - xcalloc
    - evtimer_pending
    - evtimer_set
    - xstrdup
    - RB_FIND
    - RB_INSERT
    linkageType: ''
    returnType: void
    signature: "void control_add_sub(struct client *c, const char *name, enum control_sub_type
      type,\n    int id, const char *format)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RB_FIND
      Src: /src/tmux/control.c:1174,1
    - Dst: control_free_sub
      Src: /src/tmux/control.c:1175,1
    - Dst: RB_EMPTY
      Src: /src/tmux/control.c:1176,1
    - Dst: evtimer_del
      Src: /src/tmux/control.c:1177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - c
    - name
    argTypes:
    - struct client*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1167
    functionDepth: 1
    functionLinenumber: 1167
    functionLinenumberEnd: 1178
    functionName: control_remove_sub
    functionSourceFile: /src/tmux/control.c
    functionUses: 1
    functionsReached:
    - control_free_sub
    - RB_EMPTY
    - RB_FIND
    - evtimer_del
    linkageType: ''
    returnType: void
    signature: void control_remove_sub(struct client *c, const char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-list-buffers.c:49,1
    - Dst: args_get
      Src: /src/tmux/cmd-list-buffers.c:60,1
    - Dst: sort_order_from_string
      Src: /src/tmux/cmd-list-buffers.c:62,1
    - Dst: args_get
      Src: /src/tmux/cmd-list-buffers.c:62,1
    - Dst: args_has
      Src: /src/tmux/cmd-list-buffers.c:63,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-list-buffers.c:64,1
    - Dst: args_has
      Src: /src/tmux/cmd-list-buffers.c:67,1
    - Dst: sort_get_buffers
      Src: /src/tmux/cmd-list-buffers.c:69,1
    - Dst: format_create
      Src: /src/tmux/cmd-list-buffers.c:71,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-list-buffers.c:71,1
    - Dst: format_defaults_paste_buffer
      Src: /src/tmux/cmd-list-buffers.c:72,1
    - Dst: format_expand
      Src: /src/tmux/cmd-list-buffers.c:75,1
    - Dst: format_true
      Src: /src/tmux/cmd-list-buffers.c:76,1
    - Dst: free
      Src: /src/tmux/cmd-list-buffers.c:77,1
    - Dst: format_expand
      Src: /src/tmux/cmd-list-buffers.c:81,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-list-buffers.c:82,1
    - Dst: free
      Src: /src/tmux/cmd-list-buffers.c:83,1
    - Dst: format_free
      Src: /src/tmux/cmd-list-buffers.c:86,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 90
    functionName: cmd_list_buffers_exec
    functionSourceFile: /src/tmux/cmd-list-buffers.c
    functionUses: 0
    functionsReached:
    - format_defaults_paste_buffer
    - cmdq_get_client
    - cmdq_error
    - cmdq_print
    - format_expand
    - cmd_get_args
    - format_free
    - free
    - sort_order_from_string
    - args_get
    - sort_get_buffers
    - format_create
    - format_true
    - args_has
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_list_buffers_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_print
      Src: /src/tmux/cmd-display-message.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - value
    - arg
    argTypes:
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: cmd_display_message_each
    functionSourceFile: /src/tmux/cmd-display-message.c
    functionUses: 0
    functionsReached:
    - cmdq_print
    linkageType: ''
    returnType: void
    signature: void cmd_display_message_each(const char *key, const char *value, void
      *arg)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-display-message.c:63,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-display-message.c:64,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/cmd-display-message.c:65,1
    - Dst: args_has
      Src: /src/tmux/cmd-display-message.c:71,1
    - Dst: args_has
      Src: /src/tmux/cmd-display-message.c:72,1
    - Dst: args_count
      Src: /src/tmux/cmd-display-message.c:74,1
    - Dst: args_has
      Src: /src/tmux/cmd-display-message.c:77,1
    - Dst: window_pane_start_input
      Src: /src/tmux/cmd-display-message.c:80,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-display-message.c:82,1
    - Dst: free
      Src: /src/tmux/cmd-display-message.c:83,1
    - Dst: args_has
      Src: /src/tmux/cmd-display-message.c:92,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-display-message.c:93,1
    - Dst: args_has
      Src: /src/tmux/cmd-display-message.c:97,1
    - Dst: args_strtonum
      Src: /src/tmux/cmd-display-message.c:98,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-display-message.c:100,1
    - Dst: free
      Src: /src/tmux/cmd-display-message.c:101,1
    - Dst: cmd_find_best_client
      Src: /src/tmux/cmd-display-message.c:122,1
    - Dst: args_has
      Src: /src/tmux/cmd-display-message.c:125,1
    - Dst: format_create
      Src: /src/tmux/cmd-display-message.c:129,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-display-message.c:129,1
    - Dst: format_defaults
      Src: /src/tmux/cmd-display-message.c:130,1
    - Dst: args_has
      Src: /src/tmux/cmd-display-message.c:132,1
    - Dst: format_each
      Src: /src/tmux/cmd-display-message.c:133,1
    - Dst: format_free
      Src: /src/tmux/cmd-display-message.c:134,1
    - Dst: args_has
      Src: /src/tmux/cmd-display-message.c:138,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-display-message.c:139,1
    - Dst: format_expand_time
      Src: /src/tmux/cmd-display-message.c:141,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-display-message.c:143,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-display-message.c:144,1
    - Dst: args_has
      Src: /src/tmux/cmd-display-message.c:145,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-display-message.c:146,1
    - Dst: evbuffer_new
      Src: /src/tmux/cmd-display-message.c:148,1
    - Dst: fatalx
      Src: /src/tmux/cmd-display-message.c:150,1
    - Dst: evbuffer_add_printf
      Src: /src/tmux/cmd-display-message.c:151,1
    - Dst: server_client_print
      Src: /src/tmux/cmd-display-message.c:152,1
    - Dst: evbuffer_free
      Src: /src/tmux/cmd-display-message.c:153,1
    - Dst: status_message_set
      Src: /src/tmux/cmd-display-message.c:155,1
    - Dst: free
      Src: /src/tmux/cmd-display-message.c:156,1
    - Dst: format_free
      Src: /src/tmux/cmd-display-message.c:158,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 67
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 160
    functionName: cmd_display_message_exec
    functionSourceFile: /src/tmux/cmd-display-message.c
    functionUses: 0
    functionsReached:
    - evbuffer_free
    - format_create
    - cmdq_get_client
    - args_count
    - args_has
    - cmd_find_best_client
    - server_client_print
    - format_free
    - format_expand_time
    - cmdq_get_target_client
    - format_each
    - xstrdup
    - args_strtonum
    - window_pane_start_input
    - cmdq_print
    - cmd_get_args
    - format_defaults
    - status_message_set
    - cmdq_get_target
    - cmdq_error
    - fatalx
    - evbuffer_add_printf
    - free
    - evbuffer_new
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_display_message_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/tmux/mode-tree.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 175
    functionName: mode_tree_is_lowercase
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 0
    functionsReached:
    - tolower
    linkageType: ''
    returnType: int
    signature: int mode_tree_is_lowercase(const char *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_find_item
      Src: /src/tmux/mode-tree.c:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - mtl
    - tag
    argTypes:
    - struct mode_tree_list*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 190
    functionName: mode_tree_find_item
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 1
    functionsReached:
    - mode_tree_find_item
    linkageType: ''
    returnType: struct mode_tree_item
    signature: 'struct mode_tree_item *

      mode_tree_find_item(struct mode_tree_list *mtl, uint64_t tag)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_find_item
      Src: /src/tmux/mode-tree.c:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 188
    functionName: TAILQ_FOREACH
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 122
    functionsReached:
    - mode_tree_find_item
    linkageType: ''
    returnType: void
    signature: void TAILQ_FOREACH(mti, mtl, entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_free_items
      Src: /src/tmux/mode-tree.c:195,1
    - Dst: free
      Src: /src/tmux/mode-tree.c:197,1
    - Dst: free
      Src: /src/tmux/mode-tree.c:198,1
    - Dst: free
      Src: /src/tmux/mode-tree.c:199,1
    - Dst: free
      Src: /src/tmux/mode-tree.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - mti
    argTypes:
    - struct mode_tree_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 202
    functionName: mode_tree_free_item
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 0
    functionsReached:
    - free
    - mode_tree_free_items
    linkageType: ''
    returnType: void
    signature: void mode_tree_free_item(struct mode_tree_item *mti)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/mode-tree.c:210,1
    - Dst: mode_tree_free_item
      Src: /src/tmux/mode-tree.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mtl
    argTypes:
    - struct mode_tree_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 213
    functionName: mode_tree_free_items
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 1
    functionsReached:
    - mode_tree_free_item
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void mode_tree_free_items(struct mode_tree_list *mtl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/mode-tree.c:210,1
    - Dst: mode_tree_free_item
      Src: /src/tmux/mode-tree.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: TAILQ_FOREACH_SAFE
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 23
    functionsReached:
    - mode_tree_free_item
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void TAILQ_FOREACH_SAFE(mti, mtl, entry, mti1)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - mtd
    argTypes:
    - struct mode_tree_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 224
    functionName: mode_tree_check_selected
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mode_tree_check_selected(struct mode_tree_data *mtd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/mode-tree.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mtd
    argTypes:
    - struct mode_tree_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 232
    functionName: mode_tree_clear_lines
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void mode_tree_clear_lines(struct mode_tree_data *mtd)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xreallocarray
      Src: /src/tmux/mode-tree.c:247,1
    - Dst: TAILQ_LAST
      Src: /src/tmux/mode-tree.c:253,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/mode-tree.c:256,1
    - Dst: mode_tree_build_lines
      Src: /src/tmux/mode-tree.c:259,1
    - Dst: struct mode_tree_data*::keycb
      Src: /src/tmux/mode-tree.c:262,1
    - Dst: xstrdup
      Src: /src/tmux/mode-tree.c:273,1
    - Dst: key_string_lookup_key
      Src: /src/tmux/mode-tree.c:273,1
    - Dst: strlen
      Src: /src/tmux/mode-tree.c:275,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 3
    argNames:
    - mtd
    - mtl
    - depth
    argTypes:
    - struct mode_tree_data*
    - struct mode_tree_list*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 288
    functionName: mode_tree_build_lines
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 1
    functionsReached:
    - struct mode_tree_data*::keycb
    - strlen
    - key_string_lookup_key
    - xreallocarray
    - mode_tree_build_lines
    - TAILQ_EMPTY
    - TAILQ_LAST
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void mode_tree_build_lines(struct mode_tree_data *mtd,\n    struct
      mode_tree_list *mtl, u_int depth)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xreallocarray
      Src: /src/tmux/mode-tree.c:247,1
    - Dst: TAILQ_LAST
      Src: /src/tmux/mode-tree.c:253,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/mode-tree.c:256,1
    - Dst: mode_tree_build_lines
      Src: /src/tmux/mode-tree.c:259,1
    - Dst: keycb
      Src: /src/tmux/mode-tree.c:262,1
    - Dst: xstrdup
      Src: /src/tmux/mode-tree.c:273,1
    - Dst: key_string_lookup_key
      Src: /src/tmux/mode-tree.c:273,1
    - Dst: strlen
      Src: /src/tmux/mode-tree.c:275,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 246
    functionDepth: 3
    functionLinenumber: 246
    functionLinenumberEnd: 280
    functionName: TAILQ_FOREACH
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 122
    functionsReached:
    - mode_tree_build_lines
    - strlen
    - key_string_lookup_key
    - keycb
    - xreallocarray
    - TAILQ_EMPTY
    - TAILQ_LAST
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void TAILQ_FOREACH(mti, mtl, entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 287
    functionName: TAILQ_FOREACH
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 122
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TAILQ_FOREACH(mti, mtl, entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_clear_tagged
      Src: /src/tmux/mode-tree.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mtl
    argTypes:
    - struct mode_tree_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 299
    functionName: mode_tree_clear_tagged
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 1
    functionsReached:
    - mode_tree_clear_tagged
    linkageType: ''
    returnType: void
    signature: void mode_tree_clear_tagged(struct mode_tree_list *mtl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_clear_tagged
      Src: /src/tmux/mode-tree.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 298
    functionName: TAILQ_FOREACH
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 122
    functionsReached:
    - mode_tree_clear_tagged
    linkageType: ''
    returnType: void
    signature: void TAILQ_FOREACH(mti, mtl, entry)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - mtd
    - wrap
    argTypes:
    - struct mode_tree_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 317
    functionName: mode_tree_up
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mode_tree_up(struct mode_tree_data *mtd, int wrap)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - mtd
    - wrap
    argTypes:
    - struct mode_tree_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 336
    functionName: mode_tree_down
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mode_tree_down(struct mode_tree_data *mtd, int wrap)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: struct mode_tree_data*::swapcb
      Src: /src/tmux/mode-tree.c:360,1
    - Dst: mode_tree_build
      Src: /src/tmux/mode-tree.c:363,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - mtd
    - direction
    argTypes:
    - struct mode_tree_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 365
    functionName: mode_tree_swap
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 0
    functionsReached:
    - mode_tree_build
    - struct mode_tree_data*::swapcb
    linkageType: ''
    returnType: void
    signature: void mode_tree_swap(struct mode_tree_data *mtd, int direction)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mtd
    argTypes:
    - struct mode_tree_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 373
    functionName: mode_tree_get_current
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      mode_tree_get_current(struct mode_tree_data *mtd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mtd
    argTypes:
    - struct mode_tree_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 379
    functionName: mode_tree_get_current_name
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      mode_tree_get_current_name(struct mode_tree_data *mtd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_build
      Src: /src/tmux/mode-tree.c:386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mtd
    argTypes:
    - struct mode_tree_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 388
    functionName: mode_tree_expand_current
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 0
    functionsReached:
    - mode_tree_build
    linkageType: ''
    returnType: void
    signature: void mode_tree_expand_current(struct mode_tree_data *mtd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_build
      Src: /src/tmux/mode-tree.c:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mtd
    argTypes:
    - struct mode_tree_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 397
    functionName: mode_tree_collapse_current
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 2
    functionsReached:
    - mode_tree_build
    linkageType: ''
    returnType: void
    signature: void mode_tree_collapse_current(struct mode_tree_data *mtd)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - mtd
    - tag
    - found
    argTypes:
    - struct mode_tree_data*
    - uint64_t
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 413
    functionName: mode_tree_get_tag
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mode_tree_get_tag(struct mode_tree_data *mtd, uint64_t tag, u_int
      *found)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_get_tag
      Src: /src/tmux/mode-tree.c:420,1
    - Dst: mode_tree_build
      Src: /src/tmux/mode-tree.c:424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - mtd
    - tag
    argTypes:
    - struct mode_tree_data*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 426
    functionName: mode_tree_expand
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 0
    functionsReached:
    - mode_tree_get_tag
    - mode_tree_build
    linkageType: ''
    returnType: void
    signature: void mode_tree_expand(struct mode_tree_data *mtd, uint64_t tag)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_get_tag
      Src: /src/tmux/mode-tree.c:433,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - mtd
    - tag
    argTypes:
    - struct mode_tree_data*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 451
    functionName: mode_tree_set_current
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 0
    functionsReached:
    - mode_tree_get_tag
    linkageType: ''
    returnType: int
    signature: int mode_tree_set_current(struct mode_tree_data *mtd, uint64_t tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - mtd
    argTypes:
    - struct mode_tree_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 466
    functionName: mode_tree_count_tagged
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u_int
    signature: u_int mode_tree_count_tagged(struct mode_tree_data *mtd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cb
      Src: /src/tmux/mode-tree.c:481,1
    - Dst: cb
      Src: /src/tmux/mode-tree.c:486,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - mtd
    - cb
    - c
    - key
    - current
    argTypes:
    - struct mode_tree_data*
    - mode_tree_each_cb
    - struct client*
    - key_code
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 488
    functionName: mode_tree_each_tagged
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 2
    functionsReached:
    - cb
    linkageType: ''
    returnType: void
    signature: "void mode_tree_each_tagged(struct mode_tree_data *mtd, mode_tree_each_cb
      cb,\n    struct client *c, key_code key, int current)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/mode-tree.c:501,1
    - Dst: args_has
      Src: /src/tmux/mode-tree.c:508,1
    - Dst: args_has
      Src: /src/tmux/mode-tree.c:510,1
    - Dst: sort_order_from_string
      Src: /src/tmux/mode-tree.c:515,1
    - Dst: args_get
      Src: /src/tmux/mode-tree.c:515,1
    - Dst: args_has
      Src: /src/tmux/mode-tree.c:516,1
    - Dst: args_has
      Src: /src/tmux/mode-tree.c:518,1
    - Dst: xstrdup
      Src: /src/tmux/mode-tree.c:519,1
    - Dst: args_get
      Src: /src/tmux/mode-tree.c:519,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/mode-tree.c:533,1
    - Dst: screen_init
      Src: /src/tmux/mode-tree.c:536,1
    - Dst: screen_size_x
      Src: /src/tmux/mode-tree.c:536,1
    - Dst: screen_size_y
      Src: /src/tmux/mode-tree.c:536,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 14
    argNames:
    - wp
    - args
    - buildcb
    - drawcb
    - searchcb
    - menucb
    - heightcb
    - keycb
    - swapcb
    - sortcb
    - helpcb
    - modedata
    - menu
    - s
    argTypes:
    - struct window_pane*
    - struct args*
    - mode_tree_build_cb
    - mode_tree_draw_cb
    - mode_tree_search_cb
    - mode_tree_menu_cb
    - mode_tree_height_cb
    - mode_tree_key_cb
    - mode_tree_swap_cb
    - mode_tree_sort_cb
    - mode_tree_help_cb
    - void*
    - struct menu_item*
    - struct screen**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 490
    functionDepth: 2
    functionLinenumber: 490
    functionLinenumberEnd: 540
    functionName: mode_tree_start
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 2
    functionsReached:
    - screen_size_y
    - screen_init
    - screen_size_x
    - xcalloc
    - sort_order_from_string
    - args_get
    - xstrdup
    - TAILQ_INIT
    - args_has
    linkageType: ''
    returnType: struct mode_tree_data
    signature: "struct mode_tree_data *\nmode_tree_start(struct window_pane *wp, struct
      args *args,\n    mode_tree_build_cb buildcb, mode_tree_draw_cb drawcb,\n    mode_tree_search_cb
      searchcb, mode_tree_menu_cb menucb,\n    mode_tree_height_cb heightcb, mode_tree_key_cb
      keycb,\n    mode_tree_swap_cb swapcb, mode_tree_sort_cb sortcb,\n    mode_tree_help_cb
      helpcb, void *modedata, const struct menu_item *menu,\n    struct screen **s)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: args_has
      Src: /src/tmux/mode-tree.c:547,1
    - Dst: window_zoom
      Src: /src/tmux/mode-tree.c:549,1
    - Dst: server_redraw_window
      Src: /src/tmux/mode-tree.c:550,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - mtd
    - args
    argTypes:
    - struct mode_tree_data*
    - struct args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 542
    functionDepth: 4
    functionLinenumber: 542
    functionLinenumberEnd: 553
    functionName: mode_tree_zoom
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 2
    functionsReached:
    - server_redraw_window
    - window_zoom
    - args_has
    linkageType: ''
    returnType: void
    signature: void mode_tree_zoom(struct mode_tree_data *mtd, struct args *args)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: struct mode_tree_data*::heightcb
      Src: /src/tmux/mode-tree.c:562,1
    - Dst: screen_size_y
      Src: /src/tmux/mode-tree.c:562,1
    - Dst: screen_size_y
      Src: /src/tmux/mode-tree.c:563,1
    - Dst: screen_size_y
      Src: /src/tmux/mode-tree.c:564,1
    - Dst: screen_size_y
      Src: /src/tmux/mode-tree.c:567,1
    - Dst: screen_size_y
      Src: /src/tmux/mode-tree.c:569,1
    - Dst: screen_size_y
      Src: /src/tmux/mode-tree.c:571,1
    - Dst: screen_size_y
      Src: /src/tmux/mode-tree.c:573,1
    - Dst: screen_size_y
      Src: /src/tmux/mode-tree.c:579,1
    - Dst: screen_size_y
      Src: /src/tmux/mode-tree.c:581,1
    - Dst: screen_size_y
      Src: /src/tmux/mode-tree.c:582,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - mtd
    argTypes:
    - struct mode_tree_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 583
    functionName: mode_tree_set_height
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 0
    functionsReached:
    - struct mode_tree_data*::heightcb
    - screen_size_y
    linkageType: ''
    returnType: void
    signature: void mode_tree_set_height(struct mode_tree_data *mtd)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_CONCAT
      Src: /src/tmux/mode-tree.c:596,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/mode-tree.c:597,1
    - Dst: struct mode_tree_data*::sortcb
      Src: /src/tmux/mode-tree.c:600,1
    - Dst: struct mode_tree_data*::buildcb
      Src: /src/tmux/mode-tree.c:601,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/mode-tree.c:602,1
    - Dst: struct mode_tree_data*::buildcb
      Src: /src/tmux/mode-tree.c:604,1
    - Dst: mode_tree_free_items
      Src: /src/tmux/mode-tree.c:606,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/mode-tree.c:607,1
    - Dst: mode_tree_clear_lines
      Src: /src/tmux/mode-tree.c:609,1
    - Dst: mode_tree_build_lines
      Src: /src/tmux/mode-tree.c:611,1
    - Dst: mode_tree_set_current
      Src: /src/tmux/mode-tree.c:615,1
    - Dst: screen_size_x
      Src: /src/tmux/mode-tree.c:617,1
    - Dst: mode_tree_set_height
      Src: /src/tmux/mode-tree.c:619,1
    - Dst: screen_size_y
      Src: /src/tmux/mode-tree.c:621,1
    - Dst: mode_tree_check_selected
      Src: /src/tmux/mode-tree.c:622,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - mtd
    argTypes:
    - struct mode_tree_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 585
    functionDepth: 3
    functionLinenumber: 585
    functionLinenumberEnd: 623
    functionName: mode_tree_build
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 15
    functionsReached:
    - struct mode_tree_data*::buildcb
    - mode_tree_set_current
    - screen_size_y
    - screen_size_x
    - mode_tree_set_height
    - mode_tree_check_selected
    - struct mode_tree_data*::sortcb
    - mode_tree_clear_lines
    - mode_tree_build_lines
    - TAILQ_EMPTY
    - TAILQ_CONCAT
    - mode_tree_free_items
    - TAILQ_INIT
    linkageType: ''
    returnType: void
    signature: void mode_tree_build(struct mode_tree_data *mtd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/mode-tree.c:629,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - mtd
    argTypes:
    - struct mode_tree_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 630
    functionName: mode_tree_remove_ref
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void mode_tree_remove_ref(struct mode_tree_data *mtd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: server_unzoom_window
      Src: /src/tmux/mode-tree.c:638,1
    - Dst: mode_tree_free_items
      Src: /src/tmux/mode-tree.c:640,1
    - Dst: mode_tree_clear_lines
      Src: /src/tmux/mode-tree.c:641,1
    - Dst: screen_free
      Src: /src/tmux/mode-tree.c:642,1
    - Dst: free
      Src: /src/tmux/mode-tree.c:644,1
    - Dst: free
      Src: /src/tmux/mode-tree.c:645,1
    - Dst: mode_tree_remove_ref
      Src: /src/tmux/mode-tree.c:648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - mtd
    argTypes:
    - struct mode_tree_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 632
    functionDepth: 3
    functionLinenumber: 632
    functionLinenumberEnd: 649
    functionName: mode_tree_free
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 2
    functionsReached:
    - mode_tree_remove_ref
    - screen_free
    - free
    - mode_tree_clear_lines
    - server_unzoom_window
    - mode_tree_free_items
    linkageType: ''
    returnType: void
    signature: void mode_tree_free(struct mode_tree_data *mtd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: screen_resize
      Src: /src/tmux/mode-tree.c:656,1
    - Dst: mode_tree_build
      Src: /src/tmux/mode-tree.c:658,1
    - Dst: mode_tree_draw
      Src: /src/tmux/mode-tree.c:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - mtd
    - sx
    - sy
    argTypes:
    - struct mode_tree_data*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 651
    functionDepth: 4
    functionLinenumber: 651
    functionLinenumberEnd: 662
    functionName: mode_tree_resize
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 2
    functionsReached:
    - mode_tree_draw
    - mode_tree_build
    - screen_resize
    linkageType: ''
    returnType: void
    signature: void mode_tree_resize(struct mode_tree_data *mtd, u_int sx, u_int sy)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/mode-tree.c:671,1
    - Dst: xcalloc
      Src: /src/tmux/mode-tree.c:674,1
    - Dst: xstrdup
      Src: /src/tmux/mode-tree.c:679,1
    - Dst: xstrdup
      Src: /src/tmux/mode-tree.c:681,1
    - Dst: mode_tree_find_item
      Src: /src/tmux/mode-tree.c:683,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/mode-tree.c:693,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/mode-tree.c:696,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/mode-tree.c:698,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 7
    argNames:
    - mtd
    - parent
    - itemdata
    - tag
    - name
    - text
    - expanded
    argTypes:
    - struct mode_tree_data*
    - struct mode_tree_item*
    - void*
    - uint64_t
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 664
    functionDepth: 3
    functionLinenumber: 664
    functionLinenumberEnd: 701
    functionName: mode_tree_add
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 5
    functionsReached:
    - xcalloc
    - mode_tree_find_item
    - log_debug
    - xstrdup
    - TAILQ_INIT
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: struct mode_tree_item
    signature: "struct mode_tree_item *\nmode_tree_add(struct mode_tree_data *mtd,
      struct mode_tree_item *parent,\n    void *itemdata, uint64_t tag, const char
      *name, const char *text,\n    int expanded)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mti
    argTypes:
    - struct mode_tree_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 707
    functionName: mode_tree_draw_as_parent
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mode_tree_draw_as_parent(struct mode_tree_item *mti)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mti
    argTypes:
    - struct mode_tree_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 713
    functionName: mode_tree_no_tag
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mode_tree_no_tag(struct mode_tree_item *mti)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mti
    - align
    argTypes:
    - struct mode_tree_item*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 723
    functionName: mode_tree_align
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mode_tree_align(struct mode_tree_item *mti, int align)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/mode-tree.c:731,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/mode-tree.c:733,1
    - Dst: mode_tree_free_item
      Src: /src/tmux/mode-tree.c:734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mtd
    - mti
    argTypes:
    - struct mode_tree_data*
    - struct mode_tree_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 725
    functionDepth: 2
    functionLinenumber: 725
    functionLinenumberEnd: 735
    functionName: mode_tree_remove
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 0
    functionsReached:
    - mode_tree_free_item
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void mode_tree_remove(struct mode_tree_data *mtd, struct mode_tree_item
      *mti)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/mode-tree.c:756,1
    - Dst: memcpy
      Src: /src/tmux/mode-tree.c:757,1
    - Dst: style_apply
      Src: /src/tmux/mode-tree.c:758,1
    - Dst: screen_write_start
      Src: /src/tmux/mode-tree.c:763,1
    - Dst: screen_write_clearscreen
      Src: /src/tmux/mode-tree.c:764,1
    - Dst: strlen
      Src: /src/tmux/mode-tree.c:781,1
    - Dst: strlen
      Src: /src/tmux/mode-tree.c:782,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/mode-tree.c:793,1
    - Dst: xasprintf
      Src: /src/tmux/mode-tree.c:797,1
    - Dst: xstrdup
      Src: /src/tmux/mode-tree.c:799,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/mode-tree.c:803,1
    - Dst: xstrdup
      Src: /src/tmux/mode-tree.c:811,1
    - Dst: xcalloc
      Src: /src/tmux/mode-tree.c:815,1
    - Dst: strlcat
      Src: /src/tmux/mode-tree.c:819,1
    - Dst: strlcat
      Src: /src/tmux/mode-tree.c:821,1
    - Dst: strlcat
      Src: /src/tmux/mode-tree.c:824,1
    - Dst: strlcat
      Src: /src/tmux/mode-tree.c:826,1
    - Dst: strlcat
      Src: /src/tmux/mode-tree.c:827,1
    - Dst: xasprintf
      Src: /src/tmux/mode-tree.c:834,1
    - Dst: utf8_cstrwidth
      Src: /src/tmux/mode-tree.c:837,1
    - Dst: free
      Src: /src/tmux/mode-tree.c:840,1
    - Dst: screen_write_clearendofline
      Src: /src/tmux/mode-tree.c:848,1
    - Dst: screen_write_nputs
      Src: /src/tmux/mode-tree.c:849,1
    - Dst: format_draw
      Src: /src/tmux/mode-tree.c:851,1
    - Dst: screen_write_clearendofline
      Src: /src/tmux/mode-tree.c:855,1
    - Dst: screen_write_nputs
      Src: /src/tmux/mode-tree.c:856,1
    - Dst: format_draw
      Src: /src/tmux/mode-tree.c:858,1
    - Dst: free
      Src: /src/tmux/mode-tree.c:862,1
    - Dst: free
      Src: /src/tmux/mode-tree.c:863,1
    - Dst: screen_size_y
      Src: /src/tmux/mode-tree.c:874,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/mode-tree.c:883,1
    - Dst: screen_write_box
      Src: /src/tmux/mode-tree.c:884,1
    - Dst: xasprintf
      Src: /src/tmux/mode-tree.c:887,1
    - Dst: sort_order_to_string
      Src: /src/tmux/mode-tree.c:888,1
    - Dst: xasprintf
      Src: /src/tmux/mode-tree.c:891,1
    - Dst: strlen
      Src: /src/tmux/mode-tree.c:892,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/mode-tree.c:893,1
    - Dst: screen_write_puts
      Src: /src/tmux/mode-tree.c:894,1
    - Dst: strlen
      Src: /src/tmux/mode-tree.c:900,1
    - Dst: screen_write_puts
      Src: /src/tmux/mode-tree.c:901,1
    - Dst: screen_write_puts
      Src: /src/tmux/mode-tree.c:903,1
    - Dst: screen_write_puts
      Src: /src/tmux/mode-tree.c:905,1
    - Dst: screen_write_puts
      Src: /src/tmux/mode-tree.c:906,1
    - Dst: screen_write_puts
      Src: /src/tmux/mode-tree.c:908,1
    - Dst: free
      Src: /src/tmux/mode-tree.c:910,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/mode-tree.c:916,1
    - Dst: struct mode_tree_data*::drawcb
      Src: /src/tmux/mode-tree.c:917,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/mode-tree.c:921,1
    - Dst: screen_write_stop
      Src: /src/tmux/mode-tree.c:922,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 134
    argCount: 1
    argNames:
    - mtd
    argTypes:
    - struct mode_tree_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 737
    functionDepth: 2
    functionLinenumber: 737
    functionLinenumberEnd: 923
    functionName: mode_tree_draw
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 12
    functionsReached:
    - strlcat
    - screen_write_nputs
    - style_apply
    - screen_size_y
    - xcalloc
    - memcpy
    - strlen
    - xstrdup
    - screen_write_start
    - utf8_cstrwidth
    - struct mode_tree_data*::drawcb
    - format_draw
    - xasprintf
    - screen_write_box
    - sort_order_to_string
    - screen_write_cursormove
    - screen_write_clearscreen
    - free
    - TAILQ_EMPTY
    - screen_write_clearendofline
    - screen_write_puts
    - screen_write_stop
    linkageType: ''
    returnType: void
    signature: void mode_tree_draw(struct mode_tree_data *mtd)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_PREV
      Src: /src/tmux/mode-tree.c:936,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/mode-tree.c:938,1
    - Dst: TAILQ_LAST
      Src: /src/tmux/mode-tree.c:939,1
    - Dst: TAILQ_LAST
      Src: /src/tmux/mode-tree.c:950,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/mode-tree.c:951,1
    - Dst: TAILQ_LAST
      Src: /src/tmux/mode-tree.c:952,1
    - Dst: strstr
      Src: /src/tmux/mode-tree.c:961,1
    - Dst: strcasestr
      Src: /src/tmux/mode-tree.c:963,1
    - Dst: struct mode_tree_data*::searchcb
      Src: /src/tmux/mode-tree.c:967,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 1
    argNames:
    - mtd
    argTypes:
    - struct mode_tree_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 972
    functionName: mode_tree_search_backward
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 0
    functionsReached:
    - strcasestr
    - TAILQ_PREV
    - struct mode_tree_data*::searchcb
    - strstr
    - TAILQ_EMPTY
    - TAILQ_LAST
    linkageType: ''
    returnType: struct mode_tree_item
    signature: 'struct mode_tree_item *

      mode_tree_search_backward(struct mode_tree_data *mtd)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/mode-tree.c:985,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/mode-tree.c:986,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/mode-tree.c:987,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/mode-tree.c:994,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/mode-tree.c:1001,1
    - Dst: strstr
      Src: /src/tmux/mode-tree.c:1006,1
    - Dst: strcasestr
      Src: /src/tmux/mode-tree.c:1008,1
    - Dst: struct mode_tree_data*::searchcb
      Src: /src/tmux/mode-tree.c:1012,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 34
    argCount: 1
    argNames:
    - mtd
    argTypes:
    - struct mode_tree_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 974
    functionDepth: 1
    functionLinenumber: 974
    functionLinenumberEnd: 1017
    functionName: mode_tree_search_forward
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 0
    functionsReached:
    - strcasestr
    - TAILQ_FIRST
    - struct mode_tree_data*::searchcb
    - strstr
    - TAILQ_EMPTY
    - TAILQ_NEXT
    linkageType: ''
    returnType: struct mode_tree_item
    signature: 'struct mode_tree_item *

      mode_tree_search_forward(struct mode_tree_data *mtd)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_search_forward
      Src: /src/tmux/mode-tree.c:1026,1
    - Dst: mode_tree_search_backward
      Src: /src/tmux/mode-tree.c:1028,1
    - Dst: mode_tree_build
      Src: /src/tmux/mode-tree.c:1039,1
    - Dst: mode_tree_set_current
      Src: /src/tmux/mode-tree.c:1040,1
    - Dst: mode_tree_draw
      Src: /src/tmux/mode-tree.c:1041,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - mtd
    argTypes:
    - struct mode_tree_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1019
    functionDepth: 4
    functionLinenumber: 1019
    functionLinenumberEnd: 1043
    functionName: mode_tree_search_set
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 0
    functionsReached:
    - mode_tree_draw
    - mode_tree_build
    - mode_tree_search_backward
    - mode_tree_set_current
    - mode_tree_search_forward
    linkageType: ''
    returnType: void
    signature: void mode_tree_search_set(struct mode_tree_data *mtd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/mode-tree.c:1054,1
    - Dst: xstrdup
      Src: /src/tmux/mode-tree.c:1059,1
    - Dst: mode_tree_is_lowercase
      Src: /src/tmux/mode-tree.c:1060,1
    - Dst: mode_tree_search_set
      Src: /src/tmux/mode-tree.c:1061,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - c
    - data
    - s
    - done
    argTypes:
    - __unused*
    - void*
    - char*
    - __unused
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1045
    functionDepth: 5
    functionLinenumber: 1045
    functionLinenumberEnd: 1064
    functionName: mode_tree_search_callback
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 0
    functionsReached:
    - free
    - xstrdup
    - mode_tree_is_lowercase
    - mode_tree_search_set
    linkageType: ''
    returnType: int
    signature: "int mode_tree_search_callback(__unused struct client *c, void *data,
      const char *s,\n    __unused int done)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_remove_ref
      Src: /src/tmux/mode-tree.c:1069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1066
    functionDepth: 1
    functionLinenumber: 1066
    functionLinenumberEnd: 1070
    functionName: mode_tree_search_free
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 0
    functionsReached:
    - mode_tree_remove_ref
    linkageType: ''
    returnType: void
    signature: void mode_tree_search_free(void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/mode-tree.c:1082,1
    - Dst: xstrdup
      Src: /src/tmux/mode-tree.c:1086,1
    - Dst: mode_tree_build
      Src: /src/tmux/mode-tree.c:1088,1
    - Dst: mode_tree_draw
      Src: /src/tmux/mode-tree.c:1089,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - c
    - data
    - s
    - done
    argTypes:
    - __unused*
    - void*
    - char*
    - __unused
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1072
    functionDepth: 4
    functionLinenumber: 1072
    functionLinenumberEnd: 1093
    functionName: mode_tree_filter_callback
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 0
    functionsReached:
    - mode_tree_draw
    - mode_tree_build
    - free
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int mode_tree_filter_callback(__unused struct client *c, void *data,
      const char *s,\n    __unused int done)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_remove_ref
      Src: /src/tmux/mode-tree.c:1098,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1095
    functionDepth: 1
    functionLinenumber: 1095
    functionLinenumberEnd: 1099
    functionName: mode_tree_filter_free
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 0
    functionsReached:
    - mode_tree_remove_ref
    linkageType: ''
    returnType: void
    signature: void mode_tree_filter_free(void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct mode_tree_data*::menucb
      Src: /src/tmux/mode-tree.c:1114,1
    - Dst: mode_tree_remove_ref
      Src: /src/tmux/mode-tree.c:1117,1
    - Dst: free
      Src: /src/tmux/mode-tree.c:1118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - menu
    - u_int
    - key
    - data
    argTypes:
    - __unused*
    - __unused
    - key_code
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1101
    functionDepth: 1
    functionLinenumber: 1101
    functionLinenumberEnd: 1119
    functionName: mode_tree_menu_callback
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 0
    functionsReached:
    - struct mode_tree_data*::menucb
    - mode_tree_remove_ref
    - free
    linkageType: ''
    returnType: void
    signature: "void mode_tree_menu_callback(__unused struct menu *menu, __unused
      u_int idx,\n    key_code key, void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/tmux/mode-tree.c:1140,1
    - Dst: xstrdup
      Src: /src/tmux/mode-tree.c:1143,1
    - Dst: menu_create
      Src: /src/tmux/mode-tree.c:1145,1
    - Dst: menu_add_items
      Src: /src/tmux/mode-tree.c:1146,1
    - Dst: free
      Src: /src/tmux/mode-tree.c:1147,1
    - Dst: xmalloc
      Src: /src/tmux/mode-tree.c:1149,1
    - Dst: menu_display
      Src: /src/tmux/mode-tree.c:1159,1
    - Dst: mode_tree_remove_ref
      Src: /src/tmux/mode-tree.c:1161,1
    - Dst: free
      Src: /src/tmux/mode-tree.c:1162,1
    - Dst: menu_free
      Src: /src/tmux/mode-tree.c:1163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 5
    argNames:
    - mtd
    - c
    - x
    - y
    - outside
    argTypes:
    - struct mode_tree_data*
    - struct client*
    - u_int
    - u_int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1121
    functionDepth: 3
    functionLinenumber: 1121
    functionLinenumberEnd: 1165
    functionName: mode_tree_display_menu
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - mode_tree_remove_ref
    - menu_create
    - menu_free
    - menu_display
    - xmalloc
    - free
    - menu_add_items
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void mode_tree_display_menu(struct mode_tree_data *mtd, struct client
      *c, u_int x,\n    u_int y, int outside)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __unused*::helpcb
      Src: /src/tmux/mode-tree.c:1178,1
    - Dst: popup_display
      Src: /src/tmux/mode-tree.c:1194,1
    - Dst: popup_write
      Src: /src/tmux/mode-tree.c:1199,1
    - Dst: cmd_template_replace
      Src: /src/tmux/mode-tree.c:1201,1
    - Dst: popup_write
      Src: /src/tmux/mode-tree.c:1202,1
    - Dst: strlen
      Src: /src/tmux/mode-tree.c:1202,1
    - Dst: free
      Src: /src/tmux/mode-tree.c:1203,1
    - Dst: cmd_template_replace
      Src: /src/tmux/mode-tree.c:1206,1
    - Dst: popup_write
      Src: /src/tmux/mode-tree.c:1207,1
    - Dst: strlen
      Src: /src/tmux/mode-tree.c:1207,1
    - Dst: free
      Src: /src/tmux/mode-tree.c:1208,1
    - Dst: cmd_template_replace
      Src: /src/tmux/mode-tree.c:1211,1
    - Dst: popup_write
      Src: /src/tmux/mode-tree.c:1212,1
    - Dst: strlen
      Src: /src/tmux/mode-tree.c:1212,1
    - Dst: free
      Src: /src/tmux/mode-tree.c:1213,1
    - Dst: popup_write
      Src: /src/tmux/mode-tree.c:1215,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - mtd
    - c
    argTypes:
    - __unused*
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1167
    functionDepth: 4
    functionLinenumber: 1167
    functionLinenumberEnd: 1216
    functionName: mode_tree_display_help
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 0
    functionsReached:
    - __unused*::helpcb
    - popup_display
    - popup_write
    - free
    - strlen
    - cmd_template_replace
    linkageType: ''
    returnType: void
    signature: void mode_tree_display_help(__unused struct mode_tree_data *mtd, struct
      client *c)
  - BBCount: 77
    BranchProfiles: []
    Callsites:
    - Dst: KEYC_IS_MOUSE
      Src: /src/tmux/mode-tree.c:1227,1
    - Dst: cmd_mouse_at
      Src: /src/tmux/mode-tree.c:1228,1
    - Dst: mode_tree_display_menu
      Src: /src/tmux/mode-tree.c:1239,1
    - Dst: mode_tree_display_menu
      Src: /src/tmux/mode-tree.c:1253,1
    - Dst: mode_tree_display_menu
      Src: /src/tmux/mode-tree.c:1258,1
    - Dst: mode_tree_display_help
      Src: /src/tmux/mode-tree.c:1292,1
    - Dst: mode_tree_up
      Src: /src/tmux/mode-tree.c:1298,1
    - Dst: mode_tree_down
      Src: /src/tmux/mode-tree.c:1304,1
    - Dst: mode_tree_swap
      Src: /src/tmux/mode-tree.c:1308,1
    - Dst: mode_tree_swap
      Src: /src/tmux/mode-tree.c:1312,1
    - Dst: mode_tree_up
      Src: /src/tmux/mode-tree.c:1319,1
    - Dst: mode_tree_down
      Src: /src/tmux/mode-tree.c:1327,1
    - Dst: mode_tree_clear_tagged
      Src: /src/tmux/mode-tree.c:1356,1
    - Dst: mode_tree_down
      Src: /src/tmux/mode-tree.c:1361,1
    - Dst: sort_next_order
      Src: /src/tmux/mode-tree.c:1379,1
    - Dst: mode_tree_build
      Src: /src/tmux/mode-tree.c:1380,1
    - Dst: mode_tree_build
      Src: /src/tmux/mode-tree.c:1384,1
    - Dst: mode_tree_up
      Src: /src/tmux/mode-tree.c:1392,1
    - Dst: mode_tree_build
      Src: /src/tmux/mode-tree.c:1396,1
    - Dst: mode_tree_down
      Src: /src/tmux/mode-tree.c:1403,1
    - Dst: mode_tree_build
      Src: /src/tmux/mode-tree.c:1406,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/mode-tree.c:1410,1
    - Dst: mode_tree_build
      Src: /src/tmux/mode-tree.c:1412,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/mode-tree.c:1415,1
    - Dst: mode_tree_build
      Src: /src/tmux/mode-tree.c:1417,1
    - Dst: status_prompt_set
      Src: /src/tmux/mode-tree.c:1424,1
    - Dst: mode_tree_search_set
      Src: /src/tmux/mode-tree.c:1430,1
    - Dst: mode_tree_search_set
      Src: /src/tmux/mode-tree.c:1434,1
    - Dst: status_prompt_set
      Src: /src/tmux/mode-tree.c:1438,1
    - Dst: mode_tree_build
      Src: /src/tmux/mode-tree.c:1454,1
    - Dst: mode_tree_check_selected
      Src: /src/tmux/mode-tree.c:1456,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 212
    argCount: 6
    argNames:
    - mtd
    - c
    - key
    - m
    - xp
    - yp
    argTypes:
    - struct mode_tree_data*
    - struct client*
    - key_code*
    - struct mouse_event*
    - u_int*
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1218
    functionDepth: 5
    functionLinenumber: 1218
    functionLinenumberEnd: 1460
    functionName: mode_tree_key
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 2
    functionsReached:
    - mode_tree_clear_tagged
    - KEYC_IS_MOUSE
    - TAILQ_FOREACH
    - mode_tree_down
    - cmd_mouse_at
    - mode_tree_up
    - sort_next_order
    - mode_tree_check_selected
    - mode_tree_swap
    - mode_tree_build
    - mode_tree_display_help
    - mode_tree_display_menu
    - mode_tree_search_set
    - status_prompt_set
    linkageType: ''
    returnType: int
    signature: "int mode_tree_key(struct mode_tree_data *mtd, struct client *c, key_code
      *key,\n    struct mouse_event *m, u_int *xp, u_int *yp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_new_state
      Src: /src/tmux/mode-tree.c:1472,1
    - Dst: cmd_parse_and_append
      Src: /src/tmux/mode-tree.c:1473,1
    - Dst: toupper
      Src: /src/tmux/mode-tree.c:1476,1
    - Dst: status_message_set
      Src: /src/tmux/mode-tree.c:1477,1
    - Dst: free
      Src: /src/tmux/mode-tree.c:1479,1
    - Dst: cmdq_free_state
      Src: /src/tmux/mode-tree.c:1481,1
    - Dst: free
      Src: /src/tmux/mode-tree.c:1483,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - c
    - fs
    - name
    argTypes:
    - struct client*
    - struct cmd_find_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1462
    functionDepth: 1
    functionLinenumber: 1462
    functionLinenumberEnd: 1484
    functionName: mode_tree_run_command
    functionSourceFile: /src/tmux/mode-tree.c
    functionUses: 1
    functionsReached:
    - cmdq_new_state
    - toupper
    - cmdq_free_state
    - free
    - cmd_parse_and_append
    - status_message_set
    linkageType: ''
    returnType: void
    signature: "void mode_tree_run_command(struct client *c, struct cmd_find_state
      *fs,\n    const char *template, const char *name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/screen.c:64,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/screen.c:65,1
    - Dst: free
      Src: /src/tmux/screen.c:66,1
    - Dst: free
      Src: /src/tmux/screen.c:67,1
    - Dst: free
      Src: /src/tmux/screen.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct screen*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 72
    functionName: screen_free_titles
    functionSourceFile: /src/tmux/screen.c
    functionUses: 0
    functionsReached:
    - free
    - TAILQ_FIRST
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void screen_free_titles(struct screen *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grid_create
      Src: /src/tmux/screen.c:78,1
    - Dst: xstrdup
      Src: /src/tmux/screen.c:81,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/screen.c:95,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/screen.c:96,1
    - Dst: screen_reinit
      Src: /src/tmux/screen.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 4
    argNames:
    - s
    - sx
    - sy
    - hlimit
    argTypes:
    - struct screen*
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 103
    functionName: screen_init
    functionSourceFile: /src/tmux/screen.c
    functionUses: 13
    functionsReached:
    - grid_create
    - screen_reinit
    - xstrdup
    - TAILQ_INIT
    linkageType: ''
    returnType: void
    signature: void screen_init(struct screen *s, u_int sx, u_int sy, u_int hlimit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_y
      Src: /src/tmux/screen.c:113,1
    - Dst: options_get_number
      Src: /src/tmux/screen.c:117,1
    - Dst: SCREEN_IS_ALTERNATE
      Src: /src/tmux/screen.c:120,1
    - Dst: screen_alternate_off
      Src: /src/tmux/screen.c:121,1
    - Dst: screen_reset_tabs
      Src: /src/tmux/screen.c:125,1
    - Dst: grid_clear_lines
      Src: /src/tmux/screen.c:127,1
    - Dst: screen_clear_selection
      Src: /src/tmux/screen.c:129,1
    - Dst: screen_free_titles
      Src: /src/tmux/screen.c:130,1
    - Dst: image_free_all
      Src: /src/tmux/screen.c:133,1
    - Dst: screen_set_progress_bar
      Src: /src/tmux/screen.c:136,1
    - Dst: screen_reset_hyperlinks
      Src: /src/tmux/screen.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct screen*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 106
    functionDepth: 7
    functionLinenumber: 106
    functionLinenumberEnd: 138
    functionName: screen_reinit
    functionSourceFile: /src/tmux/screen.c
    functionUses: 2
    functionsReached:
    - screen_reset_tabs
    - screen_size_y
    - grid_clear_lines
    - image_free_all
    - screen_reset_hyperlinks
    - screen_set_progress_bar
    - screen_clear_selection
    - screen_free_titles
    - SCREEN_IS_ALTERNATE
    - options_get_number
    - screen_alternate_off
    linkageType: ''
    returnType: void
    signature: void screen_reinit(struct screen *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hyperlinks_init
      Src: /src/tmux/screen.c:145,1
    - Dst: hyperlinks_reset
      Src: /src/tmux/screen.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct screen*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 148
    functionName: screen_reset_hyperlinks
    functionSourceFile: /src/tmux/screen.c
    functionUses: 2
    functionsReached:
    - hyperlinks_reset
    - hyperlinks_init
    linkageType: ''
    returnType: void
    signature: void screen_reset_hyperlinks(struct screen *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/screen.c:154,1
    - Dst: free
      Src: /src/tmux/screen.c:155,1
    - Dst: free
      Src: /src/tmux/screen.c:156,1
    - Dst: free
      Src: /src/tmux/screen.c:157,1
    - Dst: screen_write_free_list
      Src: /src/tmux/screen.c:160,1
    - Dst: SCREEN_IS_ALTERNATE
      Src: /src/tmux/screen.c:162,1
    - Dst: grid_destroy
      Src: /src/tmux/screen.c:163,1
    - Dst: grid_destroy
      Src: /src/tmux/screen.c:164,1
    - Dst: hyperlinks_free
      Src: /src/tmux/screen.c:167,1
    - Dst: screen_free_titles
      Src: /src/tmux/screen.c:168,1
    - Dst: image_free_all
      Src: /src/tmux/screen.c:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct screen*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 151
    functionDepth: 4
    functionLinenumber: 151
    functionLinenumberEnd: 173
    functionName: screen_free
    functionSourceFile: /src/tmux/screen.c
    functionUses: 11
    functionsReached:
    - hyperlinks_free
    - grid_destroy
    - image_free_all
    - free
    - screen_free_titles
    - SCREEN_IS_ALTERNATE
    - screen_write_free_list
    linkageType: ''
    returnType: void
    signature: void screen_free(struct screen *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/screen.c:181,1
    - Dst: bit_alloc
      Src: /src/tmux/screen.c:183,1
    - Dst: screen_size_x
      Src: /src/tmux/screen.c:183,1
    - Dst: fatal
      Src: /src/tmux/screen.c:184,1
    - Dst: screen_size_x
      Src: /src/tmux/screen.c:185,1
    - Dst: bit_set
      Src: /src/tmux/screen.c:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct screen*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 187
    functionName: screen_reset_tabs
    functionSourceFile: /src/tmux/screen.c
    functionUses: 1
    functionsReached:
    - bit_alloc
    - fatal
    - screen_size_x
    - free
    - bit_set
    linkageType: ''
    returnType: void
    signature: void screen_reset_tabs(struct screen *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/screen.c:195,1
    - Dst: options_get_number
      Src: /src/tmux/screen.c:198,1
    - Dst: screen_set_cursor_style
      Src: /src/tmux/screen.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - s
    - oo
    argTypes:
    - struct screen*
    - struct options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 190
    functionDepth: 4
    functionLinenumber: 190
    functionLinenumberEnd: 201
    functionName: screen_set_default_cursor
    functionSourceFile: /src/tmux/screen.c
    functionUses: 3
    functionsReached:
    - options_get_number
    - screen_set_cursor_style
    linkageType: ''
    returnType: void
    signature: void screen_set_default_cursor(struct screen *s, struct options *oo)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - style
    - cstyle
    - mode
    argTypes:
    - u_int
    - enum screen_cursor_style*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 237
    functionName: screen_set_cursor_style
    functionSourceFile: /src/tmux/screen.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void screen_set_cursor_style(u_int style, enum screen_cursor_style
      *cstyle,\n    int *mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - colour
    argTypes:
    - struct screen*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: screen_set_cursor_colour
    functionSourceFile: /src/tmux/screen.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void screen_set_cursor_colour(struct screen *s, int colour)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clean_name
      Src: /src/tmux/screen.c:252,1
    - Dst: free
      Src: /src/tmux/screen.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - s
    - title
    argTypes:
    - struct screen*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 258
    functionName: screen_set_title
    functionSourceFile: /src/tmux/screen.c
    functionUses: 5
    functionsReached:
    - clean_name
    - free
    linkageType: ''
    returnType: int
    signature: int screen_set_title(struct screen *s, const char *title)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clean_name
      Src: /src/tmux/screen.c:266,1
    - Dst: free
      Src: /src/tmux/screen.c:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - s
    - path
    argTypes:
    - struct screen*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 272
    functionName: screen_set_path
    functionSourceFile: /src/tmux/screen.c
    functionUses: 1
    functionsReached:
    - clean_name
    - free
    linkageType: ''
    returnType: int
    signature: int screen_set_path(struct screen *s, const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/screen.c:280,1
    - Dst: TAILQ_LAST
      Src: /src/tmux/screen.c:283,1
    - Dst: free
      Src: /src/tmux/screen.c:284,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/screen.c:285,1
    - Dst: free
      Src: /src/tmux/screen.c:286,1
    - Dst: xmalloc
      Src: /src/tmux/screen.c:291,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/screen.c:292,1
    - Dst: xmalloc
      Src: /src/tmux/screen.c:294,1
    - Dst: xstrdup
      Src: /src/tmux/screen.c:295,1
    - Dst: TAILQ_INSERT_HEAD
      Src: /src/tmux/screen.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct screen*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 298
    functionName: screen_push_title
    functionSourceFile: /src/tmux/screen.c
    functionUses: 1
    functionsReached:
    - TAILQ_INSERT_HEAD
    - xmalloc
    - free
    - log_debug
    - TAILQ_LAST
    - xstrdup
    - TAILQ_INIT
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void screen_push_title(struct screen *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/screen.c:311,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/screen.c:313,1
    - Dst: free
      Src: /src/tmux/screen.c:315,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/screen.c:317,1
    - Dst: free
      Src: /src/tmux/screen.c:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct screen*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 321
    functionName: screen_pop_title
    functionSourceFile: /src/tmux/screen.c
    functionUses: 1
    functionsReached:
    - log_debug
    - free
    - TAILQ_FIRST
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void screen_pop_title(struct screen *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - s
    - pbs
    - p
    argTypes:
    - struct screen*
    - enum progress_bar_state
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 333
    functionName: screen_set_progress_bar
    functionSourceFile: /src/tmux/screen.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void screen_set_progress_bar(struct screen *s, enum progress_bar_state
      pbs, int p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_free_list
      Src: /src/tmux/screen.c:344,1
    - Dst: log_debug
      Src: /src/tmux/screen.c:346,1
    - Dst: screen_size_x
      Src: /src/tmux/screen.c:347,1
    - Dst: screen_size_y
      Src: /src/tmux/screen.c:347,1
    - Dst: screen_size_x
      Src: /src/tmux/screen.c:355,1
    - Dst: screen_reset_tabs
      Src: /src/tmux/screen.c:357,1
    - Dst: screen_size_y
      Src: /src/tmux/screen.c:361,1
    - Dst: screen_resize_y
      Src: /src/tmux/screen.c:362,1
    - Dst: image_free_all
      Src: /src/tmux/screen.c:365,1
    - Dst: screen_reflow
      Src: /src/tmux/screen.c:369,1
    - Dst: log_debug
      Src: /src/tmux/screen.c:379,1
    - Dst: screen_write_make_list
      Src: /src/tmux/screen.c:383,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 6
    argNames:
    - s
    - sx
    - sy
    - reflow
    - eat_empty
    - cursor
    argTypes:
    - struct screen*
    - u_int
    - u_int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 337
    functionDepth: 4
    functionLinenumber: 337
    functionLinenumberEnd: 384
    functionName: screen_resize_cursor
    functionSourceFile: /src/tmux/screen.c
    functionUses: 2
    functionsReached:
    - screen_reset_tabs
    - screen_size_y
    - screen_write_make_list
    - screen_size_x
    - screen_resize_y
    - screen_reflow
    - image_free_all
    - log_debug
    - screen_write_free_list
    linkageType: ''
    returnType: void
    signature: "void screen_resize_cursor(struct screen *s, u_int sx, u_int sy, int
      reflow,\n    int eat_empty, int cursor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: screen_resize_cursor
      Src: /src/tmux/screen.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - s
    - sx
    - sy
    - reflow
    argTypes:
    - struct screen*
    - u_int
    - u_int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 5
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: screen_resize
    functionSourceFile: /src/tmux/screen.c
    functionUses: 8
    functionsReached:
    - screen_resize_cursor
    linkageType: ''
    returnType: void
    signature: void screen_resize(struct screen *s, u_int sx, u_int sy, int reflow)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fatalx
      Src: /src/tmux/screen.c:400,1
    - Dst: screen_size_y
      Src: /src/tmux/screen.c:401,1
    - Dst: grid_view_delete_lines
      Src: /src/tmux/screen.c:424,1
    - Dst: grid_view_delete_lines
      Src: /src/tmux/screen.c:442,1
    - Dst: grid_adjust_lines
      Src: /src/tmux/screen.c:448,1
    - Dst: grid_empty_line
      Src: /src/tmux/screen.c:470,1
    - Dst: screen_size_y
      Src: /src/tmux/screen.c:476,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 4
    argNames:
    - s
    - sy
    - eat_empty
    - cy
    argTypes:
    - struct screen*
    - u_int
    - int
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 393
    functionDepth: 8
    functionLinenumber: 393
    functionLinenumberEnd: 477
    functionName: screen_resize_y
    functionSourceFile: /src/tmux/screen.c
    functionUses: 1
    functionsReached:
    - screen_size_y
    - grid_empty_line
    - fatalx
    - grid_view_delete_lines
    - grid_adjust_lines
    linkageType: ''
    returnType: void
    signature: void screen_resize_y(struct screen *s, u_int sy, int eat_empty, u_int
      *cy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/screen.c:486,1
    - Dst: memcpy
      Src: /src/tmux/screen.c:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 9
    argNames:
    - s
    - sx
    - sy
    - ex
    - ey
    - rectangle
    - clipx
    - modekeys
    - gc
    argTypes:
    - struct screen*
    - u_int
    - u_int
    - u_int
    - u_int
    - u_int
    - u_int
    - int
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 498
    functionName: screen_set_selection
    functionSourceFile: /src/tmux/screen.c
    functionUses: 1
    functionsReached:
    - xcalloc
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void screen_set_selection(struct screen *s, u_int sx, u_int sy,\n
      \   u_int ex, u_int ey, u_int rectangle, u_int clipx, int modekeys,\n    struct
      grid_cell *gc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/screen.c:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct screen*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 506
    functionName: screen_clear_selection
    functionSourceFile: /src/tmux/screen.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void screen_clear_selection(struct screen *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct screen*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 514
    functionName: screen_hide_selection
    functionSourceFile: /src/tmux/screen.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void screen_hide_selection(struct screen *s)
  - BBCount: 30
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 69
    argCount: 3
    argNames:
    - s
    - px
    - py
    argTypes:
    - struct screen*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 622
    functionName: screen_check_selection
    functionSourceFile: /src/tmux/screen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int screen_check_selection(struct screen *s, u_int px, u_int py)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/screen.c:632,1
    - Dst: COLOUR_DEFAULT
      Src: /src/tmux/screen.c:633,1
    - Dst: COLOUR_DEFAULT
      Src: /src/tmux/screen.c:635,1
    - Dst: utf8_copy
      Src: /src/tmux/screen.c:637,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - s
    - dst
    - src
    argTypes:
    - struct screen*
    - struct grid_cell*
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 645
    functionName: screen_select_cell
    functionSourceFile: /src/tmux/screen.c
    functionUses: 0
    functionsReached:
    - utf8_copy
    - memcpy
    - COLOUR_DEFAULT
    linkageType: ''
    returnType: int
    signature: "int screen_select_cell(struct screen *s, struct grid_cell *dst,\n
      \   const struct grid_cell *src)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: grid_wrap_position
      Src: /src/tmux/screen.c:654,1
    - Dst: log_debug
      Src: /src/tmux/screen.c:655,1
    - Dst: grid_reflow
      Src: /src/tmux/screen.c:659,1
    - Dst: grid_unwrap_position
      Src: /src/tmux/screen.c:662,1
    - Dst: log_debug
      Src: /src/tmux/screen.c:663,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - s
    - new_x
    - cx
    - cy
    - cursor
    argTypes:
    - struct screen*
    - u_int
    - u_int*
    - u_int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 648
    functionDepth: 9
    functionLinenumber: 648
    functionLinenumberEnd: 669
    functionName: screen_reflow
    functionSourceFile: /src/tmux/screen.c
    functionUses: 1
    functionsReached:
    - grid_wrap_position
    - grid_unwrap_position
    - grid_reflow
    - log_debug
    linkageType: ''
    returnType: void
    signature: void screen_reflow(struct screen *s, u_int new_x, u_int *cx, u_int
      *cy, int cursor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SCREEN_IS_ALTERNATE
      Src: /src/tmux/screen.c:683,1
    - Dst: screen_size_x
      Src: /src/tmux/screen.c:685,1
    - Dst: screen_size_y
      Src: /src/tmux/screen.c:686,1
    - Dst: grid_create
      Src: /src/tmux/screen.c:688,1
    - Dst: grid_duplicate_lines
      Src: /src/tmux/screen.c:689,1
    - Dst: screen_hsize
      Src: /src/tmux/screen.c:689,1
    - Dst: memcpy
      Src: /src/tmux/screen.c:694,1
    - Dst: TAILQ_CONCAT
      Src: /src/tmux/screen.c:697,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/screen.c:698,1
    - Dst: grid_view_clear
      Src: /src/tmux/screen.c:702,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - s
    - gc
    - cursor
    argTypes:
    - struct screen*
    - struct grid_cell*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 675
    functionDepth: 7
    functionLinenumber: 675
    functionLinenumberEnd: 706
    functionName: screen_alternate_on
    functionSourceFile: /src/tmux/screen.c
    functionUses: 0
    functionsReached:
    - screen_size_y
    - grid_duplicate_lines
    - TAILQ_CONCAT
    - screen_size_x
    - TAILQ_FOREACH
    - grid_create
    - screen_hsize
    - memcpy
    - grid_view_clear
    - SCREEN_IS_ALTERNATE
    linkageType: ''
    returnType: void
    signature: void screen_alternate_on(struct screen *s, struct grid_cell *gc, int
      cursor)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/screen.c:712,1
    - Dst: screen_size_y
      Src: /src/tmux/screen.c:712,1
    - Dst: SCREEN_IS_ALTERNATE
      Src: /src/tmux/screen.c:721,1
    - Dst: screen_resize
      Src: /src/tmux/screen.c:722,1
    - Dst: memcpy
      Src: /src/tmux/screen.c:732,1
    - Dst: SCREEN_IS_ALTERNATE
      Src: /src/tmux/screen.c:736,1
    - Dst: screen_size_x
      Src: /src/tmux/screen.c:737,1
    - Dst: screen_size_x
      Src: /src/tmux/screen.c:738,1
    - Dst: screen_size_y
      Src: /src/tmux/screen.c:739,1
    - Dst: screen_size_y
      Src: /src/tmux/screen.c:740,1
    - Dst: grid_duplicate_lines
      Src: /src/tmux/screen.c:745,1
    - Dst: screen_hsize
      Src: /src/tmux/screen.c:745,1
    - Dst: screen_resize
      Src: /src/tmux/screen.c:754,1
    - Dst: grid_destroy
      Src: /src/tmux/screen.c:756,1
    - Dst: image_free_all
      Src: /src/tmux/screen.c:760,1
    - Dst: TAILQ_CONCAT
      Src: /src/tmux/screen.c:761,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/screen.c:762,1
    - Dst: screen_size_x
      Src: /src/tmux/screen.c:766,1
    - Dst: screen_size_x
      Src: /src/tmux/screen.c:767,1
    - Dst: screen_size_y
      Src: /src/tmux/screen.c:768,1
    - Dst: screen_size_y
      Src: /src/tmux/screen.c:769,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - s
    - gc
    - cursor
    argTypes:
    - struct screen*
    - struct grid_cell*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 709
    functionDepth: 6
    functionLinenumber: 709
    functionLinenumberEnd: 770
    functionName: screen_alternate_off
    functionSourceFile: /src/tmux/screen.c
    functionUses: 1
    functionsReached:
    - screen_size_y
    - grid_destroy
    - grid_duplicate_lines
    - TAILQ_CONCAT
    - screen_size_x
    - TAILQ_FOREACH
    - image_free_all
    - screen_hsize
    - memcpy
    - screen_resize
    - SCREEN_IS_ALTERNATE
    linkageType: ''
    returnType: void
    signature: void screen_alternate_off(struct screen *s, struct grid_cell *gc, int
      cursor)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: strlcat
      Src: /src/tmux/screen.c:785,1
    - Dst: strlcat
      Src: /src/tmux/screen.c:787,1
    - Dst: strlcat
      Src: /src/tmux/screen.c:789,1
    - Dst: strlcat
      Src: /src/tmux/screen.c:791,1
    - Dst: strlcat
      Src: /src/tmux/screen.c:793,1
    - Dst: strlcat
      Src: /src/tmux/screen.c:795,1
    - Dst: strlcat
      Src: /src/tmux/screen.c:797,1
    - Dst: strlcat
      Src: /src/tmux/screen.c:799,1
    - Dst: strlcat
      Src: /src/tmux/screen.c:801,1
    - Dst: strlcat
      Src: /src/tmux/screen.c:803,1
    - Dst: strlcat
      Src: /src/tmux/screen.c:805,1
    - Dst: strlcat
      Src: /src/tmux/screen.c:807,1
    - Dst: strlcat
      Src: /src/tmux/screen.c:809,1
    - Dst: strlcat
      Src: /src/tmux/screen.c:811,1
    - Dst: strlcat
      Src: /src/tmux/screen.c:813,1
    - Dst: strlcat
      Src: /src/tmux/screen.c:815,1
    - Dst: strlcat
      Src: /src/tmux/screen.c:817,1
    - Dst: strlcat
      Src: /src/tmux/screen.c:819,1
    - Dst: strlcat
      Src: /src/tmux/screen.c:821,1
    - Dst: strlcat
      Src: /src/tmux/screen.c:823,1
    - Dst: strlcat
      Src: /src/tmux/screen.c:825,1
    - Dst: strlen
      Src: /src/tmux/screen.c:827,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 51
    argCount: 1
    argNames:
    - mode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 829
    functionName: screen_mode_to_string
    functionSourceFile: /src/tmux/screen.c
    functionUses: 1
    functionsReached:
    - strlen
    - strlcat
    linkageType: ''
    returnType: char
    signature: 'char *

      screen_mode_to_string(int mode)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/tmux/screen.c:846,1
    - Dst: screen_hsize
      Src: /src/tmux/screen.c:848,1
    - Dst: snprintf
      Src: /src/tmux/screen.c:851,1
    - Dst: tty_acs_get
      Src: /src/tmux/screen.c:871,1
    - Dst: strlen
      Src: /src/tmux/screen.c:873,1
    - Dst: memcpy
      Src: /src/tmux/screen.c:880,1
    - Dst: utf8_to_data
      Src: /src/tmux/screen.c:883,1
    - Dst: memcpy
      Src: /src/tmux/screen.c:888,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 61
    argCount: 2
    argNames:
    - s
    - line
    argTypes:
    - struct screen*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 832
    functionDepth: 2
    functionLinenumber: 832
    functionLinenumberEnd: 903
    functionName: screen_print
    functionSourceFile: /src/tmux/screen.c
    functionUses: 0
    functionsReached:
    - utf8_to_data
    - xmalloc
    - screen_hsize
    - tty_acs_get
    - memcpy
    - strlen
    - snprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      screen_print(struct screen *s, int line)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - args
    - u_int
    - cause
    argTypes:
    - __unused*
    - __unused
    - __unused**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: cmd_confirm_before_args_parse
    functionSourceFile: /src/tmux/cmd-confirm-before.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum args_parse_type
    signature: "enum args_parse_type cmd_confirm_before_args_parse(__unused struct
      args *args, __unused u_int idx,\n    __unused char **cause)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-confirm-before.c:69,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/cmd-confirm-before.c:71,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-confirm-before.c:72,1
    - Dst: args_has
      Src: /src/tmux/cmd-confirm-before.c:75,1
    - Dst: xcalloc
      Src: /src/tmux/cmd-confirm-before.c:77,1
    - Dst: args_make_commands_now
      Src: /src/tmux/cmd-confirm-before.c:78,1
    - Dst: free
      Src: /src/tmux/cmd-confirm-before.c:80,1
    - Dst: args_has
      Src: /src/tmux/cmd-confirm-before.c:87,1
    - Dst: args_get
      Src: /src/tmux/cmd-confirm-before.c:88,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-confirm-before.c:94,1
    - Dst: cmd_list_free
      Src: /src/tmux/cmd-confirm-before.c:95,1
    - Dst: free
      Src: /src/tmux/cmd-confirm-before.c:96,1
    - Dst: args_get
      Src: /src/tmux/cmd-confirm-before.c:103,1
    - Dst: xasprintf
      Src: /src/tmux/cmd-confirm-before.c:104,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-confirm-before.c:106,1
    - Dst: cmd_list_first
      Src: /src/tmux/cmd-confirm-before.c:106,1
    - Dst: xasprintf
      Src: /src/tmux/cmd-confirm-before.c:107,1
    - Dst: status_prompt_set
      Src: /src/tmux/cmd-confirm-before.c:111,1
    - Dst: free
      Src: /src/tmux/cmd-confirm-before.c:114,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 119
    functionName: cmd_confirm_before_exec
    functionSourceFile: /src/tmux/cmd-confirm-before.c
    functionUses: 0
    functionsReached:
    - cmd_list_free
    - xasprintf
    - cmd_list_first
    - cmdq_error
    - xcalloc
    - cmd_get_args
    - args_make_commands_now
    - cmd_get_entry
    - free
    - cmdq_get_target_client
    - args_get
    - cmdq_get_target
    - args_has
    - status_prompt_set
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_confirm_before_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get_command
      Src: /src/tmux/cmd-confirm-before.c:139,1
    - Dst: cmdq_append
      Src: /src/tmux/cmd-confirm-before.c:140,1
    - Dst: cmdq_get_command
      Src: /src/tmux/cmd-confirm-before.c:142,1
    - Dst: cmdq_get_state
      Src: /src/tmux/cmd-confirm-before.c:143,1
    - Dst: cmdq_insert_after
      Src: /src/tmux/cmd-confirm-before.c:144,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-confirm-before.c:149,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-confirm-before.c:150,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-confirm-before.c:151,1
    - Dst: cmdq_continue
      Src: /src/tmux/cmd-confirm-before.c:152,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 4
    argNames:
    - c
    - data
    - s
    - done
    argTypes:
    - struct client*
    - void*
    - char*
    - __unused
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 155
    functionName: cmd_confirm_before_callback
    functionSourceFile: /src/tmux/cmd-confirm-before.c
    functionUses: 0
    functionsReached:
    - cmdq_continue
    - cmdq_get_state
    - cmdq_append
    - cmdq_insert_after
    - cmdq_get_command
    - cmdq_get_client
    linkageType: ''
    returnType: int
    signature: "int cmd_confirm_before_callback(struct client *c, void *data, const
      char *s,\n    __unused int done)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmd_list_free
      Src: /src/tmux/cmd-confirm-before.c:162,1
    - Dst: free
      Src: /src/tmux/cmd-confirm-before.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 157
    functionDepth: 3
    functionLinenumber: 157
    functionLinenumberEnd: 164
    functionName: cmd_confirm_before_free
    functionSourceFile: /src/tmux/cmd-confirm-before.c
    functionUses: 0
    functionsReached:
    - cmd_list_free
    - free
    linkageType: ''
    returnType: void
    signature: void cmd_confirm_before_free(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xreallocarray
      Src: /src/tmux/window-client.c:103,1
    - Dst: xcalloc
      Src: /src/tmux/window-client.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct window_client_modedata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: window_client_add_item
    functionSourceFile: /src/tmux/window-client.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - xreallocarray
    linkageType: ''
    returnType: struct window_client_itemdata
    signature: 'struct window_client_itemdata *

      window_client_add_item(struct window_client_modedata *data)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: server_client_unref
      Src: /src/tmux/window-client.c:112,1
    - Dst: free
      Src: /src/tmux/window-client.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct window_client_itemdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: window_client_free_item
    functionSourceFile: /src/tmux/window-client.c
    functionUses: 0
    functionsReached:
    - server_client_unref
    - free
    linkageType: ''
    returnType: void
    signature: void window_client_free_item(struct window_client_itemdata *item)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: window_client_free_item
      Src: /src/tmux/window-client.c:127,1
    - Dst: free
      Src: /src/tmux/window-client.c:128,1
    - Dst: sort_get_clients
      Src: /src/tmux/window-client.c:132,1
    - Dst: window_client_add_item
      Src: /src/tmux/window-client.c:138,1
    - Dst: format_single
      Src: /src/tmux/window-client.c:149,1
    - Dst: format_true
      Src: /src/tmux/window-client.c:150,1
    - Dst: free
      Src: /src/tmux/window-client.c:151,1
    - Dst: free
      Src: /src/tmux/window-client.c:154,1
    - Dst: format_single
      Src: /src/tmux/window-client.c:157,1
    - Dst: mode_tree_add
      Src: /src/tmux/window-client.c:158,1
    - Dst: free
      Src: /src/tmux/window-client.c:160,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - modedata
    - sort_crit
    - tag
    - filter
    argTypes:
    - void*
    - struct sort_criteria*
    - __unused*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 116
    functionDepth: 4
    functionLinenumber: 116
    functionLinenumberEnd: 162
    functionName: window_client_build
    functionSourceFile: /src/tmux/window-client.c
    functionUses: 0
    functionsReached:
    - sort_get_clients
    - window_client_add_item
    - format_single
    - free
    - mode_tree_add
    - format_true
    - window_client_free_item
    linkageType: ''
    returnType: void
    signature: "void window_client_build(void *modedata, struct sort_criteria *sort_crit,\n
      \   __unused uint64_t *tag, const char *filter)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: status_line_size
      Src: /src/tmux/window-client.c:178,1
    - Dst: status_at_line
      Src: /src/tmux/window-client.c:181,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-client.c:186,1
    - Dst: screen_write_preview
      Src: /src/tmux/window-client.c:187,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-client.c:190,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-client.c:192,1
    - Dst: screen_write_hline
      Src: /src/tmux/window-client.c:193,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-client.c:196,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-client.c:198,1
    - Dst: screen_write_fast_copy
      Src: /src/tmux/window-client.c:199,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - modedata
    - itemdata
    - ctx
    - sx
    - sy
    argTypes:
    - __unused*
    - void*
    - struct screen_write_ctx*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 200
    functionName: window_client_draw
    functionSourceFile: /src/tmux/window-client.c
    functionUses: 0
    functionsReached:
    - status_line_size
    - status_at_line
    - screen_write_cursormove
    - screen_write_preview
    - screen_write_hline
    - screen_write_fast_copy
    linkageType: ''
    returnType: void
    signature: "void window_client_draw(__unused void *modedata, void *itemdata,\n
      \   struct screen_write_ctx *ctx, u_int sx, u_int sy)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window-client.c:209,1
    - Dst: window_client_key
      Src: /src/tmux/window-client.c:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - modedata
    - c
    - key
    argTypes:
    - void*
    - struct client*
    - key_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 213
    functionName: window_client_menu
    functionSourceFile: /src/tmux/window-client.c
    functionUses: 0
    functionsReached:
    - window_client_key
    - TAILQ_FIRST
    linkageType: ''
    returnType: void
    signature: void window_client_menu(void *modedata, struct client *c, key_code
      key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_create
      Src: /src/tmux/window-client.c:224,1
    - Dst: format_defaults
      Src: /src/tmux/window-client.c:225,1
    - Dst: format_add
      Src: /src/tmux/window-client.c:226,1
    - Dst: format_expand
      Src: /src/tmux/window-client.c:228,1
    - Dst: key_string_lookup_string
      Src: /src/tmux/window-client.c:229,1
    - Dst: free
      Src: /src/tmux/window-client.c:230,1
    - Dst: format_free
      Src: /src/tmux/window-client.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - modedata
    - itemdata
    - line
    argTypes:
    - void*
    - void*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 233
    functionName: window_client_get_key
    functionSourceFile: /src/tmux/window-client.c
    functionUses: 0
    functionsReached:
    - format_free
    - format_defaults
    - free
    - format_create
    - format_add
    - format_expand
    - key_string_lookup_string
    linkageType: ''
    returnType: key_code
    signature: key_code window_client_get_key(void *modedata, void *itemdata, u_int
      line)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sort_crit
    argTypes:
    - struct sort_criteria*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 241
    functionName: window_client_sort
    functionSourceFile: /src/tmux/window-client.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void window_client_sort(struct sort_criteria *sort_crit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 261
    functionName: window_client_help
    functionSourceFile: /src/tmux/window-client.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char **

      window_client_help(u_int *width, const char **item)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/window-client.c:271,1
    - Dst: args_has
      Src: /src/tmux/window-client.c:274,1
    - Dst: xstrdup
      Src: /src/tmux/window-client.c:275,1
    - Dst: xstrdup
      Src: /src/tmux/window-client.c:277,1
    - Dst: args_get
      Src: /src/tmux/window-client.c:277,1
    - Dst: args_has
      Src: /src/tmux/window-client.c:278,1
    - Dst: xstrdup
      Src: /src/tmux/window-client.c:279,1
    - Dst: xstrdup
      Src: /src/tmux/window-client.c:281,1
    - Dst: args_get
      Src: /src/tmux/window-client.c:281,1
    - Dst: args_count
      Src: /src/tmux/window-client.c:282,1
    - Dst: xstrdup
      Src: /src/tmux/window-client.c:283,1
    - Dst: xstrdup
      Src: /src/tmux/window-client.c:285,1
    - Dst: args_string
      Src: /src/tmux/window-client.c:285,1
    - Dst: mode_tree_start
      Src: /src/tmux/window-client.c:287,1
    - Dst: mode_tree_zoom
      Src: /src/tmux/window-client.c:291,1
    - Dst: mode_tree_build
      Src: /src/tmux/window-client.c:293,1
    - Dst: mode_tree_draw
      Src: /src/tmux/window-client.c:294,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - wme
    - fs
    - args
    argTypes:
    - struct window_mode_entry*
    - __unused*
    - struct args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 263
    functionDepth: 5
    functionLinenumber: 263
    functionLinenumberEnd: 297
    functionName: window_client_init
    functionSourceFile: /src/tmux/window-client.c
    functionUses: 0
    functionsReached:
    - args_string
    - mode_tree_draw
    - xcalloc
    - mode_tree_zoom
    - mode_tree_start
    - mode_tree_build
    - args_get
    - args_count
    - xstrdup
    - args_has
    linkageType: ''
    returnType: struct screen
    signature: "struct screen *\nwindow_client_init(struct window_mode_entry *wme,\n
      \   __unused struct cmd_find_state *fs, struct args *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_free
      Src: /src/tmux/window-client.c:308,1
    - Dst: window_client_free_item
      Src: /src/tmux/window-client.c:311,1
    - Dst: free
      Src: /src/tmux/window-client.c:312,1
    - Dst: free
      Src: /src/tmux/window-client.c:314,1
    - Dst: free
      Src: /src/tmux/window-client.c:315,1
    - Dst: free
      Src: /src/tmux/window-client.c:316,1
    - Dst: free
      Src: /src/tmux/window-client.c:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 299
    functionDepth: 4
    functionLinenumber: 299
    functionLinenumberEnd: 319
    functionName: window_client_free
    functionSourceFile: /src/tmux/window-client.c
    functionUses: 0
    functionsReached:
    - free
    - window_client_free_item
    - mode_tree_free
    linkageType: ''
    returnType: void
    signature: void window_client_free(struct window_mode_entry *wme)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_resize
      Src: /src/tmux/window-client.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - wme
    - sx
    - sy
    argTypes:
    - struct window_mode_entry*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 321
    functionDepth: 5
    functionLinenumber: 321
    functionLinenumberEnd: 327
    functionName: window_client_resize
    functionSourceFile: /src/tmux/window-client.c
    functionUses: 0
    functionsReached:
    - mode_tree_resize
    linkageType: ''
    returnType: void
    signature: void window_client_resize(struct window_mode_entry *wme, u_int sx,
      u_int sy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_build
      Src: /src/tmux/window-client.c:334,1
    - Dst: mode_tree_draw
      Src: /src/tmux/window-client.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 329
    functionDepth: 4
    functionLinenumber: 329
    functionLinenumberEnd: 337
    functionName: window_client_update
    functionSourceFile: /src/tmux/window-client.c
    functionUses: 0
    functionsReached:
    - mode_tree_draw
    - mode_tree_build
    linkageType: ''
    returnType: void
    signature: void window_client_update(struct window_mode_entry *wme)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_get_current
      Src: /src/tmux/window-client.c:346,1
    - Dst: mode_tree_down
      Src: /src/tmux/window-client.c:347,1
    - Dst: server_client_detach
      Src: /src/tmux/window-client.c:349,1
    - Dst: server_client_detach
      Src: /src/tmux/window-client.c:351,1
    - Dst: server_client_suspend
      Src: /src/tmux/window-client.c:353,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 4
    argNames:
    - modedata
    - itemdata
    - c
    - key
    argTypes:
    - void*
    - void*
    - __unused*
    - key_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 354
    functionName: window_client_do_detach
    functionSourceFile: /src/tmux/window-client.c
    functionUses: 0
    functionsReached:
    - mode_tree_down
    - mode_tree_get_current
    - server_client_detach
    - server_client_suspend
    linkageType: ''
    returnType: void
    signature: "void window_client_do_detach(void *modedata, void *itemdata,\n    __unused
      struct client *c, key_code key)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_key
      Src: /src/tmux/window-client.c:367,1
    - Dst: mode_tree_get_current
      Src: /src/tmux/window-client.c:372,1
    - Dst: window_client_do_detach
      Src: /src/tmux/window-client.c:373,1
    - Dst: mode_tree_build
      Src: /src/tmux/window-client.c:374,1
    - Dst: mode_tree_each_tagged
      Src: /src/tmux/window-client.c:379,1
    - Dst: mode_tree_build
      Src: /src/tmux/window-client.c:380,1
    - Dst: mode_tree_get_current
      Src: /src/tmux/window-client.c:383,1
    - Dst: mode_tree_run_command
      Src: /src/tmux/window-client.c:384,1
    - Dst: server_client_how_many
      Src: /src/tmux/window-client.c:388,1
    - Dst: window_pane_reset_mode
      Src: /src/tmux/window-client.c:389,1
    - Dst: mode_tree_draw
      Src: /src/tmux/window-client.c:391,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 6
    argNames:
    - wme
    - c
    - s
    - wl
    - key
    - m
    argTypes:
    - struct window_mode_entry*
    - struct client*
    - __unused*
    - __unused*
    - key_code
    - struct mouse_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 356
    functionDepth: 6
    functionLinenumber: 356
    functionLinenumberEnd: 394
    functionName: window_client_key
    functionSourceFile: /src/tmux/window-client.c
    functionUses: 1
    functionsReached:
    - mode_tree_each_tagged
    - mode_tree_key
    - mode_tree_draw
    - window_pane_reset_mode
    - mode_tree_build
    - server_client_how_many
    - window_client_do_detach
    - mode_tree_get_current
    - mode_tree_run_command
    linkageType: ''
    returnType: void
    signature: "void window_client_key(struct window_mode_entry *wme, struct client
      *c,\n    __unused struct session *s, __unused struct winlink *wl, key_code key,\n
      \   struct mouse_event *m)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/paste.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct paste_buffer*
    - struct paste_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 50
    functionName: paste_cmp_names
    functionSourceFile: /src/tmux/paste.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void paste_cmp_names(const struct paste_buffer *a, const struct paste_buffer
      *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct paste_buffer*
    - struct paste_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: paste_cmp_times
    functionSourceFile: /src/tmux/paste.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int paste_cmp_times(const struct paste_buffer *a, const struct paste_buffer
      *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pb
    argTypes:
    - struct paste_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: paste_buffer_name
    functionSourceFile: /src/tmux/paste.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      paste_buffer_name(struct paste_buffer *pb)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pb
    argTypes:
    - struct paste_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: paste_buffer_order
    functionSourceFile: /src/tmux/paste.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u_int
    signature: u_int paste_buffer_order(struct paste_buffer *pb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pb
    argTypes:
    - struct paste_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: paste_buffer_created
    functionSourceFile: /src/tmux/paste.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_t
    signature: time_t paste_buffer_created(struct paste_buffer *pb)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pb
    - size
    argTypes:
    - struct paste_buffer*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: paste_buffer_data
    functionSourceFile: /src/tmux/paste.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      paste_buffer_data(struct paste_buffer *pb, size_t *size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_MIN
      Src: /src/tmux/paste.c:97,1
    - Dst: RB_NEXT
      Src: /src/tmux/paste.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pb
    argTypes:
    - struct paste_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: paste_walk
    functionSourceFile: /src/tmux/paste.c
    functionUses: 1
    functionsReached:
    - RB_NEXT
    - RB_MIN
    linkageType: ''
    returnType: struct paste_buffer
    signature: 'struct paste_buffer *

      paste_walk(struct paste_buffer *pb)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_ROOT
      Src: /src/tmux/paste.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: paste_is_empty
    functionSourceFile: /src/tmux/paste.c
    functionUses: 2
    functionsReached:
    - RB_ROOT
    linkageType: ''
    returnType: int
    signature: int paste_is_empty(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RB_MIN
      Src: /src/tmux/paste.c:113,1
    - Dst: RB_NEXT
      Src: /src/tmux/paste.c:115,1
    - Dst: xstrdup
      Src: /src/tmux/paste.c:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 121
    functionName: paste_get_top
    functionSourceFile: /src/tmux/paste.c
    functionUses: 4
    functionsReached:
    - xstrdup
    - RB_NEXT
    - RB_MIN
    linkageType: ''
    returnType: struct paste_buffer
    signature: 'struct paste_buffer *

      paste_get_top(char **name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_FIND
      Src: /src/tmux/paste.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 134
    functionName: paste_get_name
    functionSourceFile: /src/tmux/paste.c
    functionUses: 9
    functionsReached:
    - RB_FIND
    linkageType: ''
    returnType: struct paste_buffer
    signature: 'struct paste_buffer *

      paste_get_name(const char *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: notify_paste_buffer
      Src: /src/tmux/paste.c:140,1
    - Dst: RB_REMOVE
      Src: /src/tmux/paste.c:142,1
    - Dst: RB_REMOVE
      Src: /src/tmux/paste.c:143,1
    - Dst: free
      Src: /src/tmux/paste.c:147,1
    - Dst: free
      Src: /src/tmux/paste.c:148,1
    - Dst: free
      Src: /src/tmux/paste.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pb
    argTypes:
    - struct paste_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 150
    functionName: paste_free
    functionSourceFile: /src/tmux/paste.c
    functionUses: 1
    functionsReached:
    - notify_paste_buffer
    - RB_REMOVE
    - free
    linkageType: ''
    returnType: void
    signature: void paste_free(struct paste_buffer *pb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/paste.c:166,1
    - Dst: options_get_number
      Src: /src/tmux/paste.c:170,1
    - Dst: RB_FOREACH_REVERSE_SAFE
      Src: /src/tmux/paste.c:171,1
    - Dst: paste_free
      Src: /src/tmux/paste.c:175,1
    - Dst: xmalloc
      Src: /src/tmux/paste.c:178,1
    - Dst: free
      Src: /src/tmux/paste.c:182,1
    - Dst: xasprintf
      Src: /src/tmux/paste.c:183,1
    - Dst: paste_get_name
      Src: /src/tmux/paste.c:185,1
    - Dst: time
      Src: /src/tmux/paste.c:193,1
    - Dst: RB_INSERT
      Src: /src/tmux/paste.c:196,1
    - Dst: RB_INSERT
      Src: /src/tmux/paste.c:197,1
    - Dst: notify_paste_buffer
      Src: /src/tmux/paste.c:199,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - prefix
    - data
    - size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 156
    functionDepth: 4
    functionLinenumber: 156
    functionLinenumberEnd: 200
    functionName: paste_add
    functionSourceFile: /src/tmux/paste.c
    functionUses: 3
    functionsReached:
    - xasprintf
    - paste_free
    - notify_paste_buffer
    - xmalloc
    - paste_get_name
    - RB_FOREACH_REVERSE_SAFE
    - free
    - time
    - options_get_number
    - RB_INSERT
    linkageType: ''
    returnType: void
    signature: void paste_add(const char *prefix, char *data, size_t size)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/paste.c:214,1
    - Dst: xstrdup
      Src: /src/tmux/paste.c:219,1
    - Dst: clean_name
      Src: /src/tmux/paste.c:223,1
    - Dst: xasprintf
      Src: /src/tmux/paste.c:226,1
    - Dst: paste_get_name
      Src: /src/tmux/paste.c:230,1
    - Dst: xasprintf
      Src: /src/tmux/paste.c:233,1
    - Dst: free
      Src: /src/tmux/paste.c:234,1
    - Dst: paste_get_name
      Src: /src/tmux/paste.c:238,1
    - Dst: free
      Src: /src/tmux/paste.c:240,1
    - Dst: paste_free
      Src: /src/tmux/paste.c:244,1
    - Dst: RB_REMOVE
      Src: /src/tmux/paste.c:246,1
    - Dst: free
      Src: /src/tmux/paste.c:248,1
    - Dst: RB_INSERT
      Src: /src/tmux/paste.c:255,1
    - Dst: notify_paste_buffer
      Src: /src/tmux/paste.c:257,1
    - Dst: notify_paste_buffer
      Src: /src/tmux/paste.c:258,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 3
    argNames:
    - oldname
    - newname
    - cause
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 261
    functionName: paste_rename
    functionSourceFile: /src/tmux/paste.c
    functionUses: 0
    functionsReached:
    - clean_name
    - xasprintf
    - paste_free
    - notify_paste_buffer
    - RB_REMOVE
    - paste_get_name
    - free
    - xstrdup
    - RB_INSERT
    linkageType: ''
    returnType: int
    signature: int paste_rename(const char *oldname, const char *newname, char **cause)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/paste.c:277,1
    - Dst: paste_add
      Src: /src/tmux/paste.c:281,1
    - Dst: xstrdup
      Src: /src/tmux/paste.c:287,1
    - Dst: clean_name
      Src: /src/tmux/paste.c:291,1
    - Dst: xasprintf
      Src: /src/tmux/paste.c:294,1
    - Dst: xmalloc
      Src: /src/tmux/paste.c:298,1
    - Dst: time
      Src: /src/tmux/paste.c:308,1
    - Dst: paste_get_name
      Src: /src/tmux/paste.c:310,1
    - Dst: paste_free
      Src: /src/tmux/paste.c:311,1
    - Dst: RB_INSERT
      Src: /src/tmux/paste.c:313,1
    - Dst: RB_INSERT
      Src: /src/tmux/paste.c:314,1
    - Dst: notify_paste_buffer
      Src: /src/tmux/paste.c:316,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - data
    - size
    - name
    - cause
    argTypes:
    - char*
    - size_t
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 267
    functionDepth: 5
    functionLinenumber: 267
    functionLinenumberEnd: 319
    functionName: paste_set
    functionSourceFile: /src/tmux/paste.c
    functionUses: 2
    functionsReached:
    - clean_name
    - xasprintf
    - paste_free
    - notify_paste_buffer
    - xmalloc
    - paste_get_name
    - free
    - time
    - xstrdup
    - paste_add
    - RB_INSERT
    linkageType: ''
    returnType: int
    signature: int paste_set(char *data, size_t size, const char *name, char **cause)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/paste.c:325,1
    - Dst: notify_paste_buffer
      Src: /src/tmux/paste.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pb
    - data
    - size
    argTypes:
    - struct paste_buffer*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 330
    functionName: paste_replace
    functionSourceFile: /src/tmux/paste.c
    functionUses: 1
    functionsReached:
    - notify_paste_buffer
    - free
    linkageType: ''
    returnType: void
    signature: void paste_replace(struct paste_buffer *pb, char *data, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xreallocarray
      Src: /src/tmux/paste.c:344,1
    - Dst: utf8_strvis
      Src: /src/tmux/paste.c:346,1
    - Dst: strlcpy
      Src: /src/tmux/paste.c:348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pb
    argTypes:
    - struct paste_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 350
    functionName: paste_make_sample
    functionSourceFile: /src/tmux/paste.c
    functionUses: 0
    functionsReached:
    - utf8_strvis
    - strlcpy
    - xreallocarray
    linkageType: ''
    returnType: char
    signature: 'char *

      paste_make_sample(struct paste_buffer *pb)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: key_string_lookup_key
      Src: /src/tmux/tty-keys.c:440,1
    - Dst: tty_keys_find
      Src: /src/tmux/tty-keys.c:441,1
    - Dst: strlen
      Src: /src/tmux/tty-keys.c:441,1
    - Dst: log_debug
      Src: /src/tmux/tty-keys.c:442,1
    - Dst: tty_keys_add1
      Src: /src/tmux/tty-keys.c:443,1
    - Dst: log_debug
      Src: /src/tmux/tty-keys.c:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - tty
    - s
    - key
    argTypes:
    - struct tty*
    - char*
    - key_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 433
    functionDepth: 3
    functionLinenumber: 433
    functionLinenumberEnd: 448
    functionName: tty_keys_add
    functionSourceFile: /src/tmux/tty-keys.c
    functionUses: 0
    functionsReached:
    - log_debug
    - key_string_lookup_key
    - strlen
    - tty_keys_add1
    - tty_keys_find
    linkageType: ''
    returnType: void
    signature: void tty_keys_add(struct tty *tty, const char *s, key_code key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/tty-keys.c:459,1
    - Dst: tty_keys_add1
      Src: /src/tmux/tty-keys.c:485,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - tkp
    - s
    - key
    argTypes:
    - struct tty_key**
    - char*
    - key_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 486
    functionName: tty_keys_add1
    functionSourceFile: /src/tmux/tty-keys.c
    functionUses: 2
    functionsReached:
    - xcalloc
    - tty_keys_add1
    linkageType: ''
    returnType: void
    signature: void tty_keys_add1(struct tty_key **tkp, const char *s, key_code key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tty_keys_free
      Src: /src/tmux/tty-keys.c:504,1
    - Dst: nitems
      Src: /src/tmux/tty-keys.c:507,1
    - Dst: nitems
      Src: /src/tmux/tty-keys.c:509,1
    - Dst: strlcpy
      Src: /src/tmux/tty-keys.c:510,1
    - Dst: strcspn
      Src: /src/tmux/tty-keys.c:511,1
    - Dst: tty_keys_add
      Src: /src/tmux/tty-keys.c:514,1
    - Dst: nitems
      Src: /src/tmux/tty-keys.c:517,1
    - Dst: tty_keys_add
      Src: /src/tmux/tty-keys.c:522,1
    - Dst: nitems
      Src: /src/tmux/tty-keys.c:524,1
    - Dst: tty_term_string
      Src: /src/tmux/tty-keys.c:527,1
    - Dst: tty_keys_add
      Src: /src/tmux/tty-keys.c:529,1
    - Dst: options_get
      Src: /src/tmux/tty-keys.c:533,1
    - Dst: options_array_first
      Src: /src/tmux/tty-keys.c:535,1
    - Dst: options_array_item_index
      Src: /src/tmux/tty-keys.c:537,1
    - Dst: options_array_item_value
      Src: /src/tmux/tty-keys.c:538,1
    - Dst: tty_keys_add
      Src: /src/tmux/tty-keys.c:539,1
    - Dst: options_array_next
      Src: /src/tmux/tty-keys.c:540,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - tty
    argTypes:
    - struct tty*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 489
    functionDepth: 4
    functionLinenumber: 489
    functionLinenumberEnd: 543
    functionName: tty_keys_build
    functionSourceFile: /src/tmux/tty-keys.c
    functionUses: 2
    functionsReached:
    - tty_term_string
    - options_array_first
    - options_array_next
    - nitems
    - tty_keys_free
    - strlcpy
    - options_array_item_value
    - strcspn
    - options_get
    - tty_keys_add
    - options_array_item_index
    linkageType: ''
    returnType: void
    signature: void tty_keys_build(struct tty *tty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tty_keys_free1
      Src: /src/tmux/tty-keys.c:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tty
    argTypes:
    - struct tty*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 550
    functionName: tty_keys_free
    functionSourceFile: /src/tmux/tty-keys.c
    functionUses: 2
    functionsReached:
    - tty_keys_free1
    linkageType: ''
    returnType: void
    signature: void tty_keys_free(struct tty *tty)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tty_keys_free1
      Src: /src/tmux/tty-keys.c:557,1
    - Dst: tty_keys_free1
      Src: /src/tmux/tty-keys.c:559,1
    - Dst: tty_keys_free1
      Src: /src/tmux/tty-keys.c:561,1
    - Dst: free
      Src: /src/tmux/tty-keys.c:562,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - tk
    argTypes:
    - struct tty_key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 563
    functionName: tty_keys_free1
    functionSourceFile: /src/tmux/tty-keys.c
    functionUses: 2
    functionsReached:
    - free
    - tty_keys_free1
    linkageType: ''
    returnType: void
    signature: void tty_keys_free1(struct tty_key *tk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tty_keys_find1
      Src: /src/tmux/tty-keys.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - tty
    - buf
    - len
    - size
    argTypes:
    - struct tty*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 571
    functionName: tty_keys_find
    functionSourceFile: /src/tmux/tty-keys.c
    functionUses: 1
    functionsReached:
    - tty_keys_find1
    linkageType: ''
    returnType: struct tty_key
    signature: 'struct tty_key *

      tty_keys_find(struct tty *tty, const char *buf, size_t len, size_t *size)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tty_keys_find1
      Src: /src/tmux/tty-keys.c:605,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 4
    argNames:
    - tk
    - buf
    - len
    - size
    argTypes:
    - struct tty_key*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 606
    functionName: tty_keys_find1
    functionSourceFile: /src/tmux/tty-keys.c
    functionUses: 2
    functionsReached:
    - tty_keys_find1
    linkageType: ''
    returnType: struct tty_key
    signature: 'struct tty_key *

      tty_keys_find1(struct tty_key *tk, const char *buf, size_t len, size_t *size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/tmux/tty-keys.c:616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 617
    functionName: tty_keys_partial_paste_end
    functionSourceFile: /src/tmux/tty-keys.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int tty_keys_partial_paste_end(const char *buf, size_t len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/tty-keys.c:631,1
    - Dst: tty_keys_find
      Src: /src/tmux/tty-keys.c:635,1
    - Dst: log_debug
      Src: /src/tmux/tty-keys.c:639,1
    - Dst: utf8_open
      Src: /src/tmux/tty-keys.c:652,1
    - Dst: utf8_append
      Src: /src/tmux/tty-keys.c:661,1
    - Dst: utf8_from_data
      Src: /src/tmux/tty-keys.c:665,1
    - Dst: log_debug
      Src: /src/tmux/tty-keys.c:669,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 6
    argNames:
    - tty
    - buf
    - len
    - key
    - size
    - expired
    argTypes:
    - struct tty*
    - char*
    - size_t
    - key_code*
    - size_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 620
    functionDepth: 3
    functionLinenumber: 620
    functionLinenumberEnd: 675
    functionName: tty_keys_next1
    functionSourceFile: /src/tmux/tty-keys.c
    functionUses: 0
    functionsReached:
    - utf8_open
    - utf8_from_data
    - utf8_append
    - log_debug
    - tty_keys_find
    linkageType: ''
    returnType: int
    signature: "int tty_keys_next1(struct tty *tty, const char *buf, size_t len, key_code
      *key,\n    size_t *size, int expired)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/tmux/tty-keys.c:709,1
    - Dst: memcpy
      Src: /src/tmux/tty-keys.c:718,1
    - Dst: sscanf
      Src: /src/tmux/tty-keys.c:722,1
    - Dst: tty_set_size
      Src: /src/tmux/tty-keys.c:724,1
    - Dst: sscanf
      Src: /src/tmux/tty-keys.c:728,1
    - Dst: tty_set_size
      Src: /src/tmux/tty-keys.c:732,1
    - Dst: tty_invalidate
      Src: /src/tmux/tty-keys.c:733,1
    - Dst: log_debug
      Src: /src/tmux/tty-keys.c:740,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 4
    argNames:
    - tty
    - buf
    - len
    - size
    argTypes:
    - struct tty*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 678
    functionDepth: 6
    functionLinenumber: 678
    functionLinenumberEnd: 742
    functionName: tty_keys_winsz
    functionSourceFile: /src/tmux/tty-keys.c
    functionUses: 0
    functionsReached:
    - tty_set_size
    - isdigit
    - sscanf
    - memcpy
    - tty_invalidate
    - log_debug
    linkageType: ''
    returnType: int
    signature: int tty_keys_winsz(struct tty *tty, const char *buf, size_t len, size_t
      *size)
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_DATA
      Src: /src/tmux/tty-keys.c:760,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/tty-keys.c:761,1
    - Dst: log_debug
      Src: /src/tmux/tty-keys.c:764,1
    - Dst: tty_keys_clipboard
      Src: /src/tmux/tty-keys.c:767,1
    - Dst: tty_keys_device_attributes
      Src: /src/tmux/tty-keys.c:778,1
    - Dst: tty_keys_device_attributes2
      Src: /src/tmux/tty-keys.c:789,1
    - Dst: tty_keys_extended_device_attributes
      Src: /src/tmux/tty-keys.c:800,1
    - Dst: tty_keys_colours
      Src: /src/tmux/tty-keys.c:811,1
    - Dst: session_theme_changed
      Src: /src/tmux/tty-keys.c:814,1
    - Dst: session_theme_changed
      Src: /src/tmux/tty-keys.c:819,1
    - Dst: tty_keys_palette
      Src: /src/tmux/tty-keys.c:824,1
    - Dst: tty_keys_mouse
      Src: /src/tmux/tty-keys.c:835,1
    - Dst: tty_keys_extended_key
      Src: /src/tmux/tty-keys.c:849,1
    - Dst: tty_keys_winsz
      Src: /src/tmux/tty-keys.c:859,1
    - Dst: tty_keys_next1
      Src: /src/tmux/tty-keys.c:871,1
    - Dst: tty_keys_next1
      Src: /src/tmux/tty-keys.c:883,1
    - Dst: log_debug
      Src: /src/tmux/tty-keys.c:929,1
    - Dst: log_debug
      Src: /src/tmux/tty-keys.c:933,1
    - Dst: log_debug
      Src: /src/tmux/tty-keys.c:957,1
    - Dst: evtimer_initialized
      Src: /src/tmux/tty-keys.c:961,1
    - Dst: evtimer_pending
      Src: /src/tmux/tty-keys.c:962,1
    - Dst: options_get_number
      Src: /src/tmux/tty-keys.c:970,1
    - Dst: tty_keys_partial_paste_end
      Src: /src/tmux/tty-keys.c:974,1
    - Dst: log_debug
      Src: /src/tmux/tty-keys.c:975,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/tty-keys.c:981,1
    - Dst: log_debug
      Src: /src/tmux/tty-keys.c:982,1
    - Dst: event_initialized
      Src: /src/tmux/tty-keys.c:990,1
    - Dst: evtimer_del
      Src: /src/tmux/tty-keys.c:991,1
    - Dst: evtimer_set
      Src: /src/tmux/tty-keys.c:992,1
    - Dst: evtimer_add
      Src: /src/tmux/tty-keys.c:993,1
    - Dst: log_debug
      Src: /src/tmux/tty-keys.c:999,1
    - Dst: event_initialized
      Src: /src/tmux/tty-keys.c:1002,1
    - Dst: evtimer_del
      Src: /src/tmux/tty-keys.c:1003,1
    - Dst: window_update_focus
      Src: /src/tmux/tty-keys.c:1009,1
    - Dst: notify_client
      Src: /src/tmux/tty-keys.c:1010,1
    - Dst: notify_client
      Src: /src/tmux/tty-keys.c:1013,1
    - Dst: window_update_focus
      Src: /src/tmux/tty-keys.c:1014,1
    - Dst: xcalloc
      Src: /src/tmux/tty-keys.c:1019,1
    - Dst: memcpy
      Src: /src/tmux/tty-keys.c:1021,1
    - Dst: xmalloc
      Src: /src/tmux/tty-keys.c:1023,1
    - Dst: memcpy
      Src: /src/tmux/tty-keys.c:1025,1
    - Dst: server_client_handle_key
      Src: /src/tmux/tty-keys.c:1027,1
    - Dst: free
      Src: /src/tmux/tty-keys.c:1028,1
    - Dst: free
      Src: /src/tmux/tty-keys.c:1029,1
    - Dst: evbuffer_drain
      Src: /src/tmux/tty-keys.c:1034,1
    - Dst: log_debug
      Src: /src/tmux/tty-keys.c:1039,1
    - Dst: evbuffer_drain
      Src: /src/tmux/tty-keys.c:1042,1
    CyclomaticComplexity: 81
    EdgeCount: 81
    ICount: 233
    argCount: 1
    argNames:
    - tty
    argTypes:
    - struct tty*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 746
    functionDepth: 7
    functionLinenumber: 746
    functionLinenumberEnd: 1045
    functionName: tty_keys_next
    functionSourceFile: /src/tmux/tty-keys.c
    functionUses: 1
    functionsReached:
    - evtimer_add
    - xmalloc
    - evtimer_pending
    - tty_keys_clipboard
    - evtimer_set
    - session_theme_changed
    - notify_client
    - tty_keys_winsz
    - event_initialized
    - evbuffer_drain
    - evtimer_initialized
    - tty_keys_device_attributes2
    - xcalloc
    - server_client_handle_key
    - memcpy
    - tty_keys_device_attributes
    - log_debug
    - EVBUFFER_LENGTH
    - EVBUFFER_DATA
    - tty_keys_partial_paste_end
    - tty_keys_next1
    - tty_keys_palette
    - tty_keys_extended_device_attributes
    - tty_keys_mouse
    - tty_keys_colours
    - evtimer_del
    - window_update_focus
    - tty_keys_extended_key
    - free
    - TAILQ_EMPTY
    - options_get_number
    linkageType: ''
    returnType: int
    signature: int tty_keys_next(struct tty *tty)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_keys_next
      Src: /src/tmux/tty-keys.c:1054,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - int
    - events
    - data
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1048
    functionDepth: 8
    functionLinenumber: 1048
    functionLinenumberEnd: 1057
    functionName: tty_keys_callback
    functionSourceFile: /src/tmux/tty-keys.c
    functionUses: 0
    functionsReached:
    - tty_keys_next
    linkageType: ''
    returnType: void
    signature: void tty_keys_callback(__unused int fd, __unused short events, void
      *data)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/tmux/tty-keys.c:1096,1
    - Dst: memcpy
      Src: /src/tmux/tty-keys.c:1105,1
    - Dst: sscanf
      Src: /src/tmux/tty-keys.c:1110,1
    - Dst: sscanf
      Src: /src/tmux/tty-keys.c:1113,1
    - Dst: utf8_fromwc
      Src: /src/tmux/tty-keys.c:1127,1
    - Dst: utf8_from_data
      Src: /src/tmux/tty-keys.c:1128,1
    - Dst: KEYC_IS_UNICODE
      Src: /src/tmux/tty-keys.c:1167,1
    - Dst: log_get_level
      Src: /src/tmux/tty-keys.c:1171,1
    - Dst: log_debug
      Src: /src/tmux/tty-keys.c:1172,1
    - Dst: key_string_lookup_key
      Src: /src/tmux/tty-keys.c:1173,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 60
    argCount: 5
    argNames:
    - tty
    - buf
    - len
    - size
    - key
    argTypes:
    - struct tty*
    - char*
    - size_t
    - size_t*
    - key_code*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1064
    functionDepth: 3
    functionLinenumber: 1064
    functionLinenumberEnd: 1178
    functionName: tty_keys_extended_key
    functionSourceFile: /src/tmux/tty-keys.c
    functionUses: 1
    functionsReached:
    - log_debug
    - KEYC_IS_UNICODE
    - log_get_level
    - key_string_lookup_key
    - isdigit
    - sscanf
    - memcpy
    - utf8_fromwc
    - utf8_from_data
    linkageType: ''
    returnType: int
    signature: "int tty_keys_extended_key(struct tty *tty, const char *buf, size_t
      len,\n    size_t *size, key_code *key)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/tty-keys.c:1238,1
    - Dst: log_debug
      Src: /src/tmux/tty-keys.c:1281,1
    - Dst: MOUSE_WHEEL
      Src: /src/tmux/tty-keys.c:1302,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 88
    argCount: 5
    argNames:
    - tty
    - buf
    - len
    - size
    - m
    argTypes:
    - struct tty*
    - char*
    - size_t
    - size_t*
    - struct mouse_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1185
    functionDepth: 3
    functionLinenumber: 1185
    functionLinenumberEnd: 1323
    functionName: tty_keys_mouse
    functionSourceFile: /src/tmux/tty-keys.c
    functionUses: 1
    functionsReached:
    - log_debug
    - MOUSE_WHEEL
    linkageType: ''
    returnType: int
    signature: "int tty_keys_mouse(struct tty *tty, const char *buf, size_t len, size_t
      *size,\n    struct mouse_event *m)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/tmux/tty-keys.c:1402,1
    - Dst: memcpy
      Src: /src/tmux/tty-keys.c:1403,1
    - Dst: free
      Src: /src/tmux/tty-keys.c:1409,1
    - Dst: xmalloc
      Src: /src/tmux/tty-keys.c:1412,1
    - Dst: b64_pton
      Src: /src/tmux/tty-keys.c:1413,1
    - Dst: free
      Src: /src/tmux/tty-keys.c:1414,1
    - Dst: free
      Src: /src/tmux/tty-keys.c:1415,1
    - Dst: free
      Src: /src/tmux/tty-keys.c:1418,1
    - Dst: log_debug
      Src: /src/tmux/tty-keys.c:1419,1
    - Dst: input_request_reply
      Src: /src/tmux/tty-keys.c:1425,1
    - Dst: paste_add
      Src: /src/tmux/tty-keys.c:1429,1
    - Dst: evtimer_del
      Src: /src/tmux/tty-keys.c:1431,1
    - Dst: free
      Src: /src/tmux/tty-keys.c:1435,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 76
    argCount: 4
    argNames:
    - tty
    - buf
    - len
    - size
    argTypes:
    - struct tty*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1329
    functionDepth: 6
    functionLinenumber: 1329
    functionLinenumberEnd: 1437
    functionName: tty_keys_clipboard
    functionSourceFile: /src/tmux/tty-keys.c
    functionUses: 1
    functionsReached:
    - evtimer_del
    - xmalloc
    - paste_add
    - free
    - memcpy
    - log_debug
    - input_request_reply
    - b64_pton
    linkageType: ''
    returnType: int
    signature: int tty_keys_clipboard(struct tty *tty, const char *buf, size_t len,
      size_t *size)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: strsep
      Src: /src/tmux/tty-keys.c:1487,1
    - Dst: strtoul
      Src: /src/tmux/tty-keys.c:1488,1
    - Dst: nitems
      Src: /src/tmux/tty-keys.c:1491,1
    - Dst: log_debug
      Src: /src/tmux/tty-keys.c:1503,1
    - Dst: tty_add_features
      Src: /src/tmux/tty-keys.c:1505,1
    - Dst: tty_add_features
      Src: /src/tmux/tty-keys.c:1507,1
    - Dst: tty_add_features
      Src: /src/tmux/tty-keys.c:1509,1
    - Dst: tty_add_features
      Src: /src/tmux/tty-keys.c:1511,1
    - Dst: log_debug
      Src: /src/tmux/tty-keys.c:1515,1
    - Dst: tty_update_features
      Src: /src/tmux/tty-keys.c:1517,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 60
    argCount: 4
    argNames:
    - tty
    - buf
    - len
    - size
    argTypes:
    - struct tty*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1443
    functionDepth: 4
    functionLinenumber: 1443
    functionLinenumberEnd: 1521
    functionName: tty_keys_device_attributes
    functionSourceFile: /src/tmux/tty-keys.c
    functionUses: 1
    functionsReached:
    - tty_add_features
    - strtoul
    - tty_update_features
    - nitems
    - strsep
    - log_debug
    linkageType: ''
    returnType: int
    signature: "int tty_keys_device_attributes(struct tty *tty, const char *buf, size_t
      len,\n    size_t *size)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strsep
      Src: /src/tmux/tty-keys.c:1571,1
    - Dst: strtoul
      Src: /src/tmux/tty-keys.c:1572,1
    - Dst: nitems
      Src: /src/tmux/tty-keys.c:1575,1
    - Dst: tty_default_features
      Src: /src/tmux/tty-keys.c:1586,1
    - Dst: tty_default_features
      Src: /src/tmux/tty-keys.c:1589,1
    - Dst: tty_default_features
      Src: /src/tmux/tty-keys.c:1592,1
    - Dst: log_debug
      Src: /src/tmux/tty-keys.c:1595,1
    - Dst: tty_update_features
      Src: /src/tmux/tty-keys.c:1597,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 4
    argNames:
    - tty
    - buf
    - len
    - size
    argTypes:
    - struct tty*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1527
    functionDepth: 4
    functionLinenumber: 1527
    functionLinenumberEnd: 1601
    functionName: tty_keys_device_attributes2
    functionSourceFile: /src/tmux/tty-keys.c
    functionUses: 1
    functionsReached:
    - strtoul
    - tty_default_features
    - tty_update_features
    - nitems
    - strsep
    - log_debug
    linkageType: ''
    returnType: int
    signature: "int tty_keys_device_attributes2(struct tty *tty, const char *buf,
      size_t len,\n    size_t *size)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/tmux/tty-keys.c:1654,1
    - Dst: tty_default_features
      Src: /src/tmux/tty-keys.c:1655,1
    - Dst: strncmp
      Src: /src/tmux/tty-keys.c:1656,1
    - Dst: tty_default_features
      Src: /src/tmux/tty-keys.c:1657,1
    - Dst: strncmp
      Src: /src/tmux/tty-keys.c:1658,1
    - Dst: tty_default_features
      Src: /src/tmux/tty-keys.c:1659,1
    - Dst: strncmp
      Src: /src/tmux/tty-keys.c:1660,1
    - Dst: tty_default_features
      Src: /src/tmux/tty-keys.c:1661,1
    - Dst: strncmp
      Src: /src/tmux/tty-keys.c:1662,1
    - Dst: tty_default_features
      Src: /src/tmux/tty-keys.c:1663,1
    - Dst: strncmp
      Src: /src/tmux/tty-keys.c:1664,1
    - Dst: tty_default_features
      Src: /src/tmux/tty-keys.c:1665,1
    - Dst: log_debug
      Src: /src/tmux/tty-keys.c:1666,1
    - Dst: free
      Src: /src/tmux/tty-keys.c:1668,1
    - Dst: xstrdup
      Src: /src/tmux/tty-keys.c:1669,1
    - Dst: tty_update_features
      Src: /src/tmux/tty-keys.c:1671,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 51
    argCount: 4
    argNames:
    - tty
    - buf
    - len
    - size
    argTypes:
    - struct tty*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1607
    functionDepth: 4
    functionLinenumber: 1607
    functionLinenumberEnd: 1675
    functionName: tty_keys_extended_device_attributes
    functionSourceFile: /src/tmux/tty-keys.c
    functionUses: 1
    functionsReached:
    - tty_default_features
    - tty_update_features
    - strncmp
    - free
    - log_debug
    - xstrdup
    linkageType: ''
    returnType: int
    signature: "int tty_keys_extended_device_attributes(struct tty *tty, const char
      *buf,\n    size_t len, size_t *size)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: colour_parseX11
      Src: /src/tmux/tty-keys.c:1735,1
    - Dst: log_debug
      Src: /src/tmux/tty-keys.c:1738,1
    - Dst: colour_tostring
      Src: /src/tmux/tty-keys.c:1738,1
    - Dst: log_debug
      Src: /src/tmux/tty-keys.c:1740,1
    - Dst: colour_tostring
      Src: /src/tmux/tty-keys.c:1740,1
    - Dst: log_debug
      Src: /src/tmux/tty-keys.c:1745,1
    - Dst: colour_tostring
      Src: /src/tmux/tty-keys.c:1745,1
    - Dst: log_debug
      Src: /src/tmux/tty-keys.c:1747,1
    - Dst: colour_tostring
      Src: /src/tmux/tty-keys.c:1747,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 55
    argCount: 6
    argNames:
    - tty
    - buf
    - len
    - size
    - fg
    - bg
    argTypes:
    - struct tty*
    - char*
    - size_t
    - size_t*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1681
    functionDepth: 3
    functionLinenumber: 1681
    functionLinenumberEnd: 1753
    functionName: tty_keys_colours
    functionSourceFile: /src/tmux/tty-keys.c
    functionUses: 2
    functionsReached:
    - log_debug
    - colour_tostring
    - colour_parseX11
    linkageType: ''
    returnType: int
    signature: "int tty_keys_colours(struct tty *tty, const char *buf, size_t len,
      size_t *size,\n    int *fg, int *bg)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/tmux/tty-keys.c:1806,1
    - Dst: colour_parseX11
      Src: /src/tmux/tty-keys.c:1813,1
    - Dst: input_request_reply
      Src: /src/tmux/tty-keys.c:1817,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 46
    argCount: 4
    argNames:
    - tty
    - buf
    - len
    - size
    argTypes:
    - struct tty*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1820
      start: 1756
    functionDepth: 6
    functionLinenumber: 1756
    functionLinenumberEnd: 1820
    functionName: tty_keys_palette
    functionSourceFile: /src/tmux/tty-keys.c
    functionUses: 1
    functionsReached:
    - input_request_reply
    - colour_parseX11
    - strtol
    linkageType: ''
    returnType: int
    signature: int tty_keys_palette(struct tty *tty, const char *buf, size_t len,
      size_t *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/tmux/cmd-show-environment.c:56,1
    - Dst: strlen
      Src: /src/tmux/cmd-show-environment.c:56,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - envent
    argTypes:
    - struct environ_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 66
    functionName: cmd_show_environment_escape
    functionSourceFile: /src/tmux/cmd-show-environment.c
    functionUses: 0
    functionsReached:
    - strlen
    - xmalloc
    linkageType: ''
    returnType: char
    signature: 'char *

      cmd_show_environment_escape(struct environ_entry *envent)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-show-environment.c:72,1
    - Dst: args_has
      Src: /src/tmux/cmd-show-environment.c:75,1
    - Dst: args_has
      Src: /src/tmux/cmd-show-environment.c:77,1
    - Dst: args_has
      Src: /src/tmux/cmd-show-environment.c:80,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-show-environment.c:82,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-show-environment.c:84,1
    - Dst: cmd_show_environment_escape
      Src: /src/tmux/cmd-show-environment.c:89,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-show-environment.c:90,1
    - Dst: free
      Src: /src/tmux/cmd-show-environment.c:92,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-show-environment.c:94,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - self
    - item
    - envent
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    - struct environ_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 95
    functionName: cmd_show_environment_print
    functionSourceFile: /src/tmux/cmd-show-environment.c
    functionUses: 0
    functionsReached:
    - cmd_show_environment_escape
    - cmdq_print
    - cmd_get_args
    - free
    - args_has
    linkageType: ''
    returnType: void
    signature: "void cmd_show_environment_print(struct cmd *self, struct cmdq_item
      *item,\n    struct environ_entry *envent)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-show-environment.c:100,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-show-environment.c:101,1
    - Dst: args_string
      Src: /src/tmux/cmd-show-environment.c:104,1
    - Dst: args_get
      Src: /src/tmux/cmd-show-environment.c:106,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-show-environment.c:108,1
    - Dst: args_has
      Src: /src/tmux/cmd-show-environment.c:113,1
    - Dst: args_get
      Src: /src/tmux/cmd-show-environment.c:117,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-show-environment.c:119,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-show-environment.c:121,1
    - Dst: environ_find
      Src: /src/tmux/cmd-show-environment.c:128,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-show-environment.c:130,1
    - Dst: cmd_show_environment_print
      Src: /src/tmux/cmd-show-environment.c:133,1
    - Dst: environ_first
      Src: /src/tmux/cmd-show-environment.c:137,1
    - Dst: cmd_show_environment_print
      Src: /src/tmux/cmd-show-environment.c:139,1
    - Dst: environ_next
      Src: /src/tmux/cmd-show-environment.c:140,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 97
    functionDepth: 5
    functionLinenumber: 97
    functionLinenumberEnd: 143
    functionName: cmd_show_environment_exec
    functionSourceFile: /src/tmux/cmd-show-environment.c
    functionUses: 0
    functionsReached:
    - cmd_show_environment_print
    - environ_first
    - environ_find
    - cmdq_error
    - args_string
    - cmd_get_args
    - environ_next
    - args_get
    - cmdq_get_target
    - args_has
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_show_environment_exec(struct cmd *self, struct
      cmdq_item *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - item
    - data
    argTypes:
    - __unused*
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: cfg_client_done
    functionSourceFile: /src/tmux/cfg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cfg_client_done(__unused struct cmdq_item *item, __unused
      void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cfg_show_causes
      Src: /src/tmux/cfg.c:54,1
    - Dst: cmdq_continue
      Src: /src/tmux/cfg.c:57,1
    - Dst: status_prompt_load_history
      Src: /src/tmux/cfg.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - item
    - data
    argTypes:
    - __unused*
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: cfg_done
    functionSourceFile: /src/tmux/cfg.c
    functionUses: 0
    functionsReached:
    - status_prompt_load_history
    - cmdq_continue
    - cfg_show_causes
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cfg_done(__unused struct cmdq_item *item, __unused
      void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/cfg.c:81,1
    - Dst: cmdq_get_callback
      Src: /src/tmux/cfg.c:83,1
    - Dst: cmdq_append
      Src: /src/tmux/cfg.c:84,1
    - Dst: load_cfg
      Src: /src/tmux/cfg.c:90,1
    - Dst: cmdq_append
      Src: /src/tmux/cfg.c:92,1
    - Dst: cmdq_get_callback
      Src: /src/tmux/cfg.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 93
    functionName: start_cfg
    functionSourceFile: /src/tmux/cfg.c
    functionUses: 0
    functionsReached:
    - cmdq_get_callback
    - TAILQ_FIRST
    - load_cfg
    - cmdq_append
    linkageType: ''
    returnType: void
    signature: void start_cfg(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/cfg.c:108,1
    - Dst: fopen
      Src: /src/tmux/cfg.c:109,1
    - Dst: cfg_add_cause
      Src: /src/tmux/cfg.c:112,1
    - Dst: strerror
      Src: /src/tmux/cfg.c:112,1
    - Dst: memset
      Src: /src/tmux/cfg.c:116,1
    - Dst: cmd_parse_from_file
      Src: /src/tmux/cfg.c:123,1
    - Dst: fclose
      Src: /src/tmux/cfg.c:124,1
    - Dst: cfg_add_cause
      Src: /src/tmux/cfg.c:126,1
    - Dst: free
      Src: /src/tmux/cfg.c:127,1
    - Dst: cmd_list_free
      Src: /src/tmux/cfg.c:131,1
    - Dst: cmdq_copy_state
      Src: /src/tmux/cfg.c:136,1
    - Dst: cmdq_get_state
      Src: /src/tmux/cfg.c:136,1
    - Dst: cmdq_new_state
      Src: /src/tmux/cfg.c:138,1
    - Dst: cmdq_add_format
      Src: /src/tmux/cfg.c:139,1
    - Dst: cmdq_get_command
      Src: /src/tmux/cfg.c:141,1
    - Dst: cmdq_insert_after
      Src: /src/tmux/cfg.c:143,1
    - Dst: cmdq_append
      Src: /src/tmux/cfg.c:145,1
    - Dst: cmd_list_free
      Src: /src/tmux/cfg.c:146,1
    - Dst: cmdq_free_state
      Src: /src/tmux/cfg.c:147,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 6
    argNames:
    - path
    - c
    - item
    - current
    - flags
    - new_item
    argTypes:
    - char*
    - struct client*
    - struct cmdq_item*
    - struct cmd_find_state*
    - int
    - struct cmdq_item**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 152
    functionName: load_cfg
    functionSourceFile: /src/tmux/cfg.c
    functionUses: 1
    functionsReached:
    - cmd_list_free
    - cmdq_copy_state
    - cmdq_new_state
    - cmdq_add_format
    - fclose
    - cmdq_get_state
    - cmdq_append
    - cmdq_insert_after
    - memset
    - cmd_parse_from_file
    - free
    - strerror
    - cfg_add_cause
    - cmdq_get_command
    - log_debug
    - cmdq_free_state
    - fopen
    linkageType: ''
    returnType: int
    signature: "int load_cfg(const char *path, struct client *c, struct cmdq_item
      *item,\n    struct cmd_find_state *current, int flags, struct cmdq_item **new_item)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/cfg.c:167,1
    - Dst: memset
      Src: /src/tmux/cfg.c:169,1
    - Dst: cmd_parse_from_buffer
      Src: /src/tmux/cfg.c:176,1
    - Dst: cfg_add_cause
      Src: /src/tmux/cfg.c:178,1
    - Dst: free
      Src: /src/tmux/cfg.c:179,1
    - Dst: cmd_list_free
      Src: /src/tmux/cfg.c:183,1
    - Dst: cmdq_copy_state
      Src: /src/tmux/cfg.c:188,1
    - Dst: cmdq_get_state
      Src: /src/tmux/cfg.c:188,1
    - Dst: cmdq_new_state
      Src: /src/tmux/cfg.c:190,1
    - Dst: cmdq_add_format
      Src: /src/tmux/cfg.c:191,1
    - Dst: cmdq_get_command
      Src: /src/tmux/cfg.c:193,1
    - Dst: cmdq_insert_after
      Src: /src/tmux/cfg.c:195,1
    - Dst: cmdq_append
      Src: /src/tmux/cfg.c:197,1
    - Dst: cmd_list_free
      Src: /src/tmux/cfg.c:198,1
    - Dst: cmdq_free_state
      Src: /src/tmux/cfg.c:199,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 8
    argNames:
    - buf
    - len
    - path
    - c
    - item
    - current
    - flags
    - new_item
    argTypes:
    - void*
    - size_t
    - char*
    - struct client*
    - struct cmdq_item*
    - struct cmd_find_state*
    - int
    - struct cmdq_item**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 204
    functionName: load_cfg_from_buffer
    functionSourceFile: /src/tmux/cfg.c
    functionUses: 0
    functionsReached:
    - cmd_list_free
    - cmdq_copy_state
    - cmd_parse_from_buffer
    - cmdq_new_state
    - cmdq_add_format
    - cmdq_get_state
    - cmdq_append
    - cmdq_insert_after
    - memset
    - free
    - cmdq_get_command
    - cfg_add_cause
    - log_debug
    - cmdq_free_state
    linkageType: ''
    returnType: int
    signature: "int load_cfg_from_buffer(const void *buf, size_t len, const char *path,\n
      \   struct client *c, struct cmdq_item *item, struct cmd_find_state *current,\n
      \   int flags, struct cmdq_item **new_item)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/tmux/cfg.c:212,1
    - Dst: xvasprintf
      Src: /src/tmux/cfg.c:213,1
    - Dst: va_end
      Src: /src/tmux/cfg.c:214,1
    - Dst: xreallocarray
      Src: /src/tmux/cfg.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 219
    functionName: cfg_add_cause
    functionSourceFile: /src/tmux/cfg.c
    functionUses: 2
    functionsReached:
    - va_end
    - xvasprintf
    - xreallocarray
    - va_start
    linkageType: ''
    returnType: void
    signature: void cfg_add_cause(const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get_client
      Src: /src/tmux/cfg.c:224,1
    - Dst: control_write
      Src: /src/tmux/cfg.c:229,1
    - Dst: cmdq_print
      Src: /src/tmux/cfg.c:231,1
    - Dst: free
      Src: /src/tmux/cfg.c:232,1
    - Dst: free
      Src: /src/tmux/cfg.c:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 221
    functionDepth: 5
    functionLinenumber: 221
    functionLinenumberEnd: 238
    functionName: cfg_print_causes
    functionSourceFile: /src/tmux/cfg.c
    functionUses: 0
    functionsReached:
    - cmdq_print
    - free
    - control_write
    - cmdq_get_client
    linkageType: ''
    returnType: void
    signature: void cfg_print_causes(struct cmdq_item *item)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/cfg.c:243,1
    - Dst: control_write
      Src: /src/tmux/cfg.c:253,1
    - Dst: free
      Src: /src/tmux/cfg.c:254,1
    - Dst: RB_MIN
      Src: /src/tmux/cfg.c:263,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/cfg.c:269,1
    - Dst: window_pane_set_mode
      Src: /src/tmux/cfg.c:271,1
    - Dst: window_copy_add
      Src: /src/tmux/cfg.c:273,1
    - Dst: free
      Src: /src/tmux/cfg.c:274,1
    - Dst: free
      Src: /src/tmux/cfg.c:278,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 240
    functionDepth: 5
    functionLinenumber: 240
    functionLinenumberEnd: 281
    functionName: cfg_show_causes
    functionSourceFile: /src/tmux/cfg.c
    functionUses: 2
    functionsReached:
    - window_copy_add
    - RB_MIN
    - TAILQ_FIRST
    - window_pane_set_mode
    - free
    - control_write
    linkageType: ''
    returnType: void
    signature: void cfg_show_causes(struct session *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/tmux/style.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sy
    - s
    argTypes:
    - struct style*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: style_set_range_string
    functionSourceFile: /src/tmux/style.c
    functionUses: 0
    functionsReached:
    - strlcpy
    linkageType: ''
    returnType: void
    signature: void style_set_range_string(struct style *sy, const char *s)
  - BBCount: 68
    BranchProfiles: []
    Callsites:
    - Dst: style_copy
      Src: /src/tmux/style.c:71,1
    - Dst: log_debug
      Src: /src/tmux/style.c:73,1
    - Dst: strchr
      Src: /src/tmux/style.c:75,1
    - Dst: strcspn
      Src: /src/tmux/style.c:80,1
    - Dst: memcpy
      Src: /src/tmux/style.c:83,1
    - Dst: log_debug
      Src: /src/tmux/style.c:86,1
    - Dst: strcasecmp
      Src: /src/tmux/style.c:87,1
    - Dst: strcasecmp
      Src: /src/tmux/style.c:93,1
    - Dst: strcasecmp
      Src: /src/tmux/style.c:95,1
    - Dst: strcasecmp
      Src: /src/tmux/style.c:97,1
    - Dst: strcasecmp
      Src: /src/tmux/style.c:99,1
    - Dst: strcasecmp
      Src: /src/tmux/style.c:101,1
    - Dst: strcasecmp
      Src: /src/tmux/style.c:103,1
    - Dst: strncasecmp
      Src: /src/tmux/style.c:105,1
    - Dst: strcasecmp
      Src: /src/tmux/style.c:106,1
    - Dst: strcasecmp
      Src: /src/tmux/style.c:108,1
    - Dst: strcasecmp
      Src: /src/tmux/style.c:110,1
    - Dst: strcasecmp
      Src: /src/tmux/style.c:112,1
    - Dst: strcasecmp
      Src: /src/tmux/style.c:116,1
    - Dst: strlcpy
      Src: /src/tmux/style.c:119,1
    - Dst: strncasecmp
      Src: /src/tmux/style.c:121,1
    - Dst: strchr
      Src: /src/tmux/style.c:122,1
    - Dst: strcasecmp
      Src: /src/tmux/style.c:128,1
    - Dst: style_set_range_string
      Src: /src/tmux/style.c:133,1
    - Dst: strcasecmp
      Src: /src/tmux/style.c:134,1
    - Dst: style_set_range_string
      Src: /src/tmux/style.c:139,1
    - Dst: strcasecmp
      Src: /src/tmux/style.c:140,1
    - Dst: strtonum
      Src: /src/tmux/style.c:143,1
    - Dst: style_set_range_string
      Src: /src/tmux/style.c:148,1
    - Dst: strcasecmp
      Src: /src/tmux/style.c:149,1
    - Dst: strtonum
      Src: /src/tmux/style.c:154,1
    - Dst: style_set_range_string
      Src: /src/tmux/style.c:159,1
    - Dst: strcasecmp
      Src: /src/tmux/style.c:160,1
    - Dst: strtonum
      Src: /src/tmux/style.c:163,1
    - Dst: style_set_range_string
      Src: /src/tmux/style.c:168,1
    - Dst: strcasecmp
      Src: /src/tmux/style.c:169,1
    - Dst: strtonum
      Src: /src/tmux/style.c:174,1
    - Dst: style_set_range_string
      Src: /src/tmux/style.c:179,1
    - Dst: strcasecmp
      Src: /src/tmux/style.c:180,1
    - Dst: style_set_range_string
      Src: /src/tmux/style.c:185,1
    - Dst: strcasecmp
      Src: /src/tmux/style.c:187,1
    - Dst: strncasecmp
      Src: /src/tmux/style.c:189,1
    - Dst: strcasecmp
      Src: /src/tmux/style.c:190,1
    - Dst: strcasecmp
      Src: /src/tmux/style.c:192,1
    - Dst: strcasecmp
      Src: /src/tmux/style.c:194,1
    - Dst: strcasecmp
      Src: /src/tmux/style.c:196,1
    - Dst: strncasecmp
      Src: /src/tmux/style.c:200,1
    - Dst: colour_fromstring
      Src: /src/tmux/style.c:201,1
    - Dst: strncasecmp
      Src: /src/tmux/style.c:204,1
    - Dst: colour_fromstring
      Src: /src/tmux/style.c:205,1
    - Dst: strncasecmp
      Src: /src/tmux/style.c:219,1
    - Dst: colour_fromstring
      Src: /src/tmux/style.c:220,1
    - Dst: strcasecmp
      Src: /src/tmux/style.c:226,1
    - Dst: strncasecmp
      Src: /src/tmux/style.c:228,1
    - Dst: strcmp
      Src: /src/tmux/style.c:229,1
    - Dst: attributes_fromstring
      Src: /src/tmux/style.c:232,1
    - Dst: strncasecmp
      Src: /src/tmux/style.c:237,1
    - Dst: strtonum
      Src: /src/tmux/style.c:240,1
    - Dst: strtonum
      Src: /src/tmux/style.c:246,1
    - Dst: strncasecmp
      Src: /src/tmux/style.c:252,1
    - Dst: strtonum
      Src: /src/tmux/style.c:253,1
    - Dst: attributes_fromstring
      Src: /src/tmux/style.c:258,1
    - Dst: strspn
      Src: /src/tmux/style.c:263,1
    - Dst: style_copy
      Src: /src/tmux/style.c:269,1
    CyclomaticComplexity: 110
    EdgeCount: 110
    ICount: 234
    argCount: 3
    argNames:
    - sy
    - base
    - in
    argTypes:
    - struct style*
    - struct grid_cell*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 271
    functionName: style_parse
    functionSourceFile: /src/tmux/style.c
    functionUses: 6
    functionsReached:
    - style_copy
    - style_set_range_string
    - strtonum
    - strlcpy
    - strchr
    - strcasecmp
    - strncasecmp
    - strcmp
    - strcspn
    - colour_fromstring
    - memcpy
    - log_debug
    - strspn
    - attributes_fromstring
    linkageType: ''
    returnType: int
    signature: int style_parse(struct style *sy, const struct grid_cell *base, const
      char *in)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/tmux/style.c:294,1
    - Dst: snprintf
      Src: /src/tmux/style.c:304,1
    - Dst: snprintf
      Src: /src/tmux/style.c:307,1
    - Dst: snprintf
      Src: /src/tmux/style.c:310,1
    - Dst: snprintf
      Src: /src/tmux/style.c:314,1
    - Dst: xsnprintf
      Src: /src/tmux/style.c:317,1
    - Dst: xsnprintf
      Src: /src/tmux/style.c:330,1
    - Dst: xsnprintf
      Src: /src/tmux/style.c:341,1
    - Dst: xsnprintf
      Src: /src/tmux/style.c:345,1
    - Dst: colour_tostring
      Src: /src/tmux/style.c:346,1
    - Dst: xsnprintf
      Src: /src/tmux/style.c:350,1
    - Dst: colour_tostring
      Src: /src/tmux/style.c:351,1
    - Dst: xsnprintf
      Src: /src/tmux/style.c:355,1
    - Dst: colour_tostring
      Src: /src/tmux/style.c:356,1
    - Dst: xsnprintf
      Src: /src/tmux/style.c:360,1
    - Dst: colour_tostring
      Src: /src/tmux/style.c:361,1
    - Dst: xsnprintf
      Src: /src/tmux/style.c:365,1
    - Dst: attributes_tostring
      Src: /src/tmux/style.c:366,1
    - Dst: xsnprintf
      Src: /src/tmux/style.c:371,1
    - Dst: xsnprintf
      Src: /src/tmux/style.c:374,1
    - Dst: xsnprintf
      Src: /src/tmux/style.c:379,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 93
    argCount: 1
    argNames:
    - sy
    argTypes:
    - struct style*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 386
    functionName: style_tostring
    functionSourceFile: /src/tmux/style.c
    functionUses: 0
    functionsReached:
    - attributes_tostring
    - colour_tostring
    - xsnprintf
    - snprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      style_tostring(struct style *sy)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: format_create
      Src: /src/tmux/style.c:397,1
    - Dst: options_string_to_style
      Src: /src/tmux/style.c:399,1
    - Dst: format_free
      Src: /src/tmux/style.c:411,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - gc
    - oo
    - name
    - ft
    argTypes:
    - struct grid_cell*
    - struct options*
    - char*
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 389
    functionDepth: 4
    functionLinenumber: 389
    functionLinenumberEnd: 412
    functionName: style_add
    functionSourceFile: /src/tmux/style.c
    functionUses: 1
    functionsReached:
    - options_string_to_style
    - format_create
    - format_free
    linkageType: ''
    returnType: void
    signature: "void style_add(struct grid_cell *gc, struct options *oo, const char
      *name,\n    struct format_tree *ft)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/style.c:419,1
    - Dst: style_add
      Src: /src/tmux/style.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - gc
    - oo
    - name
    - ft
    argTypes:
    - struct grid_cell*
    - struct options*
    - char*
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 415
    functionDepth: 5
    functionLinenumber: 415
    functionLinenumberEnd: 421
    functionName: style_apply
    functionSourceFile: /src/tmux/style.c
    functionUses: 7
    functionsReached:
    - style_add
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void style_apply(struct grid_cell *gc, struct options *oo, const char
      *name,\n    struct format_tree *ft)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/style.c:427,1
    - Dst: memcpy
      Src: /src/tmux/style.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sy
    - gc
    argTypes:
    - struct style*
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 429
    functionName: style_set
    functionSourceFile: /src/tmux/style.c
    functionUses: 5
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void style_set(struct style *sy, const struct grid_cell *gc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/style.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct style*
    - struct style*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 436
    functionName: style_copy
    functionSourceFile: /src/tmux/style.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void style_copy(struct style *dst, struct style *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: options_string_to_style
      Src: /src/tmux/style.c:445,1
    - Dst: style_set
      Src: /src/tmux/style.c:447,1
    - Dst: utf8_set
      Src: /src/tmux/style.c:450,1
    - Dst: style_copy
      Src: /src/tmux/style.c:452,1
    - Dst: utf8_set
      Src: /src/tmux/style.c:457,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - sb_style
    - oo
    argTypes:
    - struct style*
    - struct options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 439
    functionDepth: 4
    functionLinenumber: 439
    functionLinenumberEnd: 459
    functionName: style_set_scrollbar_style_from_option
    functionSourceFile: /src/tmux/style.c
    functionUses: 2
    functionsReached:
    - style_set
    - options_string_to_style
    - utf8_set
    - style_copy
    linkageType: ''
    returnType: void
    signature: "void style_set_scrollbar_style_from_option(struct style *sb_style,\n
      \   struct options *oo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_INIT
      Src: /src/tmux/style.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - srs
    argTypes:
    - struct style_ranges*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 466
    functionName: style_ranges_init
    functionSourceFile: /src/tmux/style.c
    functionUses: 1
    functionsReached:
    - TAILQ_INIT
    linkageType: ''
    returnType: void
    signature: void style_ranges_init(struct style_ranges *srs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/style.c:475,1
    - Dst: free
      Src: /src/tmux/style.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - srs
    argTypes:
    - struct style_ranges*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 478
    functionName: style_ranges_free
    functionSourceFile: /src/tmux/style.c
    functionUses: 1
    functionsReached:
    - free
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void style_ranges_free(struct style_ranges *srs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/style.c:475,1
    - Dst: free
      Src: /src/tmux/style.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 477
    functionName: TAILQ_FOREACH_SAFE
    functionSourceFile: /src/tmux/style.c
    functionUses: 23
    functionsReached:
    - free
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void TAILQ_FOREACH_SAFE(sr, srs, entry, sr1)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - srs
    - x
    argTypes:
    - struct style_ranges*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 493
    functionName: style_ranges_get_range
    functionSourceFile: /src/tmux/style.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct style_range
    signature: 'struct style_range *

      style_ranges_get_range(struct style_ranges *srs, u_int x)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 491
    functionName: TAILQ_FOREACH
    functionSourceFile: /src/tmux/style.c
    functionUses: 125
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TAILQ_FOREACH(sr, srs, entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: nitems
    functionSourceFile: /src/tmux/osdep-dragonfly.c
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nitems(_a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: is_runnable
    functionSourceFile: /src/tmux/osdep-dragonfly.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_runnable(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: is_stopped
    functionSourceFile: /src/tmux/osdep-dragonfly.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_stopped(p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: is_runnable
      Src: /src/tmux/osdep-dragonfly.c:48,1
    - Dst: is_runnable
      Src: /src/tmux/osdep-dragonfly.c:48,1
    - Dst: is_runnable
      Src: /src/tmux/osdep-dragonfly.c:50,1
    - Dst: is_runnable
      Src: /src/tmux/osdep-dragonfly.c:50,1
    - Dst: is_stopped
      Src: /src/tmux/osdep-dragonfly.c:53,1
    - Dst: is_stopped
      Src: /src/tmux/osdep-dragonfly.c:53,1
    - Dst: is_stopped
      Src: /src/tmux/osdep-dragonfly.c:55,1
    - Dst: is_stopped
      Src: /src/tmux/osdep-dragonfly.c:55,1
    - Dst: strcmp
      Src: /src/tmux/osdep-dragonfly.c:58,1
    - Dst: strcmp
      Src: /src/tmux/osdep-dragonfly.c:60,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - struct kinfo_proc*
    - struct kinfo_proc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 66
    functionName: cmp_procs
    functionSourceFile: /src/tmux/osdep-dragonfly.c
    functionUses: 2
    functionsReached:
    - strcmp
    - is_stopped
    - is_runnable
    linkageType: ''
    returnType: struct kinfo_proc
    signature: 'struct kinfo_proc *

      cmp_procs(struct kinfo_proc *p1, struct kinfo_proc *p2)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/tmux/osdep-dragonfly.c:80,1
    - Dst: tcgetpgrp
      Src: /src/tmux/osdep-dragonfly.c:82,1
    - Dst: sysctl
      Src: /src/tmux/osdep-dragonfly.c:86,1
    - Dst: nitems
      Src: /src/tmux/osdep-dragonfly.c:86,1
    - Dst: realloc
      Src: /src/tmux/osdep-dragonfly.c:90,1
    - Dst: sysctl
      Src: /src/tmux/osdep-dragonfly.c:94,1
    - Dst: nitems
      Src: /src/tmux/osdep-dragonfly.c:94,1
    - Dst: cmp_procs
      Src: /src/tmux/osdep-dragonfly.c:107,1
    - Dst: strdup
      Src: /src/tmux/osdep-dragonfly.c:112,1
    - Dst: free
      Src: /src/tmux/osdep-dragonfly.c:114,1
    - Dst: free
      Src: /src/tmux/osdep-dragonfly.c:118,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - fd
    - tty
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 120
    functionName: osdep_get_name
    functionSourceFile: /src/tmux/osdep-dragonfly.c
    functionUses: 0
    functionsReached:
    - realloc
    - nitems
    - sysctl
    - stat
    - free
    - cmp_procs
    - tcgetpgrp
    - strdup
    linkageType: ''
    returnType: char
    signature: 'char *

      osdep_get_name(int fd, char *tty)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: osdep_get_cwd
    functionSourceFile: /src/tmux/osdep-dragonfly.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      osdep_get_cwd(int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_init
      Src: /src/tmux/osdep-dragonfly.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: osdep_event_init
    functionSourceFile: /src/tmux/osdep-dragonfly.c
    functionUses: 1
    functionsReached:
    - event_init
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      osdep_event_init(void)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-unbind-key.c:45,1
    - Dst: args_string
      Src: /src/tmux/cmd-unbind-key.c:47,1
    - Dst: args_has
      Src: /src/tmux/cmd-unbind-key.c:48,1
    - Dst: args_has
      Src: /src/tmux/cmd-unbind-key.c:50,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-unbind-key.c:53,1
    - Dst: args_get
      Src: /src/tmux/cmd-unbind-key.c:57,1
    - Dst: args_has
      Src: /src/tmux/cmd-unbind-key.c:59,1
    - Dst: key_bindings_get_table
      Src: /src/tmux/cmd-unbind-key.c:64,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-unbind-key.c:66,1
    - Dst: key_bindings_remove_table
      Src: /src/tmux/cmd-unbind-key.c:72,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-unbind-key.c:78,1
    - Dst: key_string_lookup_string
      Src: /src/tmux/cmd-unbind-key.c:82,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-unbind-key.c:85,1
    - Dst: args_has
      Src: /src/tmux/cmd-unbind-key.c:89,1
    - Dst: args_get
      Src: /src/tmux/cmd-unbind-key.c:90,1
    - Dst: key_bindings_get_table
      Src: /src/tmux/cmd-unbind-key.c:91,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-unbind-key.c:93,1
    - Dst: args_has
      Src: /src/tmux/cmd-unbind-key.c:98,1
    - Dst: key_bindings_remove
      Src: /src/tmux/cmd-unbind-key.c:102,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 42
    functionDepth: 6
    functionLinenumber: 42
    functionLinenumberEnd: 104
    functionName: cmd_unbind_key_exec
    functionSourceFile: /src/tmux/cmd-unbind-key.c
    functionUses: 0
    functionsReached:
    - cmdq_error
    - args_string
    - key_bindings_remove
    - cmd_get_args
    - key_bindings_remove_table
    - args_get
    - key_bindings_get_table
    - args_has
    - key_string_lookup_string
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_unbind_key_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tcgetpgrp
      Src: /src/tmux/osdep-cygwin.c:37,1
    - Dst: xasprintf
      Src: /src/tmux/osdep-cygwin.c:40,1
    - Dst: fopen
      Src: /src/tmux/osdep-cygwin.c:41,1
    - Dst: free
      Src: /src/tmux/osdep-cygwin.c:42,1
    - Dst: free
      Src: /src/tmux/osdep-cygwin.c:45,1
    - Dst: fgetc
      Src: /src/tmux/osdep-cygwin.c:49,1
    - Dst: xrealloc
      Src: /src/tmux/osdep-cygwin.c:52,1
    - Dst: fclose
      Src: /src/tmux/osdep-cygwin.c:58,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - fd
    - tty
    argTypes:
    - int
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 60
    functionName: osdep_get_name
    functionSourceFile: /src/tmux/osdep-cygwin.c
    functionUses: 0
    functionsReached:
    - fgetc
    - xasprintf
    - fclose
    - free
    - xrealloc
    - tcgetpgrp
    - fopen
    linkageType: ''
    returnType: char
    signature: 'char *

      osdep_get_name(int fd, __unused char *tty)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tcgetpgrp
      Src: /src/tmux/osdep-cygwin.c:70,1
    - Dst: xasprintf
      Src: /src/tmux/osdep-cygwin.c:73,1
    - Dst: readlink
      Src: /src/tmux/osdep-cygwin.c:74,1
    - Dst: free
      Src: /src/tmux/osdep-cygwin.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 81
    functionName: osdep_get_cwd
    functionSourceFile: /src/tmux/osdep-cygwin.c
    functionUses: 0
    functionsReached:
    - readlink
    - xasprintf
    - tcgetpgrp
    - free
    linkageType: ''
    returnType: char
    signature: 'char *

      osdep_get_cwd(int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_init
      Src: /src/tmux/osdep-cygwin.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: osdep_event_init
    functionSourceFile: /src/tmux/osdep-cygwin.c
    functionUses: 1
    functionsReached:
    - event_init
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      osdep_event_init(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tcgetpgrp
      Src: /src/tmux/osdep-darwin.c:45,1
    - Dst: proc_pidinfo
      Src: /src/tmux/osdep-darwin.c:48,1
    - Dst: strdup
      Src: /src/tmux/osdep-darwin.c:51,1
    - Dst: tcgetpgrp
      Src: /src/tmux/osdep-darwin.c:58,1
    - Dst: sysctl
      Src: /src/tmux/osdep-darwin.c:62,1
    - Dst: strdup
      Src: /src/tmux/osdep-darwin.c:67,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - fd
    - tty
    argTypes:
    - int
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 69
    functionName: osdep_get_name
    functionSourceFile: /src/tmux/osdep-darwin.c
    functionUses: 0
    functionsReached:
    - proc_pidinfo
    - tcgetpgrp
    - strdup
    - sysctl
    linkageType: ''
    returnType: char
    signature: 'char *

      osdep_get_name(int fd, __unused char *tty)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tcgetpgrp
      Src: /src/tmux/osdep-darwin.c:80,1
    - Dst: proc_pidinfo
      Src: /src/tmux/osdep-darwin.c:83,1
    - Dst: strlcpy
      Src: /src/tmux/osdep-darwin.c:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 91
    functionName: osdep_get_cwd
    functionSourceFile: /src/tmux/osdep-darwin.c
    functionUses: 0
    functionsReached:
    - proc_pidinfo
    - tcgetpgrp
    - strlcpy
    linkageType: ''
    returnType: char
    signature: 'char *

      osdep_get_cwd(int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/tmux/osdep-darwin.c:102,1
    - Dst: setenv
      Src: /src/tmux/osdep-darwin.c:103,1
    - Dst: event_init
      Src: /src/tmux/osdep-darwin.c:105,1
    - Dst: unsetenv
      Src: /src/tmux/osdep-darwin.c:106,1
    - Dst: unsetenv
      Src: /src/tmux/osdep-darwin.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 109
    functionName: osdep_event_init
    functionSourceFile: /src/tmux/osdep-darwin.c
    functionUses: 1
    functionsReached:
    - event_init
    - setenv
    - unsetenv
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      osdep_event_init(void)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-kill-window.c:58,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-kill-window.c:59,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-kill-window.c:65,1
    - Dst: args_has
      Src: /src/tmux/cmd-kill-window.c:66,1
    - Dst: session_is_linked
      Src: /src/tmux/cmd-kill-window.c:66,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-kill-window.c:67,1
    - Dst: server_unlink_window
      Src: /src/tmux/cmd-kill-window.c:70,1
    - Dst: recalculate_sizes
      Src: /src/tmux/cmd-kill-window.c:71,1
    - Dst: args_has
      Src: /src/tmux/cmd-kill-window.c:75,1
    - Dst: RB_PREV
      Src: /src/tmux/cmd-kill-window.c:76,1
    - Dst: RB_NEXT
      Src: /src/tmux/cmd-kill-window.c:77,1
    - Dst: RB_FOREACH
      Src: /src/tmux/cmd-kill-window.c:83,1
    - Dst: server_kill_window
      Src: /src/tmux/cmd-kill-window.c:85,1
    - Dst: RB_FOREACH
      Src: /src/tmux/cmd-kill-window.c:97,1
    - Dst: server_kill_window
      Src: /src/tmux/cmd-kill-window.c:102,1
    - Dst: server_renumber_all
      Src: /src/tmux/cmd-kill-window.c:104,1
    - Dst: server_kill_window
      Src: /src/tmux/cmd-kill-window.c:108,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 55
    functionDepth: 4
    functionLinenumber: 55
    functionLinenumberEnd: 110
    functionName: cmd_kill_window_exec
    functionSourceFile: /src/tmux/cmd-kill-window.c
    functionUses: 0
    functionsReached:
    - session_is_linked
    - server_renumber_all
    - cmdq_error
    - recalculate_sizes
    - cmd_get_args
    - cmd_get_entry
    - server_kill_window
    - server_unlink_window
    - RB_FOREACH
    - RB_NEXT
    - RB_PREV
    - cmdq_get_target
    - args_has
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_kill_window_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-list-sessions.c:55,1
    - Dst: args_get
      Src: /src/tmux/cmd-list-sessions.c:66,1
    - Dst: sort_order_from_string
      Src: /src/tmux/cmd-list-sessions.c:68,1
    - Dst: args_get
      Src: /src/tmux/cmd-list-sessions.c:68,1
    - Dst: args_has
      Src: /src/tmux/cmd-list-sessions.c:69,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-list-sessions.c:70,1
    - Dst: args_has
      Src: /src/tmux/cmd-list-sessions.c:73,1
    - Dst: sort_get_sessions
      Src: /src/tmux/cmd-list-sessions.c:75,1
    - Dst: format_create
      Src: /src/tmux/cmd-list-sessions.c:77,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-list-sessions.c:77,1
    - Dst: format_add
      Src: /src/tmux/cmd-list-sessions.c:78,1
    - Dst: format_defaults
      Src: /src/tmux/cmd-list-sessions.c:79,1
    - Dst: format_expand
      Src: /src/tmux/cmd-list-sessions.c:82,1
    - Dst: format_true
      Src: /src/tmux/cmd-list-sessions.c:83,1
    - Dst: free
      Src: /src/tmux/cmd-list-sessions.c:84,1
    - Dst: format_expand
      Src: /src/tmux/cmd-list-sessions.c:88,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-list-sessions.c:89,1
    - Dst: free
      Src: /src/tmux/cmd-list-sessions.c:90,1
    - Dst: format_free
      Src: /src/tmux/cmd-list-sessions.c:93,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 97
    functionName: cmd_list_sessions_exec
    functionSourceFile: /src/tmux/cmd-list-sessions.c
    functionUses: 0
    functionsReached:
    - cmdq_error
    - cmdq_print
    - format_expand
    - cmd_get_args
    - format_true
    - format_defaults
    - format_free
    - free
    - sort_order_from_string
    - args_get
    - format_create
    - cmdq_get_client
    - format_add
    - sort_get_sessions
    - args_has
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_list_sessions_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tty_fake_bce
      Src: /src/tmux/tty-draw.c:57,1
    - Dst: tty_term_has
      Src: /src/tmux/tty-draw.c:59,1
    - Dst: tty_cursor
      Src: /src/tmux/tty-draw.c:60,1
    - Dst: tty_putcode
      Src: /src/tmux/tty-draw.c:61,1
    - Dst: tty_term_has
      Src: /src/tmux/tty-draw.c:66,1
    - Dst: tty_cursor
      Src: /src/tmux/tty-draw.c:67,1
    - Dst: tty_putcode
      Src: /src/tmux/tty-draw.c:68,1
    - Dst: tty_term_has
      Src: /src/tmux/tty-draw.c:73,1
    - Dst: tty_cursor
      Src: /src/tmux/tty-draw.c:74,1
    - Dst: tty_putcode_i
      Src: /src/tmux/tty-draw.c:75,1
    - Dst: tty_cursor
      Src: /src/tmux/tty-draw.c:82,1
    - Dst: tty_putc
      Src: /src/tmux/tty-draw.c:84,1
    - Dst: tty_putn
      Src: /src/tmux/tty-draw.c:86,1
    - Dst: tty_repeat_space
      Src: /src/tmux/tty-draw.c:88,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 7
    argNames:
    - tty
    - px
    - py
    - nx
    - defaults
    - bg
    - wrapped
    argTypes:
    - struct tty*
    - u_int
    - u_int
    - u_int
    - struct grid_cell*
    - u_int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 45
    functionDepth: 4
    functionLinenumber: 45
    functionLinenumberEnd: 89
    functionName: tty_draw_line_clear
    functionSourceFile: /src/tmux/tty-draw.c
    functionUses: 0
    functionsReached:
    - tty_term_has
    - tty_cursor
    - tty_putn
    - tty_putc
    - tty_putcode
    - tty_putcode_i
    - tty_repeat_space
    - tty_fake_bce
    linkageType: ''
    returnType: void
    signature: "void tty_draw_line_clear(struct tty *tty, u_int px, u_int py, u_int
      nx,\n    const struct grid_cell *defaults, u_int bg, int wrapped)"
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/tty-draw.c:112,1
    - Dst: grid_get_line
      Src: /src/tmux/tty-draw.c:127,1
    - Dst: screen_size_x
      Src: /src/tmux/tty-draw.c:128,1
    - Dst: screen_size_x
      Src: /src/tmux/tty-draw.c:131,1
    - Dst: log_debug
      Src: /src/tmux/tty-draw.c:132,1
    - Dst: tty_update_mode
      Src: /src/tmux/tty-draw.c:139,1
    - Dst: tty_region_off
      Src: /src/tmux/tty-draw.c:140,1
    - Dst: tty_margin_off
      Src: /src/tmux/tty-draw.c:141,1
    - Dst: memcpy
      Src: /src/tmux/tty-draw.c:144,1
    - Dst: tty_default_attributes
      Src: /src/tmux/tty-draw.c:146,1
    - Dst: grid_view_get_cell
      Src: /src/tmux/tty-draw.c:154,1
    - Dst: grid_view_get_cell
      Src: /src/tmux/tty-draw.c:162,1
    - Dst: memcpy
      Src: /src/tmux/tty-draw.c:171,1
    - Dst: screen_select_cell
      Src: /src/tmux/tty-draw.c:172,1
    - Dst: tty_attributes
      Src: /src/tmux/tty-draw.c:176,1
    - Dst: log_debug
      Src: /src/tmux/tty-draw.c:177,1
    - Dst: tty_draw_line_clear
      Src: /src/tmux/tty-draw.c:178,1
    - Dst: grid_get_line
      Src: /src/tmux/tty-draw.c:188,1
    - Dst: fatalx
      Src: /src/tmux/tty-draw.c:211,1
    - Dst: grid_view_get_cell
      Src: /src/tmux/tty-draw.c:214,1
    - Dst: tty_check_codeset
      Src: /src/tmux/tty-draw.c:217,1
    - Dst: memcpy
      Src: /src/tmux/tty-draw.c:221,1
    - Dst: screen_select_cell
      Src: /src/tmux/tty-draw.c:222,1
    - Dst: grid_cells_look_equal
      Src: /src/tmux/tty-draw.c:257,1
    - Dst: log_get_level
      Src: /src/tmux/tty-draw.c:267,1
    - Dst: log_debug
      Src: /src/tmux/tty-draw.c:268,1
    - Dst: tty_attributes
      Src: /src/tmux/tty-draw.c:277,1
    - Dst: tty_draw_line_clear
      Src: /src/tmux/tty-draw.c:279,1
    - Dst: tty_attributes
      Src: /src/tmux/tty-draw.c:284,1
    - Dst: tty_cursor
      Src: /src/tmux/tty-draw.c:287,1
    - Dst: tty_putn
      Src: /src/tmux/tty-draw.c:289,1
    - Dst: tty_putc
      Src: /src/tmux/tty-draw.c:292,1
    - Dst: memcpy
      Src: /src/tmux/tty-draw.c:303,1
    - Dst: memcpy
      Src: /src/tmux/tty-draw.c:314,1
    - Dst: tty_update_mode
      Src: /src/tmux/tty-draw.c:323,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 149
    argCount: 9
    argNames:
    - tty
    - s
    - px
    - py
    - nx
    - atx
    - aty
    - defaults
    - palette
    argTypes:
    - struct tty*
    - struct screen*
    - u_int
    - u_int
    - u_int
    - u_int
    - u_int
    - struct grid_cell*
    - struct colour_palette*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 92
    functionDepth: 5
    functionLinenumber: 92
    functionLinenumberEnd: 324
    functionName: tty_draw_line
    functionSourceFile: /src/tmux/tty-draw.c
    functionUses: 4
    functionsReached:
    - grid_view_get_cell
    - screen_size_x
    - tty_check_codeset
    - screen_select_cell
    - tty_attributes
    - tty_draw_line_clear
    - log_get_level
    - memcpy
    - log_debug
    - tty_margin_off
    - tty_default_attributes
    - grid_get_line
    - tty_region_off
    - tty_putn
    - tty_putc
    - fatalx
    - tty_cursor
    - grid_cells_look_equal
    - tty_update_mode
    linkageType: ''
    returnType: void
    signature: "void tty_draw_line(struct tty *tty, struct screen *s, u_int px, u_int
      py, u_int nx,\n    u_int atx, u_int aty, const struct grid_cell *defaults,\n
      \   struct colour_palette *palette)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-set-buffer.c:58,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/cmd-set-buffer.c:59,1
    - Dst: args_get
      Src: /src/tmux/cmd-set-buffer.c:65,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-set-buffer.c:66,1
    - Dst: args_get
      Src: /src/tmux/cmd-set-buffer.c:66,1
    - Dst: paste_get_name
      Src: /src/tmux/cmd-set-buffer.c:67,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-set-buffer.c:70,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-set-buffer.c:73,1
    - Dst: paste_get_top
      Src: /src/tmux/cmd-set-buffer.c:76,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-set-buffer.c:79,1
    - Dst: paste_free
      Src: /src/tmux/cmd-set-buffer.c:82,1
    - Dst: free
      Src: /src/tmux/cmd-set-buffer.c:83,1
    - Dst: args_has
      Src: /src/tmux/cmd-set-buffer.c:87,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-set-buffer.c:90,1
    - Dst: paste_get_top
      Src: /src/tmux/cmd-set-buffer.c:93,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-set-buffer.c:96,1
    - Dst: paste_rename
      Src: /src/tmux/cmd-set-buffer.c:99,1
    - Dst: args_get
      Src: /src/tmux/cmd-set-buffer.c:99,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-set-buffer.c:100,1
    - Dst: args_count
      Src: /src/tmux/cmd-set-buffer.c:106,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-set-buffer.c:107,1
    - Dst: strlen
      Src: /src/tmux/cmd-set-buffer.c:110,1
    - Dst: args_string
      Src: /src/tmux/cmd-set-buffer.c:110,1
    - Dst: args_has
      Src: /src/tmux/cmd-set-buffer.c:113,1
    - Dst: paste_buffer_data
      Src: /src/tmux/cmd-set-buffer.c:114,1
    - Dst: xmalloc
      Src: /src/tmux/cmd-set-buffer.c:115,1
    - Dst: memcpy
      Src: /src/tmux/cmd-set-buffer.c:116,1
    - Dst: xrealloc
      Src: /src/tmux/cmd-set-buffer.c:119,1
    - Dst: memcpy
      Src: /src/tmux/cmd-set-buffer.c:120,1
    - Dst: args_string
      Src: /src/tmux/cmd-set-buffer.c:120,1
    - Dst: paste_set
      Src: /src/tmux/cmd-set-buffer.c:123,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-set-buffer.c:124,1
    - Dst: args_has
      Src: /src/tmux/cmd-set-buffer.c:127,1
    - Dst: tty_set_selection
      Src: /src/tmux/cmd-set-buffer.c:128,1
    - Dst: free
      Src: /src/tmux/cmd-set-buffer.c:133,1
    - Dst: free
      Src: /src/tmux/cmd-set-buffer.c:134,1
    - Dst: free
      Src: /src/tmux/cmd-set-buffer.c:135,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 73
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 55
    functionDepth: 6
    functionLinenumber: 55
    functionLinenumberEnd: 137
    functionName: cmd_set_buffer_exec
    functionSourceFile: /src/tmux/cmd-set-buffer.c
    functionUses: 0
    functionsReached:
    - paste_rename
    - xmalloc
    - args_count
    - args_has
    - args_string
    - paste_buffer_data
    - cmdq_get_target_client
    - args_get
    - memcpy
    - strlen
    - paste_set
    - xstrdup
    - paste_free
    - tty_set_selection
    - cmd_get_args
    - cmd_get_entry
    - paste_get_top
    - xrealloc
    - cmdq_error
    - paste_get_name
    - free
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_set_buffer_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - args
    - u_int
    - cause
    argTypes:
    - __unused*
    - __unused
    - __unused**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: cmd_display_panes_args_parse
    functionSourceFile: /src/tmux/cmd-display-panes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum args_parse_type
    signature: "enum args_parse_type cmd_display_panes_args_parse(__unused struct
      args *args, __unused u_int idx,\n    __unused char **cause)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: window_pane_index
      Src: /src/tmux/cmd-display-panes.c:121,1
    - Dst: fatalx
      Src: /src/tmux/cmd-display-panes.c:122,1
    - Dst: xsnprintf
      Src: /src/tmux/cmd-display-panes.c:123,1
    - Dst: options_get_number
      Src: /src/tmux/cmd-display-panes.c:127,1
    - Dst: options_get_number
      Src: /src/tmux/cmd-display-panes.c:128,1
    - Dst: memcpy
      Src: /src/tmux/cmd-display-panes.c:130,1
    - Dst: memcpy
      Src: /src/tmux/cmd-display-panes.c:131,1
    - Dst: xsnprintf
      Src: /src/tmux/cmd-display-panes.c:140,1
    - Dst: xsnprintf
      Src: /src/tmux/cmd-display-panes.c:142,1
    - Dst: tty_attributes
      Src: /src/tmux/cmd-display-panes.c:147,1
    - Dst: tty_cursor
      Src: /src/tmux/cmd-display-panes.c:150,1
    - Dst: tty_putn
      Src: /src/tmux/cmd-display-panes.c:151,1
    - Dst: tty_putn
      Src: /src/tmux/cmd-display-panes.c:152,1
    - Dst: tty_putn
      Src: /src/tmux/cmd-display-panes.c:153,1
    - Dst: tty_cursor
      Src: /src/tmux/cmd-display-panes.c:155,1
    - Dst: tty_putn
      Src: /src/tmux/cmd-display-panes.c:156,1
    - Dst: tty_attributes
      Src: /src/tmux/cmd-display-panes.c:164,1
    - Dst: tty_cursor
      Src: /src/tmux/cmd-display-panes.c:172,1
    - Dst: tty_putc
      Src: /src/tmux/cmd-display-panes.c:174,1
    - Dst: tty_attributes
      Src: /src/tmux/cmd-display-panes.c:182,1
    - Dst: tty_cursor
      Src: /src/tmux/cmd-display-panes.c:184,1
    - Dst: tty_putn
      Src: /src/tmux/cmd-display-panes.c:185,1
    - Dst: tty_cursor
      Src: /src/tmux/cmd-display-panes.c:188,1
    - Dst: tty_putn
      Src: /src/tmux/cmd-display-panes.c:190,1
    - Dst: tty_cursor
      Src: /src/tmux/cmd-display-panes.c:194,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 103
    argCount: 2
    argNames:
    - ctx
    - wp
    argTypes:
    - struct screen_redraw_ctx*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 195
    functionName: cmd_display_panes_draw_pane
    functionSourceFile: /src/tmux/cmd-display-panes.c
    functionUses: 0
    functionsReached:
    - fatalx
    - tty_cursor
    - tty_putn
    - xsnprintf
    - tty_putc
    - memcpy
    - tty_attributes
    - options_get_number
    - window_pane_index
    linkageType: ''
    returnType: void
    signature: "void cmd_display_panes_draw_pane(struct screen_redraw_ctx *ctx,\n
      \   struct window_pane *wp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/cmd-display-panes.c:204,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/cmd-display-panes.c:206,1
    - Dst: window_pane_visible
      Src: /src/tmux/cmd-display-panes.c:207,1
    - Dst: cmd_display_panes_draw_pane
      Src: /src/tmux/cmd-display-panes.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - c
    - data
    - ctx
    argTypes:
    - struct client*
    - __unused*
    - struct screen_redraw_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 197
    functionDepth: 5
    functionLinenumber: 197
    functionLinenumberEnd: 210
    functionName: cmd_display_panes_draw
    functionSourceFile: /src/tmux/cmd-display-panes.c
    functionUses: 0
    functionsReached:
    - log_debug
    - window_pane_visible
    - cmd_display_panes_draw_pane
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: "void cmd_display_panes_draw(struct client *c, __unused void *data,\n
      \   struct screen_redraw_ctx *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_continue
      Src: /src/tmux/cmd-display-panes.c:218,1
    - Dst: args_make_commands_free
      Src: /src/tmux/cmd-display-panes.c:219,1
    - Dst: free
      Src: /src/tmux/cmd-display-panes.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - c
    - data
    argTypes:
    - __unused*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 212
    functionDepth: 4
    functionLinenumber: 212
    functionLinenumberEnd: 221
    functionName: cmd_display_panes_free
    functionSourceFile: /src/tmux/cmd-display-panes.c
    functionUses: 0
    functionsReached:
    - args_make_commands_free
    - free
    - cmdq_continue
    linkageType: ''
    returnType: void
    signature: void cmd_display_panes_free(__unused struct client *c, void *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: window_pane_at_index
      Src: /src/tmux/cmd-display-panes.c:246,1
    - Dst: window_unzoom
      Src: /src/tmux/cmd-display-panes.c:249,1
    - Dst: xasprintf
      Src: /src/tmux/cmd-display-panes.c:251,1
    - Dst: args_make_commands
      Src: /src/tmux/cmd-display-panes.c:253,1
    - Dst: cmdq_append
      Src: /src/tmux/cmd-display-panes.c:255,1
    - Dst: cmdq_get_error
      Src: /src/tmux/cmd-display-panes.c:255,1
    - Dst: free
      Src: /src/tmux/cmd-display-panes.c:256,1
    - Dst: cmdq_get_command
      Src: /src/tmux/cmd-display-panes.c:258,1
    - Dst: cmdq_append
      Src: /src/tmux/cmd-display-panes.c:259,1
    - Dst: cmdq_get_command
      Src: /src/tmux/cmd-display-panes.c:261,1
    - Dst: cmdq_get_state
      Src: /src/tmux/cmd-display-panes.c:261,1
    - Dst: cmdq_insert_after
      Src: /src/tmux/cmd-display-panes.c:262,1
    - Dst: free
      Src: /src/tmux/cmd-display-panes.c:265,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - c
    - data
    - event
    argTypes:
    - struct client*
    - void*
    - struct key_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 223
    functionDepth: 4
    functionLinenumber: 223
    functionLinenumberEnd: 267
    functionName: cmd_display_panes_key
    functionSourceFile: /src/tmux/cmd-display-panes.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - window_pane_at_index
    - cmdq_append
    - cmdq_get_state
    - cmdq_insert_after
    - free
    - cmdq_get_error
    - args_make_commands
    - cmdq_get_command
    - window_unzoom
    linkageType: ''
    returnType: int
    signature: int cmd_display_panes_key(struct client *c, void *data, struct key_event
      *event)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-display-panes.c:272,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/cmd-display-panes.c:273,1
    - Dst: args_has
      Src: /src/tmux/cmd-display-panes.c:278,1
    - Dst: args_has
      Src: /src/tmux/cmd-display-panes.c:283,1
    - Dst: args_strtonum
      Src: /src/tmux/cmd-display-panes.c:284,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-display-panes.c:286,1
    - Dst: free
      Src: /src/tmux/cmd-display-panes.c:287,1
    - Dst: options_get_number
      Src: /src/tmux/cmd-display-panes.c:291,1
    - Dst: xcalloc
      Src: /src/tmux/cmd-display-panes.c:293,1
    - Dst: args_make_commands_prepare
      Src: /src/tmux/cmd-display-panes.c:296,1
    - Dst: args_has
      Src: /src/tmux/cmd-display-panes.c:299,1
    - Dst: server_client_set_overlay
      Src: /src/tmux/cmd-display-panes.c:300,1
    - Dst: server_client_set_overlay
      Src: /src/tmux/cmd-display-panes.c:304,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 269
    functionDepth: 4
    functionLinenumber: 269
    functionLinenumberEnd: 312
    functionName: cmd_display_panes_exec
    functionSourceFile: /src/tmux/cmd-display-panes.c
    functionUses: 0
    functionsReached:
    - args_strtonum
    - cmdq_error
    - cmd_get_args
    - xcalloc
    - server_client_set_overlay
    - free
    - cmdq_get_target_client
    - args_make_commands_prepare
    - options_get_number
    - args_has
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_display_panes_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 60
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-new-session.c:70,1
    - Dst: cmdq_get_current
      Src: /src/tmux/cmd-new-session.c:71,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-new-session.c:72,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-new-session.c:73,1
    - Dst: args_count
      Src: /src/tmux/cmd-new-session.c:83,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-new-session.c:89,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-session.c:97,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-session.c:97,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-new-session.c:98,1
    - Dst: args_get
      Src: /src/tmux/cmd-new-session.c:102,1
    - Dst: format_single
      Src: /src/tmux/cmd-new-session.c:104,1
    - Dst: clean_name
      Src: /src/tmux/cmd-new-session.c:105,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-new-session.c:107,1
    - Dst: free
      Src: /src/tmux/cmd-new-session.c:108,1
    - Dst: free
      Src: /src/tmux/cmd-new-session.c:111,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-session.c:113,1
    - Dst: session_find
      Src: /src/tmux/cmd-new-session.c:115,1
    - Dst: cmd_attach_session
      Src: /src/tmux/cmd-new-session.c:119,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-session.c:120,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-session.c:120,1
    - Dst: args_get
      Src: /src/tmux/cmd-new-session.c:121,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-session.c:121,1
    - Dst: args_get
      Src: /src/tmux/cmd-new-session.c:122,1
    - Dst: free
      Src: /src/tmux/cmd-new-session.c:123,1
    - Dst: session_find
      Src: /src/tmux/cmd-new-session.c:127,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-new-session.c:128,1
    - Dst: args_get
      Src: /src/tmux/cmd-new-session.c:133,1
    - Dst: session_group_find
      Src: /src/tmux/cmd-new-session.c:137,1
    - Dst: session_group_contains
      Src: /src/tmux/cmd-new-session.c:139,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-new-session.c:141,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-new-session.c:143,1
    - Dst: clean_name
      Src: /src/tmux/cmd-new-session.c:145,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-new-session.c:147,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-session.c:155,1
    - Dst: args_get
      Src: /src/tmux/cmd-new-session.c:167,1
    - Dst: format_single
      Src: /src/tmux/cmd-new-session.c:168,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-new-session.c:170,1
    - Dst: server_client_get_cwd
      Src: /src/tmux/cmd-new-session.c:170,1
    - Dst: server_client_check_nested
      Src: /src/tmux/cmd-new-session.c:185,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-new-session.c:185,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-new-session.c:186,1
    - Dst: tcgetattr
      Src: /src/tmux/cmd-new-session.c:190,1
    - Dst: fatal
      Src: /src/tmux/cmd-new-session.c:191,1
    - Dst: server_client_open
      Src: /src/tmux/cmd-new-session.c:198,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-new-session.c:199,1
    - Dst: free
      Src: /src/tmux/cmd-new-session.c:200,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-session.c:206,1
    - Dst: args_get
      Src: /src/tmux/cmd-new-session.c:207,1
    - Dst: strcmp
      Src: /src/tmux/cmd-new-session.c:208,1
    - Dst: strtonum
      Src: /src/tmux/cmd-new-session.c:214,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-new-session.c:216,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-session.c:222,1
    - Dst: args_get
      Src: /src/tmux/cmd-new-session.c:223,1
    - Dst: strcmp
      Src: /src/tmux/cmd-new-session.c:224,1
    - Dst: strtonum
      Src: /src/tmux/cmd-new-session.c:230,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-new-session.c:232,1
    - Dst: options_get_number
      Src: /src/tmux/cmd-new-session.c:243,1
    - Dst: options_get_string
      Src: /src/tmux/cmd-new-session.c:246,1
    - Dst: sscanf
      Src: /src/tmux/cmd-new-session.c:247,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-session.c:251,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-session.c:253,1
    - Dst: options_create
      Src: /src/tmux/cmd-new-session.c:263,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-session.c:264,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-session.c:264,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-session.c:265,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-session.c:267,1
    - Dst: options_set_string
      Src: /src/tmux/cmd-new-session.c:269,1
    - Dst: environ_create
      Src: /src/tmux/cmd-new-session.c:271,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-session.c:272,1
    - Dst: environ_update
      Src: /src/tmux/cmd-new-session.c:273,1
    - Dst: args_first_value
      Src: /src/tmux/cmd-new-session.c:274,1
    - Dst: environ_put
      Src: /src/tmux/cmd-new-session.c:276,1
    - Dst: args_next_value
      Src: /src/tmux/cmd-new-session.c:277,1
    - Dst: session_create
      Src: /src/tmux/cmd-new-session.c:279,1
    - Dst: args_get
      Src: /src/tmux/cmd-new-session.c:287,1
    - Dst: args_to_vector
      Src: /src/tmux/cmd-new-session.c:288,1
    - Dst: args_get
      Src: /src/tmux/cmd-new-session.c:291,1
    - Dst: spawn_window
      Src: /src/tmux/cmd-new-session.c:295,1
    - Dst: session_destroy
      Src: /src/tmux/cmd-new-session.c:296,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-new-session.c:297,1
    - Dst: free
      Src: /src/tmux/cmd-new-session.c:298,1
    - Dst: session_group_new
      Src: /src/tmux/cmd-new-session.c:309,1
    - Dst: session_group_add
      Src: /src/tmux/cmd-new-session.c:310,1
    - Dst: session_group_new
      Src: /src/tmux/cmd-new-session.c:312,1
    - Dst: session_group_add
      Src: /src/tmux/cmd-new-session.c:314,1
    - Dst: session_group_synchronize_to
      Src: /src/tmux/cmd-new-session.c:315,1
    - Dst: session_select
      Src: /src/tmux/cmd-new-session.c:316,1
    - Dst: RB_MIN
      Src: /src/tmux/cmd-new-session.c:316,1
    - Dst: notify_session
      Src: /src/tmux/cmd-new-session.c:318,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-session.c:325,1
    - Dst: server_client_set_flags
      Src: /src/tmux/cmd-new-session.c:326,1
    - Dst: args_get
      Src: /src/tmux/cmd-new-session.c:326,1
    - Dst: proc_send
      Src: /src/tmux/cmd-new-session.c:329,1
    - Dst: server_client_set_session
      Src: /src/tmux/cmd-new-session.c:332,1
    - Dst: cmdq_get_flags
      Src: /src/tmux/cmd-new-session.c:333,1
    - Dst: server_client_set_key_table
      Src: /src/tmux/cmd-new-session.c:334,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-session.c:338,1
    - Dst: format_single
      Src: /src/tmux/cmd-new-session.c:341,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-new-session.c:342,1
    - Dst: free
      Src: /src/tmux/cmd-new-session.c:343,1
    - Dst: args_has
      Src: /src/tmux/cmd-new-session.c:348,1
    - Dst: cmd_find_from_session
      Src: /src/tmux/cmd-new-session.c:349,1
    - Dst: cmd_find_from_session
      Src: /src/tmux/cmd-new-session.c:351,1
    - Dst: cmdq_insert_hook
      Src: /src/tmux/cmd-new-session.c:352,1
    - Dst: cfg_show_causes
      Src: /src/tmux/cmd-new-session.c:355,1
    - Dst: cmd_free_argv
      Src: /src/tmux/cmd-new-session.c:358,1
    - Dst: free
      Src: /src/tmux/cmd-new-session.c:359,1
    - Dst: free
      Src: /src/tmux/cmd-new-session.c:360,1
    - Dst: free
      Src: /src/tmux/cmd-new-session.c:361,1
    - Dst: cmd_free_argv
      Src: /src/tmux/cmd-new-session.c:366,1
    - Dst: free
      Src: /src/tmux/cmd-new-session.c:367,1
    - Dst: free
      Src: /src/tmux/cmd-new-session.c:368,1
    - Dst: free
      Src: /src/tmux/cmd-new-session.c:369,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 223
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 67
    functionDepth: 8
    functionLinenumber: 67
    functionLinenumberEnd: 371
    functionName: cmd_new_session_exec
    functionSourceFile: /src/tmux/cmd-new-session.c
    functionUses: 0
    functionsReached:
    - notify_session
    - session_group_contains
    - session_group_new
    - session_destroy
    - environ_update
    - cmdq_get_client
    - args_first_value
    - args_count
    - cmd_free_argv
    - args_has
    - server_client_set_key_table
    - cmdq_get_current
    - session_select
    - environ_put
    - RB_MIN
    - session_find
    - tcgetattr
    - fatal
    - strtonum
    - args_to_vector
    - cmdq_get_flags
    - session_create
    - session_group_find
    - sscanf
    - args_get
    - options_set_string
    - session_group_synchronize_to
    - xstrdup
    - clean_name
    - server_client_set_flags
    - cmdq_insert_hook
    - cmdq_print
    - cmd_get_args
    - args_next_value
    - cmd_get_entry
    - server_client_set_session
    - cmd_find_from_session
    - server_client_check_nested
    - cmdq_get_target
    - environ_create
    - proc_send
    - spawn_window
    - cmdq_error
    - server_client_get_cwd
    - cfg_show_causes
    - strcmp
    - options_create
    - format_single
    - free
    - server_client_open
    - cmd_attach_session
    - options_get_number
    - options_get_string
    - session_group_add
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_new_session_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-respawn-window.c:50,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-respawn-window.c:51,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/cmd-respawn-window.c:53,1
    - Dst: args_to_vector
      Src: /src/tmux/cmd-respawn-window.c:64,1
    - Dst: environ_create
      Src: /src/tmux/cmd-respawn-window.c:65,1
    - Dst: args_first_value
      Src: /src/tmux/cmd-respawn-window.c:67,1
    - Dst: environ_put
      Src: /src/tmux/cmd-respawn-window.c:69,1
    - Dst: args_next_value
      Src: /src/tmux/cmd-respawn-window.c:70,1
    - Dst: args_get
      Src: /src/tmux/cmd-respawn-window.c:74,1
    - Dst: args_has
      Src: /src/tmux/cmd-respawn-window.c:77,1
    - Dst: spawn_window
      Src: /src/tmux/cmd-respawn-window.c:80,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-respawn-window.c:81,1
    - Dst: free
      Src: /src/tmux/cmd-respawn-window.c:82,1
    - Dst: cmd_free_argv
      Src: /src/tmux/cmd-respawn-window.c:84,1
    - Dst: environ_free
      Src: /src/tmux/cmd-respawn-window.c:85,1
    - Dst: server_redraw_window
      Src: /src/tmux/cmd-respawn-window.c:89,1
    - Dst: cmd_free_argv
      Src: /src/tmux/cmd-respawn-window.c:92,1
    - Dst: environ_free
      Src: /src/tmux/cmd-respawn-window.c:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 47
    functionDepth: 5
    functionLinenumber: 47
    functionLinenumberEnd: 95
    functionName: cmd_respawn_window_exec
    functionSourceFile: /src/tmux/cmd-respawn-window.c
    functionUses: 0
    functionsReached:
    - environ_free
    - spawn_window
    - environ_put
    - cmdq_error
    - cmdq_get_target
    - args_to_vector
    - cmd_get_args
    - args_next_value
    - server_redraw_window
    - free
    - cmdq_get_target_client
    - args_get
    - args_first_value
    - cmd_free_argv
    - environ_create
    - args_has
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_respawn_window_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: options_get_string
      Src: /src/tmux/status.c:70,1
    - Dst: xstrdup
      Src: /src/tmux/status.c:74,1
    - Dst: find_home
      Src: /src/tmux/status.c:78,1
    - Dst: xasprintf
      Src: /src/tmux/status.c:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 64
    functionDepth: 4
    functionLinenumber: 64
    functionLinenumberEnd: 82
    functionName: status_prompt_find_history_file
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - options_get_string
    - xasprintf
    - find_home
    linkageType: ''
    returnType: char
    signature: 'char *

      status_prompt_find_history_file(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strsep
      Src: /src/tmux/status.c:91,1
    - Dst: status_prompt_type
      Src: /src/tmux/status.c:93,1
    - Dst: status_prompt_add_history
      Src: /src/tmux/status.c:101,1
    - Dst: status_prompt_add_history
      Src: /src/tmux/status.c:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 104
    functionName: status_prompt_add_typed_history
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - status_prompt_add_history
    - strsep
    - status_prompt_type
    linkageType: ''
    returnType: void
    signature: void status_prompt_add_typed_history(char *line)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: status_prompt_find_history_file
      Src: /src/tmux/status.c:114,1
    - Dst: log_debug
      Src: /src/tmux/status.c:116,1
    - Dst: fopen
      Src: /src/tmux/status.c:118,1
    - Dst: log_debug
      Src: /src/tmux/status.c:120,1
    - Dst: strerror
      Src: /src/tmux/status.c:120,1
    - Dst: free
      Src: /src/tmux/status.c:121,1
    - Dst: free
      Src: /src/tmux/status.c:124,1
    - Dst: fgetln
      Src: /src/tmux/status.c:127,1
    - Dst: status_prompt_add_typed_history
      Src: /src/tmux/status.c:133,1
    - Dst: xmalloc
      Src: /src/tmux/status.c:135,1
    - Dst: memcpy
      Src: /src/tmux/status.c:136,1
    - Dst: status_prompt_add_typed_history
      Src: /src/tmux/status.c:138,1
    - Dst: free
      Src: /src/tmux/status.c:139,1
    - Dst: fclose
      Src: /src/tmux/status.c:143,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 107
    functionDepth: 5
    functionLinenumber: 107
    functionLinenumberEnd: 144
    functionName: status_prompt_load_history
    functionSourceFile: /src/tmux/status.c
    functionUses: 1
    functionsReached:
    - status_prompt_find_history_file
    - fclose
    - xmalloc
    - fgetln
    - free
    - strerror
    - status_prompt_add_typed_history
    - memcpy
    - log_debug
    - fopen
    linkageType: ''
    returnType: void
    signature: void status_prompt_load_history(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: status_prompt_find_history_file
      Src: /src/tmux/status.c:154,1
    - Dst: log_debug
      Src: /src/tmux/status.c:156,1
    - Dst: fopen
      Src: /src/tmux/status.c:158,1
    - Dst: log_debug
      Src: /src/tmux/status.c:160,1
    - Dst: strerror
      Src: /src/tmux/status.c:160,1
    - Dst: free
      Src: /src/tmux/status.c:161,1
    - Dst: free
      Src: /src/tmux/status.c:164,1
    - Dst: fputs
      Src: /src/tmux/status.c:168,1
    - Dst: fputc
      Src: /src/tmux/status.c:169,1
    - Dst: fputs
      Src: /src/tmux/status.c:170,1
    - Dst: fputc
      Src: /src/tmux/status.c:171,1
    - Dst: fclose
      Src: /src/tmux/status.c:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 147
    functionDepth: 5
    functionLinenumber: 147
    functionLinenumberEnd: 176
    functionName: status_prompt_save_history
    functionSourceFile: /src/tmux/status.c
    functionUses: 1
    functionsReached:
    - fputs
    - status_prompt_find_history_file
    - fclose
    - free
    - strerror
    - fputc
    - log_debug
    - fopen
    linkageType: ''
    returnType: void
    signature: void status_prompt_save_history(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evtimer_del
      Src: /src/tmux/status.c:186,1
    - Dst: timerclear
      Src: /src/tmux/status.c:194,1
    - Dst: options_get_number
      Src: /src/tmux/status.c:195,1
    - Dst: evtimer_add
      Src: /src/tmux/status.c:198,1
    - Dst: log_debug
      Src: /src/tmux/status.c:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - int
    - events
    - arg
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 179
    functionDepth: 4
    functionLinenumber: 179
    functionLinenumberEnd: 200
    functionName: status_timer_callback
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - evtimer_add
    - evtimer_del
    - timerclear
    - log_debug
    - options_get_number
    linkageType: ''
    returnType: void
    signature: void status_timer_callback(__unused int fd, __unused short events,
      void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_initialized
      Src: /src/tmux/status.c:208,1
    - Dst: evtimer_del
      Src: /src/tmux/status.c:209,1
    - Dst: evtimer_set
      Src: /src/tmux/status.c:211,1
    - Dst: options_get_number
      Src: /src/tmux/status.c:213,1
    - Dst: status_timer_callback
      Src: /src/tmux/status.c:214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 203
    functionDepth: 5
    functionLinenumber: 203
    functionLinenumberEnd: 215
    functionName: status_timer_start
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - status_timer_callback
    - evtimer_del
    - evtimer_set
    - options_get_number
    - event_initialized
    linkageType: ''
    returnType: void
    signature: void status_timer_start(struct client *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/status.c:223,1
    - Dst: status_timer_start
      Src: /src/tmux/status.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 218
    functionDepth: 6
    functionLinenumber: 218
    functionLinenumberEnd: 225
    functionName: status_timer_start_all
    functionSourceFile: /src/tmux/status.c
    functionUses: 1
    functionsReached:
    - status_timer_start
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void status_timer_start_all(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/status.c:231,1
    - Dst: options_get_number
      Src: /src/tmux/status.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 228
    functionDepth: 4
    functionLinenumber: 228
    functionLinenumberEnd: 238
    functionName: status_update_cache
    functionSourceFile: /src/tmux/status.c
    functionUses: 3
    functionsReached:
    - options_get_number
    linkageType: ''
    returnType: void
    signature: void status_update_cache(struct session *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: status_line_size
      Src: /src/tmux/status.c:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 251
    functionName: status_at_line
    functionSourceFile: /src/tmux/status.c
    functionUses: 2
    functionsReached:
    - status_line_size
    linkageType: ''
    returnType: int
    signature: int status_at_line(struct client *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/status.c:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 254
    functionDepth: 4
    functionLinenumber: 254
    functionLinenumberEnd: 264
    functionName: status_line_size
    functionSourceFile: /src/tmux/status.c
    functionUses: 7
    functionsReached:
    - options_get_number
    linkageType: ''
    returnType: u_int
    signature: u_int status_line_size(struct client *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: status_line_size
      Src: /src/tmux/status.c:273,1
    - Dst: options_get_number
      Src: /src/tmux/status.c:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 267
    functionDepth: 5
    functionLinenumber: 267
    functionLinenumberEnd: 280
    functionName: status_prompt_line_at
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - status_line_size
    - options_get_number
    linkageType: ''
    returnType: u_int
    signature: u_int status_prompt_line_at(struct client *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nitems
      Src: /src/tmux/status.c:288,1
    - Dst: style_ranges_get_range
      Src: /src/tmux/status.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - c
    - x
    - y
    argTypes:
    - struct client*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 291
    functionName: status_get_range
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - nitems
    - style_ranges_get_range
    linkageType: ''
    returnType: struct style_range
    signature: 'struct style_range *

      status_get_range(struct client *c, u_int x, u_int y)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/tmux/status.c:300,1
    - Dst: screen_init
      Src: /src/tmux/status.c:301,1
    - Dst: status_line_size
      Src: /src/tmux/status.c:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 294
    functionDepth: 5
    functionLinenumber: 294
    functionLinenumberEnd: 304
    functionName: status_push_screen
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - status_line_size
    - xmalloc
    - screen_init
    linkageType: ''
    returnType: void
    signature: void status_push_screen(struct client *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: screen_free
      Src: /src/tmux/status.c:313,1
    - Dst: free
      Src: /src/tmux/status.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 307
    functionDepth: 5
    functionLinenumber: 307
    functionLinenumberEnd: 317
    functionName: status_pop_screen
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - free
    - screen_free
    linkageType: ''
    returnType: void
    signature: void status_pop_screen(struct client *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nitems
      Src: /src/tmux/status.c:326,1
    - Dst: style_ranges_init
      Src: /src/tmux/status.c:327,1
    - Dst: screen_init
      Src: /src/tmux/status.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 320
    functionDepth: 3
    functionLinenumber: 320
    functionLinenumberEnd: 331
    functionName: status_init
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - nitems
    - screen_init
    - style_ranges_init
    linkageType: ''
    returnType: void
    signature: void status_init(struct client *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nitems
      Src: /src/tmux/status.c:340,1
    - Dst: style_ranges_free
      Src: /src/tmux/status.c:341,1
    - Dst: free
      Src: /src/tmux/status.c:342,1
    - Dst: event_initialized
      Src: /src/tmux/status.c:345,1
    - Dst: evtimer_del
      Src: /src/tmux/status.c:346,1
    - Dst: screen_free
      Src: /src/tmux/status.c:349,1
    - Dst: free
      Src: /src/tmux/status.c:350,1
    - Dst: screen_free
      Src: /src/tmux/status.c:352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 334
    functionDepth: 5
    functionLinenumber: 334
    functionLinenumberEnd: 353
    functionName: status_free
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - screen_free
    - evtimer_del
    - nitems
    - style_ranges_free
    - free
    - event_initialized
    linkageType: ''
    returnType: void
    signature: void status_free(struct client *c)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/status.c:371,1
    - Dst: fatalx
      Src: /src/tmux/status.c:375,1
    - Dst: status_line_size
      Src: /src/tmux/status.c:378,1
    - Dst: format_create
      Src: /src/tmux/status.c:386,1
    - Dst: format_defaults
      Src: /src/tmux/status.c:387,1
    - Dst: style_apply
      Src: /src/tmux/status.c:390,1
    - Dst: options_get_number
      Src: /src/tmux/status.c:391,1
    - Dst: COLOUR_DEFAULT
      Src: /src/tmux/status.c:392,1
    - Dst: options_get_number
      Src: /src/tmux/status.c:394,1
    - Dst: COLOUR_DEFAULT
      Src: /src/tmux/status.c:395,1
    - Dst: grid_cells_equal
      Src: /src/tmux/status.c:397,1
    - Dst: memcpy
      Src: /src/tmux/status.c:399,1
    - Dst: screen_size_x
      Src: /src/tmux/status.c:403,1
    - Dst: screen_size_y
      Src: /src/tmux/status.c:404,1
    - Dst: screen_resize
      Src: /src/tmux/status.c:405,1
    - Dst: screen_write_start
      Src: /src/tmux/status.c:408,1
    - Dst: options_get
      Src: /src/tmux/status.c:411,1
    - Dst: screen_write_putc
      Src: /src/tmux/status.c:414,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/status.c:417,1
    - Dst: options_array_get
      Src: /src/tmux/status.c:419,1
    - Dst: screen_write_putc
      Src: /src/tmux/status.c:422,1
    - Dst: format_expand_time
      Src: /src/tmux/status.c:427,1
    - Dst: strcmp
      Src: /src/tmux/status.c:430,1
    - Dst: free
      Src: /src/tmux/status.c:431,1
    - Dst: screen_write_putc
      Src: /src/tmux/status.c:437,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/status.c:438,1
    - Dst: style_ranges_free
      Src: /src/tmux/status.c:440,1
    - Dst: format_draw
      Src: /src/tmux/status.c:441,1
    - Dst: free
      Src: /src/tmux/status.c:444,1
    - Dst: screen_write_stop
      Src: /src/tmux/status.c:448,1
    - Dst: format_free
      Src: /src/tmux/status.c:451,1
    - Dst: log_debug
      Src: /src/tmux/status.c:454,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 61
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 356
    functionDepth: 6
    functionLinenumber: 356
    functionLinenumberEnd: 456
    functionName: status_redraw
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - screen_size_x
    - format_create
    - screen_resize
    - style_apply
    - screen_size_y
    - format_free
    - screen_write_putc
    - format_expand_time
    - memcpy
    - log_debug
    - options_get
    - screen_write_start
    - status_line_size
    - format_defaults
    - grid_cells_equal
    - options_array_get
    - format_draw
    - COLOUR_DEFAULT
    - fatalx
    - screen_write_cursormove
    - style_ranges_free
    - strcmp
    - free
    - options_get_number
    - screen_write_stop
    linkageType: ''
    returnType: int
    signature: int status_redraw(struct client *c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/tmux/status.c:467,1
    - Dst: xvasprintf
      Src: /src/tmux/status.c:468,1
    - Dst: va_end
      Src: /src/tmux/status.c:469,1
    - Dst: log_debug
      Src: /src/tmux/status.c:471,1
    - Dst: server_add_message
      Src: /src/tmux/status.c:474,1
    - Dst: free
      Src: /src/tmux/status.c:475,1
    - Dst: status_message_clear
      Src: /src/tmux/status.c:479,1
    - Dst: status_push_screen
      Src: /src/tmux/status.c:480,1
    - Dst: server_add_message
      Src: /src/tmux/status.c:482,1
    - Dst: options_get_number
      Src: /src/tmux/status.c:489,1
    - Dst: event_initialized
      Src: /src/tmux/status.c:494,1
    - Dst: evtimer_del
      Src: /src/tmux/status.c:495,1
    - Dst: evtimer_set
      Src: /src/tmux/status.c:496,1
    - Dst: evtimer_add
      Src: /src/tmux/status.c:498,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 6
    argNames:
    - c
    - delay
    - ignore_styles
    - ignore_keys
    - no_freeze
    - fmt
    argTypes:
    - struct client*
    - int
    - int
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 459
    functionDepth: 6
    functionLinenumber: 459
    functionLinenumberEnd: 509
    functionName: status_message_set
    functionSourceFile: /src/tmux/status.c
    functionUses: 8
    functionsReached:
    - evtimer_add
    - evtimer_del
    - server_add_message
    - xvasprintf
    - free
    - status_message_clear
    - va_end
    - va_start
    - log_debug
    - status_push_screen
    - options_get_number
    - event_initialized
    - evtimer_set
    linkageType: ''
    returnType: void
    signature: "void status_message_set(struct client *c, int delay, int ignore_styles,\n
      \   int ignore_keys, int no_freeze, const char *fmt, ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/status.c:518,1
    - Dst: status_pop_screen
      Src: /src/tmux/status.c:525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 512
    functionDepth: 6
    functionLinenumber: 512
    functionLinenumberEnd: 526
    functionName: status_message_clear
    functionSourceFile: /src/tmux/status.c
    functionUses: 1
    functionsReached:
    - free
    - status_pop_screen
    linkageType: ''
    returnType: void
    signature: void status_message_clear(struct client *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: status_message_clear
      Src: /src/tmux/status.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - int
    - event
    - data
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 529
    functionDepth: 7
    functionLinenumber: 529
    functionLinenumberEnd: 535
    functionName: status_message_callback
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - status_message_clear
    linkageType: ''
    returnType: void
    signature: void status_message_callback(__unused int fd, __unused short event,
      void *data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: options_string_to_style
      Src: /src/tmux/status.c:549,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - c
    - area_x
    - area_w
    argTypes:
    - struct client*
    - u_int*
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 541
    functionDepth: 4
    functionLinenumber: 541
    functionLinenumberEnd: 578
    functionName: status_prompt_area
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - options_string_to_style
    linkageType: ''
    returnType: void
    signature: void status_prompt_area(struct client *c, u_int *area_x, u_int *area_w)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/tmux/status.c:592,1
    - Dst: strlen
      Src: /src/tmux/status.c:592,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 581
    functionDepth: 2
    functionLinenumber: 581
    functionLinenumberEnd: 600
    functionName: status_prompt_escape
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - strlen
    - xmalloc
    linkageType: ''
    returnType: char
    signature: 'char *

      status_prompt_escape(const char *s)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/status.c:619,1
    - Dst: status_line_size
      Src: /src/tmux/status.c:621,1
    - Dst: screen_init
      Src: /src/tmux/status.c:624,1
    - Dst: status_prompt_line_at
      Src: /src/tmux/status.c:626,1
    - Dst: status_prompt_area
      Src: /src/tmux/status.c:630,1
    - Dst: format_create_defaults
      Src: /src/tmux/status.c:632,1
    - Dst: memcpy
      Src: /src/tmux/status.c:633,1
    - Dst: status_prompt_escape
      Src: /src/tmux/status.c:641,1
    - Dst: format_add
      Src: /src/tmux/status.c:642,1
    - Dst: free
      Src: /src/tmux/status.c:643,1
    - Dst: format_add
      Src: /src/tmux/status.c:645,1
    - Dst: format_add
      Src: /src/tmux/status.c:646,1
    - Dst: options_get_string
      Src: /src/tmux/status.c:648,1
    - Dst: format_expand_time
      Src: /src/tmux/status.c:649,1
    - Dst: format_free
      Src: /src/tmux/status.c:650,1
    - Dst: screen_write_start
      Src: /src/tmux/status.c:652,1
    - Dst: screen_write_fast_copy
      Src: /src/tmux/status.c:653,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/status.c:654,1
    - Dst: format_draw
      Src: /src/tmux/status.c:655,1
    - Dst: screen_write_stop
      Src: /src/tmux/status.c:656,1
    - Dst: free
      Src: /src/tmux/status.c:658,1
    - Dst: grid_compare
      Src: /src/tmux/status.c:660,1
    - Dst: screen_free
      Src: /src/tmux/status.c:661,1
    - Dst: screen_free
      Src: /src/tmux/status.c:664,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 603
    functionDepth: 6
    functionLinenumber: 603
    functionLinenumberEnd: 666
    functionName: status_message_redraw
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - status_prompt_area
    - format_add
    - format_free
    - format_expand_time
    - memcpy
    - grid_compare
    - format_create_defaults
    - screen_write_start
    - status_prompt_escape
    - status_line_size
    - format_draw
    - status_prompt_line_at
    - screen_init
    - screen_free
    - screen_write_cursormove
    - free
    - screen_write_fast_copy
    - options_get_string
    - screen_write_stop
    linkageType: ''
    returnType: int
    signature: int status_message_redraw(struct client *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct client*::prompt_inputcb
      Src: /src/tmux/status.c:675,1
    - Dst: status_prompt_clear
      Src: /src/tmux/status.c:676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - item
    - data
    argTypes:
    - __unused*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 679
    functionName: status_prompt_accept
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - status_prompt_clear
    - struct client*::prompt_inputcb
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval status_prompt_accept(__unused struct cmdq_item *item,
      void *data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: server_client_clear_overlay
      Src: /src/tmux/status.c:690,1
    - Dst: format_create_from_state
      Src: /src/tmux/status.c:693,1
    - Dst: cmd_find_copy_state
      Src: /src/tmux/status.c:694,1
    - Dst: format_create_defaults
      Src: /src/tmux/status.c:696,1
    - Dst: cmd_find_clear_state
      Src: /src/tmux/status.c:697,1
    - Dst: status_message_clear
      Src: /src/tmux/status.c:703,1
    - Dst: status_prompt_clear
      Src: /src/tmux/status.c:704,1
    - Dst: status_push_screen
      Src: /src/tmux/status.c:705,1
    - Dst: xstrdup
      Src: /src/tmux/status.c:707,1
    - Dst: xstrdup
      Src: /src/tmux/status.c:710,1
    - Dst: format_expand_time
      Src: /src/tmux/status.c:712,1
    - Dst: xstrdup
      Src: /src/tmux/status.c:714,1
    - Dst: utf8_fromcstr
      Src: /src/tmux/status.c:715,1
    - Dst: utf8_fromcstr
      Src: /src/tmux/status.c:718,1
    - Dst: utf8_strlen
      Src: /src/tmux/status.c:720,1
    - Dst: free
      Src: /src/tmux/status.c:721,1
    - Dst: memset
      Src: /src/tmux/status.c:727,1
    - Dst: struct client*::prompt_inputcb
      Src: /src/tmux/status.c:738,1
    - Dst: cmdq_append
      Src: /src/tmux/status.c:741,1
    - Dst: cmdq_get_callback
      Src: /src/tmux/status.c:741,1
    - Dst: format_free
      Src: /src/tmux/status.c:742,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 9
    argNames:
    - c
    - fs
    - msg
    - input
    - inputcb
    - freecb
    - data
    - flags
    - prompt_type
    argTypes:
    - struct client*
    - struct cmd_find_state*
    - char*
    - char*
    - prompt_input_cb
    - prompt_free_cb
    - void*
    - int
    - enum prompt_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 682
    functionDepth: 7
    functionLinenumber: 682
    functionLinenumberEnd: 743
    functionName: status_prompt_set
    functionSourceFile: /src/tmux/status.c
    functionUses: 5
    functionsReached:
    - utf8_fromcstr
    - cmdq_get_callback
    - cmd_find_copy_state
    - struct client*::prompt_inputcb
    - format_free
    - cmdq_append
    - memset
    - cmd_find_clear_state
    - status_message_clear
    - status_prompt_clear
    - format_expand_time
    - format_create_from_state
    - free
    - status_push_screen
    - utf8_strlen
    - format_create_defaults
    - xstrdup
    - server_client_clear_overlay
    linkageType: ''
    returnType: void
    signature: "void status_prompt_set(struct client *c, struct cmd_find_state *fs,\n
      \   const char *msg, const char *input, prompt_input_cb inputcb,\n    prompt_free_cb
      freecb, void *data, int flags, enum prompt_type prompt_type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct client*::prompt_freecb
      Src: /src/tmux/status.c:753,1
    - Dst: free
      Src: /src/tmux/status.c:755,1
    - Dst: free
      Src: /src/tmux/status.c:758,1
    - Dst: free
      Src: /src/tmux/status.c:761,1
    - Dst: free
      Src: /src/tmux/status.c:764,1
    - Dst: status_pop_screen
      Src: /src/tmux/status.c:770,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 746
    functionDepth: 6
    functionLinenumber: 746
    functionLinenumberEnd: 771
    functionName: status_prompt_clear
    functionSourceFile: /src/tmux/status.c
    functionUses: 2
    functionsReached:
    - free
    - struct client*::prompt_freecb
    - status_pop_screen
    linkageType: ''
    returnType: void
    signature: void status_prompt_clear(struct client *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmd_find_valid_state
      Src: /src/tmux/status.c:780,1
    - Dst: format_create_from_state
      Src: /src/tmux/status.c:781,1
    - Dst: format_create_defaults
      Src: /src/tmux/status.c:783,1
    - Dst: free
      Src: /src/tmux/status.c:785,1
    - Dst: xstrdup
      Src: /src/tmux/status.c:786,1
    - Dst: free
      Src: /src/tmux/status.c:788,1
    - Dst: format_expand_time
      Src: /src/tmux/status.c:789,1
    - Dst: utf8_fromcstr
      Src: /src/tmux/status.c:790,1
    - Dst: utf8_strlen
      Src: /src/tmux/status.c:791,1
    - Dst: free
      Src: /src/tmux/status.c:792,1
    - Dst: memset
      Src: /src/tmux/status.c:794,1
    - Dst: format_free
      Src: /src/tmux/status.c:797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - c
    - msg
    - input
    argTypes:
    - struct client*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 774
    functionDepth: 2
    functionLinenumber: 774
    functionLinenumberEnd: 798
    functionName: status_prompt_update
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - cmd_find_valid_state
    - utf8_fromcstr
    - format_free
    - memset
    - format_expand_time
    - free
    - format_create_from_state
    - utf8_strlen
    - format_create_defaults
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void status_prompt_update(struct client *c, const char *msg, const
      char *input)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: utf8_copy
      Src: /src/tmux/status.c:825,1
    - Dst: screen_write_cell
      Src: /src/tmux/status.c:826,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 6
    argNames:
    - ctx
    - offset
    - pwidth
    - width
    - gc
    - ud
    argTypes:
    - struct screen_write_ctx*
    - u_int
    - u_int
    - u_int*
    - struct grid_cell*
    - struct utf8_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 828
    functionName: status_prompt_redraw_character
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - screen_write_cell
    - utf8_copy
    linkageType: ''
    returnType: int
    signature: "int status_prompt_redraw_character(struct screen_write_ctx *ctx, u_int
      offset,\n    u_int pwidth, u_int *width, struct grid_cell *gc,\n    const struct
      utf8_data *ud)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utf8_set
      Src: /src/tmux/status.c:842,1
    - Dst: status_prompt_redraw_character
      Src: /src/tmux/status.c:843,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 7
    argNames:
    - c
    - pcursor
    - ctx
    - offset
    - pwidth
    - width
    - gc
    argTypes:
    - struct client*
    - u_int
    - struct screen_write_ctx*
    - u_int
    - u_int
    - u_int*
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 834
    functionDepth: 2
    functionLinenumber: 834
    functionLinenumberEnd: 847
    functionName: status_prompt_redraw_quote
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - status_prompt_redraw_character
    - utf8_set
    linkageType: ''
    returnType: int
    signature: "int status_prompt_redraw_quote(const struct client *c, u_int pcursor,\n
      \   struct screen_write_ctx *ctx, u_int offset, u_int pwidth, u_int *width,\n
      \   struct grid_cell *gc)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/status.c:868,1
    - Dst: status_line_size
      Src: /src/tmux/status.c:870,1
    - Dst: screen_init
      Src: /src/tmux/status.c:873,1
    - Dst: cmd_find_valid_state
      Src: /src/tmux/status.c:875,1
    - Dst: format_create_from_state
      Src: /src/tmux/status.c:876,1
    - Dst: format_create_defaults
      Src: /src/tmux/status.c:878,1
    - Dst: options_get_number
      Src: /src/tmux/status.c:880,1
    - Dst: options_get_number
      Src: /src/tmux/status.c:883,1
    - Dst: options_get_number
      Src: /src/tmux/status.c:885,1
    - Dst: screen_set_cursor_style
      Src: /src/tmux/status.c:886,1
    - Dst: status_prompt_line_at
      Src: /src/tmux/status.c:889,1
    - Dst: style_apply
      Src: /src/tmux/status.c:894,1
    - Dst: style_apply
      Src: /src/tmux/status.c:896,1
    - Dst: status_prompt_area
      Src: /src/tmux/status.c:898,1
    - Dst: utf8_tocstr
      Src: /src/tmux/status.c:900,1
    - Dst: format_add
      Src: /src/tmux/status.c:901,1
    - Dst: format_expand_time
      Src: /src/tmux/status.c:902,1
    - Dst: free
      Src: /src/tmux/status.c:903,1
    - Dst: format_add
      Src: /src/tmux/status.c:909,1
    - Dst: format_add
      Src: /src/tmux/status.c:910,1
    - Dst: options_get_string
      Src: /src/tmux/status.c:912,1
    - Dst: format_expand_time
      Src: /src/tmux/status.c:913,1
    - Dst: free
      Src: /src/tmux/status.c:914,1
    - Dst: format_width
      Src: /src/tmux/status.c:916,1
    - Dst: screen_write_start
      Src: /src/tmux/status.c:920,1
    - Dst: screen_write_fast_copy
      Src: /src/tmux/status.c:921,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/status.c:922,1
    - Dst: format_draw
      Src: /src/tmux/status.c:923,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/status.c:924,1
    - Dst: free
      Src: /src/tmux/status.c:926,1
    - Dst: utf8_strwidth
      Src: /src/tmux/status.c:932,1
    - Dst: utf8_strwidth
      Src: /src/tmux/status.c:933,1
    - Dst: status_prompt_redraw_quote
      Src: /src/tmux/status.c:951,1
    - Dst: status_prompt_redraw_character
      Src: /src/tmux/status.c:954,1
    - Dst: status_prompt_redraw_quote
      Src: /src/tmux/status.c:958,1
    - Dst: screen_write_stop
      Src: /src/tmux/status.c:962,1
    - Dst: grid_compare
      Src: /src/tmux/status.c:964,1
    - Dst: screen_free
      Src: /src/tmux/status.c:965,1
    - Dst: screen_free
      Src: /src/tmux/status.c:968,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 75
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 850
    functionDepth: 6
    functionLinenumber: 850
    functionLinenumberEnd: 970
    functionName: status_prompt_redraw
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - screen_set_cursor_style
    - status_prompt_area
    - format_add
    - utf8_tocstr
    - style_apply
    - format_width
    - status_prompt_redraw_quote
    - format_expand_time
    - memcpy
    - grid_compare
    - format_create_defaults
    - screen_write_start
    - status_line_size
    - utf8_strwidth
    - status_prompt_redraw_character
    - format_draw
    - cmd_find_valid_state
    - status_prompt_line_at
    - screen_init
    - screen_free
    - screen_write_cursormove
    - free
    - format_create_from_state
    - screen_write_fast_copy
    - options_get_number
    - options_get_string
    - screen_write_stop
    linkageType: ''
    returnType: int
    signature: int status_prompt_redraw(struct client *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/tmux/status.c:978,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ws
    - ud
    argTypes:
    - char*
    - struct utf8_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 973
    functionDepth: 0
    functionLinenumber: 973
    functionLinenumberEnd: 979
    functionName: status_prompt_in_list
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: int
    signature: int status_prompt_in_list(const char *ws, const struct utf8_data *ud)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ud
    argTypes:
    - struct utf8_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 982
    functionDepth: 0
    functionLinenumber: 982
    functionLinenumberEnd: 988
    functionName: status_prompt_space
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int status_prompt_space(const struct utf8_data *ud)
  - BBCount: 18
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 1
    argNames:
    - key
    argTypes:
    - key_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 1031
    functionName: status_prompt_keypad_key
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: key_code
    signature: key_code status_prompt_keypad_key(key_code key)
  - BBCount: 75
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 141
    argCount: 3
    argNames:
    - c
    - key
    - new_key
    argTypes:
    - struct client*
    - key_code
    - key_code*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1037
    functionDepth: 0
    functionLinenumber: 1037
    functionLinenumberEnd: 1182
    functionName: status_prompt_translate_key
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int status_prompt_translate_key(struct client *c, key_code key, key_code
      *new_key)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: utf8_strlen
      Src: /src/tmux/status.c:1195,1
    - Dst: utf8_strlen
      Src: /src/tmux/status.c:1198,1
    - Dst: paste_get_top
      Src: /src/tmux/status.c:1200,1
    - Dst: paste_buffer_data
      Src: /src/tmux/status.c:1202,1
    - Dst: xreallocarray
      Src: /src/tmux/status.c:1203,1
    - Dst: utf8_open
      Src: /src/tmux/status.c:1205,1
    - Dst: utf8_append
      Src: /src/tmux/status.c:1208,1
    - Dst: utf8_set
      Src: /src/tmux/status.c:1217,1
    - Dst: xreallocarray
      Src: /src/tmux/status.c:1225,1
    - Dst: memcpy
      Src: /src/tmux/status.c:1228,1
    - Dst: memmove
      Src: /src/tmux/status.c:1233,1
    - Dst: memcpy
      Src: /src/tmux/status.c:1237,1
    - Dst: free
      Src: /src/tmux/status.c:1243,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1185
    functionDepth: 3
    functionLinenumber: 1185
    functionLinenumberEnd: 1245
    functionName: status_prompt_paste
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - utf8_open
    - paste_buffer_data
    - paste_get_top
    - free
    - memcpy
    - xreallocarray
    - utf8_append
    - memmove
    - utf8_strlen
    - utf8_set
    linkageType: ''
    returnType: int
    signature: int status_prompt_paste(struct client *c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: utf8_strlen
      Src: /src/tmux/status.c:1259,1
    - Dst: status_prompt_space
      Src: /src/tmux/status.c:1263,1
    - Dst: status_prompt_space
      Src: /src/tmux/status.c:1265,1
    - Dst: status_prompt_space
      Src: /src/tmux/status.c:1268,1
    - Dst: status_prompt_space
      Src: /src/tmux/status.c:1270,1
    - Dst: memcpy
      Src: /src/tmux/status.c:1281,1
    - Dst: status_prompt_complete
      Src: /src/tmux/status.c:1291,1
    - Dst: memmove
      Src: /src/tmux/status.c:1300,1
    - Dst: strlen
      Src: /src/tmux/status.c:1304,1
    - Dst: xreallocarray
      Src: /src/tmux/status.c:1306,1
    - Dst: memmove
      Src: /src/tmux/status.c:1309,1
    - Dst: strlen
      Src: /src/tmux/status.c:1309,1
    - Dst: strlen
      Src: /src/tmux/status.c:1310,1
    - Dst: utf8_set
      Src: /src/tmux/status.c:1311,1
    - Dst: strlen
      Src: /src/tmux/status.c:1312,1
    - Dst: free
      Src: /src/tmux/status.c:1314,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - struct client*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1248
    functionDepth: 2
    functionLinenumber: 1248
    functionLinenumberEnd: 1316
    functionName: status_prompt_replace_complete
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - status_prompt_space
    - utf8_set
    - free
    - memcpy
    - xreallocarray
    - memmove
    - strlen
    - utf8_strlen
    - status_prompt_complete
    linkageType: ''
    returnType: int
    signature: int status_prompt_replace_complete(struct client *c, const char *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: status_prompt_space
      Src: /src/tmux/status.c:1329,1
    - Dst: status_prompt_in_list
      Src: /src/tmux/status.c:1339,1
    - Dst: status_prompt_space
      Src: /src/tmux/status.c:1341,1
    - Dst: status_prompt_space
      Src: /src/tmux/status.c:1346,1
    - Dst: status_prompt_space
      Src: /src/tmux/status.c:1350,1
    - Dst: status_prompt_in_list
      Src: /src/tmux/status.c:1354,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 4
    argNames:
    - c
    - size
    - vi
    - separators
    argTypes:
    - struct client*
    - size_t
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1319
    functionDepth: 1
    functionLinenumber: 1319
    functionLinenumberEnd: 1358
    functionName: status_prompt_forward_word
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - status_prompt_space
    - status_prompt_in_list
    linkageType: ''
    returnType: void
    signature: "void status_prompt_forward_word(struct client *c, size_t size, int
      vi,\n    const char *separators)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: status_prompt_space
      Src: /src/tmux/status.c:1378,1
    - Dst: status_prompt_in_list
      Src: /src/tmux/status.c:1381,1
    - Dst: status_prompt_space
      Src: /src/tmux/status.c:1389,1
    - Dst: status_prompt_in_list
      Src: /src/tmux/status.c:1390,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - c
    - size
    - separators
    argTypes:
    - struct client*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1361
    functionDepth: 1
    functionLinenumber: 1361
    functionLinenumberEnd: 1395
    functionName: status_prompt_end_word
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - status_prompt_space
    - status_prompt_in_list
    linkageType: ''
    returnType: void
    signature: void status_prompt_end_word(struct client *c, size_t size, const char
      *separators)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: status_prompt_space
      Src: /src/tmux/status.c:1407,1
    - Dst: status_prompt_in_list
      Src: /src/tmux/status.c:1410,1
    - Dst: status_prompt_space
      Src: /src/tmux/status.c:1416,1
    - Dst: status_prompt_in_list
      Src: /src/tmux/status.c:1417,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - c
    - separators
    argTypes:
    - struct client*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1398
    functionDepth: 1
    functionLinenumber: 1398
    functionLinenumberEnd: 1425
    functionName: status_prompt_backward_word
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - status_prompt_space
    - status_prompt_in_list
    linkageType: ''
    returnType: void
    signature: void status_prompt_backward_word(struct client *c, const char *separators)
  - BBCount: 86
    BranchProfiles: []
    Callsites:
    - Dst: key_string_lookup_key
      Src: /src/tmux/status.c:1439,1
    - Dst: struct client*::prompt_inputcb
      Src: /src/tmux/status.c:1440,1
    - Dst: status_prompt_clear
      Src: /src/tmux/status.c:1441,1
    - Dst: utf8_strlen
      Src: /src/tmux/status.c:1444,1
    - Dst: status_prompt_keypad_key
      Src: /src/tmux/status.c:1447,1
    - Dst: utf8_tocstr
      Src: /src/tmux/status.c:1452,1
    - Dst: struct client*::prompt_inputcb
      Src: /src/tmux/status.c:1453,1
    - Dst: status_prompt_clear
      Src: /src/tmux/status.c:1454,1
    - Dst: free
      Src: /src/tmux/status.c:1455,1
    - Dst: KEYC_IS_UNICODE
      Src: /src/tmux/status.c:1463,1
    - Dst: options_get_number
      Src: /src/tmux/status.c:1472,1
    - Dst: status_prompt_translate_key
      Src: /src/tmux/status.c:1474,1
    - Dst: status_prompt_replace_complete
      Src: /src/tmux/status.c:1515,1
    - Dst: struct client*::prompt_inputcb
      Src: /src/tmux/status.c:1521,1
    - Dst: status_prompt_clear
      Src: /src/tmux/status.c:1522,1
    - Dst: memmove
      Src: /src/tmux/status.c:1529,1
    - Dst: memmove
      Src: /src/tmux/status.c:1541,1
    - Dst: options_get_string
      Src: /src/tmux/status.c:1559,1
    - Dst: status_prompt_space
      Src: /src/tmux/status.c:1565,1
    - Dst: status_prompt_in_list
      Src: /src/tmux/status.c:1568,1
    - Dst: status_prompt_space
      Src: /src/tmux/status.c:1574,1
    - Dst: status_prompt_in_list
      Src: /src/tmux/status.c:1575,1
    - Dst: free
      Src: /src/tmux/status.c:1583,1
    - Dst: xcalloc
      Src: /src/tmux/status.c:1584,1
    - Dst: memcpy
      Src: /src/tmux/status.c:1586,1
    - Dst: memmove
      Src: /src/tmux/status.c:1589,1
    - Dst: memset
      Src: /src/tmux/status.c:1593,1
    - Dst: options_get_string
      Src: /src/tmux/status.c:1600,1
    - Dst: status_prompt_forward_word
      Src: /src/tmux/status.c:1601,1
    - Dst: status_prompt_end_word
      Src: /src/tmux/status.c:1604,1
    - Dst: options_get_string
      Src: /src/tmux/status.c:1607,1
    - Dst: status_prompt_end_word
      Src: /src/tmux/status.c:1608,1
    - Dst: status_prompt_forward_word
      Src: /src/tmux/status.c:1611,1
    - Dst: options_get_string
      Src: /src/tmux/status.c:1614,1
    - Dst: status_prompt_forward_word
      Src: /src/tmux/status.c:1615,1
    - Dst: status_prompt_backward_word
      Src: /src/tmux/status.c:1618,1
    - Dst: options_get_string
      Src: /src/tmux/status.c:1622,1
    - Dst: status_prompt_backward_word
      Src: /src/tmux/status.c:1623,1
    - Dst: status_prompt_up_history
      Src: /src/tmux/status.c:1627,1
    - Dst: free
      Src: /src/tmux/status.c:1631,1
    - Dst: utf8_fromcstr
      Src: /src/tmux/status.c:1632,1
    - Dst: utf8_strlen
      Src: /src/tmux/status.c:1633,1
    - Dst: status_prompt_down_history
      Src: /src/tmux/status.c:1637,1
    - Dst: free
      Src: /src/tmux/status.c:1641,1
    - Dst: utf8_fromcstr
      Src: /src/tmux/status.c:1642,1
    - Dst: utf8_strlen
      Src: /src/tmux/status.c:1643,1
    - Dst: status_prompt_paste
      Src: /src/tmux/status.c:1646,1
    - Dst: utf8_copy
      Src: /src/tmux/status.c:1654,1
    - Dst: utf8_copy
      Src: /src/tmux/status.c:1655,1
    - Dst: utf8_copy
      Src: /src/tmux/status.c:1657,1
    - Dst: utf8_tocstr
      Src: /src/tmux/status.c:1664,1
    - Dst: status_prompt_add_history
      Src: /src/tmux/status.c:1666,1
    - Dst: struct client*::prompt_inputcb
      Src: /src/tmux/status.c:1667,1
    - Dst: status_prompt_clear
      Src: /src/tmux/status.c:1668,1
    - Dst: free
      Src: /src/tmux/status.c:1669,1
    - Dst: struct client*::prompt_inputcb
      Src: /src/tmux/status.c:1675,1
    - Dst: status_prompt_clear
      Src: /src/tmux/status.c:1676,1
    - Dst: free
      Src: /src/tmux/status.c:1683,1
    - Dst: utf8_fromcstr
      Src: /src/tmux/status.c:1684,1
    - Dst: utf8_strlen
      Src: /src/tmux/status.c:1685,1
    - Dst: free
      Src: /src/tmux/status.c:1694,1
    - Dst: utf8_fromcstr
      Src: /src/tmux/status.c:1695,1
    - Dst: utf8_strlen
      Src: /src/tmux/status.c:1696,1
    - Dst: utf8_set
      Src: /src/tmux/status.c:1712,1
    - Dst: KEYC_IS_UNICODE
      Src: /src/tmux/status.c:1715,1
    - Dst: utf8_to_data
      Src: /src/tmux/status.c:1716,1
    - Dst: xreallocarray
      Src: /src/tmux/status.c:1720,1
    - Dst: utf8_copy
      Src: /src/tmux/status.c:1724,1
    - Dst: memmove
      Src: /src/tmux/status.c:1728,1
    - Dst: utf8_copy
      Src: /src/tmux/status.c:1732,1
    - Dst: utf8_strlen
      Src: /src/tmux/status.c:1737,1
    - Dst: status_prompt_clear
      Src: /src/tmux/status.c:1738,1
    - Dst: utf8_tocstr
      Src: /src/tmux/status.c:1740,1
    - Dst: struct client*::prompt_inputcb
      Src: /src/tmux/status.c:1741,1
    - Dst: status_prompt_clear
      Src: /src/tmux/status.c:1742,1
    - Dst: free
      Src: /src/tmux/status.c:1743,1
    - Dst: utf8_tocstr
      Src: /src/tmux/status.c:1750,1
    - Dst: xasprintf
      Src: /src/tmux/status.c:1751,1
    - Dst: struct client*::prompt_inputcb
      Src: /src/tmux/status.c:1752,1
    - Dst: free
      Src: /src/tmux/status.c:1753,1
    - Dst: free
      Src: /src/tmux/status.c:1754,1
    CyclomaticComplexity: 97
    EdgeCount: 97
    ICount: 304
    argCount: 2
    argNames:
    - c
    - key
    argTypes:
    - struct client*
    - key_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1428
    functionDepth: 7
    functionLinenumber: 1428
    functionLinenumberEnd: 1757
    functionName: status_prompt_key
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - utf8_to_data
    - status_prompt_end_word
    - status_prompt_backward_word
    - status_prompt_clear
    - memmove
    - utf8_tocstr
    - utf8_set
    - struct client*::prompt_inputcb
    - status_prompt_add_history
    - status_prompt_keypad_key
    - xcalloc
    - key_string_lookup_key
    - status_prompt_down_history
    - memcpy
    - utf8_copy
    - status_prompt_in_list
    - status_prompt_forward_word
    - status_prompt_replace_complete
    - utf8_fromcstr
    - status_prompt_translate_key
    - KEYC_IS_UNICODE
    - memset
    - status_prompt_paste
    - utf8_strlen
    - xasprintf
    - status_prompt_up_history
    - status_prompt_space
    - free
    - xreallocarray
    - options_get_number
    - options_get_string
    linkageType: ''
    returnType: int
    signature: int status_prompt_key(struct client *c, key_code key)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - idx
    - type
    argTypes:
    - u_int*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1760
    functionDepth: 0
    functionLinenumber: 1760
    functionLinenumberEnd: 1773
    functionName: status_prompt_up_history
    functionSourceFile: /src/tmux/status.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      status_prompt_up_history(u_int *idx, u_int type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - idx
    - type
    argTypes:
    - u_int*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1776
    functionDepth: 0
    functionLinenumber: 1776
    functionLinenumberEnd: 1785
    functionName: status_prompt_down_history
    functionSourceFile: /src/tmux/status.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      status_prompt_down_history(u_int *idx, u_int type)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/status.c:1796,1
    - Dst: options_get_number
      Src: /src/tmux/status.c:1799,1
    - Dst: newsize::newsize
      Src: /src/tmux/status.c:1806,1
    - Dst: free
      Src: /src/tmux/status.c:1812,1
    - Dst: memmove
      Src: /src/tmux/status.c:1816,1
    - Dst: free
      Src: /src/tmux/status.c:1822,1
    - Dst: xreallocarray
      Src: /src/tmux/status.c:1826,1
    - Dst: xstrdup
      Src: /src/tmux/status.c:1831,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 2
    argNames:
    - line
    - type
    argTypes:
    - char*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1788
    functionDepth: 4
    functionLinenumber: 1788
    functionLinenumberEnd: 1833
    functionName: status_prompt_add_history
    functionSourceFile: /src/tmux/status.c
    functionUses: 2
    functionsReached:
    - newsize::newsize
    - strcmp
    - free
    - xreallocarray
    - memmove
    - options_get_number
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void status_prompt_add_history(const char *line, u_int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/status.c:1842,1
    - Dst: xreallocarray
      Src: /src/tmux/status.c:1845,1
    - Dst: xstrdup
      Src: /src/tmux/status.c:1846,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - list
    - size
    - s
    argTypes:
    - char***
    - u_int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1847
      start: 1836
    functionDepth: 2
    functionLinenumber: 1836
    functionLinenumberEnd: 1847
    functionName: status_prompt_add_list
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - xreallocarray
    - strcmp
    linkageType: ''
    returnType: void
    signature: void status_prompt_add_list(char ***list, u_int *size, const char *s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/tmux/status.c:1857,1
    - Dst: strncmp
      Src: /src/tmux/status.c:1868,1
    - Dst: status_prompt_add_list
      Src: /src/tmux/status.c:1869,1
    - Dst: strncmp
      Src: /src/tmux/status.c:1871,1
    - Dst: status_prompt_add_list
      Src: /src/tmux/status.c:1872,1
    - Dst: options_get_only
      Src: /src/tmux/status.c:1874,1
    - Dst: options_array_first
      Src: /src/tmux/status.c:1876,1
    - Dst: options_array_item_value
      Src: /src/tmux/status.c:1878,1
    - Dst: strchr
      Src: /src/tmux/status.c:1879,1
    - Dst: strncmp
      Src: /src/tmux/status.c:1882,1
    - Dst: xasprintf
      Src: /src/tmux/status.c:1885,1
    - Dst: status_prompt_add_list
      Src: /src/tmux/status.c:1886,1
    - Dst: free
      Src: /src/tmux/status.c:1887,1
    - Dst: options_array_next
      Src: /src/tmux/status.c:1890,1
    - Dst: strncmp
      Src: /src/tmux/status.c:1896,1
    - Dst: status_prompt_add_list
      Src: /src/tmux/status.c:1897,1
    - Dst: strncmp
      Src: /src/tmux/status.c:1900,1
    - Dst: status_prompt_add_list
      Src: /src/tmux/status.c:1901,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1850
    functionDepth: 3
    functionLinenumber: 1850
    functionLinenumberEnd: 1904
    functionName: status_prompt_complete_list
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - options_array_first
    - strncmp
    - options_get_only
    - strchr
    - status_prompt_add_list
    - free
    - strlen
    - options_array_item_value
    - options_array_next
    linkageType: ''
    returnType: char
    signature: 'char **

      status_prompt_complete_list(u_int *size, const char *s, int at_start)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/status.c:1916,1
    - Dst: strlen
      Src: /src/tmux/status.c:1918,1
    - Dst: strlen
      Src: /src/tmux/status.c:1919,1
    - Dst: strlen
      Src: /src/tmux/status.c:1920,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - list
    - size
    argTypes:
    - char**
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1927
      start: 1907
    functionDepth: 2
    functionLinenumber: 1907
    functionLinenumberEnd: 1927
    functionName: status_prompt_complete_prefix
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - strlen
    - xstrdup
    linkageType: ''
    returnType: char
    signature: 'char *

      status_prompt_complete_prefix(char **list, u_int size)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/status.c:1942,1
    - Dst: xasprintf
      Src: /src/tmux/status.c:1944,1
    - Dst: free
      Src: /src/tmux/status.c:1946,1
    - Dst: utf8_fromcstr
      Src: /src/tmux/status.c:1947,1
    - Dst: utf8_strlen
      Src: /src/tmux/status.c:1948,1
    - Dst: status_prompt_replace_complete
      Src: /src/tmux/status.c:1950,1
    - Dst: free
      Src: /src/tmux/status.c:1952,1
    - Dst: free
      Src: /src/tmux/status.c:1956,1
    - Dst: free
      Src: /src/tmux/status.c:1957,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - menu
    - idx
    - key
    - data
    argTypes:
    - __unused*
    - u_int
    - key_code
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1958
      start: 1930
    functionDepth: 3
    functionLinenumber: 1930
    functionLinenumberEnd: 1958
    functionName: status_prompt_menu_callback
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - utf8_fromcstr
    - status_prompt_replace_complete
    - xasprintf
    - free
    - utf8_strlen
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void status_prompt_menu_callback(__unused struct menu *menu, u_int
      idx, key_code key,\n    void *data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: status_line_size
      Src: /src/tmux/status.c:1968,1
    - Dst: xmalloc
      Src: /src/tmux/status.c:1976,1
    - Dst: menu_create
      Src: /src/tmux/status.c:1989,1
    - Dst: menu_add_item
      Src: /src/tmux/status.c:1994,1
    - Dst: status_prompt_area
      Src: /src/tmux/status.c:1997,1
    - Dst: options_get_number
      Src: /src/tmux/status.c:1998,1
    - Dst: utf8_cstrwidth
      Src: /src/tmux/status.c:2002,1
    - Dst: menu_display
      Src: /src/tmux/status.c:2009,1
    - Dst: menu_free
      Src: /src/tmux/status.c:2012,1
    - Dst: free
      Src: /src/tmux/status.c:2013,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 5
    argNames:
    - c
    - list
    - size
    - offset
    - flag
    argTypes:
    - struct client*
    - char**
    - u_int
    - u_int
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1961
    functionDepth: 5
    functionLinenumber: 1961
    functionLinenumberEnd: 2017
    functionName: status_prompt_complete_list_menu
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - status_line_size
    - menu_create
    - menu_free
    - menu_display
    - xmalloc
    - utf8_cstrwidth
    - free
    - status_prompt_area
    - menu_add_item
    - options_get_number
    linkageType: ''
    returnType: int
    signature: "int status_prompt_complete_list_menu(struct client *c, char **list,
      u_int size,\n    u_int offset, char flag)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: status_line_size
      Src: /src/tmux/status.c:2029,1
    - Dst: xmalloc
      Src: /src/tmux/status.c:2035,1
    - Dst: menu_create
      Src: /src/tmux/status.c:2044,1
    - Dst: RB_FOREACH
      Src: /src/tmux/status.c:2045,1
    - Dst: xasprintf
      Src: /src/tmux/status.c:2047,1
    - Dst: strncmp
      Src: /src/tmux/status.c:2048,1
    - Dst: strlen
      Src: /src/tmux/status.c:2048,1
    - Dst: free
      Src: /src/tmux/status.c:2049,1
    - Dst: free
      Src: /src/tmux/status.c:2052,1
    - Dst: xreallocarray
      Src: /src/tmux/status.c:2055,1
    - Dst: xasprintf
      Src: /src/tmux/status.c:2057,1
    - Dst: xasprintf
      Src: /src/tmux/status.c:2058,1
    - Dst: xasprintf
      Src: /src/tmux/status.c:2060,1
    - Dst: xasprintf
      Src: /src/tmux/status.c:2062,1
    - Dst: menu_add_item
      Src: /src/tmux/status.c:2067,1
    - Dst: free
      Src: /src/tmux/status.c:2068,1
    - Dst: menu_free
      Src: /src/tmux/status.c:2074,1
    - Dst: free
      Src: /src/tmux/status.c:2075,1
    - Dst: menu_free
      Src: /src/tmux/status.c:2079,1
    - Dst: xasprintf
      Src: /src/tmux/status.c:2081,1
    - Dst: free
      Src: /src/tmux/status.c:2082,1
    - Dst: free
      Src: /src/tmux/status.c:2085,1
    - Dst: free
      Src: /src/tmux/status.c:2086,1
    - Dst: status_prompt_area
      Src: /src/tmux/status.c:2095,1
    - Dst: options_get_number
      Src: /src/tmux/status.c:2096,1
    - Dst: utf8_cstrwidth
      Src: /src/tmux/status.c:2100,1
    - Dst: menu_display
      Src: /src/tmux/status.c:2107,1
    - Dst: menu_free
      Src: /src/tmux/status.c:2110,1
    - Dst: free
      Src: /src/tmux/status.c:2112,1
    - Dst: free
      Src: /src/tmux/status.c:2113,1
    - Dst: free
      Src: /src/tmux/status.c:2114,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 74
    argCount: 5
    argNames:
    - c
    - s
    - word
    - offset
    - flag
    argTypes:
    - struct client*
    - struct session*
    - char*
    - u_int
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2118
      start: 2020
    functionDepth: 5
    functionLinenumber: 2020
    functionLinenumberEnd: 2118
    functionName: status_prompt_complete_window_menu
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - status_line_size
    - menu_create
    - menu_free
    - strncmp
    - xmalloc
    - utf8_cstrwidth
    - menu_display
    - RB_FOREACH
    - free
    - status_prompt_area
    - xreallocarray
    - strlen
    - menu_add_item
    - options_get_number
    linkageType: ''
    returnType: char
    signature: "char *\nstatus_prompt_complete_window_menu(struct client *c, struct
      session *s,\n    const char *word, u_int offset, char flag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/status.c:2126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2127
      start: 2121
    functionDepth: 0
    functionLinenumber: 2121
    functionLinenumberEnd: 2127
    functionName: status_prompt_complete_sort
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int status_prompt_complete_sort(const void *a, const void *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/status.c:2137,1
    - Dst: strncmp
      Src: /src/tmux/status.c:2138,1
    - Dst: strlen
      Src: /src/tmux/status.c:2138,1
    - Dst: xreallocarray
      Src: /src/tmux/status.c:2139,1
    - Dst: xasprintf
      Src: /src/tmux/status.c:2141,1
    - Dst: xsnprintf
      Src: /src/tmux/status.c:2143,1
    - Dst: strncmp
      Src: /src/tmux/status.c:2145,1
    - Dst: strlen
      Src: /src/tmux/status.c:2145,1
    - Dst: xreallocarray
      Src: /src/tmux/status.c:2146,1
    - Dst: xasprintf
      Src: /src/tmux/status.c:2148,1
    - Dst: status_prompt_complete_prefix
      Src: /src/tmux/status.c:2152,1
    - Dst: xasprintf
      Src: /src/tmux/status.c:2154,1
    - Dst: free
      Src: /src/tmux/status.c:2155,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - list
    - size
    - s
    - flag
    argTypes:
    - char***
    - u_int*
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2159
      start: 2130
    functionDepth: 3
    functionLinenumber: 2130
    functionLinenumberEnd: 2159
    functionName: status_prompt_complete_session
    functionSourceFile: /src/tmux/status.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - strncmp
    - RB_FOREACH
    - xsnprintf
    - free
    - xreallocarray
    - status_prompt_complete_prefix
    - strlen
    linkageType: ''
    returnType: char
    signature: "char *\nstatus_prompt_complete_session(char ***list, u_int *size,
      const char *s,\n    char flag)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/tmux/status.c:2178,1
    - Dst: strncmp
      Src: /src/tmux/status.c:2179,1
    - Dst: status_prompt_complete_list
      Src: /src/tmux/status.c:2180,1
    - Dst: xasprintf
      Src: /src/tmux/status.c:2184,1
    - Dst: status_prompt_complete_prefix
      Src: /src/tmux/status.c:2186,1
    - Dst: status_prompt_complete_window_menu
      Src: /src/tmux/status.c:2202,1
    - Dst: strchr
      Src: /src/tmux/status.c:2206,1
    - Dst: status_prompt_complete_session
      Src: /src/tmux/status.c:2210,1
    - Dst: strchr
      Src: /src/tmux/status.c:2215,1
    - Dst: xstrdup
      Src: /src/tmux/status.c:2219,1
    - Dst: strchr
      Src: /src/tmux/status.c:2220,1
    - Dst: session_find
      Src: /src/tmux/status.c:2221,1
    - Dst: free
      Src: /src/tmux/status.c:2222,1
    - Dst: status_prompt_complete_window_menu
      Src: /src/tmux/status.c:2226,1
    - Dst: qsort
      Src: /src/tmux/status.c:2234,1
    - Dst: log_debug
      Src: /src/tmux/status.c:2236,1
    - Dst: strcmp
      Src: /src/tmux/status.c:2239,1
    - Dst: free
      Src: /src/tmux/status.c:2240,1
    - Dst: status_prompt_complete_list_menu
      Src: /src/tmux/status.c:2244,1
    - Dst: free
      Src: /src/tmux/status.c:2246,1
    - Dst: free
      Src: /src/tmux/status.c:2247,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 64
    argCount: 3
    argNames:
    - c
    - word
    - offset
    argTypes:
    - struct client*
    - char*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2250
      start: 2162
    functionDepth: 6
    functionLinenumber: 2162
    functionLinenumberEnd: 2250
    functionName: status_prompt_complete
    functionSourceFile: /src/tmux/status.c
    functionUses: 1
    functionsReached:
    - xasprintf
    - session_find
    - strncmp
    - strchr
    - strcmp
    - status_prompt_complete_window_menu
    - qsort
    - free
    - status_prompt_complete_prefix
    - log_debug
    - status_prompt_complete_list
    - status_prompt_complete_list_menu
    - xstrdup
    - status_prompt_complete_session
    linkageType: ''
    returnType: char
    signature: 'char *

      status_prompt_complete(struct client *c, const char *word, u_int offset)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/status.c:2259,1
    - Dst: status_prompt_type_string
      Src: /src/tmux/status.c:2259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2263
      start: 2253
    functionDepth: 1
    functionLinenumber: 2253
    functionLinenumberEnd: 2263
    functionName: status_prompt_type
    functionSourceFile: /src/tmux/status.c
    functionUses: 2
    functionsReached:
    - status_prompt_type_string
    - strcmp
    linkageType: ''
    returnType: enum prompt_type
    signature: enum prompt_type status_prompt_type(const char *type)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2272
      start: 2266
    functionDepth: 0
    functionLinenumber: 2266
    functionLinenumberEnd: 2272
    functionName: status_prompt_type_string
    functionSourceFile: /src/tmux/status.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      status_prompt_type_string(u_int type)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: utf8_copy
      Src: /src/tmux/screen-redraw.c:61,1
    - Dst: utf8_set
      Src: /src/tmux/screen-redraw.c:69,1
    - Dst: window_pane_index
      Src: /src/tmux/screen-redraw.c:73,1
    - Dst: utf8_set
      Src: /src/tmux/screen-redraw.c:74,1
    - Dst: utf8_set
      Src: /src/tmux/screen-redraw.c:76,1
    - Dst: utf8_copy
      Src: /src/tmux/screen-redraw.c:80,1
    - Dst: tty_acs_double_borders
      Src: /src/tmux/screen-redraw.c:80,1
    - Dst: utf8_copy
      Src: /src/tmux/screen-redraw.c:84,1
    - Dst: tty_acs_heavy_borders
      Src: /src/tmux/screen-redraw.c:84,1
    - Dst: utf8_set
      Src: /src/tmux/screen-redraw.c:88,1
    - Dst: utf8_set
      Src: /src/tmux/screen-redraw.c:92,1
    - Dst: utf8_set
      Src: /src/tmux/screen-redraw.c:96,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 5
    argNames:
    - w
    - wp
    - pane_lines
    - cell_type
    - gc
    argTypes:
    - struct window*
    - struct window_pane*
    - enum pane_lines
    - int
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 99
    functionName: screen_redraw_border_set
    functionSourceFile: /src/tmux/screen-redraw.c
    functionUses: 0
    functionsReached:
    - tty_acs_double_borders
    - tty_acs_heavy_borders
    - utf8_copy
    - utf8_set
    - window_pane_index
    linkageType: ''
    returnType: void
    signature: "void screen_redraw_border_set(struct window *w, struct window_pane
      *wp,\n    enum pane_lines pane_lines, int cell_type, struct grid_cell *gc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/screen-redraw.c:108,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - w
    - type
    argTypes:
    - struct window*
    - enum layout_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 119
    functionName: screen_redraw_two_panes
    functionSourceFile: /src/tmux/screen-redraw.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH
    linkageType: ''
    returnType: int
    signature: int screen_redraw_two_panes(struct window *w, enum layout_type *type)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: window_pane_show_scrollbar
      Src: /src/tmux/screen-redraw.c:143,1
    - Dst: options_get_number
      Src: /src/tmux/screen-redraw.c:171,1
    - Dst: screen_redraw_two_panes
      Src: /src/tmux/screen-redraw.c:174,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 87
    argCount: 4
    argNames:
    - ctx
    - wp
    - px
    - py
    argTypes:
    - struct screen_redraw_ctx*
    - struct window_pane*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 122
    functionDepth: 4
    functionLinenumber: 122
    functionLinenumberEnd: 243
    functionName: screen_redraw_pane_border
    functionSourceFile: /src/tmux/screen-redraw.c
    functionUses: 0
    functionsReached:
    - window_pane_show_scrollbar
    - options_get_number
    - screen_redraw_two_panes
    linkageType: ''
    returnType: enum screen_redraw_border_type
    signature: "enum screen_redraw_border_type screen_redraw_pane_border(struct screen_redraw_ctx
      *ctx, struct window_pane *wp,\n    int px, int py)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/screen-redraw.c:286,1
    - Dst: window_pane_visible
      Src: /src/tmux/screen-redraw.c:287,1
    - Dst: screen_redraw_pane_border
      Src: /src/tmux/screen-redraw.c:304,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 34
    argCount: 4
    argNames:
    - ctx
    - wp
    - px
    - py
    argTypes:
    - struct screen_redraw_ctx*
    - struct window_pane*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 246
    functionDepth: 5
    functionLinenumber: 246
    functionLinenumberEnd: 315
    functionName: screen_redraw_cell_border
    functionSourceFile: /src/tmux/screen-redraw.c
    functionUses: 0
    functionsReached:
    - window_pane_visible
    - screen_redraw_pane_border
    - TAILQ_FOREACH
    linkageType: ''
    returnType: int
    signature: "int screen_redraw_cell_border(struct screen_redraw_ctx *ctx, struct
      window_pane *wp,\n    int px, int py)"
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: screen_redraw_cell_border
      Src: /src/tmux/screen-redraw.c:342,1
    - Dst: screen_redraw_cell_border
      Src: /src/tmux/screen-redraw.c:344,1
    - Dst: screen_redraw_cell_border
      Src: /src/tmux/screen-redraw.c:348,1
    - Dst: screen_redraw_cell_border
      Src: /src/tmux/screen-redraw.c:350,1
    - Dst: screen_redraw_cell_border
      Src: /src/tmux/screen-redraw.c:354,1
    - Dst: screen_redraw_cell_border
      Src: /src/tmux/screen-redraw.c:357,1
    - Dst: screen_redraw_cell_border
      Src: /src/tmux/screen-redraw.c:361,1
    - Dst: screen_redraw_cell_border
      Src: /src/tmux/screen-redraw.c:363,1
    - Dst: screen_redraw_cell_border
      Src: /src/tmux/screen-redraw.c:367,1
    - Dst: screen_redraw_cell_border
      Src: /src/tmux/screen-redraw.c:369,1
    - Dst: screen_redraw_cell_border
      Src: /src/tmux/screen-redraw.c:373,1
    - Dst: screen_redraw_cell_border
      Src: /src/tmux/screen-redraw.c:375,1
    - Dst: screen_redraw_cell_border
      Src: /src/tmux/screen-redraw.c:378,1
    - Dst: screen_redraw_cell_border
      Src: /src/tmux/screen-redraw.c:381,1
    - Dst: screen_redraw_cell_border
      Src: /src/tmux/screen-redraw.c:384,1
    - Dst: screen_redraw_cell_border
      Src: /src/tmux/screen-redraw.c:386,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 75
    argCount: 4
    argNames:
    - ctx
    - wp
    - px
    - py
    argTypes:
    - struct screen_redraw_ctx*
    - struct window_pane*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 318
    functionDepth: 6
    functionLinenumber: 318
    functionLinenumberEnd: 421
    functionName: screen_redraw_type_of_cell
    functionSourceFile: /src/tmux/screen-redraw.c
    functionUses: 0
    functionsReached:
    - screen_redraw_cell_border
    linkageType: ''
    returnType: int
    signature: "int screen_redraw_type_of_cell(struct screen_redraw_ctx *ctx,\n    struct
      window_pane *wp, int px, int py)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/screen-redraw.c:444,1
    - Dst: server_client_get_pane
      Src: /src/tmux/screen-redraw.c:467,1
    - Dst: screen_redraw_type_of_cell
      Src: /src/tmux/screen-redraw.c:473,1
    - Dst: window_pane_visible
      Src: /src/tmux/screen-redraw.c:483,1
    - Dst: window_pane_show_scrollbar
      Src: /src/tmux/screen-redraw.c:521,1
    - Dst: screen_redraw_pane_border
      Src: /src/tmux/screen-redraw.c:547,1
    - Dst: screen_redraw_type_of_cell
      Src: /src/tmux/screen-redraw.c:552,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/screen-redraw.c:555,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/screen-redraw.c:557,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 71
    argCount: 4
    argNames:
    - ctx
    - px
    - py
    - wpp
    argTypes:
    - struct screen_redraw_ctx*
    - int
    - int
    - struct window_pane**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 424
    functionDepth: 7
    functionLinenumber: 424
    functionLinenumberEnd: 561
    functionName: screen_redraw_check_cell
    functionSourceFile: /src/tmux/screen-redraw.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH
    - screen_redraw_pane_border
    - TAILQ_FIRST
    - window_pane_visible
    - server_client_get_pane
    - screen_redraw_type_of_cell
    - TAILQ_NEXT
    - window_pane_show_scrollbar
    linkageType: ''
    returnType: int
    signature: "int screen_redraw_check_cell(struct screen_redraw_ctx *ctx, int px,
      int py,\n    struct window_pane **wpp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: screen_redraw_pane_border
      Src: /src/tmux/screen-redraw.c:572,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - px
    - py
    - wp
    argTypes:
    - struct screen_redraw_ctx*
    - int
    - int
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 564
    functionDepth: 5
    functionLinenumber: 564
    functionLinenumberEnd: 576
    functionName: screen_redraw_check_is
    functionSourceFile: /src/tmux/screen-redraw.c
    functionUses: 0
    functionsReached:
    - screen_redraw_pane_border
    linkageType: ''
    returnType: int
    signature: "int screen_redraw_check_is(struct screen_redraw_ctx *ctx, int px,
      int py,\n    struct window_pane *wp)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: window_pane_show_scrollbar
      Src: /src/tmux/screen-redraw.c:596,1
    - Dst: format_create
      Src: /src/tmux/screen-redraw.c:599,1
    - Dst: format_defaults
      Src: /src/tmux/screen-redraw.c:600,1
    - Dst: server_client_get_pane
      Src: /src/tmux/screen-redraw.c:602,1
    - Dst: style_apply
      Src: /src/tmux/screen-redraw.c:606,1
    - Dst: options_get_string
      Src: /src/tmux/screen-redraw.c:607,1
    - Dst: format_expand_time
      Src: /src/tmux/screen-redraw.c:609,1
    - Dst: memcpy
      Src: /src/tmux/screen-redraw.c:621,1
    - Dst: screen_init
      Src: /src/tmux/screen-redraw.c:622,1
    - Dst: screen_write_start
      Src: /src/tmux/screen-redraw.c:625,1
    - Dst: screen_redraw_type_of_cell
      Src: /src/tmux/screen-redraw.c:633,1
    - Dst: screen_redraw_border_set
      Src: /src/tmux/screen-redraw.c:634,1
    - Dst: screen_write_cell
      Src: /src/tmux/screen-redraw.c:635,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/screen-redraw.c:639,1
    - Dst: style_ranges_free
      Src: /src/tmux/screen-redraw.c:640,1
    - Dst: format_draw
      Src: /src/tmux/screen-redraw.c:641,1
    - Dst: screen_write_stop
      Src: /src/tmux/screen-redraw.c:643,1
    - Dst: format_free
      Src: /src/tmux/screen-redraw.c:644,1
    - Dst: free
      Src: /src/tmux/screen-redraw.c:646,1
    - Dst: grid_compare
      Src: /src/tmux/screen-redraw.c:649,1
    - Dst: screen_free
      Src: /src/tmux/screen-redraw.c:650,1
    - Dst: screen_free
      Src: /src/tmux/screen-redraw.c:653,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 4
    argNames:
    - c
    - wp
    - rctx
    - pane_lines
    argTypes:
    - struct client*
    - struct window_pane*
    - struct screen_redraw_ctx*
    - enum pane_lines
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 579
    functionDepth: 7
    functionLinenumber: 579
    functionLinenumberEnd: 655
    functionName: screen_redraw_make_pane_status
    functionSourceFile: /src/tmux/screen-redraw.c
    functionUses: 0
    functionsReached:
    - screen_write_cell
    - server_client_get_pane
    - format_create
    - style_apply
    - format_free
    - format_expand_time
    - screen_redraw_type_of_cell
    - memcpy
    - grid_compare
    - screen_write_start
    - screen_redraw_border_set
    - format_defaults
    - window_pane_show_scrollbar
    - format_draw
    - screen_init
    - screen_free
    - screen_write_cursormove
    - style_ranges_free
    - free
    - options_get_string
    - screen_write_stop
    linkageType: ''
    returnType: int
    signature: "int screen_redraw_make_pane_status(struct client *c, struct window_pane
      *wp,\n    struct screen_redraw_ctx *rctx, enum pane_lines pane_lines)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/screen-redraw.c:671,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/screen-redraw.c:673,1
    - Dst: window_pane_visible
      Src: /src/tmux/screen-redraw.c:674,1
    - Dst: tty_check_overlay_range
      Src: /src/tmux/screen-redraw.c:713,1
    - Dst: screen_redraw_get_visible_ranges
      Src: /src/tmux/screen-redraw.c:714,1
    - Dst: tty_draw_line
      Src: /src/tmux/screen-redraw.c:721,1
    - Dst: tty_cursor
      Src: /src/tmux/screen-redraw.c:726,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct screen_redraw_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 658
    functionDepth: 6
    functionLinenumber: 658
    functionLinenumberEnd: 727
    functionName: screen_redraw_draw_pane_status
    functionSourceFile: /src/tmux/screen-redraw.c
    functionUses: 0
    functionsReached:
    - screen_redraw_get_visible_ranges
    - tty_check_overlay_range
    - TAILQ_FOREACH
    - tty_cursor
    - window_pane_visible
    - log_debug
    - tty_draw_line
    linkageType: ''
    returnType: void
    signature: void screen_redraw_draw_pane_status(struct screen_redraw_ctx *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: status_message_redraw
      Src: /src/tmux/screen-redraw.c:740,1
    - Dst: status_prompt_redraw
      Src: /src/tmux/screen-redraw.c:742,1
    - Dst: status_redraw
      Src: /src/tmux/screen-redraw.c:744,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/screen-redraw.c:754,1
    - Dst: screen_redraw_make_pane_status
      Src: /src/tmux/screen-redraw.c:755,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - struct screen_redraw_ctx*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 730
    functionDepth: 8
    functionLinenumber: 730
    functionLinenumberEnd: 763
    functionName: screen_redraw_update
    functionSourceFile: /src/tmux/screen-redraw.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH
    - status_prompt_redraw
    - status_redraw
    - screen_redraw_make_pane_status
    - status_message_redraw
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t screen_redraw_update(struct screen_redraw_ctx *ctx, uint64_t
      flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/tmux/screen-redraw.c:775,1
    - Dst: status_line_size
      Src: /src/tmux/screen-redraw.c:778,1
    - Dst: options_get_number
      Src: /src/tmux/screen-redraw.c:781,1
    - Dst: options_get_number
      Src: /src/tmux/screen-redraw.c:785,1
    - Dst: options_get_number
      Src: /src/tmux/screen-redraw.c:786,1
    - Dst: options_get_number
      Src: /src/tmux/screen-redraw.c:788,1
    - Dst: options_get_number
      Src: /src/tmux/screen-redraw.c:789,1
    - Dst: tty_window_offset
      Src: /src/tmux/screen-redraw.c:792,1
    - Dst: log_debug
      Src: /src/tmux/screen-redraw.c:794,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - c
    - ctx
    argTypes:
    - struct client*
    - struct screen_redraw_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 766
    functionDepth: 5
    functionLinenumber: 766
    functionLinenumberEnd: 797
    functionName: screen_redraw_set_context
    functionSourceFile: /src/tmux/screen-redraw.c
    functionUses: 0
    functionsReached:
    - status_line_size
    - tty_window_offset
    - memset
    - log_debug
    - options_get_number
    linkageType: ''
    returnType: void
    signature: void screen_redraw_set_context(struct client *c, struct screen_redraw_ctx
      *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: screen_redraw_set_context
      Src: /src/tmux/screen-redraw.c:809,1
    - Dst: screen_redraw_update
      Src: /src/tmux/screen-redraw.c:811,1
    - Dst: tty_sync_start
      Src: /src/tmux/screen-redraw.c:815,1
    - Dst: tty_update_mode
      Src: /src/tmux/screen-redraw.c:816,1
    - Dst: log_debug
      Src: /src/tmux/screen-redraw.c:819,1
    - Dst: screen_redraw_draw_borders
      Src: /src/tmux/screen-redraw.c:820,1
    - Dst: screen_redraw_draw_pane_status
      Src: /src/tmux/screen-redraw.c:822,1
    - Dst: screen_redraw_draw_pane_scrollbars
      Src: /src/tmux/screen-redraw.c:823,1
    - Dst: log_debug
      Src: /src/tmux/screen-redraw.c:826,1
    - Dst: screen_redraw_draw_panes
      Src: /src/tmux/screen-redraw.c:827,1
    - Dst: screen_redraw_draw_pane_scrollbars
      Src: /src/tmux/screen-redraw.c:828,1
    - Dst: log_debug
      Src: /src/tmux/screen-redraw.c:832,1
    - Dst: screen_redraw_draw_status
      Src: /src/tmux/screen-redraw.c:833,1
    - Dst: log_debug
      Src: /src/tmux/screen-redraw.c:836,1
    - Dst: struct client*::overlay_draw
      Src: /src/tmux/screen-redraw.c:837,1
    - Dst: tty_reset
      Src: /src/tmux/screen-redraw.c:840,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 800
    functionDepth: 9
    functionLinenumber: 800
    functionLinenumberEnd: 841
    functionName: screen_redraw_screen
    functionSourceFile: /src/tmux/screen-redraw.c
    functionUses: 0
    functionsReached:
    - screen_redraw_draw_borders
    - screen_redraw_draw_panes
    - tty_sync_start
    - screen_redraw_draw_pane_scrollbars
    - struct client*::overlay_draw
    - tty_reset
    - screen_redraw_draw_status
    - screen_redraw_update
    - screen_redraw_draw_pane_status
    - log_debug
    - screen_redraw_set_context
    - tty_update_mode
    linkageType: ''
    returnType: void
    signature: void screen_redraw_screen(struct client *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: window_pane_visible
      Src: /src/tmux/screen-redraw.c:850,1
    - Dst: screen_redraw_set_context
      Src: /src/tmux/screen-redraw.c:853,1
    - Dst: tty_sync_start
      Src: /src/tmux/screen-redraw.c:854,1
    - Dst: tty_update_mode
      Src: /src/tmux/screen-redraw.c:855,1
    - Dst: screen_redraw_draw_pane
      Src: /src/tmux/screen-redraw.c:858,1
    - Dst: window_pane_show_scrollbar
      Src: /src/tmux/screen-redraw.c:860,1
    - Dst: screen_redraw_draw_pane_scrollbar
      Src: /src/tmux/screen-redraw.c:861,1
    - Dst: tty_reset
      Src: /src/tmux/screen-redraw.c:863,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - c
    - wp
    - redraw_scrollbar_only
    argTypes:
    - struct client*
    - struct window_pane*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 844
    functionDepth: 6
    functionLinenumber: 844
    functionLinenumberEnd: 864
    functionName: screen_redraw_pane
    functionSourceFile: /src/tmux/screen-redraw.c
    functionUses: 0
    functionsReached:
    - tty_sync_start
    - screen_redraw_draw_pane
    - tty_reset
    - window_pane_visible
    - screen_redraw_set_context
    - window_pane_show_scrollbar
    - tty_update_mode
    - screen_redraw_draw_pane_scrollbar
    linkageType: ''
    returnType: void
    signature: "void screen_redraw_pane(struct client *c, struct window_pane *wp,\n
      \   int redraw_scrollbar_only)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: server_client_get_pane
      Src: /src/tmux/screen-redraw.c:873,1
    - Dst: screen_redraw_check_is
      Src: /src/tmux/screen-redraw.c:879,1
    - Dst: format_create_defaults
      Src: /src/tmux/screen-redraw.c:890,1
    - Dst: style_apply
      Src: /src/tmux/screen-redraw.c:891,1
    - Dst: format_free
      Src: /src/tmux/screen-redraw.c:892,1
    - Dst: memcpy
      Src: /src/tmux/screen-redraw.c:895,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 5
    argNames:
    - ctx
    - x
    - y
    - wp
    - ngc
    argTypes:
    - struct screen_redraw_ctx*
    - u_int
    - u_int
    - struct window_pane*
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 867
    functionDepth: 6
    functionLinenumber: 867
    functionLinenumberEnd: 896
    functionName: screen_redraw_draw_borders_style
    functionSourceFile: /src/tmux/screen-redraw.c
    functionUses: 0
    functionsReached:
    - style_apply
    - screen_redraw_check_is
    - format_free
    - server_client_get_pane
    - memcpy
    - format_create_defaults
    linkageType: ''
    returnType: void
    signature: "void screen_redraw_draw_borders_style(struct screen_redraw_ctx *ctx,
      u_int x,\n    u_int y, struct window_pane *wp, struct grid_cell *ngc)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/screen-redraw.c:917,1
    - Dst: screen_redraw_pane_border
      Src: /src/tmux/screen-redraw.c:921,1
    - Dst: screen_redraw_two_panes
      Src: /src/tmux/screen-redraw.c:927,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/screen-redraw.c:928,1
    - Dst: screen_redraw_two_panes
      Src: /src/tmux/screen-redraw.c:947,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/screen-redraw.c:948,1
    - Dst: utf8_set
      Src: /src/tmux/screen-redraw.c:967,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 49
    argCount: 7
    argNames:
    - ctx
    - i
    - j
    - cell_type
    - wp
    - active
    - gc
    argTypes:
    - struct screen_redraw_ctx*
    - int
    - int
    - u_int
    - struct window_pane*
    - struct window_pane*
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 899
    functionDepth: 5
    functionLinenumber: 899
    functionLinenumberEnd: 969
    functionName: screen_redraw_draw_border_arrows
    functionSourceFile: /src/tmux/screen-redraw.c
    functionUses: 0
    functionsReached:
    - screen_redraw_two_panes
    - TAILQ_FIRST
    - screen_redraw_pane_border
    - options_get_number
    - utf8_set
    linkageType: ''
    returnType: void
    signature: "void screen_redraw_draw_border_arrows(struct screen_redraw_ctx *ctx,
      int i,\n    int j, u_int cell_type, struct window_pane *wp,\n    struct window_pane
      *active, struct grid_cell *gc)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: server_client_get_pane
      Src: /src/tmux/screen-redraw.c:981,1
    - Dst: struct client*::overlay_check
      Src: /src/tmux/screen-redraw.c:989,1
    - Dst: server_client_ranges_is_empty
      Src: /src/tmux/screen-redraw.c:990,1
    - Dst: screen_redraw_check_cell
      Src: /src/tmux/screen-redraw.c:994,1
    - Dst: format_create_defaults
      Src: /src/tmux/screen-redraw.c:1000,1
    - Dst: memcpy
      Src: /src/tmux/screen-redraw.c:1001,1
    - Dst: style_add
      Src: /src/tmux/screen-redraw.c:1002,1
    - Dst: format_free
      Src: /src/tmux/screen-redraw.c:1004,1
    - Dst: memcpy
      Src: /src/tmux/screen-redraw.c:1007,1
    - Dst: screen_redraw_draw_borders_style
      Src: /src/tmux/screen-redraw.c:1009,1
    - Dst: server_is_marked
      Src: /src/tmux/screen-redraw.c:1010,1
    - Dst: screen_redraw_check_is
      Src: /src/tmux/screen-redraw.c:1011,1
    - Dst: screen_redraw_border_set
      Src: /src/tmux/screen-redraw.c:1014,1
    - Dst: tty_term_has
      Src: /src/tmux/screen-redraw.c:1018,1
    - Dst: tty_cursor
      Src: /src/tmux/screen-redraw.c:1024,1
    - Dst: tty_cursor
      Src: /src/tmux/screen-redraw.c:1026,1
    - Dst: tty_puts
      Src: /src/tmux/screen-redraw.c:1028,1
    - Dst: screen_redraw_draw_border_arrows
      Src: /src/tmux/screen-redraw.c:1030,1
    - Dst: tty_cell
      Src: /src/tmux/screen-redraw.c:1032,1
    - Dst: tty_puts
      Src: /src/tmux/screen-redraw.c:1034,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 3
    argNames:
    - ctx
    - i
    - j
    argTypes:
    - struct screen_redraw_ctx*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 972
    functionDepth: 8
    functionLinenumber: 972
    functionLinenumberEnd: 1035
    functionName: screen_redraw_draw_borders_cell
    functionSourceFile: /src/tmux/screen-redraw.c
    functionUses: 0
    functionsReached:
    - screen_redraw_border_set
    - screen_redraw_check_is
    - format_free
    - tty_term_has
    - struct client*::overlay_check
    - server_is_marked
    - server_client_ranges_is_empty
    - tty_cursor
    - tty_puts
    - style_add
    - server_client_get_pane
    - screen_redraw_check_cell
    - memcpy
    - tty_cell
    - screen_redraw_draw_borders_style
    - screen_redraw_draw_border_arrows
    - format_create_defaults
    linkageType: ''
    returnType: void
    signature: void screen_redraw_draw_borders_cell(struct screen_redraw_ctx *ctx,
      u_int i, u_int j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/screen-redraw.c:1047,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/screen-redraw.c:1049,1
    - Dst: screen_redraw_draw_borders_cell
      Src: /src/tmux/screen-redraw.c:1056,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct screen_redraw_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1038
    functionDepth: 9
    functionLinenumber: 1038
    functionLinenumberEnd: 1058
    functionName: screen_redraw_draw_borders
    functionSourceFile: /src/tmux/screen-redraw.c
    functionUses: 1
    functionsReached:
    - log_debug
    - screen_redraw_draw_borders_cell
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void screen_redraw_draw_borders(struct screen_redraw_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/screen-redraw.c:1068,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/screen-redraw.c:1070,1
    - Dst: window_pane_visible
      Src: /src/tmux/screen-redraw.c:1071,1
    - Dst: screen_redraw_draw_pane
      Src: /src/tmux/screen-redraw.c:1072,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct screen_redraw_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1061
    functionDepth: 3
    functionLinenumber: 1061
    functionLinenumberEnd: 1074
    functionName: screen_redraw_draw_panes
    functionSourceFile: /src/tmux/screen-redraw.c
    functionUses: 1
    functionsReached:
    - log_debug
    - screen_redraw_draw_pane
    - window_pane_visible
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void screen_redraw_draw_panes(struct screen_redraw_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/screen-redraw.c:1086,1
    - Dst: tty_draw_line
      Src: /src/tmux/screen-redraw.c:1093,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct screen_redraw_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1077
    functionDepth: 6
    functionLinenumber: 1077
    functionLinenumberEnd: 1096
    functionName: screen_redraw_draw_status
    functionSourceFile: /src/tmux/screen-redraw.c
    functionUses: 1
    functionsReached:
    - log_debug
    - tty_draw_line
    linkageType: ''
    returnType: void
    signature: void screen_redraw_draw_status(struct screen_redraw_ctx *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - r
    - px
    argTypes:
    - struct visible_ranges*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1102
    functionDepth: 0
    functionLinenumber: 1102
    functionLinenumberEnd: 1116
    functionName: screen_redraw_is_visible
    functionSourceFile: /src/tmux/screen-redraw.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int screen_redraw_is_visible(struct visible_ranges *r, u_int px)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/screen-redraw.c:1140,1
    - Dst: server_client_ensure_ranges
      Src: /src/tmux/screen-redraw.c:1154,1
    - Dst: options_get_number
      Src: /src/tmux/screen-redraw.c:1161,1
    - Dst: options_get_number
      Src: /src/tmux/screen-redraw.c:1162,1
    - Dst: TAILQ_FOREACH_REVERSE
      Src: /src/tmux/screen-redraw.c:1165,1
    - Dst: window_pane_visible
      Src: /src/tmux/screen-redraw.c:1174,1
    - Dst: window_pane_show_scrollbar
      Src: /src/tmux/screen-redraw.c:1182,1
    - Dst: server_client_ensure_ranges
      Src: /src/tmux/screen-redraw.c:1234,1
    - Dst: memcpy
      Src: /src/tmux/screen-redraw.c:1236,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 80
    argCount: 5
    argNames:
    - base_wp
    - px
    - py
    - width
    - r
    argTypes:
    - struct window_pane*
    - u_int
    - u_int
    - u_int
    - struct visible_ranges*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1122
    functionDepth: 4
    functionLinenumber: 1122
    functionLinenumberEnd: 1260
    functionName: screen_redraw_get_visible_ranges
    functionSourceFile: /src/tmux/screen-redraw.c
    functionUses: 1
    functionsReached:
    - xcalloc
    - TAILQ_FOREACH_REVERSE
    - window_pane_visible
    - memcpy
    - window_pane_show_scrollbar
    - server_client_ensure_ranges
    - options_get_number
    linkageType: ''
    returnType: struct visible_ranges
    signature: "struct visible_ranges *\nscreen_redraw_get_visible_ranges(struct window_pane
      *base_wp, u_int px,\n    u_int py, u_int width, struct visible_ranges *r)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_stop_sync
      Src: /src/tmux/screen-redraw.c:1303,1
    - Dst: log_debug
      Src: /src/tmux/screen-redraw.c:1305,1
    - Dst: tty_check_overlay_range
      Src: /src/tmux/screen-redraw.c:1347,1
    - Dst: screen_redraw_get_visible_ranges
      Src: /src/tmux/screen-redraw.c:1348,1
    - Dst: tty_default_colours
      Src: /src/tmux/screen-redraw.c:1349,1
    - Dst: log_debug
      Src: /src/tmux/screen-redraw.c:1354,1
    - Dst: tty_draw_line
      Src: /src/tmux/screen-redraw.c:1359,1
    - Dst: tty_draw_images
      Src: /src/tmux/screen-redraw.c:1365,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 2
    argNames:
    - ctx
    - wp
    argTypes:
    - struct screen_redraw_ctx*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1263
    functionDepth: 6
    functionLinenumber: 1263
    functionLinenumberEnd: 1367
    functionName: screen_redraw_draw_pane
    functionSourceFile: /src/tmux/screen-redraw.c
    functionUses: 2
    functionsReached:
    - screen_redraw_get_visible_ranges
    - tty_check_overlay_range
    - tty_draw_images
    - log_debug
    - tty_default_colours
    - screen_write_stop_sync
    - tty_draw_line
    linkageType: ''
    returnType: void
    signature: void screen_redraw_draw_pane(struct screen_redraw_ctx *ctx, struct
      window_pane *wp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/screen-redraw.c:1377,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/screen-redraw.c:1379,1
    - Dst: window_pane_show_scrollbar
      Src: /src/tmux/screen-redraw.c:1380,1
    - Dst: window_pane_visible
      Src: /src/tmux/screen-redraw.c:1381,1
    - Dst: screen_redraw_draw_pane_scrollbar
      Src: /src/tmux/screen-redraw.c:1382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct screen_redraw_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1370
    functionDepth: 3
    functionLinenumber: 1370
    functionLinenumberEnd: 1384
    functionName: screen_redraw_draw_pane_scrollbars
    functionSourceFile: /src/tmux/screen-redraw.c
    functionUses: 1
    functionsReached:
    - TAILQ_FOREACH
    - window_pane_visible
    - log_debug
    - window_pane_show_scrollbar
    - screen_redraw_draw_pane_scrollbar
    linkageType: ''
    returnType: void
    signature: void screen_redraw_draw_pane_scrollbars(struct screen_redraw_ctx *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: window_pane_mode
      Src: /src/tmux/screen-redraw.c:1400,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-redraw.c:1404,1
    - Dst: screen_hsize
      Src: /src/tmux/screen-redraw.c:1404,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/screen-redraw.c:1409,1
    - Dst: window_copy_get_current_offset
      Src: /src/tmux/screen-redraw.c:1411,1
    - Dst: screen_redraw_draw_scrollbar
      Src: /src/tmux/screen-redraw.c:1429,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - ctx
    - wp
    argTypes:
    - struct screen_redraw_ctx*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1387
    functionDepth: 2
    functionLinenumber: 1387
    functionLinenumberEnd: 1435
    functionName: screen_redraw_draw_pane_scrollbar
    functionSourceFile: /src/tmux/screen-redraw.c
    functionUses: 2
    functionsReached:
    - screen_size_y
    - screen_redraw_draw_scrollbar
    - TAILQ_FIRST
    - screen_hsize
    - window_pane_mode
    - window_copy_get_current_offset
    linkageType: ''
    returnType: void
    signature: "void screen_redraw_draw_pane_scrollbar(struct screen_redraw_ctx *ctx,\n
      \   struct window_pane *wp)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/screen-redraw.c:1469,1
    - Dst: tty_check_overlay_range
      Src: /src/tmux/screen-redraw.c:1522,1
    - Dst: screen_redraw_get_visible_ranges
      Src: /src/tmux/screen-redraw.c:1523,1
    - Dst: screen_redraw_is_visible
      Src: /src/tmux/screen-redraw.c:1531,1
    - Dst: tty_cursor
      Src: /src/tmux/screen-redraw.c:1533,1
    - Dst: tty_cell
      Src: /src/tmux/screen-redraw.c:1538,1
    - Dst: tty_cell
      Src: /src/tmux/screen-redraw.c:1545,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 68
    argCount: 8
    argNames:
    - ctx
    - wp
    - sb_pos
    - sb_x
    - sb_y
    - sb_h
    - slider_h
    - slider_y
    argTypes:
    - struct screen_redraw_ctx*
    - struct window_pane*
    - int
    - int
    - int
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1438
    functionDepth: 5
    functionLinenumber: 1438
    functionLinenumberEnd: 1550
    functionName: screen_redraw_draw_scrollbar
    functionSourceFile: /src/tmux/screen-redraw.c
    functionUses: 1
    functionsReached:
    - screen_redraw_get_visible_ranges
    - tty_check_overlay_range
    - tty_cursor
    - memcpy
    - tty_cell
    - screen_redraw_is_visible
    linkageType: ''
    returnType: void
    signature: "void screen_redraw_draw_scrollbar(struct screen_redraw_ctx *ctx,\n
      \   struct window_pane *wp, int sb_pos, int sb_x, int sb_y, u_int sb_h,\n    u_int
      slider_h, u_int slider_y)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - cw1
    - cw2
    argTypes:
    - struct client_window*
    - struct client_window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: server_client_window_cmp
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int server_client_window_cmp(struct client_window *cw1,\n    struct
      client_window *cw2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-client.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: server_client_how_many
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 2
    functionsReached:
    - TAILQ_FOREACH
    linkageType: ''
    returnType: u_int
    signature: u_int server_client_how_many(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: server_client_clear_overlay
      Src: /src/tmux/server-client.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - int
    - events
    - data
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: server_client_overlay_timer
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 0
    functionsReached:
    - server_client_clear_overlay
    linkageType: ''
    returnType: void
    signature: void server_client_overlay_timer(__unused int fd, __unused short events,
      void *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: server_client_clear_overlay
      Src: /src/tmux/server-client.c:98,1
    - Dst: event_initialized
      Src: /src/tmux/server-client.c:103,1
    - Dst: evtimer_del
      Src: /src/tmux/server-client.c:104,1
    - Dst: evtimer_set
      Src: /src/tmux/server-client.c:105,1
    - Dst: evtimer_add
      Src: /src/tmux/server-client.c:107,1
    - Dst: window_update_focus
      Src: /src/tmux/server-client.c:121,1
    - Dst: server_redraw_client
      Src: /src/tmux/server-client.c:122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 9
    argNames:
    - c
    - delay
    - checkcb
    - modecb
    - drawcb
    - keycb
    - freecb
    - resizecb
    - data
    argTypes:
    - struct client*
    - u_int
    - overlay_check_cb
    - overlay_mode_cb
    - overlay_draw_cb
    - overlay_key_cb
    - overlay_free_cb
    - overlay_resize_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 123
    functionName: server_client_set_overlay
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 3
    functionsReached:
    - evtimer_add
    - evtimer_del
    - window_update_focus
    - evtimer_set
    - server_redraw_client
    - event_initialized
    - server_client_clear_overlay
    linkageType: ''
    returnType: void
    signature: "void server_client_set_overlay(struct client *c, u_int delay,\n    overlay_check_cb
      checkcb, overlay_mode_cb modecb,\n    overlay_draw_cb drawcb, overlay_key_cb
      keycb, overlay_free_cb freecb,\n    overlay_resize_cb resizecb, void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: event_initialized
      Src: /src/tmux/server-client.c:132,1
    - Dst: evtimer_del
      Src: /src/tmux/server-client.c:133,1
    - Dst: struct client*::overlay_free
      Src: /src/tmux/server-client.c:136,1
    - Dst: window_update_focus
      Src: /src/tmux/server-client.c:148,1
    - Dst: server_redraw_client
      Src: /src/tmux/server-client.c:149,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 150
    functionName: server_client_clear_overlay
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 5
    functionsReached:
    - evtimer_del
    - window_update_focus
    - struct client*::overlay_free
    - server_redraw_client
    - event_initialized
    linkageType: ''
    returnType: void
    signature: void server_client_clear_overlay(struct client *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct visible_ranges*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 163
    functionName: server_client_ranges_is_empty
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int server_client_ranges_is_empty(struct visible_ranges *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xrecallocarray
      Src: /src/tmux/server-client.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - r
    - n
    argTypes:
    - struct visible_ranges*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 173
    functionName: server_client_ensure_ranges
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 3
    functionsReached:
    - xrecallocarray
    linkageType: ''
    returnType: void
    signature: void server_client_ensure_ranges(struct visible_ranges *r, u_int n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: server_client_ensure_ranges
      Src: /src/tmux/server-client.c:187,1
    - Dst: server_client_ensure_ranges
      Src: /src/tmux/server-client.c:193,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 8
    argNames:
    - x
    - y
    - sx
    - sy
    - px
    - py
    - nx
    - r
    argTypes:
    - u_int
    - u_int
    - u_int
    - u_int
    - u_int
    - u_int
    - u_int
    - struct visible_ranges*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 219
    functionName: server_client_overlay_range
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 2
    functionsReached:
    - server_client_ensure_ranges
    linkageType: ''
    returnType: void
    signature: "void server_client_overlay_range(u_int x, u_int y, u_int sx, u_int
      sy, u_int px,\n    u_int py, u_int nx, struct visible_ranges *r)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: environ_find
      Src: /src/tmux/server-client.c:228,1
    - Dst: RB_FOREACH
      Src: /src/tmux/server-client.c:232,1
    - Dst: strcmp
      Src: /src/tmux/server-client.c:233,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 237
    functionName: server_client_check_nested
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 2
    functionsReached:
    - RB_FOREACH
    - environ_find
    - strcmp
    linkageType: ''
    returnType: int
    signature: int server_client_check_nested(struct client *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: server_client_get_key_table
      Src: /src/tmux/server-client.c:244,1
    - Dst: key_bindings_unref_table
      Src: /src/tmux/server-client.c:246,1
    - Dst: key_bindings_get_table
      Src: /src/tmux/server-client.c:247,1
    - Dst: gettimeofday
      Src: /src/tmux/server-client.c:249,1
    - Dst: fatal
      Src: /src/tmux/server-client.c:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - c
    - name
    argTypes:
    - struct client*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 240
    functionDepth: 5
    functionLinenumber: 240
    functionLinenumberEnd: 251
    functionName: server_client_set_key_table
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 5
    functionsReached:
    - key_bindings_unref_table
    - fatal
    - gettimeofday
    - key_bindings_get_table
    - server_client_get_key_table
    linkageType: ''
    returnType: void
    signature: void server_client_set_key_table(struct client *c, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: timersub
      Src: /src/tmux/server-client.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 260
    functionName: server_client_key_table_activity_diff
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 0
    functionsReached:
    - timersub
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t server_client_key_table_activity_diff(struct client *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: options_get_string
      Src: /src/tmux/server-client.c:272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 263
    functionDepth: 4
    functionLinenumber: 263
    functionLinenumberEnd: 276
    functionName: server_client_get_key_table
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 1
    functionsReached:
    - options_get_string
    linkageType: ''
    returnType: char
    signature: 'char *

      server_client_get_key_table(struct client *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/server-client.c:282,1
    - Dst: server_client_get_key_table
      Src: /src/tmux/server-client.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - table
    argTypes:
    - struct client*
    - struct key_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 279
    functionDepth: 5
    functionLinenumber: 279
    functionLinenumberEnd: 283
    functionName: server_client_is_default_key_table
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 0
    functionsReached:
    - server_client_get_key_table
    - strcmp
    linkageType: ''
    returnType: int
    signature: int server_client_is_default_key_table(struct client *c, struct key_table
      *table)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setblocking
      Src: /src/tmux/server-client.c:291,1
    - Dst: xcalloc
      Src: /src/tmux/server-client.c:293,1
    - Dst: proc_add_peer
      Src: /src/tmux/server-client.c:295,1
    - Dst: gettimeofday
      Src: /src/tmux/server-client.c:297,1
    - Dst: fatal
      Src: /src/tmux/server-client.c:298,1
    - Dst: memcpy
      Src: /src/tmux/server-client.c:299,1
    - Dst: environ_create
      Src: /src/tmux/server-client.c:301,1
    - Dst: cmdq_new
      Src: /src/tmux/server-client.c:306,1
    - Dst: RB_INIT
      Src: /src/tmux/server-client.c:307,1
    - Dst: RB_INIT
      Src: /src/tmux/server-client.c:308,1
    - Dst: status_init
      Src: /src/tmux/server-client.c:314,1
    - Dst: key_bindings_get_table
      Src: /src/tmux/server-client.c:317,1
    - Dst: evtimer_set
      Src: /src/tmux/server-client.c:320,1
    - Dst: evtimer_set
      Src: /src/tmux/server-client.c:321,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/server-client.c:325,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/server-client.c:327,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 286
    functionDepth: 4
    functionLinenumber: 286
    functionLinenumberEnd: 330
    functionName: server_client_create
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 2
    functionsReached:
    - RB_INIT
    - proc_add_peer
    - log_debug
    - fatal
    - status_init
    - xcalloc
    - TAILQ_INIT
    - cmdq_new
    - gettimeofday
    - memcpy
    - key_bindings_get_table
    - evtimer_set
    - setblocking
    - environ_create
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: struct client
    signature: 'struct client *

      server_client_create(int fd)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/server-client.c:341,1
    - Dst: isatty
      Src: /src/tmux/server-client.c:342,1
    - Dst: ttyname
      Src: /src/tmux/server-client.c:343,1
    - Dst: strcmp
      Src: /src/tmux/server-client.c:344,1
    - Dst: isatty
      Src: /src/tmux/server-client.c:345,1
    - Dst: ttyname
      Src: /src/tmux/server-client.c:346,1
    - Dst: strcmp
      Src: /src/tmux/server-client.c:347,1
    - Dst: isatty
      Src: /src/tmux/server-client.c:348,1
    - Dst: ttyname
      Src: /src/tmux/server-client.c:349,1
    - Dst: strcmp
      Src: /src/tmux/server-client.c:350,1
    - Dst: xasprintf
      Src: /src/tmux/server-client.c:351,1
    - Dst: xstrdup
      Src: /src/tmux/server-client.c:356,1
    - Dst: tty_open
      Src: /src/tmux/server-client.c:360,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 14
    argCount: 2
    argNames:
    - c
    - cause
    argTypes:
    - struct client*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 364
    functionName: server_client_open
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 2
    functionsReached:
    - xasprintf
    - ttyname
    - strcmp
    - tty_open
    - isatty
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int server_client_open(struct client *c, char **cause)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/server-client.c:375,1
    - Dst: RB_FOREACH
      Src: /src/tmux/server-client.c:381,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-client.c:386,1
    - Dst: timercmp
      Src: /src/tmux/server-client.c:390,1
    - Dst: server_client_update_latest
      Src: /src/tmux/server-client.c:395,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 367
    functionDepth: 3
    functionLinenumber: 367
    functionLinenumberEnd: 397
    functionName: server_client_attached_lost
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH
    - RB_FOREACH
    - server_client_update_latest
    - timercmp
    - log_debug
    linkageType: ''
    returnType: void
    signature: void server_client_attached_lost(struct client *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: window_update_focus
      Src: /src/tmux/server-client.c:413,1
    - Dst: recalculate_sizes
      Src: /src/tmux/server-client.c:416,1
    - Dst: window_update_focus
      Src: /src/tmux/server-client.c:417,1
    - Dst: session_update_activity
      Src: /src/tmux/server-client.c:418,1
    - Dst: session_theme_changed
      Src: /src/tmux/server-client.c:419,1
    - Dst: gettimeofday
      Src: /src/tmux/server-client.c:420,1
    - Dst: alerts_check_session
      Src: /src/tmux/server-client.c:422,1
    - Dst: tty_update_client_offset
      Src: /src/tmux/server-client.c:423,1
    - Dst: status_timer_start
      Src: /src/tmux/server-client.c:424,1
    - Dst: notify_client
      Src: /src/tmux/server-client.c:425,1
    - Dst: server_redraw_client
      Src: /src/tmux/server-client.c:426,1
    - Dst: server_check_unattached
      Src: /src/tmux/server-client.c:429,1
    - Dst: server_update_socket
      Src: /src/tmux/server-client.c:430,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - struct client*
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 400
    functionDepth: 6
    functionLinenumber: 400
    functionLinenumberEnd: 431
    functionName: server_client_set_session
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 4
    functionsReached:
    - status_timer_start
    - tty_update_client_offset
    - session_update_activity
    - recalculate_sizes
    - notify_client
    - server_update_socket
    - window_update_focus
    - server_check_unattached
    - gettimeofday
    - alerts_check_session
    - session_theme_changed
    - server_redraw_client
    linkageType: ''
    returnType: void
    signature: void server_client_set_session(struct client *c, struct session *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: server_client_clear_overlay
      Src: /src/tmux/server-client.c:442,1
    - Dst: status_prompt_clear
      Src: /src/tmux/server-client.c:443,1
    - Dst: status_message_clear
      Src: /src/tmux/server-client.c:444,1
    - Dst: RB_FOREACH_SAFE
      Src: /src/tmux/server-client.c:446,1
    - Dst: file_fire_done
      Src: /src/tmux/server-client.c:448,1
    - Dst: RB_FOREACH_SAFE
      Src: /src/tmux/server-client.c:450,1
    - Dst: RB_REMOVE
      Src: /src/tmux/server-client.c:451,1
    - Dst: free
      Src: /src/tmux/server-client.c:452,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/server-client.c:455,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:456,1
    - Dst: server_client_attached_lost
      Src: /src/tmux/server-client.c:459,1
    - Dst: notify_client
      Src: /src/tmux/server-client.c:460,1
    - Dst: control_stop
      Src: /src/tmux/server-client.c:464,1
    - Dst: tty_free
      Src: /src/tmux/server-client.c:466,1
    - Dst: free
      Src: /src/tmux/server-client.c:467,1
    - Dst: free
      Src: /src/tmux/server-client.c:468,1
    - Dst: free
      Src: /src/tmux/server-client.c:470,1
    - Dst: free
      Src: /src/tmux/server-client.c:471,1
    - Dst: tty_term_free_list
      Src: /src/tmux/server-client.c:472,1
    - Dst: status_free
      Src: /src/tmux/server-client.c:474,1
    - Dst: input_cancel_requests
      Src: /src/tmux/server-client.c:475,1
    - Dst: free
      Src: /src/tmux/server-client.c:477,1
    - Dst: free
      Src: /src/tmux/server-client.c:478,1
    - Dst: evtimer_del
      Src: /src/tmux/server-client.c:480,1
    - Dst: evtimer_del
      Src: /src/tmux/server-client.c:481,1
    - Dst: key_bindings_unref_table
      Src: /src/tmux/server-client.c:483,1
    - Dst: free
      Src: /src/tmux/server-client.c:485,1
    - Dst: event_initialized
      Src: /src/tmux/server-client.c:486,1
    - Dst: evtimer_del
      Src: /src/tmux/server-client.c:487,1
    - Dst: free
      Src: /src/tmux/server-client.c:489,1
    - Dst: free
      Src: /src/tmux/server-client.c:490,1
    - Dst: free
      Src: /src/tmux/server-client.c:491,1
    - Dst: format_lost_client
      Src: /src/tmux/server-client.c:493,1
    - Dst: environ_free
      Src: /src/tmux/server-client.c:494,1
    - Dst: proc_remove_peer
      Src: /src/tmux/server-client.c:496,1
    - Dst: close
      Src: /src/tmux/server-client.c:500,1
    - Dst: close
      Src: /src/tmux/server-client.c:502,1
    - Dst: server_client_unref
      Src: /src/tmux/server-client.c:505,1
    - Dst: server_add_accept
      Src: /src/tmux/server-client.c:507,1
    - Dst: recalculate_sizes
      Src: /src/tmux/server-client.c:509,1
    - Dst: server_check_unattached
      Src: /src/tmux/server-client.c:510,1
    - Dst: server_update_socket
      Src: /src/tmux/server-client.c:511,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 56
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 434
    functionDepth: 7
    functionLinenumber: 434
    functionLinenumberEnd: 512
    functionName: server_client_lost
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 2
    functionsReached:
    - proc_remove_peer
    - tty_term_free_list
    - server_update_socket
    - server_client_attached_lost
    - status_prompt_clear
    - notify_client
    - event_initialized
    - RB_REMOVE
    - control_stop
    - recalculate_sizes
    - server_check_unattached
    - status_message_clear
    - log_debug
    - close
    - input_cancel_requests
    - file_fire_done
    - RB_FOREACH_SAFE
    - TAILQ_REMOVE
    - environ_free
    - key_bindings_unref_table
    - evtimer_del
    - server_client_unref
    - server_add_accept
    - free
    - tty_free
    - format_lost_client
    - status_free
    - server_client_clear_overlay
    linkageType: ''
    returnType: void
    signature: void server_client_lost(struct client *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/server-client.c:518,1
    - Dst: event_once
      Src: /src/tmux/server-client.c:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 515
    functionDepth: 3
    functionLinenumber: 515
    functionLinenumberEnd: 523
    functionName: server_client_unref
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 8
    functionsReached:
    - log_debug
    - event_once
    linkageType: ''
    returnType: void
    signature: void server_client_unref(struct client *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/server-client.c:531,1
    - Dst: cmdq_free
      Src: /src/tmux/server-client.c:533,1
    - Dst: free
      Src: /src/tmux/server-client.c:536,1
    - Dst: free
      Src: /src/tmux/server-client.c:537,1
    - Dst: free
      Src: /src/tmux/server-client.c:538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - int
    - events
    - arg
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 526
    functionDepth: 3
    functionLinenumber: 526
    functionLinenumberEnd: 540
    functionName: server_client_free
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 0
    functionsReached:
    - log_debug
    - free
    - cmdq_free
    linkageType: ''
    returnType: void
    signature: void server_client_free(__unused int fd, __unused short events, void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_stop_tty
      Src: /src/tmux/server-client.c:551,1
    - Dst: proc_send
      Src: /src/tmux/server-client.c:553,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 543
    functionDepth: 3
    functionLinenumber: 543
    functionLinenumberEnd: 554
    functionName: server_client_suspend
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 1
    functionsReached:
    - proc_send
    - tty_stop_tty
    linkageType: ''
    returnType: void
    signature: void server_client_suspend(struct client *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/server-client.c:569,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - c
    - msgtype
    argTypes:
    - struct client*
    - enum msgtype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 557
    functionDepth: 2
    functionLinenumber: 557
    functionLinenumberEnd: 570
    functionName: server_client_detach
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 2
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void server_client_detach(struct client *c, enum msgtype msgtype)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/tmux/server-client.c:583,1
    - Dst: options_get_string
      Src: /src/tmux/server-client.c:586,1
    - Dst: options_get_string
      Src: /src/tmux/server-client.c:588,1
    - Dst: checkshell
      Src: /src/tmux/server-client.c:589,1
    - Dst: strlen
      Src: /src/tmux/server-client.c:591,1
    - Dst: xmalloc
      Src: /src/tmux/server-client.c:593,1
    - Dst: memcpy
      Src: /src/tmux/server-client.c:594,1
    - Dst: memcpy
      Src: /src/tmux/server-client.c:595,1
    - Dst: proc_send
      Src: /src/tmux/server-client.c:597,1
    - Dst: free
      Src: /src/tmux/server-client.c:598,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - c
    - cmd
    argTypes:
    - struct client*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 573
    functionDepth: 4
    functionLinenumber: 573
    functionLinenumberEnd: 599
    functionName: server_client_exec
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 0
    functionsReached:
    - proc_send
    - xmalloc
    - checkshell
    - free
    - memcpy
    - strlen
    - options_get_string
    linkageType: ''
    returnType: void
    signature: void server_client_exec(struct client *c, const char *cmd)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/server-client.c:612,1
    - Dst: options_get_number
      Src: /src/tmux/server-client.c:613,1
    - Dst: options_get_number
      Src: /src/tmux/server-client.c:614,1
    - Dst: window_pane_show_scrollbar
      Src: /src/tmux/server-client.c:616,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-client.c:670,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 67
    argCount: 4
    argNames:
    - wp
    - px
    - py
    - sl_mpos
    argTypes:
    - struct window_pane*
    - int
    - int
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 601
    functionDepth: 4
    functionLinenumber: 601
    functionLinenumberEnd: 710
    functionName: server_client_check_mouse_in_pane
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 0
    functionsReached:
    - window_pane_show_scrollbar
    - options_get_number
    - TAILQ_FOREACH
    linkageType: ''
    returnType: enum key_code_mouse_location
    signature: "enum key_code_mouse_location server_client_check_mouse_in_pane(struct
      window_pane *wp, int px, int py,\n    u_int *sl_mpos)"
  - BBCount: 68
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/server-client.c:730,1
    - Dst: window_pane_find_by_id
      Src: /src/tmux/server-client.c:735,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:737,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:745,1
    - Dst: MOUSE_DRAG
      Src: /src/tmux/server-client.c:747,1
    - Dst: MOUSE_RELEASE
      Src: /src/tmux/server-client.c:748,1
    - Dst: MOUSE_DRAG
      Src: /src/tmux/server-client.c:750,1
    - Dst: MOUSE_RELEASE
      Src: /src/tmux/server-client.c:751,1
    - Dst: MOUSE_RELEASE
      Src: /src/tmux/server-client.c:752,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:755,1
    - Dst: MOUSE_DRAG
      Src: /src/tmux/server-client.c:756,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:762,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:765,1
    - Dst: MOUSE_WHEEL
      Src: /src/tmux/server-client.c:767,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:773,1
    - Dst: MOUSE_RELEASE
      Src: /src/tmux/server-client.c:774,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:779,1
    - Dst: evtimer_del
      Src: /src/tmux/server-client.c:782,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:786,1
    - Dst: evtimer_del
      Src: /src/tmux/server-client.c:789,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:793,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:801,1
    - Dst: status_at_line
      Src: /src/tmux/server-client.c:817,1
    - Dst: status_line_size
      Src: /src/tmux/server-client.c:818,1
    - Dst: status_get_range
      Src: /src/tmux/server-client.c:822,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:830,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:834,1
    - Dst: window_pane_find_by_id
      Src: /src/tmux/server-client.c:838,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:843,1
    - Dst: winlink_find_by_index
      Src: /src/tmux/server-client.c:847,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:853,1
    - Dst: session_find_by_id
      Src: /src/tmux/server-client.c:857,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:862,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:866,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:871,1
    - Dst: tty_window_offset
      Src: /src/tmux/server-client.c:898,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:899,1
    - Dst: window_get_active_at
      Src: /src/tmux/server-client.c:911,1
    - Dst: server_client_check_mouse_in_pane
      Src: /src/tmux/server-client.c:915,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:919,1
    - Dst: window_pane_border_status_get_range
      Src: /src/tmux/server-client.c:922,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:928,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:932,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:949,1
    - Dst: memcpy
      Src: /src/tmux/server-client.c:955,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:960,1
    - Dst: evtimer_del
      Src: /src/tmux/server-client.c:963,1
    - Dst: evtimer_add
      Src: /src/tmux/server-client.c:964,1
    - Dst: struct client*::tty::mouse_drag_release
      Src: /src/tmux/server-client.c:978,1
    - Dst: options_get_number
      Src: /src/tmux/server-client.c:999,1
    - Dst: window_redraw_active_switch
      Src: /src/tmux/server-client.c:1000,1
    - Dst: window_set_active_pane
      Src: /src/tmux/server-client.c:1001,1
    - Dst: server_redraw_window_borders
      Src: /src/tmux/server-client.c:1002,1
    - Dst: server_status_window
      Src: /src/tmux/server-client.c:1003,1
    - Dst: MOUSE_BUTTONS
      Src: /src/tmux/server-client.c:1016,1
    - Dst: window_get_active_at
      Src: /src/tmux/server-client.c:1020,1
    - Dst: MOUSE_BUTTONS
      Src: /src/tmux/server-client.c:1037,1
    - Dst: MOUSE_BUTTONS
      Src: /src/tmux/server-client.c:1039,1
    - Dst: MOUSE_BUTTONS
      Src: /src/tmux/server-client.c:1041,1
    - Dst: MOUSE_BUTTONS
      Src: /src/tmux/server-client.c:1043,1
    - Dst: MOUSE_BUTTONS
      Src: /src/tmux/server-client.c:1045,1
    - Dst: MOUSE_BUTTONS
      Src: /src/tmux/server-client.c:1047,1
    - Dst: MOUSE_BUTTONS
      Src: /src/tmux/server-client.c:1049,1
    - Dst: MOUSE_BUTTONS
      Src: /src/tmux/server-client.c:1051,1
    - Dst: MOUSE_BUTTONS
      Src: /src/tmux/server-client.c:1053,1
    - Dst: KEYC_MAKE_MOUSE_KEY
      Src: /src/tmux/server-client.c:1057,1
    - Dst: log_get_level
      Src: /src/tmux/server-client.c:1068,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:1069,1
    - Dst: key_string_lookup_key
      Src: /src/tmux/server-client.c:1069,1
    CyclomaticComplexity: 98
    EdgeCount: 98
    ICount: 264
    argCount: 2
    argNames:
    - c
    - event
    argTypes:
    - struct client*
    - struct key_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 713
    functionDepth: 5
    functionLinenumber: 713
    functionLinenumberEnd: 1071
    functionName: server_client_check_mouse
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 0
    functionsReached:
    - tty_window_offset
    - evtimer_add
    - MOUSE_WHEEL
    - window_get_active_at
    - window_redraw_active_switch
    - server_client_check_mouse_in_pane
    - status_get_range
    - KEYC_MAKE_MOUSE_KEY
    - status_at_line
    - log_get_level
    - MOUSE_RELEASE
    - key_string_lookup_key
    - memcpy
    - MOUSE_DRAG
    - log_debug
    - server_status_window
    - status_line_size
    - window_pane_border_status_get_range
    - window_pane_find_by_id
    - winlink_find_by_index
    - server_redraw_window_borders
    - window_set_active_pane
    - session_find_by_id
    - evtimer_del
    - options_get_number
    - struct client*::tty::mouse_drag_release
    - MOUSE_BUTTONS
    linkageType: ''
    returnType: key_code
    signature: key_code server_client_check_mouse(struct client *c, struct key_event
      *event)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/server-client.c:1080,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:1086,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - c
    - key
    argTypes:
    - struct client*
    - key_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1074
    functionDepth: 3
    functionLinenumber: 1074
    functionLinenumberEnd: 1091
    functionName: server_client_is_bracket_paste
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 0
    functionsReached:
    - log_debug
    linkageType: ''
    returnType: int
    signature: int server_client_is_bracket_paste(struct client *c, key_code key)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/server-client.c:1103,1
    - Dst: tty_term_has
      Src: /src/tmux/server-client.c:1105,1
    - Dst: timersub
      Src: /src/tmux/server-client.c:1108,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:1114,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:1119,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1094
    functionDepth: 4
    functionLinenumber: 1094
    functionLinenumberEnd: 1122
    functionName: server_client_is_assume_paste
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 0
    functionsReached:
    - log_debug
    - tty_term_has
    - options_get_number
    - timersub
    linkageType: ''
    returnType: int
    signature: int server_client_is_assume_paste(struct client *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/server-client.c:1138,1
    - Dst: recalculate_size
      Src: /src/tmux/server-client.c:1139,1
    - Dst: notify_client
      Src: /src/tmux/server-client.c:1141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1125
    functionDepth: 7
    functionLinenumber: 1125
    functionLinenumberEnd: 1142
    functionName: server_client_update_latest
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 1
    functionsReached:
    - recalculate_size
    - notify_client
    - options_get_number
    linkageType: ''
    returnType: void
    signature: void server_client_update_latest(struct client *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/server-client.c:1153,1
    - Dst: options_get_number
      Src: /src/tmux/server-client.c:1157,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - c
    - bd
    argTypes:
    - struct client*
    - struct key_binding*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1145
    functionDepth: 4
    functionLinenumber: 1145
    functionLinenumberEnd: 1162
    functionName: server_client_repeat_time
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 0
    functionsReached:
    - options_get_number
    linkageType: ''
    returnType: u_int
    signature: u_int server_client_repeat_time(struct client *c, struct key_binding
      *bd)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get_client
      Src: /src/tmux/server-client.c:1171,1
    - Dst: memcpy
      Src: /src/tmux/server-client.c:1193,1
    - Dst: gettimeofday
      Src: /src/tmux/server-client.c:1195,1
    - Dst: fatal
      Src: /src/tmux/server-client.c:1196,1
    - Dst: session_update_activity
      Src: /src/tmux/server-client.c:1197,1
    - Dst: server_client_check_mouse
      Src: /src/tmux/server-client.c:1204,1
    - Dst: struct client*::tty::mouse_drag_update
      Src: /src/tmux/server-client.c:1216,1
    - Dst: KEYC_IS_MOUSE
      Src: /src/tmux/server-client.c:1223,1
    - Dst: cmd_find_from_mouse
      Src: /src/tmux/server-client.c:1223,1
    - Dst: cmd_find_from_client
      Src: /src/tmux/server-client.c:1224,1
    - Dst: KEYC_IS_MOUSE
      Src: /src/tmux/server-client.c:1228,1
    - Dst: options_get_number
      Src: /src/tmux/server-client.c:1228,1
    - Dst: server_client_is_bracket_paste
      Src: /src/tmux/server-client.c:1232,1
    - Dst: KEYC_IS_MOUSE
      Src: /src/tmux/server-client.c:1236,1
    - Dst: server_client_is_assume_paste
      Src: /src/tmux/server-client.c:1240,1
    - Dst: server_client_is_default_key_table
      Src: /src/tmux/server-client.c:1247,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/server-client.c:1249,1
    - Dst: key_bindings_get_table
      Src: /src/tmux/server-client.c:1251,1
    - Dst: struct window_mode_entry*::mode::key_table
      Src: /src/tmux/server-client.c:1251,1
    - Dst: options_get_number
      Src: /src/tmux/server-client.c:1261,1
    - Dst: options_get_number
      Src: /src/tmux/server-client.c:1262,1
    - Dst: strcmp
      Src: /src/tmux/server-client.c:1266,1
    - Dst: server_client_set_key_table
      Src: /src/tmux/server-client.c:1267,1
    - Dst: server_status_client
      Src: /src/tmux/server-client.c:1268,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:1276,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:1278,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:1280,1
    - Dst: key_bindings_get
      Src: /src/tmux/server-client.c:1282,1
    - Dst: options_get_number
      Src: /src/tmux/server-client.c:1288,1
    - Dst: strcmp
      Src: /src/tmux/server-client.c:1290,1
    - Dst: server_client_key_table_activity_diff
      Src: /src/tmux/server-client.c:1291,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:1299,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:1301,1
    - Dst: server_client_set_key_table
      Src: /src/tmux/server-client.c:1302,1
    - Dst: server_status_client
      Src: /src/tmux/server-client.c:1304,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:1318,1
    - Dst: server_client_set_key_table
      Src: /src/tmux/server-client.c:1320,1
    - Dst: server_status_client
      Src: /src/tmux/server-client.c:1323,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:1326,1
    - Dst: server_client_repeat_time
      Src: /src/tmux/server-client.c:1338,1
    - Dst: evtimer_del
      Src: /src/tmux/server-client.c:1345,1
    - Dst: evtimer_add
      Src: /src/tmux/server-client.c:1346,1
    - Dst: server_client_set_key_table
      Src: /src/tmux/server-client.c:1349,1
    - Dst: server_status_client
      Src: /src/tmux/server-client.c:1351,1
    - Dst: key_bindings_dispatch
      Src: /src/tmux/server-client.c:1354,1
    - Dst: key_bindings_unref_table
      Src: /src/tmux/server-client.c:1355,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:1383,1
    - Dst: server_client_is_default_key_table
      Src: /src/tmux/server-client.c:1384,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:1386,1
    - Dst: server_client_set_key_table
      Src: /src/tmux/server-client.c:1387,1
    - Dst: server_status_client
      Src: /src/tmux/server-client.c:1392,1
    - Dst: server_client_set_key_table
      Src: /src/tmux/server-client.c:1401,1
    - Dst: server_status_client
      Src: /src/tmux/server-client.c:1402,1
    - Dst: KEYC_IS_MOUSE
      Src: /src/tmux/server-client.c:1409,1
    - Dst: KEYC_IS_PASTE
      Src: /src/tmux/server-client.c:1410,1
    - Dst: options_get_number
      Src: /src/tmux/server-client.c:1411,1
    - Dst: options_set_number
      Src: /src/tmux/server-client.c:1412,1
    - Dst: server_destroy_pane
      Src: /src/tmux/server-client.c:1413,1
    - Dst: window_pane_key
      Src: /src/tmux/server-client.c:1419,1
    - Dst: window_pane_paste
      Src: /src/tmux/server-client.c:1426,1
    - Dst: server_client_update_latest
      Src: /src/tmux/server-client.c:1432,1
    - Dst: free
      Src: /src/tmux/server-client.c:1433,1
    - Dst: free
      Src: /src/tmux/server-client.c:1434,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 164
    argCount: 2
    argNames:
    - item
    - data
    argTypes:
    - struct cmdq_item*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1168
    functionDepth: 8
    functionLinenumber: 1168
    functionLinenumberEnd: 1436
    functionName: server_client_key_callback
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 0
    functionsReached:
    - evtimer_add
    - server_client_is_bracket_paste
    - server_client_is_assume_paste
    - server_status_client
    - window_pane_paste
    - key_bindings_dispatch
    - server_destroy_pane
    - struct client*::tty::mouse_drag_update
    - cmdq_get_client
    - server_client_set_key_table
    - cmd_find_from_client
    - KEYC_IS_PASTE
    - fatal
    - key_bindings_get
    - window_pane_key
    - memcpy
    - log_debug
    - options_get_number
    - server_client_key_table_activity_diff
    - session_update_activity
    - TAILQ_FIRST
    - server_client_update_latest
    - server_client_is_default_key_table
    - gettimeofday
    - key_bindings_get_table
    - cmd_find_from_mouse
    - server_client_check_mouse
    - KEYC_IS_MOUSE
    - key_bindings_unref_table
    - evtimer_del
    - strcmp
    - server_client_repeat_time
    - free
    - options_set_number
    - struct window_mode_entry*::mode::key_table
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval server_client_key_callback(struct cmdq_item *item,
      void *data)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: server_client_report_theme
      Src: /src/tmux/server-client.c:1454,1
    - Dst: server_client_report_theme
      Src: /src/tmux/server-client.c:1458,1
    - Dst: status_message_clear
      Src: /src/tmux/server-client.c:1471,1
    - Dst: struct client*::overlay_key
      Src: /src/tmux/server-client.c:1474,1
    - Dst: server_client_clear_overlay
      Src: /src/tmux/server-client.c:1478,1
    - Dst: server_client_clear_overlay
      Src: /src/tmux/server-client.c:1482,1
    - Dst: status_prompt_key
      Src: /src/tmux/server-client.c:1484,1
    - Dst: cmdq_get_callback
      Src: /src/tmux/server-client.c:1493,1
    - Dst: cmdq_append
      Src: /src/tmux/server-client.c:1494,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - c
    - event
    argTypes:
    - struct client*
    - struct key_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1439
    functionDepth: 8
    functionLinenumber: 1439
    functionLinenumberEnd: 1496
    functionName: server_client_handle_key
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 2
    functionsReached:
    - cmdq_get_callback
    - server_client_report_theme
    - cmdq_append
    - status_prompt_key
    - struct client*::overlay_key
    - status_message_clear
    - server_client_clear_overlay
    linkageType: ''
    returnType: int
    signature: int server_client_handle_key(struct client *c, struct key_event *event)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/server-client.c:1508,1
    - Dst: server_client_check_window_resize
      Src: /src/tmux/server-client.c:1509,1
    - Dst: RB_FOREACH
      Src: /src/tmux/server-client.c:1512,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-client.c:1513,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/server-client.c:1515,1
    - Dst: struct window_mode_entry*::mode::style_changed
      Src: /src/tmux/server-client.c:1518,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-client.c:1524,1
    - Dst: server_client_check_exit
      Src: /src/tmux/server-client.c:1525,1
    - Dst: server_client_check_modes
      Src: /src/tmux/server-client.c:1527,1
    - Dst: server_client_check_redraw
      Src: /src/tmux/server-client.c:1528,1
    - Dst: server_client_reset_state
      Src: /src/tmux/server-client.c:1529,1
    - Dst: RB_FOREACH
      Src: /src/tmux/server-client.c:1537,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-client.c:1538,1
    - Dst: server_client_check_pane_resize
      Src: /src/tmux/server-client.c:1540,1
    - Dst: server_client_check_pane_buffer
      Src: /src/tmux/server-client.c:1541,1
    - Dst: check_window_name
      Src: /src/tmux/server-client.c:1545,1
    - Dst: RB_FOREACH
      Src: /src/tmux/server-client.c:1549,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-client.c:1550,1
    - Dst: window_pane_send_theme_update
      Src: /src/tmux/server-client.c:1551,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1499
    functionDepth: 4
    functionLinenumber: 1499
    functionLinenumberEnd: 1553
    functionName: server_client_loop
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 1
    functionsReached:
    - TAILQ_FOREACH
    - server_client_check_exit
    - server_client_reset_state
    - struct window_mode_entry*::mode::style_changed
    - TAILQ_FIRST
    - server_client_check_redraw
    - server_client_check_pane_resize
    - RB_FOREACH
    - server_client_check_window_resize
    - server_client_check_modes
    - server_client_check_pane_buffer
    - check_window_name
    - window_pane_send_theme_update
    linkageType: ''
    returnType: void
    signature: void server_client_loop(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-client.c:1564,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:1571,1
    - Dst: resize_window
      Src: /src/tmux/server-client.c:1572,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - w
    argTypes:
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1556
    functionDepth: 6
    functionLinenumber: 1556
    functionLinenumberEnd: 1573
    functionName: server_client_check_window_resize
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 1
    functionsReached:
    - log_debug
    - resize_window
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void server_client_check_window_resize(struct window *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/server-client.c:1581,1
    - Dst: evtimer_del
      Src: /src/tmux/server-client.c:1582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - int
    - events
    - data
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1576
    functionDepth: 3
    functionLinenumber: 1576
    functionLinenumberEnd: 1583
    functionName: server_client_resize_timer
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 0
    functionsReached:
    - log_debug
    - evtimer_del
    linkageType: ''
    returnType: void
    signature: void server_client_resize_timer(__unused int fd, __unused short events,
      void *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/server-client.c:1595,1
    - Dst: event_initialized
      Src: /src/tmux/server-client.c:1598,1
    - Dst: evtimer_set
      Src: /src/tmux/server-client.c:1599,1
    - Dst: evtimer_pending
      Src: /src/tmux/server-client.c:1600,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:1603,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-client.c:1604,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:1605,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/server-client.c:1622,1
    - Dst: TAILQ_LAST
      Src: /src/tmux/server-client.c:1623,1
    - Dst: window_pane_send_resize
      Src: /src/tmux/server-client.c:1626,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/server-client.c:1627,1
    - Dst: free
      Src: /src/tmux/server-client.c:1628,1
    - Dst: window_pane_send_resize
      Src: /src/tmux/server-client.c:1631,1
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/server-client.c:1632,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/server-client.c:1633,1
    - Dst: free
      Src: /src/tmux/server-client.c:1634,1
    - Dst: TAILQ_PREV
      Src: /src/tmux/server-client.c:1644,1
    - Dst: window_pane_send_resize
      Src: /src/tmux/server-client.c:1645,1
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/server-client.c:1646,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/server-client.c:1649,1
    - Dst: free
      Src: /src/tmux/server-client.c:1650,1
    - Dst: evtimer_add
      Src: /src/tmux/server-client.c:1654,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1586
    functionDepth: 3
    functionLinenumber: 1586
    functionLinenumberEnd: 1655
    functionName: server_client_check_pane_resize
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 1
    functionsReached:
    - evtimer_add
    - log_debug
    - TAILQ_FOREACH
    - TAILQ_PREV
    - TAILQ_FIRST
    - TAILQ_FOREACH_SAFE
    - evtimer_pending
    - window_pane_send_resize
    - free
    - TAILQ_EMPTY
    - TAILQ_LAST
    - event_initialized
    - evtimer_set
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void server_client_check_pane_resize(struct window_pane *wp)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-client.c:1676,1
    - Dst: control_pane_offset
      Src: /src/tmux/server-client.c:1685,1
    - Dst: window_pane_get_new_data
      Src: /src/tmux/server-client.c:1694,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:1695,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:1708,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/server-client.c:1709,1
    - Dst: evbuffer_drain
      Src: /src/tmux/server-client.c:1710,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:1717,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-client.c:1721,1
    - Dst: control_pane_offset
      Src: /src/tmux/server-client.c:1724,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:1739,1
    - Dst: bufferevent_disable
      Src: /src/tmux/server-client.c:1741,1
    - Dst: bufferevent_enable
      Src: /src/tmux/server-client.c:1743,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 54
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1658
    functionDepth: 3
    functionLinenumber: 1658
    functionLinenumberEnd: 1744
    functionName: server_client_check_pane_buffer
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 1
    functionsReached:
    - TAILQ_FOREACH
    - bufferevent_disable
    - control_pane_offset
    - log_debug
    - bufferevent_enable
    - window_pane_get_new_data
    - evbuffer_drain
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: void server_client_check_pane_buffer(struct window_pane *wp)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: server_client_get_pane
      Src: /src/tmux/server-client.c:1760,1
    - Dst: struct client*::overlay_mode
      Src: /src/tmux/server-client.c:1777,1
    - Dst: log_get_level
      Src: /src/tmux/server-client.c:1784,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:1785,1
    - Dst: screen_mode_to_string
      Src: /src/tmux/server-client.c:1786,1
    - Dst: tty_region_off
      Src: /src/tmux/server-client.c:1790,1
    - Dst: tty_margin_off
      Src: /src/tmux/server-client.c:1791,1
    - Dst: options_get_number
      Src: /src/tmux/server-client.c:1795,1
    - Dst: status_prompt_line_at
      Src: /src/tmux/server-client.c:1797,1
    - Dst: status_line_size
      Src: /src/tmux/server-client.c:1799,1
    - Dst: status_prompt_line_at
      Src: /src/tmux/server-client.c:1799,1
    - Dst: tty_window_offset
      Src: /src/tmux/server-client.c:1808,1
    - Dst: status_at_line
      Src: /src/tmux/server-client.c:1818,1
    - Dst: status_line_size
      Src: /src/tmux/server-client.c:1819,1
    - Dst: screen_redraw_get_visible_ranges
      Src: /src/tmux/server-client.c:1821,1
    - Dst: screen_redraw_is_visible
      Src: /src/tmux/server-client.c:1822,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:1830,1
    - Dst: tty_cursor
      Src: /src/tmux/server-client.c:1831,1
    - Dst: options_get_number
      Src: /src/tmux/server-client.c:1838,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-client.c:1841,1
    - Dst: options_get_number
      Src: /src/tmux/server-client.c:1846,1
    - Dst: tty_update_mode
      Src: /src/tmux/server-client.c:1857,1
    - Dst: tty_reset
      Src: /src/tmux/server-client.c:1858,1
    - Dst: tty_sync_end
      Src: /src/tmux/server-client.c:1861,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 69
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1755
    functionDepth: 6
    functionLinenumber: 1755
    functionLinenumberEnd: 1863
    functionName: server_client_reset_state
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 1
    functionsReached:
    - tty_window_offset
    - screen_mode_to_string
    - tty_sync_end
    - server_client_get_pane
    - screen_redraw_is_visible
    - screen_redraw_get_visible_ranges
    - status_at_line
    - log_get_level
    - log_debug
    - tty_margin_off
    - status_line_size
    - tty_region_off
    - struct client*::overlay_mode
    - status_prompt_line_at
    - TAILQ_FOREACH
    - tty_cursor
    - tty_reset
    - options_get_number
    - tty_update_mode
    linkageType: ''
    returnType: void
    signature: void server_client_reset_state(struct client *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: server_client_set_key_table
      Src: /src/tmux/server-client.c:1872,1
    - Dst: server_status_client
      Src: /src/tmux/server-client.c:1874,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - int
    - events
    - data
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1876
      start: 1866
    functionDepth: 6
    functionLinenumber: 1866
    functionLinenumberEnd: 1876
    functionName: server_client_repeat_timer
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 0
    functionsReached:
    - server_status_client
    - server_client_set_key_table
    linkageType: ''
    returnType: void
    signature: void server_client_repeat_timer(__unused int fd, __unused short events,
      void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/server-client.c:1885,1
    - Dst: xcalloc
      Src: /src/tmux/server-client.c:1892,1
    - Dst: memcpy
      Src: /src/tmux/server-client.c:1894,1
    - Dst: server_client_handle_key
      Src: /src/tmux/server-client.c:1895,1
    - Dst: free
      Src: /src/tmux/server-client.c:1896,1
    - Dst: free
      Src: /src/tmux/server-client.c:1897,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - int
    - events
    - data
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1879
    functionDepth: 9
    functionLinenumber: 1879
    functionLinenumberEnd: 1901
    functionName: server_client_click_timer
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - server_client_handle_key
    - free
    - memcpy
    - log_debug
    linkageType: ''
    returnType: void
    signature: void server_client_click_timer(__unused int fd, __unused short events,
      void *data)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: control_discard
      Src: /src/tmux/server-client.c:1918,1
    - Dst: control_all_done
      Src: /src/tmux/server-client.c:1919,1
    - Dst: RB_FOREACH
      Src: /src/tmux/server-client.c:1922,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/server-client.c:1923,1
    - Dst: strlen
      Src: /src/tmux/server-client.c:1931,1
    - Dst: xmalloc
      Src: /src/tmux/server-client.c:1935,1
    - Dst: memcpy
      Src: /src/tmux/server-client.c:1936,1
    - Dst: memcpy
      Src: /src/tmux/server-client.c:1938,1
    - Dst: proc_send
      Src: /src/tmux/server-client.c:1939,1
    - Dst: free
      Src: /src/tmux/server-client.c:1940,1
    - Dst: proc_send
      Src: /src/tmux/server-client.c:1943,1
    - Dst: proc_send
      Src: /src/tmux/server-client.c:1946,1
    - Dst: strlen
      Src: /src/tmux/server-client.c:1946,1
    - Dst: free
      Src: /src/tmux/server-client.c:1949,1
    - Dst: free
      Src: /src/tmux/server-client.c:1950,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1951
      start: 1904
    functionDepth: 3
    functionLinenumber: 1904
    functionLinenumberEnd: 1951
    functionName: server_client_check_exit
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 1
    functionsReached:
    - proc_send
    - control_all_done
    - control_discard
    - xmalloc
    - RB_FOREACH
    - free
    - memcpy
    - strlen
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: void server_client_check_exit(struct client *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/server-client.c:1958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - int
    - events
    - data
    argTypes:
    - __unused
    - __unused short
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1954
    functionDepth: 3
    functionLinenumber: 1954
    functionLinenumberEnd: 1959
    functionName: server_client_redraw_timer
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 0
    functionsReached:
    - log_debug
    linkageType: ''
    returnType: void
    signature: "void server_client_redraw_timer(__unused int fd, __unused short events,\n
      \   __unused void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-client.c:1976,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/server-client.c:1977,1
    - Dst: struct window_mode_entry*::mode::update
      Src: /src/tmux/server-client.c:1979,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1981
      start: 1965
    functionDepth: 0
    functionLinenumber: 1965
    functionLinenumberEnd: 1981
    functionName: server_client_check_modes
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 1
    functionsReached:
    - TAILQ_FIRST
    - struct window_mode_entry*::mode::update
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void server_client_check_modes(struct client *c)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/server-client.c:2002,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-client.c:2020,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/server-client.c:2033,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:2034,1
    - Dst: evtimer_initialized
      Src: /src/tmux/server-client.c:2035,1
    - Dst: evtimer_set
      Src: /src/tmux/server-client.c:2036,1
    - Dst: evtimer_pending
      Src: /src/tmux/server-client.c:2037,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:2038,1
    - Dst: evtimer_add
      Src: /src/tmux/server-client.c:2039,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-client.c:2043,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:2045,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:2049,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:2072,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-client.c:2082,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:2098,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:2101,1
    - Dst: screen_redraw_pane
      Src: /src/tmux/server-client.c:2104,1
    - Dst: options_get_number
      Src: /src/tmux/server-client.c:2112,1
    - Dst: server_client_set_title
      Src: /src/tmux/server-client.c:2113,1
    - Dst: server_client_set_path
      Src: /src/tmux/server-client.c:2114,1
    - Dst: server_client_set_progress_bar
      Src: /src/tmux/server-client.c:2116,1
    - Dst: screen_redraw_screen
      Src: /src/tmux/server-client.c:2117,1
    - Dst: tty_update_mode
      Src: /src/tmux/server-client.c:2121,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/server-client.c:2133,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:2134,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 101
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2136
      start: 1984
    functionDepth: 10
    functionLinenumber: 1984
    functionLinenumberEnd: 2136
    functionName: server_client_check_redraw
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 1
    functionsReached:
    - evtimer_initialized
    - evtimer_add
    - screen_redraw_pane
    - screen_redraw_screen
    - TAILQ_FOREACH
    - server_client_set_title
    - tty_update_mode
    - server_client_set_path
    - evtimer_pending
    - log_debug
    - options_get_number
    - server_client_set_progress_bar
    - evtimer_set
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: void server_client_check_redraw(struct client *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_create
      Src: /src/tmux/server-client.c:2149,1
    - Dst: format_defaults
      Src: /src/tmux/server-client.c:2150,1
    - Dst: format_expand_time
      Src: /src/tmux/server-client.c:2152,1
    - Dst: strcmp
      Src: /src/tmux/server-client.c:2153,1
    - Dst: free
      Src: /src/tmux/server-client.c:2154,1
    - Dst: xstrdup
      Src: /src/tmux/server-client.c:2155,1
    - Dst: tty_set_title
      Src: /src/tmux/server-client.c:2156,1
    - Dst: free
      Src: /src/tmux/server-client.c:2158,1
    - Dst: format_free
      Src: /src/tmux/server-client.c:2160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2139
    functionDepth: 4
    functionLinenumber: 2139
    functionLinenumberEnd: 2161
    functionName: server_client_set_title
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 1
    functionsReached:
    - tty_set_title
    - format_free
    - format_defaults
    - strcmp
    - format_expand_time
    - free
    - format_create
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void server_client_set_title(struct client *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/server-client.c:2176,1
    - Dst: free
      Src: /src/tmux/server-client.c:2177,1
    - Dst: xstrdup
      Src: /src/tmux/server-client.c:2178,1
    - Dst: tty_set_path
      Src: /src/tmux/server-client.c:2179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2181
      start: 2164
    functionDepth: 4
    functionLinenumber: 2164
    functionLinenumberEnd: 2181
    functionName: server_client_set_path
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 1
    functionsReached:
    - tty_set_path
    - free
    - xstrdup
    - strcmp
    linkageType: ''
    returnType: void
    signature: void server_client_set_path(struct client *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/server-client.c:2196,1
    - Dst: tty_set_progress_bar
      Src: /src/tmux/server-client.c:2197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2198
      start: 2184
    functionDepth: 3
    functionLinenumber: 2184
    functionLinenumberEnd: 2198
    functionName: server_client_set_progress_bar
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 1
    functionsReached:
    - memcpy
    - tty_set_progress_bar
    linkageType: ''
    returnType: void
    signature: void server_client_set_progress_bar(struct client *c)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: server_client_lost
      Src: /src/tmux/server-client.c:2212,1
    - Dst: server_client_dispatch_identify
      Src: /src/tmux/server-client.c:2231,1
    - Dst: server_client_dispatch_command
      Src: /src/tmux/server-client.c:2235,1
    - Dst: server_client_update_latest
      Src: /src/tmux/server-client.c:2244,1
    - Dst: tty_resize
      Src: /src/tmux/server-client.c:2245,1
    - Dst: tty_repeat_requests
      Src: /src/tmux/server-client.c:2246,1
    - Dst: recalculate_sizes
      Src: /src/tmux/server-client.c:2247,1
    - Dst: server_client_clear_overlay
      Src: /src/tmux/server-client.c:2249,1
    - Dst: struct client*::overlay_resize
      Src: /src/tmux/server-client.c:2251,1
    - Dst: server_redraw_client
      Src: /src/tmux/server-client.c:2252,1
    - Dst: notify_client
      Src: /src/tmux/server-client.c:2254,1
    - Dst: server_client_set_session
      Src: /src/tmux/server-client.c:2259,1
    - Dst: recalculate_sizes
      Src: /src/tmux/server-client.c:2260,1
    - Dst: tty_close
      Src: /src/tmux/server-client.c:2261,1
    - Dst: proc_send
      Src: /src/tmux/server-client.c:2262,1
    - Dst: gettimeofday
      Src: /src/tmux/server-client.c:2277,1
    - Dst: fatal
      Src: /src/tmux/server-client.c:2278,1
    - Dst: tty_start_tty
      Src: /src/tmux/server-client.c:2280,1
    - Dst: server_redraw_client
      Src: /src/tmux/server-client.c:2281,1
    - Dst: recalculate_sizes
      Src: /src/tmux/server-client.c:2282,1
    - Dst: session_update_activity
      Src: /src/tmux/server-client.c:2285,1
    - Dst: server_client_dispatch_shell
      Src: /src/tmux/server-client.c:2290,1
    - Dst: file_write_ready
      Src: /src/tmux/server-client.c:2294,1
    - Dst: file_read_data
      Src: /src/tmux/server-client.c:2298,1
    - Dst: file_read_done
      Src: /src/tmux/server-client.c:2302,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:2310,1
    - Dst: proc_kill_peer
      Src: /src/tmux/server-client.c:2311,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 104
    argCount: 2
    argNames:
    - imsg
    - arg
    argTypes:
    - struct imsg*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2312
      start: 2201
    functionDepth: 8
    functionLinenumber: 2201
    functionLinenumberEnd: 2312
    functionName: server_client_dispatch
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 0
    functionsReached:
    - file_read_data
    - notify_client
    - tty_resize
    - server_client_lost
    - tty_start_tty
    - file_write_ready
    - proc_kill_peer
    - fatal
    - recalculate_sizes
    - log_debug
    - tty_close
    - session_update_activity
    - tty_repeat_requests
    - server_client_set_session
    - server_client_update_latest
    - gettimeofday
    - server_client_dispatch_shell
    - proc_send
    - server_client_dispatch_identify
    - struct client*::overlay_resize
    - file_read_done
    - server_redraw_client
    - server_client_dispatch_command
    - server_client_clear_overlay
    linkageType: ''
    returnType: void
    signature: void server_client_dispatch(struct imsg *imsg, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_error
      Src: /src/tmux/server-client.c:2318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - item
    - data
    argTypes:
    - struct cmdq_item*
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2320
      start: 2315
    functionDepth: 1
    functionLinenumber: 2315
    functionLinenumberEnd: 2320
    functionName: server_client_read_only
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 0
    functionsReached:
    - cmdq_error
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval server_client_read_only(struct cmdq_item *item, __unused
      void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get_client
      Src: /src/tmux/server-client.c:2326,1
    - Dst: options_get_command
      Src: /src/tmux/server-client.c:2330,1
    - Dst: cmd_list_all_have
      Src: /src/tmux/server-client.c:2332,1
    - Dst: cmdq_get_callback
      Src: /src/tmux/server-client.c:2333,1
    - Dst: cmdq_get_command
      Src: /src/tmux/server-client.c:2335,1
    - Dst: cmdq_insert_after
      Src: /src/tmux/server-client.c:2336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - item
    - data
    argTypes:
    - struct cmdq_item*
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2338
      start: 2323
    functionDepth: 4
    functionLinenumber: 2323
    functionLinenumberEnd: 2338
    functionName: server_client_default_command
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 0
    functionsReached:
    - cmd_list_all_have
    - cmdq_get_callback
    - options_get_command
    - cmdq_insert_after
    - cmdq_get_command
    - cmdq_get_client
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval server_client_default_command(struct cmdq_item *item,
      __unused void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get_client
      Src: /src/tmux/server-client.c:2344,1
    - Dst: control_ready
      Src: /src/tmux/server-client.c:2350,1
    - Dst: tty_send_requests
      Src: /src/tmux/server-client.c:2351,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - item
    - data
    argTypes:
    - struct cmdq_item*
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2354
      start: 2341
    functionDepth: 2
    functionLinenumber: 2341
    functionLinenumberEnd: 2354
    functionName: server_client_command_done
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 0
    functionsReached:
    - tty_send_requests
    - control_ready
    - cmdq_get_client
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval server_client_command_done(struct cmdq_item *item,
      __unused void *data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/server-client.c:2374,1
    - Dst: cmd_unpack_argv
      Src: /src/tmux/server-client.c:2381,1
    - Dst: xstrdup
      Src: /src/tmux/server-client.c:2382,1
    - Dst: cmdq_get_callback
      Src: /src/tmux/server-client.c:2388,1
    - Dst: args_from_vector
      Src: /src/tmux/server-client.c:2391,1
    - Dst: cmd_parse_from_arguments
      Src: /src/tmux/server-client.c:2392,1
    - Dst: args_free_values
      Src: /src/tmux/server-client.c:2400,1
    - Dst: free
      Src: /src/tmux/server-client.c:2401,1
    - Dst: cmd_free_argv
      Src: /src/tmux/server-client.c:2402,1
    - Dst: cmd_list_all_have
      Src: /src/tmux/server-client.c:2404,1
    - Dst: cmdq_get_callback
      Src: /src/tmux/server-client.c:2405,1
    - Dst: cmdq_get_command
      Src: /src/tmux/server-client.c:2408,1
    - Dst: cmd_list_free
      Src: /src/tmux/server-client.c:2409,1
    - Dst: cmdq_append
      Src: /src/tmux/server-client.c:2411,1
    - Dst: cmdq_append
      Src: /src/tmux/server-client.c:2412,1
    - Dst: cmdq_get_callback
      Src: /src/tmux/server-client.c:2412,1
    - Dst: cmd_free_argv
      Src: /src/tmux/server-client.c:2417,1
    - Dst: cmdq_append
      Src: /src/tmux/server-client.c:2419,1
    - Dst: cmdq_get_error
      Src: /src/tmux/server-client.c:2419,1
    - Dst: free
      Src: /src/tmux/server-client.c:2420,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 2
    argNames:
    - c
    - imsg
    argTypes:
    - struct client*
    - struct imsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2424
      start: 2357
    functionDepth: 5
    functionLinenumber: 2357
    functionLinenumberEnd: 2424
    functionName: server_client_dispatch_command
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 1
    functionsReached:
    - cmdq_get_callback
    - cmd_parse_from_arguments
    - cmd_list_all_have
    - cmd_list_free
    - cmdq_append
    - args_free_values
    - free
    - memcpy
    - cmd_unpack_argv
    - cmdq_get_command
    - cmdq_get_error
    - xstrdup
    - cmd_free_argv
    - args_from_vector
    linkageType: ''
    returnType: int
    signature: int server_client_dispatch_command(struct client *c, struct imsg *imsg)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/server-client.c:2446,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:2448,1
    - Dst: tty_get_features
      Src: /src/tmux/server-client.c:2449,1
    - Dst: memcpy
      Src: /src/tmux/server-client.c:2454,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:2456,1
    - Dst: memcpy
      Src: /src/tmux/server-client.c:2461,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:2463,1
    - Dst: xstrdup
      Src: /src/tmux/server-client.c:2469,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:2470,1
    - Dst: xreallocarray
      Src: /src/tmux/server-client.c:2475,1
    - Dst: xstrdup
      Src: /src/tmux/server-client.c:2477,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:2478,1
    - Dst: xstrdup
      Src: /src/tmux/server-client.c:2483,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:2484,1
    - Dst: access
      Src: /src/tmux/server-client.c:2489,1
    - Dst: xstrdup
      Src: /src/tmux/server-client.c:2490,1
    - Dst: find_home
      Src: /src/tmux/server-client.c:2491,1
    - Dst: xstrdup
      Src: /src/tmux/server-client.c:2492,1
    - Dst: xstrdup
      Src: /src/tmux/server-client.c:2494,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:2495,1
    - Dst: imsg_get_fd
      Src: /src/tmux/server-client.c:2500,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:2501,1
    - Dst: imsg_get_fd
      Src: /src/tmux/server-client.c:2506,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:2507,1
    - Dst: strchr
      Src: /src/tmux/server-client.c:2512,1
    - Dst: environ_put
      Src: /src/tmux/server-client.c:2513,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:2514,1
    - Dst: memcpy
      Src: /src/tmux/server-client.c:2519,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:2520,1
    - Dst: free
      Src: /src/tmux/server-client.c:2531,1
    - Dst: xstrdup
      Src: /src/tmux/server-client.c:2532,1
    - Dst: xstrdup
      Src: /src/tmux/server-client.c:2536,1
    - Dst: xasprintf
      Src: /src/tmux/server-client.c:2538,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:2540,1
    - Dst: open
      Src: /src/tmux/server-client.c:2543,1
    - Dst: dup
      Src: /src/tmux/server-client.c:2544,1
    - Dst: control_start
      Src: /src/tmux/server-client.c:2548,1
    - Dst: tty_init
      Src: /src/tmux/server-client.c:2550,1
    - Dst: close
      Src: /src/tmux/server-client.c:2551,1
    - Dst: tty_resize
      Src: /src/tmux/server-client.c:2554,1
    - Dst: close
      Src: /src/tmux/server-client.c:2558,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:2565,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/server-client.c:2576,1
    - Dst: start_cfg
      Src: /src/tmux/server-client.c:2577,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 119
    argCount: 2
    argNames:
    - c
    - imsg
    argTypes:
    - struct client*
    - struct imsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2580
      start: 2427
    functionDepth: 4
    functionLinenumber: 2427
    functionLinenumberEnd: 2580
    functionName: server_client_dispatch_identify
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 1
    functionsReached:
    - open
    - dup
    - access
    - tty_resize
    - find_home
    - environ_put
    - strchr
    - imsg_get_fd
    - memcpy
    - log_debug
    - xstrdup
    - tty_init
    - close
    - TAILQ_FIRST
    - start_cfg
    - control_start
    - xasprintf
    - tty_get_features
    - free
    - xreallocarray
    linkageType: ''
    returnType: int
    signature: int server_client_dispatch_identify(struct client *c, struct imsg *imsg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: options_get_string
      Src: /src/tmux/server-client.c:2588,1
    - Dst: checkshell
      Src: /src/tmux/server-client.c:2589,1
    - Dst: proc_send
      Src: /src/tmux/server-client.c:2591,1
    - Dst: strlen
      Src: /src/tmux/server-client.c:2591,1
    - Dst: proc_kill_peer
      Src: /src/tmux/server-client.c:2593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2595
      start: 2583
    functionDepth: 4
    functionLinenumber: 2583
    functionLinenumberEnd: 2595
    functionName: server_client_dispatch_shell
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 1
    functionsReached:
    - proc_send
    - proc_kill_peer
    - checkshell
    - strlen
    - options_get_string
    linkageType: ''
    returnType: int
    signature: int server_client_dispatch_shell(struct client *c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: find_home
      Src: /src/tmux/server-client.c:2611,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - struct client*
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2614
      start: 2598
    functionDepth: 1
    functionLinenumber: 2598
    functionLinenumberEnd: 2614
    functionName: server_client_get_cwd
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 4
    functionsReached:
    - find_home
    linkageType: ''
    returnType: char
    signature: 'char *

      server_client_get_cwd(struct client *c, struct session *s)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/server-client.c:2620,1
    - Dst: sscanf
      Src: /src/tmux/server-client.c:2624,1
    - Dst: strcmp
      Src: /src/tmux/server-client.c:2628,1
    - Dst: strcmp
      Src: /src/tmux/server-client.c:2630,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - c
    - next
    argTypes:
    - struct client*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2633
      start: 2617
    functionDepth: 0
    functionLinenumber: 2617
    functionLinenumberEnd: 2633
    functionName: server_client_control_flags
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 0
    functionsReached:
    - sscanf
    - strcmp
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t server_client_control_flags(struct client *c, const char *next)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/server-client.c:2643,1
    - Dst: strsep
      Src: /src/tmux/server-client.c:2644,1
    - Dst: server_client_control_flags
      Src: /src/tmux/server-client.c:2650,1
    - Dst: strcmp
      Src: /src/tmux/server-client.c:2653,1
    - Dst: strcmp
      Src: /src/tmux/server-client.c:2655,1
    - Dst: strcmp
      Src: /src/tmux/server-client.c:2657,1
    - Dst: strcmp
      Src: /src/tmux/server-client.c:2659,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:2664,1
    - Dst: control_reset_offsets
      Src: /src/tmux/server-client.c:2672,1
    - Dst: free
      Src: /src/tmux/server-client.c:2674,1
    - Dst: proc_send
      Src: /src/tmux/server-client.c:2675,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - c
    - flags
    argTypes:
    - struct client*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2676
      start: 2636
    functionDepth: 3
    functionLinenumber: 2636
    functionLinenumberEnd: 2676
    functionName: server_client_set_flags
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 3
    functionsReached:
    - proc_send
    - strcmp
    - strsep
    - free
    - log_debug
    - server_client_control_flags
    - xstrdup
    - control_reset_offsets
    linkageType: ''
    returnType: void
    signature: void server_client_set_flags(struct client *c, const char *flags)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strlcat
      Src: /src/tmux/server-client.c:2687,1
    - Dst: strlcat
      Src: /src/tmux/server-client.c:2689,1
    - Dst: strlcat
      Src: /src/tmux/server-client.c:2691,1
    - Dst: strlcat
      Src: /src/tmux/server-client.c:2693,1
    - Dst: strlcat
      Src: /src/tmux/server-client.c:2695,1
    - Dst: strlcat
      Src: /src/tmux/server-client.c:2697,1
    - Dst: strlcat
      Src: /src/tmux/server-client.c:2699,1
    - Dst: xsnprintf
      Src: /src/tmux/server-client.c:2701,1
    - Dst: strlcat
      Src: /src/tmux/server-client.c:2703,1
    - Dst: strlcat
      Src: /src/tmux/server-client.c:2706,1
    - Dst: strlcat
      Src: /src/tmux/server-client.c:2708,1
    - Dst: strlcat
      Src: /src/tmux/server-client.c:2710,1
    - Dst: strlcat
      Src: /src/tmux/server-client.c:2712,1
    - Dst: strlen
      Src: /src/tmux/server-client.c:2714,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2716
      start: 2679
    functionDepth: 2
    functionLinenumber: 2679
    functionLinenumberEnd: 2716
    functionName: server_client_get_flags
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 0
    functionsReached:
    - strlen
    - xsnprintf
    - strlcat
    linkageType: ''
    returnType: char
    signature: 'char *

      server_client_get_flags(struct client *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FIND
      Src: /src/tmux/server-client.c:2724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - id
    argTypes:
    - struct client*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2725
      start: 2719
    functionDepth: 0
    functionLinenumber: 2719
    functionLinenumberEnd: 2725
    functionName: server_client_get_client_window
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 2
    functionsReached:
    - RB_FIND
    linkageType: ''
    returnType: struct client_window
    signature: 'struct client_window *

      server_client_get_client_window(struct client *c, u_int id)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: server_client_get_client_window
      Src: /src/tmux/server-client.c:2733,1
    - Dst: xcalloc
      Src: /src/tmux/server-client.c:2735,1
    - Dst: RB_INSERT
      Src: /src/tmux/server-client.c:2737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - c
    - id
    argTypes:
    - struct client*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2740
      start: 2728
    functionDepth: 2
    functionLinenumber: 2728
    functionLinenumberEnd: 2740
    functionName: server_client_add_client_window
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 1
    functionsReached:
    - xcalloc
    - RB_INSERT
    - server_client_get_client_window
    linkageType: ''
    returnType: struct client_window
    signature: 'struct client_window *

      server_client_add_client_window(struct client *c, u_int id)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: server_client_get_client_window
      Src: /src/tmux/server-client.c:2754,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2758
      start: 2743
    functionDepth: 1
    functionLinenumber: 2743
    functionLinenumberEnd: 2758
    functionName: server_client_get_pane
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 9
    functionsReached:
    - server_client_get_client_window
    linkageType: ''
    returnType: struct window_pane
    signature: 'struct window_pane *

      server_client_get_pane(struct client *c)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: server_client_add_client_window
      Src: /src/tmux/server-client.c:2770,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:2772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - wp
    argTypes:
    - struct client*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2773
      start: 2761
    functionDepth: 3
    functionLinenumber: 2761
    functionLinenumberEnd: 2773
    functionName: server_client_set_pane
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 1
    functionsReached:
    - log_debug
    - server_client_add_client_window
    linkageType: ''
    returnType: void
    signature: void server_client_set_pane(struct client *c, struct window_pane *wp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/server-client.c:2783,1
    - Dst: server_client_get_client_window
      Src: /src/tmux/server-client.c:2784,1
    - Dst: RB_REMOVE
      Src: /src/tmux/server-client.c:2786,1
    - Dst: free
      Src: /src/tmux/server-client.c:2787,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2795
      start: 2776
    functionDepth: 1
    functionLinenumber: 2776
    functionLinenumberEnd: 2795
    functionName: server_client_remove_pane
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 7
    functionsReached:
    - server_client_get_client_window
    - RB_REMOVE
    - free
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void server_client_remove_pane(struct window_pane *wp)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_DATA
      Src: /src/tmux/server-client.c:2801,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/server-client.c:2802,1
    - Dst: utf8_stravisx
      Src: /src/tmux/server-client.c:2808,1
    - Dst: EVBUFFER_DATA
      Src: /src/tmux/server-client.c:2814,1
    - Dst: evbuffer_add
      Src: /src/tmux/server-client.c:2816,1
    - Dst: log_debug
      Src: /src/tmux/server-client.c:2819,1
    - Dst: utf8_sanitize
      Src: /src/tmux/server-client.c:2826,1
    - Dst: control_write
      Src: /src/tmux/server-client.c:2828,1
    - Dst: file_print
      Src: /src/tmux/server-client.c:2830,1
    - Dst: free
      Src: /src/tmux/server-client.c:2831,1
    - Dst: control_write
      Src: /src/tmux/server-client.c:2834,1
    - Dst: file_print
      Src: /src/tmux/server-client.c:2836,1
    - Dst: server_client_get_pane
      Src: /src/tmux/server-client.c:2841,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/server-client.c:2842,1
    - Dst: window_pane_set_mode
      Src: /src/tmux/server-client.c:2844,1
    - Dst: evbuffer_readln
      Src: /src/tmux/server-client.c:2847,1
    - Dst: window_copy_add
      Src: /src/tmux/server-client.c:2849,1
    - Dst: free
      Src: /src/tmux/server-client.c:2850,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/server-client.c:2854,1
    - Dst: EVBUFFER_DATA
      Src: /src/tmux/server-client.c:2856,1
    - Dst: window_copy_add
      Src: /src/tmux/server-client.c:2857,1
    - Dst: window_copy_add
      Src: /src/tmux/server-client.c:2860,1
    - Dst: free
      Src: /src/tmux/server-client.c:2864,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 3
    argNames:
    - c
    - parse
    - evb
    argTypes:
    - struct client*
    - int
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2865
      start: 2798
    functionDepth: 5
    functionLinenumber: 2798
    functionLinenumberEnd: 2865
    functionName: server_client_print
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 1
    functionsReached:
    - utf8_sanitize
    - evbuffer_add
    - utf8_stravisx
    - window_copy_add
    - EVBUFFER_DATA
    - TAILQ_FIRST
    - file_print
    - window_pane_set_mode
    - evbuffer_readln
    - free
    - server_client_get_pane
    - log_debug
    - control_write
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: void server_client_print(struct client *c, int parse, struct evbuffer
      *evb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: notify_client
      Src: /src/tmux/server-client.c:2872,1
    - Dst: notify_client
      Src: /src/tmux/server-client.c:2875,1
    - Dst: tty_repeat_requests
      Src: /src/tmux/server-client.c:2882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - c
    - theme
    argTypes:
    - struct client*
    - enum client_theme
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2883
      start: 2867
    functionDepth: 3
    functionLinenumber: 2867
    functionLinenumberEnd: 2883
    functionName: server_client_report_theme
    functionSourceFile: /src/tmux/server-client.c
    functionUses: 1
    functionsReached:
    - notify_client
    - tty_repeat_requests
    linkageType: ''
    returnType: void
    signature: void server_client_report_theme(struct client *c, enum client_theme
      theme)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-list-clients.c:56,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-list-clients.c:57,1
    - Dst: args_has
      Src: /src/tmux/cmd-list-clients.c:67,1
    - Dst: args_get
      Src: /src/tmux/cmd-list-clients.c:74,1
    - Dst: sort_order_from_string
      Src: /src/tmux/cmd-list-clients.c:76,1
    - Dst: args_get
      Src: /src/tmux/cmd-list-clients.c:76,1
    - Dst: args_has
      Src: /src/tmux/cmd-list-clients.c:77,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-list-clients.c:78,1
    - Dst: args_has
      Src: /src/tmux/cmd-list-clients.c:81,1
    - Dst: sort_get_clients
      Src: /src/tmux/cmd-list-clients.c:83,1
    - Dst: format_create
      Src: /src/tmux/cmd-list-clients.c:88,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-list-clients.c:88,1
    - Dst: format_add
      Src: /src/tmux/cmd-list-clients.c:89,1
    - Dst: format_defaults
      Src: /src/tmux/cmd-list-clients.c:90,1
    - Dst: format_expand
      Src: /src/tmux/cmd-list-clients.c:93,1
    - Dst: format_true
      Src: /src/tmux/cmd-list-clients.c:94,1
    - Dst: free
      Src: /src/tmux/cmd-list-clients.c:95,1
    - Dst: format_expand
      Src: /src/tmux/cmd-list-clients.c:99,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-list-clients.c:100,1
    - Dst: free
      Src: /src/tmux/cmd-list-clients.c:101,1
    - Dst: format_free
      Src: /src/tmux/cmd-list-clients.c:104,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 108
    functionName: cmd_list_clients_exec
    functionSourceFile: /src/tmux/cmd-list-clients.c
    functionUses: 0
    functionsReached:
    - sort_get_clients
    - cmdq_error
    - cmdq_print
    - format_expand
    - cmd_get_args
    - format_true
    - format_defaults
    - format_free
    - free
    - sort_order_from_string
    - args_get
    - format_create
    - cmdq_get_client
    - format_add
    - cmdq_get_target
    - args_has
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_list_clients_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: args_string
      Src: /src/tmux/cmd-display-menu.c:80,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 3
    argNames:
    - args
    - idx
    - cause
    argTypes:
    - struct args*
    - u_int
    - __unused**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 70
    functionDepth: 5
    functionLinenumber: 70
    functionLinenumberEnd: 92
    functionName: cmd_display_menu_args_parse
    functionSourceFile: /src/tmux/cmd-display-menu.c
    functionUses: 0
    functionsReached:
    - args_string
    linkageType: ''
    returnType: enum args_parse_type
    signature: enum args_parse_type cmd_display_menu_args_parse(struct args *args,
      u_int idx, __unused char **cause)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-display-menu.c:99,1
    - Dst: cmdq_get_event
      Src: /src/tmux/cmd-display-menu.c:100,1
    - Dst: format_create_from_target
      Src: /src/tmux/cmd-display-menu.c:123,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:125,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:126,1
    - Dst: status_at_line
      Src: /src/tmux/cmd-display-menu.c:133,1
    - Dst: status_line_size
      Src: /src/tmux/cmd-display-menu.c:135,1
    - Dst: options_get_number
      Src: /src/tmux/cmd-display-menu.c:140,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:155,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:158,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:161,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:167,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:169,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:176,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:177,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:182,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:184,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:187,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:189,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:195,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:197,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:200,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:203,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:206,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:208,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:211,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:213,1
    - Dst: tty_window_offset
      Src: /src/tmux/cmd-display-menu.c:217,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:220,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:222,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:223,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:224,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:227,1
    - Dst: format_add
      Src: /src/tmux/cmd-display-menu.c:229,1
    - Dst: args_get
      Src: /src/tmux/cmd-display-menu.c:232,1
    - Dst: strcmp
      Src: /src/tmux/cmd-display-menu.c:233,1
    - Dst: strcmp
      Src: /src/tmux/cmd-display-menu.c:235,1
    - Dst: strcmp
      Src: /src/tmux/cmd-display-menu.c:237,1
    - Dst: strcmp
      Src: /src/tmux/cmd-display-menu.c:239,1
    - Dst: strcmp
      Src: /src/tmux/cmd-display-menu.c:241,1
    - Dst: format_expand
      Src: /src/tmux/cmd-display-menu.c:243,1
    - Dst: strtol
      Src: /src/tmux/cmd-display-menu.c:244,1
    - Dst: log_debug
      Src: /src/tmux/cmd-display-menu.c:250,1
    - Dst: free
      Src: /src/tmux/cmd-display-menu.c:251,1
    - Dst: args_get
      Src: /src/tmux/cmd-display-menu.c:254,1
    - Dst: strcmp
      Src: /src/tmux/cmd-display-menu.c:255,1
    - Dst: strcmp
      Src: /src/tmux/cmd-display-menu.c:257,1
    - Dst: strcmp
      Src: /src/tmux/cmd-display-menu.c:259,1
    - Dst: strcmp
      Src: /src/tmux/cmd-display-menu.c:261,1
    - Dst: strcmp
      Src: /src/tmux/cmd-display-menu.c:263,1
    - Dst: format_expand
      Src: /src/tmux/cmd-display-menu.c:265,1
    - Dst: strtol
      Src: /src/tmux/cmd-display-menu.c:266,1
    - Dst: log_debug
      Src: /src/tmux/cmd-display-menu.c:276,1
    - Dst: free
      Src: /src/tmux/cmd-display-menu.c:277,1
    - Dst: format_free
      Src: /src/tmux/cmd-display-menu.c:279,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 124
    argCount: 7
    argNames:
    - tc
    - item
    - args
    - px
    - py
    - w
    - h
    argTypes:
    - struct client*
    - struct cmdq_item*
    - struct args*
    - u_int*
    - u_int*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 94
    functionDepth: 5
    functionLinenumber: 94
    functionLinenumberEnd: 281
    functionName: cmd_display_menu_get_pos
    functionSourceFile: /src/tmux/cmd-display-menu.c
    functionUses: 0
    functionsReached:
    - format_create_from_target
    - cmdq_get_event
    - status_line_size
    - tty_window_offset
    - status_at_line
    - format_free
    - strcmp
    - free
    - format_add
    - args_get
    - strtol
    - log_debug
    - options_get_number
    - cmdq_get_target
    - format_expand
    linkageType: ''
    returnType: int
    signature: "int cmd_display_menu_get_pos(struct client *tc, struct cmdq_item *item,\n
      \   struct args *args, u_int *px, u_int *py, u_int w, u_int h)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: TAILQ_FOREACH
    functionSourceFile: /src/tmux/cmd-display-menu.c
    functionUses: 146
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TAILQ_FOREACH(sr, ranges, entry)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-display-menu.c:286,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-display-menu.c:287,1
    - Dst: cmdq_get_event
      Src: /src/tmux/cmd-display-menu.c:288,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/cmd-display-menu.c:289,1
    - Dst: args_get
      Src: /src/tmux/cmd-display-menu.c:293,1
    - Dst: args_get
      Src: /src/tmux/cmd-display-menu.c:294,1
    - Dst: args_get
      Src: /src/tmux/cmd-display-menu.c:295,1
    - Dst: args_count
      Src: /src/tmux/cmd-display-menu.c:299,1
    - Dst: args_has
      Src: /src/tmux/cmd-display-menu.c:307,1
    - Dst: strcmp
      Src: /src/tmux/cmd-display-menu.c:308,1
    - Dst: args_get
      Src: /src/tmux/cmd-display-menu.c:308,1
    - Dst: args_strtonum
      Src: /src/tmux/cmd-display-menu.c:311,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-display-menu.c:314,1
    - Dst: args_has
      Src: /src/tmux/cmd-display-menu.c:320,1
    - Dst: format_single_from_target
      Src: /src/tmux/cmd-display-menu.c:321,1
    - Dst: args_get
      Src: /src/tmux/cmd-display-menu.c:321,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-display-menu.c:323,1
    - Dst: menu_create
      Src: /src/tmux/cmd-display-menu.c:324,1
    - Dst: free
      Src: /src/tmux/cmd-display-menu.c:325,1
    - Dst: args_string
      Src: /src/tmux/cmd-display-menu.c:328,1
    - Dst: menu_add_item
      Src: /src/tmux/cmd-display-menu.c:330,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-display-menu.c:335,1
    - Dst: args_string
      Src: /src/tmux/cmd-display-menu.c:338,1
    - Dst: key_string_lookup_string
      Src: /src/tmux/cmd-display-menu.c:341,1
    - Dst: args_string
      Src: /src/tmux/cmd-display-menu.c:342,1
    - Dst: menu_add_item
      Src: /src/tmux/cmd-display-menu.c:344,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-display-menu.c:347,1
    - Dst: cmd_display_menu_get_pos
      Src: /src/tmux/cmd-display-menu.c:352,1
    - Dst: args_get
      Src: /src/tmux/cmd-display-menu.c:356,1
    - Dst: options_get
      Src: /src/tmux/cmd-display-menu.c:358,1
    - Dst: options_find_choice
      Src: /src/tmux/cmd-display-menu.c:359,1
    - Dst: options_table_entry
      Src: /src/tmux/cmd-display-menu.c:359,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-display-menu.c:362,1
    - Dst: args_has
      Src: /src/tmux/cmd-display-menu.c:367,1
    - Dst: args_has
      Src: /src/tmux/cmd-display-menu.c:369,1
    - Dst: menu_display
      Src: /src/tmux/cmd-display-menu.c:371,1
    - Dst: menu_free
      Src: /src/tmux/cmd-display-menu.c:377,1
    - Dst: free
      Src: /src/tmux/cmd-display-menu.c:381,1
    - Dst: menu_free
      Src: /src/tmux/cmd-display-menu.c:382,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 74
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 283
    functionDepth: 6
    functionLinenumber: 283
    functionLinenumberEnd: 384
    functionName: cmd_display_menu_exec
    functionSourceFile: /src/tmux/cmd-display-menu.c
    functionUses: 0
    functionsReached:
    - menu_display
    - args_count
    - args_has
    - options_find_choice
    - menu_create
    - args_string
    - format_single_from_target
    - options_table_entry
    - cmdq_get_target_client
    - args_get
    - options_get
    - xstrdup
    - args_strtonum
    - cmd_get_args
    - menu_add_item
    - cmdq_get_target
    - key_string_lookup_string
    - cmdq_get_event
    - cmdq_error
    - menu_free
    - strcmp
    - free
    - cmd_display_menu_get_pos
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_display_menu_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-display-menu.c:389,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-display-menu.c:390,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/cmd-display-menu.c:392,1
    - Dst: args_get
      Src: /src/tmux/cmd-display-menu.c:395,1
    - Dst: args_get
      Src: /src/tmux/cmd-display-menu.c:396,1
    - Dst: popup_present
      Src: /src/tmux/cmd-display-menu.c:399,1
    - Dst: args_count
      Src: /src/tmux/cmd-display-menu.c:402,1
    - Dst: args_has
      Src: /src/tmux/cmd-display-menu.c:408,1
    - Dst: server_client_clear_overlay
      Src: /src/tmux/cmd-display-menu.c:409,1
    - Dst: args_has
      Src: /src/tmux/cmd-display-menu.c:417,1
    - Dst: args_percentage
      Src: /src/tmux/cmd-display-menu.c:418,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-display-menu.c:421,1
    - Dst: args_has
      Src: /src/tmux/cmd-display-menu.c:427,1
    - Dst: args_percentage
      Src: /src/tmux/cmd-display-menu.c:428,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-display-menu.c:431,1
    - Dst: cmd_display_menu_get_pos
      Src: /src/tmux/cmd-display-menu.c:440,1
    - Dst: args_get
      Src: /src/tmux/cmd-display-menu.c:443,1
    - Dst: format_single_from_target
      Src: /src/tmux/cmd-display-menu.c:445,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-display-menu.c:447,1
    - Dst: server_client_get_cwd
      Src: /src/tmux/cmd-display-menu.c:447,1
    - Dst: options_get_string
      Src: /src/tmux/cmd-display-menu.c:449,1
    - Dst: args_string
      Src: /src/tmux/cmd-display-menu.c:452,1
    - Dst: options_get_string
      Src: /src/tmux/cmd-display-menu.c:455,1
    - Dst: checkshell
      Src: /src/tmux/cmd-display-menu.c:456,1
    - Dst: cmd_append_argv
      Src: /src/tmux/cmd-display-menu.c:458,1
    - Dst: args_to_vector
      Src: /src/tmux/cmd-display-menu.c:460,1
    - Dst: args_has
      Src: /src/tmux/cmd-display-menu.c:462,1
    - Dst: environ_create
      Src: /src/tmux/cmd-display-menu.c:463,1
    - Dst: args_first_value
      Src: /src/tmux/cmd-display-menu.c:464,1
    - Dst: environ_put
      Src: /src/tmux/cmd-display-menu.c:466,1
    - Dst: args_next_value
      Src: /src/tmux/cmd-display-menu.c:467,1
    - Dst: args_get
      Src: /src/tmux/cmd-display-menu.c:472,1
    - Dst: args_has
      Src: /src/tmux/cmd-display-menu.c:473,1
    - Dst: options_get
      Src: /src/tmux/cmd-display-menu.c:476,1
    - Dst: options_find_choice
      Src: /src/tmux/cmd-display-menu.c:477,1
    - Dst: options_table_entry
      Src: /src/tmux/cmd-display-menu.c:477,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-display-menu.c:480,1
    - Dst: args_has
      Src: /src/tmux/cmd-display-menu.c:485,1
    - Dst: format_single_from_target
      Src: /src/tmux/cmd-display-menu.c:486,1
    - Dst: args_get
      Src: /src/tmux/cmd-display-menu.c:486,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-display-menu.c:488,1
    - Dst: args_has
      Src: /src/tmux/cmd-display-menu.c:490,1
    - Dst: args_has
      Src: /src/tmux/cmd-display-menu.c:492,1
    - Dst: args_has
      Src: /src/tmux/cmd-display-menu.c:496,1
    - Dst: args_has
      Src: /src/tmux/cmd-display-menu.c:501,1
    - Dst: popup_modify
      Src: /src/tmux/cmd-display-menu.c:508,1
    - Dst: popup_display
      Src: /src/tmux/cmd-display-menu.c:511,1
    - Dst: environ_free
      Src: /src/tmux/cmd-display-menu.c:514,1
    - Dst: free
      Src: /src/tmux/cmd-display-menu.c:515,1
    - Dst: free
      Src: /src/tmux/cmd-display-menu.c:516,1
    - Dst: cmd_free_argv
      Src: /src/tmux/cmd-display-menu.c:517,1
    - Dst: cmd_free_argv
      Src: /src/tmux/cmd-display-menu.c:521,1
    - Dst: environ_free
      Src: /src/tmux/cmd-display-menu.c:522,1
    - Dst: free
      Src: /src/tmux/cmd-display-menu.c:523,1
    - Dst: free
      Src: /src/tmux/cmd-display-menu.c:524,1
    - Dst: free
      Src: /src/tmux/cmd-display-menu.c:528,1
    - Dst: cmd_free_argv
      Src: /src/tmux/cmd-display-menu.c:529,1
    - Dst: environ_free
      Src: /src/tmux/cmd-display-menu.c:530,1
    - Dst: free
      Src: /src/tmux/cmd-display-menu.c:531,1
    - Dst: free
      Src: /src/tmux/cmd-display-menu.c:532,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 119
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 386
    functionDepth: 6
    functionLinenumber: 386
    functionLinenumberEnd: 534
    functionName: cmd_display_popup_exec
    functionSourceFile: /src/tmux/cmd-display-menu.c
    functionUses: 0
    functionsReached:
    - popup_display
    - args_first_value
    - args_count
    - cmd_free_argv
    - args_has
    - options_find_choice
    - environ_put
    - args_string
    - args_to_vector
    - format_single_from_target
    - args_percentage
    - options_table_entry
    - cmdq_get_target_client
    - args_get
    - xstrdup
    - options_get
    - cmd_get_args
    - args_next_value
    - popup_present
    - checkshell
    - cmd_append_argv
    - cmdq_get_target
    - environ_create
    - environ_free
    - cmdq_error
    - server_client_get_cwd
    - free
    - popup_modify
    - cmd_display_menu_get_pos
    - options_get_string
    - server_client_clear_overlay
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_display_popup_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utf8_stravisx
      Src: /src/tmux/cmd-paste-buffer.c:52,1
    - Dst: bufferevent_write
      Src: /src/tmux/cmd-paste-buffer.c:53,1
    - Dst: free
      Src: /src/tmux/cmd-paste-buffer.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - wp
    - buf
    - len
    argTypes:
    - struct window_pane*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 55
    functionName: cmd_paste_buffer_paste
    functionSourceFile: /src/tmux/cmd-paste-buffer.c
    functionUses: 0
    functionsReached:
    - bufferevent_write
    - free
    - utf8_stravisx
    linkageType: ''
    returnType: void
    signature: void cmd_paste_buffer_paste(struct window_pane *wp, const char *buf,
      size_t len)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-paste-buffer.c:60,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-paste-buffer.c:61,1
    - Dst: args_has
      Src: /src/tmux/cmd-paste-buffer.c:66,1
    - Dst: window_pane_exited
      Src: /src/tmux/cmd-paste-buffer.c:68,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-paste-buffer.c:69,1
    - Dst: args_has
      Src: /src/tmux/cmd-paste-buffer.c:74,1
    - Dst: args_get
      Src: /src/tmux/cmd-paste-buffer.c:75,1
    - Dst: paste_get_top
      Src: /src/tmux/cmd-paste-buffer.c:78,1
    - Dst: paste_get_name
      Src: /src/tmux/cmd-paste-buffer.c:80,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-paste-buffer.c:82,1
    - Dst: args_get
      Src: /src/tmux/cmd-paste-buffer.c:88,1
    - Dst: args_has
      Src: /src/tmux/cmd-paste-buffer.c:90,1
    - Dst: strlen
      Src: /src/tmux/cmd-paste-buffer.c:95,1
    - Dst: bufferevent_write
      Src: /src/tmux/cmd-paste-buffer.c:98,1
    - Dst: paste_buffer_data
      Src: /src/tmux/cmd-paste-buffer.c:100,1
    - Dst: memchr
      Src: /src/tmux/cmd-paste-buffer.c:104,1
    - Dst: args_has
      Src: /src/tmux/cmd-paste-buffer.c:108,1
    - Dst: bufferevent_write
      Src: /src/tmux/cmd-paste-buffer.c:109,1
    - Dst: cmd_paste_buffer_paste
      Src: /src/tmux/cmd-paste-buffer.c:111,1
    - Dst: bufferevent_write
      Src: /src/tmux/cmd-paste-buffer.c:112,1
    - Dst: args_has
      Src: /src/tmux/cmd-paste-buffer.c:118,1
    - Dst: bufferevent_write
      Src: /src/tmux/cmd-paste-buffer.c:119,1
    - Dst: cmd_paste_buffer_paste
      Src: /src/tmux/cmd-paste-buffer.c:121,1
    - Dst: bufferevent_write
      Src: /src/tmux/cmd-paste-buffer.c:125,1
    - Dst: args_has
      Src: /src/tmux/cmd-paste-buffer.c:128,1
    - Dst: paste_free
      Src: /src/tmux/cmd-paste-buffer.c:129,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 132
    functionName: cmd_paste_buffer_exec
    functionSourceFile: /src/tmux/cmd-paste-buffer.c
    functionUses: 0
    functionsReached:
    - paste_free
    - cmdq_error
    - window_pane_exited
    - cmd_get_args
    - paste_buffer_data
    - paste_get_name
    - cmd_paste_buffer_paste
    - paste_get_top
    - args_get
    - strlen
    - bufferevent_write
    - memchr
    - cmdq_get_target
    - args_has
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_paste_buffer_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - uw1
    - uw2
    argTypes:
    - struct utf8_width_item*
    - struct utf8_width_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: utf8_width_cache_cmp
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int utf8_width_cache_cmp(struct utf8_width_item *uw1, struct utf8_width_item
      *uw2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/tmux/utf8.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ui1
    - ui2
    argTypes:
    - struct utf8_item*
    - struct utf8_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 235
    functionName: utf8_data_cmp
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int utf8_data_cmp(struct utf8_item *ui1, struct utf8_item *ui2)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ui1
    - ui2
    argTypes:
    - struct utf8_item*
    - struct utf8_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 248
    functionName: utf8_index_cmp
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int utf8_index_cmp(struct utf8_item *ui1, struct utf8_item *ui2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - uc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 257
    functionName: UTF8_GET_SIZE
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UTF8_GET_SIZE(uc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - uc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 258
    functionName: UTF8_GET_WIDTH
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UTF8_GET_WIDTH(uc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 260
    functionName: UTF8_SET_SIZE
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UTF8_SET_SIZE(size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - width
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: UTF8_SET_WIDTH
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UTF8_SET_WIDTH(width)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/utf8.c:268,1
    - Dst: RB_FIND
      Src: /src/tmux/utf8.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - u_char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 272
    functionName: utf8_item_by_data
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 0
    functionsReached:
    - memcpy
    - RB_FIND
    linkageType: ''
    returnType: struct utf8_item
    signature: 'struct utf8_item *

      utf8_item_by_data(const u_char *data, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FIND
      Src: /src/tmux/utf8.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - index
    argTypes:
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 283
    functionName: utf8_item_by_index
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 0
    functionsReached:
    - RB_FIND
    linkageType: ''
    returnType: struct utf8_item
    signature: 'struct utf8_item *

      utf8_item_by_index(u_int index)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FIND
      Src: /src/tmux/utf8.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - wc
    argTypes:
    - wchar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 293
    functionName: utf8_find_in_width_cache
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 0
    functionsReached:
    - RB_FIND
    linkageType: ''
    returnType: struct utf8_width_item
    signature: 'struct utf8_width_item *

      utf8_find_in_width_cache(wchar_t wc)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/utf8.c:301,1
    - Dst: xcalloc
      Src: /src/tmux/utf8.c:303,1
    - Dst: RB_INSERT
      Src: /src/tmux/utf8.c:308,1
    - Dst: RB_REMOVE
      Src: /src/tmux/utf8.c:310,1
    - Dst: free
      Src: /src/tmux/utf8.c:312,1
    - Dst: RB_INSERT
      Src: /src/tmux/utf8.c:313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - wc
    - width
    argTypes:
    - wchar_t
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 296
    functionDepth: 3
    functionLinenumber: 296
    functionLinenumberEnd: 315
    functionName: utf8_insert_width_cache
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - free
    - log_debug
    - RB_REMOVE
    - RB_INSERT
    linkageType: ''
    returnType: void
    signature: void utf8_insert_width_cache(wchar_t wc, u_int width)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH_SAFE
      Src: /src/tmux/utf8.c:414,1
    - Dst: RB_REMOVE
      Src: /src/tmux/utf8.c:415,1
    - Dst: free
      Src: /src/tmux/utf8.c:417,1
    - Dst: nitems
      Src: /src/tmux/utf8.c:420,1
    - Dst: RB_INSERT
      Src: /src/tmux/utf8.c:421,1
    - Dst: options_get
      Src: /src/tmux/utf8.c:425,1
    - Dst: options_array_first
      Src: /src/tmux/utf8.c:426,1
    - Dst: utf8_add_to_width_cache
      Src: /src/tmux/utf8.c:428,1
    - Dst: options_array_item_value
      Src: /src/tmux/utf8.c:428,1
    - Dst: options_array_next
      Src: /src/tmux/utf8.c:429,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 406
    functionDepth: 3
    functionLinenumber: 406
    functionLinenumberEnd: 431
    functionName: utf8_update_width_cache
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 2
    functionsReached:
    - options_array_first
    - options_array_next
    - utf8_add_to_width_cache
    - nitems
    - options_array_item_value
    - free
    - RB_FOREACH_SAFE
    - options_get
    - RB_REMOVE
    - RB_INSERT
    linkageType: ''
    returnType: void
    signature: void utf8_update_width_cache(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: utf8_item_by_data
      Src: /src/tmux/utf8.c:439,1
    - Dst: log_debug
      Src: /src/tmux/utf8.c:442,1
    - Dst: xcalloc
      Src: /src/tmux/utf8.c:450,1
    - Dst: RB_INSERT
      Src: /src/tmux/utf8.c:452,1
    - Dst: memcpy
      Src: /src/tmux/utf8.c:454,1
    - Dst: RB_INSERT
      Src: /src/tmux/utf8.c:456,1
    - Dst: log_debug
      Src: /src/tmux/utf8.c:459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - data
    - size
    - index
    argTypes:
    - u_char*
    - size_t
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 434
    functionDepth: 3
    functionLinenumber: 434
    functionLinenumberEnd: 461
    functionName: utf8_put_item
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 0
    functionsReached:
    - utf8_item_by_data
    - xcalloc
    - memcpy
    - log_debug
    - RB_INSERT
    linkageType: ''
    returnType: int
    signature: int utf8_put_item(const u_char *data, size_t size, u_int *index)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fatalx
      Src: /src/tmux/utf8.c:470,1
    - Dst: utf8_put_item
      Src: /src/tmux/utf8.c:478,1
    - Dst: UTF8_SET_SIZE
      Src: /src/tmux/utf8.c:480,1
    - Dst: UTF8_SET_WIDTH
      Src: /src/tmux/utf8.c:480,1
    - Dst: log_debug
      Src: /src/tmux/utf8.c:481,1
    - Dst: UTF8_SET_SIZE
      Src: /src/tmux/utf8.c:487,1
    - Dst: UTF8_SET_WIDTH
      Src: /src/tmux/utf8.c:487,1
    - Dst: UTF8_SET_SIZE
      Src: /src/tmux/utf8.c:489,1
    - Dst: UTF8_SET_WIDTH
      Src: /src/tmux/utf8.c:489,1
    - Dst: UTF8_SET_SIZE
      Src: /src/tmux/utf8.c:491,1
    - Dst: UTF8_SET_WIDTH
      Src: /src/tmux/utf8.c:491,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - ud
    - uc
    argTypes:
    - struct utf8_data*
    - utf8_char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 464
    functionDepth: 4
    functionLinenumber: 464
    functionLinenumberEnd: 493
    functionName: utf8_from_data
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 5
    functionsReached:
    - fatalx
    - UTF8_SET_SIZE
    - utf8_put_item
    - log_debug
    - UTF8_SET_WIDTH
    linkageType: ''
    returnType: enum utf8_state
    signature: enum utf8_state utf8_from_data(const struct utf8_data *ud, utf8_char
      *uc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/tmux/utf8.c:502,1
    - Dst: UTF8_GET_SIZE
      Src: /src/tmux/utf8.c:503,1
    - Dst: UTF8_GET_WIDTH
      Src: /src/tmux/utf8.c:504,1
    - Dst: utf8_item_by_index
      Src: /src/tmux/utf8.c:512,1
    - Dst: memset
      Src: /src/tmux/utf8.c:513,1
    - Dst: memcpy
      Src: /src/tmux/utf8.c:515,1
    - Dst: log_debug
      Src: /src/tmux/utf8.c:518,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - uc
    - ud
    argTypes:
    - utf8_char
    - struct utf8_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 496
    functionDepth: 3
    functionLinenumber: 496
    functionLinenumberEnd: 520
    functionName: utf8_to_data
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 8
    functionsReached:
    - UTF8_GET_SIZE
    - memset
    - UTF8_GET_WIDTH
    - utf8_item_by_index
    - memcpy
    - log_debug
    linkageType: ''
    returnType: void
    signature: void utf8_to_data(utf8_char uc, struct utf8_data *ud)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UTF8_SET_SIZE
      Src: /src/tmux/utf8.c:526,1
    - Dst: UTF8_SET_WIDTH
      Src: /src/tmux/utf8.c:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - u_char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 527
    functionName: utf8_build_one
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 1
    functionsReached:
    - UTF8_SET_WIDTH
    - UTF8_SET_SIZE
    linkageType: ''
    returnType: u_int
    signature: u_int utf8_build_one(u_char ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/utf8.c:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ud
    - ch
    argTypes:
    - struct utf8_data*
    - u_char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 537
    functionName: utf8_set
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 12
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void utf8_set(struct utf8_data *ud, u_char ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/utf8.c:545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - struct utf8_data*
    - struct utf8_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 549
    functionName: utf8_copy
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 9
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void utf8_copy(struct utf8_data *to, const struct utf8_data *from)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: utf8_towc
      Src: /src/tmux/utf8.c:558,1
    - Dst: utf8_find_in_width_cache
      Src: /src/tmux/utf8.c:560,1
    - Dst: log_debug
      Src: /src/tmux/utf8.c:563,1
    - Dst: utf8proc_wcwidth
      Src: /src/tmux/utf8.c:567,1
    - Dst: log_debug
      Src: /src/tmux/utf8.c:568,1
    - Dst: wcwidth
      Src: /src/tmux/utf8.c:570,1
    - Dst: log_debug
      Src: /src/tmux/utf8.c:571,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - ud
    - width
    argTypes:
    - struct utf8_data*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 552
    functionDepth: 3
    functionLinenumber: 552
    functionLinenumberEnd: 583
    functionName: utf8_width
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 0
    functionsReached:
    - utf8proc_wcwidth
    - utf8_towc
    - utf8_find_in_width_cache
    - log_debug
    - wcwidth
    linkageType: ''
    returnType: enum utf8_state
    signature: enum utf8_state utf8_width(struct utf8_data *ud, int *width)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: utf8proc_wctomb
      Src: /src/tmux/utf8.c:613,1
    - Dst: wctomb
      Src: /src/tmux/utf8.c:615,1
    - Dst: log_debug
      Src: /src/tmux/utf8.c:618,1
    - Dst: wctomb
      Src: /src/tmux/utf8.c:619,1
    - Dst: utf8_width
      Src: /src/tmux/utf8.c:625,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - wc
    - ud
    argTypes:
    - wchar_t
    - struct utf8_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 607
    functionDepth: 4
    functionLinenumber: 607
    functionLinenumberEnd: 630
    functionName: utf8_fromwc
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 1
    functionsReached:
    - log_debug
    - utf8proc_wctomb
    - wctomb
    - utf8_width
    linkageType: ''
    returnType: enum utf8_state
    signature: enum utf8_state utf8_fromwc(wchar_t wc, struct utf8_data *ud)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/tmux/utf8.c:642,1
    - Dst: utf8_append
      Src: /src/tmux/utf8.c:651,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ud
    - ch
    argTypes:
    - struct utf8_data*
    - u_char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 653
    functionName: utf8_open
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 4
    functionsReached:
    - memset
    - utf8_append
    linkageType: ''
    returnType: enum utf8_state
    signature: enum utf8_state utf8_open(struct utf8_data *ud, u_char ch)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fatalx
      Src: /src/tmux/utf8.c:662,1
    - Dst: fatalx
      Src: /src/tmux/utf8.c:664,1
    - Dst: utf8_width
      Src: /src/tmux/utf8.c:676,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - ud
    - ch
    argTypes:
    - struct utf8_data*
    - u_char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 656
    functionDepth: 4
    functionLinenumber: 656
    functionLinenumberEnd: 682
    functionName: utf8_append
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 5
    functionsReached:
    - utf8_width
    - fatalx
    linkageType: ''
    returnType: enum utf8_state
    signature: enum utf8_state utf8_append(struct utf8_data *ud, u_char ch)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: utf8_open
      Src: /src/tmux/utf8.c:698,1
    - Dst: utf8_append
      Src: /src/tmux/utf8.c:700,1
    - Dst: isalpha
      Src: /src/tmux/utf8.c:711,1
    - Dst: vis
      Src: /src/tmux/utf8.c:717,1
    - Dst: vis
      Src: /src/tmux/utf8.c:719,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 25
    argCount: 4
    argNames:
    - dst
    - src
    - len
    - flag
    argTypes:
    - char*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 689
    functionDepth: 5
    functionLinenumber: 689
    functionLinenumberEnd: 724
    functionName: utf8_strvis
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 2
    functionsReached:
    - vis
    - utf8_open
    - isalpha
    - utf8_append
    linkageType: ''
    returnType: size_t
    signature: size_t utf8_strvis(char *dst, const char *src, size_t len, int flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xreallocarray
      Src: /src/tmux/utf8.c:733,1
    - Dst: strlen
      Src: /src/tmux/utf8.c:733,1
    - Dst: utf8_strvis
      Src: /src/tmux/utf8.c:734,1
    - Dst: strlen
      Src: /src/tmux/utf8.c:734,1
    - Dst: xrealloc
      Src: /src/tmux/utf8.c:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - dst
    - src
    - flag
    argTypes:
    - char**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 727
    functionDepth: 6
    functionLinenumber: 727
    functionLinenumberEnd: 738
    functionName: utf8_stravis
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 4
    functionsReached:
    - strlen
    - xrealloc
    - xreallocarray
    - utf8_strvis
    linkageType: ''
    returnType: size_t
    signature: size_t utf8_stravis(char **dst, const char *src, int flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xreallocarray
      Src: /src/tmux/utf8.c:747,1
    - Dst: utf8_strvis
      Src: /src/tmux/utf8.c:748,1
    - Dst: xrealloc
      Src: /src/tmux/utf8.c:750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - dst
    - src
    - srclen
    - flag
    argTypes:
    - char**
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 741
    functionDepth: 6
    functionLinenumber: 741
    functionLinenumberEnd: 752
    functionName: utf8_stravisx
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 2
    functionsReached:
    - utf8_strvis
    - xrealloc
    - xreallocarray
    linkageType: ''
    returnType: size_t
    signature: size_t utf8_stravisx(char **dst, const char *src, size_t srclen, int
      flag)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/tmux/utf8.c:762,1
    - Dst: utf8_open
      Src: /src/tmux/utf8.c:764,1
    - Dst: utf8_append
      Src: /src/tmux/utf8.c:766,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 755
    functionDepth: 5
    functionLinenumber: 755
    functionLinenumberEnd: 776
    functionName: utf8_isvalid
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 3
    functionsReached:
    - strlen
    - utf8_open
    - utf8_append
    linkageType: ''
    returnType: int
    signature: int utf8_isvalid(const char *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xreallocarray
      Src: /src/tmux/utf8.c:793,1
    - Dst: utf8_open
      Src: /src/tmux/utf8.c:794,1
    - Dst: utf8_append
      Src: /src/tmux/utf8.c:796,1
    - Dst: xreallocarray
      Src: /src/tmux/utf8.c:798,1
    - Dst: xreallocarray
      Src: /src/tmux/utf8.c:812,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - src
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 783
    functionDepth: 5
    functionLinenumber: 783
    functionLinenumberEnd: 815
    functionName: utf8_sanitize
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 1
    functionsReached:
    - utf8_append
    - utf8_open
    - xreallocarray
    linkageType: ''
    returnType: char
    signature: 'char *

      utf8_sanitize(const char *src)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct utf8_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 826
    functionName: utf8_strlen
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t utf8_strlen(const struct utf8_data *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - struct utf8_data*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 841
    functionName: utf8_strwidth
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u_int
    signature: u_int utf8_strwidth(const struct utf8_data *s, ssize_t n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xreallocarray
      Src: /src/tmux/utf8.c:855,1
    - Dst: utf8_open
      Src: /src/tmux/utf8.c:856,1
    - Dst: utf8_append
      Src: /src/tmux/utf8.c:858,1
    - Dst: utf8_set
      Src: /src/tmux/utf8.c:865,1
    - Dst: xreallocarray
      Src: /src/tmux/utf8.c:869,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - src
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 847
    functionDepth: 5
    functionLinenumber: 847
    functionLinenumberEnd: 872
    functionName: utf8_fromcstr
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 11
    functionsReached:
    - utf8_append
    - utf8_open
    - utf8_set
    - xreallocarray
    linkageType: ''
    returnType: struct utf8_data
    signature: 'struct utf8_data *

      utf8_fromcstr(const char *src)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xreallocarray
      Src: /src/tmux/utf8.c:882,1
    - Dst: memcpy
      Src: /src/tmux/utf8.c:883,1
    - Dst: xreallocarray
      Src: /src/tmux/utf8.c:886,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - src
    argTypes:
    - struct utf8_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 875
    functionDepth: 2
    functionLinenumber: 875
    functionLinenumberEnd: 889
    functionName: utf8_tocstr
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 2
    functionsReached:
    - memcpy
    - xreallocarray
    linkageType: ''
    returnType: char
    signature: 'char *

      utf8_tocstr(struct utf8_data *src)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: utf8_open
      Src: /src/tmux/utf8.c:901,1
    - Dst: utf8_append
      Src: /src/tmux/utf8.c:903,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 892
    functionDepth: 5
    functionLinenumber: 892
    functionLinenumberEnd: 915
    functionName: utf8_cstrwidth
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 5
    functionsReached:
    - utf8_open
    - utf8_append
    linkageType: ''
    returnType: u_int
    signature: u_int utf8_cstrwidth(const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utf8_cstrwidth
      Src: /src/tmux/utf8.c:925,1
    - Dst: xstrdup
      Src: /src/tmux/utf8.c:927,1
    - Dst: strlen
      Src: /src/tmux/utf8.c:929,1
    - Dst: xmalloc
      Src: /src/tmux/utf8.c:930,1
    - Dst: memcpy
      Src: /src/tmux/utf8.c:931,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - s
    - width
    argTypes:
    - char*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 918
    functionDepth: 6
    functionLinenumber: 918
    functionLinenumberEnd: 936
    functionName: utf8_padcstr
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - utf8_cstrwidth
    - memcpy
    - strlen
    - xstrdup
    linkageType: ''
    returnType: char
    signature: 'char *

      utf8_padcstr(const char *s, u_int width)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utf8_cstrwidth
      Src: /src/tmux/utf8.c:946,1
    - Dst: xstrdup
      Src: /src/tmux/utf8.c:948,1
    - Dst: strlen
      Src: /src/tmux/utf8.c:950,1
    - Dst: xmalloc
      Src: /src/tmux/utf8.c:951,1
    - Dst: memcpy
      Src: /src/tmux/utf8.c:954,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - s
    - width
    argTypes:
    - char*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 939
    functionDepth: 6
    functionLinenumber: 939
    functionLinenumberEnd: 957
    functionName: utf8_rpadcstr
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - utf8_cstrwidth
    - memcpy
    - strlen
    - xstrdup
    linkageType: ''
    returnType: char
    signature: 'char *

      utf8_rpadcstr(const char *s, u_int width)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: utf8_fromcstr
      Src: /src/tmux/utf8.c:965,1
    - Dst: memcmp
      Src: /src/tmux/utf8.c:969,1
    - Dst: free
      Src: /src/tmux/utf8.c:974,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - s
    - ud
    argTypes:
    - char*
    - struct utf8_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 959
    functionDepth: 6
    functionLinenumber: 959
    functionLinenumberEnd: 977
    functionName: utf8_cstrhas
    functionSourceFile: /src/tmux/utf8.c
    functionUses: 1
    functionsReached:
    - utf8_fromcstr
    - free
    - memcmp
    linkageType: ''
    returnType: int
    signature: int utf8_cstrhas(const char *s, const struct utf8_data *ud)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-resize-window.c:49,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-resize-window.c:50,1
    - Dst: args_count
      Src: /src/tmux/cmd-resize-window.c:58,1
    - Dst: strtonum
      Src: /src/tmux/cmd-resize-window.c:61,1
    - Dst: args_string
      Src: /src/tmux/cmd-resize-window.c:61,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-resize-window.c:63,1
    - Dst: args_has
      Src: /src/tmux/cmd-resize-window.c:71,1
    - Dst: args_strtonum
      Src: /src/tmux/cmd-resize-window.c:72,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-resize-window.c:75,1
    - Dst: free
      Src: /src/tmux/cmd-resize-window.c:76,1
    - Dst: args_has
      Src: /src/tmux/cmd-resize-window.c:80,1
    - Dst: args_strtonum
      Src: /src/tmux/cmd-resize-window.c:81,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-resize-window.c:84,1
    - Dst: free
      Src: /src/tmux/cmd-resize-window.c:85,1
    - Dst: args_has
      Src: /src/tmux/cmd-resize-window.c:90,1
    - Dst: args_has
      Src: /src/tmux/cmd-resize-window.c:93,1
    - Dst: args_has
      Src: /src/tmux/cmd-resize-window.c:95,1
    - Dst: args_has
      Src: /src/tmux/cmd-resize-window.c:98,1
    - Dst: args_has
      Src: /src/tmux/cmd-resize-window.c:101,1
    - Dst: default_window_size
      Src: /src/tmux/cmd-resize-window.c:102,1
    - Dst: args_has
      Src: /src/tmux/cmd-resize-window.c:104,1
    - Dst: default_window_size
      Src: /src/tmux/cmd-resize-window.c:105,1
    - Dst: options_set_number
      Src: /src/tmux/cmd-resize-window.c:109,1
    - Dst: recalculate_size
      Src: /src/tmux/cmd-resize-window.c:112,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 46
    functionDepth: 7
    functionLinenumber: 46
    functionLinenumberEnd: 115
    functionName: cmd_resize_window_exec
    functionSourceFile: /src/tmux/cmd-resize-window.c
    functionUses: 0
    functionsReached:
    - recalculate_size
    - args_strtonum
    - cmdq_error
    - args_string
    - strtonum
    - cmd_get_args
    - default_window_size
    - free
    - options_set_number
    - args_count
    - cmdq_get_target
    - args_has
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_resize_window_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_get_level
      Src: /src/tmux/notify.c:47,1
    - Dst: cmd_list_print
      Src: /src/tmux/notify.c:48,1
    - Dst: log_debug
      Src: /src/tmux/notify.c:49,1
    - Dst: free
      Src: /src/tmux/notify.c:50,1
    - Dst: cmdq_get_command
      Src: /src/tmux/notify.c:52,1
    - Dst: cmdq_insert_after
      Src: /src/tmux/notify.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - item
    - ne
    - cmdlist
    - state
    argTypes:
    - struct cmdq_item*
    - struct notify_entry*
    - struct cmd_list*
    - struct cmdq_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: notify_insert_one_hook
    functionSourceFile: /src/tmux/notify.c
    functionUses: 0
    functionsReached:
    - cmd_list_print
    - cmdq_insert_after
    - log_get_level
    - free
    - cmdq_get_command
    - log_debug
    linkageType: ''
    returnType: struct cmdq_item
    signature: "struct cmdq_item *\nnotify_insert_one_hook(struct cmdq_item *item,
      struct notify_entry *ne,\n    struct cmd_list *cmdlist, struct cmdq_state *state)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/notify.c:68,1
    - Dst: cmd_find_clear_state
      Src: /src/tmux/notify.c:70,1
    - Dst: cmd_find_empty_state
      Src: /src/tmux/notify.c:71,1
    - Dst: cmd_find_valid_state
      Src: /src/tmux/notify.c:71,1
    - Dst: cmd_find_from_nothing
      Src: /src/tmux/notify.c:72,1
    - Dst: cmd_find_copy_state
      Src: /src/tmux/notify.c:74,1
    - Dst: options_get
      Src: /src/tmux/notify.c:80,1
    - Dst: options_get
      Src: /src/tmux/notify.c:83,1
    - Dst: options_get
      Src: /src/tmux/notify.c:87,1
    - Dst: log_debug
      Src: /src/tmux/notify.c:90,1
    - Dst: cmdq_new_state
      Src: /src/tmux/notify.c:94,1
    - Dst: cmdq_add_formats
      Src: /src/tmux/notify.c:95,1
    - Dst: options_get_string
      Src: /src/tmux/notify.c:98,1
    - Dst: cmd_parse_from_string
      Src: /src/tmux/notify.c:99,1
    - Dst: log_debug
      Src: /src/tmux/notify.c:102,1
    - Dst: free
      Src: /src/tmux/notify.c:104,1
    - Dst: notify_insert_one_hook
      Src: /src/tmux/notify.c:107,1
    - Dst: options_array_first
      Src: /src/tmux/notify.c:111,1
    - Dst: options_array_item_value
      Src: /src/tmux/notify.c:113,1
    - Dst: notify_insert_one_hook
      Src: /src/tmux/notify.c:114,1
    - Dst: options_array_next
      Src: /src/tmux/notify.c:115,1
    - Dst: cmdq_free_state
      Src: /src/tmux/notify.c:119,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 2
    argNames:
    - item
    - ne
    argTypes:
    - struct cmdq_item*
    - struct notify_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 56
    functionDepth: 4
    functionLinenumber: 56
    functionLinenumberEnd: 120
    functionName: notify_insert_hook
    functionSourceFile: /src/tmux/notify.c
    functionUses: 0
    functionsReached:
    - cmd_find_valid_state
    - options_get_string
    - options_array_first
    - cmd_find_copy_state
    - cmdq_new_state
    - notify_insert_one_hook
    - options_array_item_value
    - cmdq_free_state
    - cmd_find_from_nothing
    - cmd_find_clear_state
    - free
    - cmdq_add_formats
    - log_debug
    - cmd_parse_from_string
    - options_get
    - cmd_find_empty_state
    - options_array_next
    linkageType: ''
    returnType: void
    signature: void notify_insert_hook(struct cmdq_item *item, struct notify_entry
      *ne)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/notify.c:127,1
    - Dst: strcmp
      Src: /src/tmux/notify.c:129,1
    - Dst: control_notify_pane_mode_changed
      Src: /src/tmux/notify.c:130,1
    - Dst: strcmp
      Src: /src/tmux/notify.c:131,1
    - Dst: control_notify_window_layout_changed
      Src: /src/tmux/notify.c:132,1
    - Dst: strcmp
      Src: /src/tmux/notify.c:133,1
    - Dst: control_notify_window_pane_changed
      Src: /src/tmux/notify.c:134,1
    - Dst: strcmp
      Src: /src/tmux/notify.c:135,1
    - Dst: control_notify_window_unlinked
      Src: /src/tmux/notify.c:136,1
    - Dst: strcmp
      Src: /src/tmux/notify.c:137,1
    - Dst: control_notify_window_linked
      Src: /src/tmux/notify.c:138,1
    - Dst: strcmp
      Src: /src/tmux/notify.c:139,1
    - Dst: control_notify_window_renamed
      Src: /src/tmux/notify.c:140,1
    - Dst: strcmp
      Src: /src/tmux/notify.c:141,1
    - Dst: control_notify_client_session_changed
      Src: /src/tmux/notify.c:142,1
    - Dst: strcmp
      Src: /src/tmux/notify.c:143,1
    - Dst: control_notify_client_detached
      Src: /src/tmux/notify.c:144,1
    - Dst: strcmp
      Src: /src/tmux/notify.c:145,1
    - Dst: control_notify_session_renamed
      Src: /src/tmux/notify.c:146,1
    - Dst: strcmp
      Src: /src/tmux/notify.c:147,1
    - Dst: control_notify_session_created
      Src: /src/tmux/notify.c:148,1
    - Dst: strcmp
      Src: /src/tmux/notify.c:149,1
    - Dst: control_notify_session_closed
      Src: /src/tmux/notify.c:150,1
    - Dst: strcmp
      Src: /src/tmux/notify.c:151,1
    - Dst: control_notify_session_window_changed
      Src: /src/tmux/notify.c:152,1
    - Dst: strcmp
      Src: /src/tmux/notify.c:153,1
    - Dst: control_notify_paste_buffer_changed
      Src: /src/tmux/notify.c:154,1
    - Dst: strcmp
      Src: /src/tmux/notify.c:155,1
    - Dst: control_notify_paste_buffer_deleted
      Src: /src/tmux/notify.c:156,1
    - Dst: notify_insert_hook
      Src: /src/tmux/notify.c:158,1
    - Dst: server_client_unref
      Src: /src/tmux/notify.c:161,1
    - Dst: session_remove_ref
      Src: /src/tmux/notify.c:163,1
    - Dst: window_remove_ref
      Src: /src/tmux/notify.c:165,1
    - Dst: session_remove_ref
      Src: /src/tmux/notify.c:168,1
    - Dst: format_free
      Src: /src/tmux/notify.c:170,1
    - Dst: free
      Src: /src/tmux/notify.c:171,1
    - Dst: free
      Src: /src/tmux/notify.c:172,1
    - Dst: free
      Src: /src/tmux/notify.c:173,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 2
    argNames:
    - item
    - data
    argTypes:
    - struct cmdq_item*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 122
    functionDepth: 5
    functionLinenumber: 122
    functionLinenumberEnd: 176
    functionName: notify_callback
    functionSourceFile: /src/tmux/notify.c
    functionUses: 0
    functionsReached:
    - control_notify_pane_mode_changed
    - control_notify_client_detached
    - control_notify_session_window_changed
    - control_notify_paste_buffer_changed
    - format_free
    - control_notify_window_pane_changed
    - window_remove_ref
    - log_debug
    - control_notify_client_session_changed
    - notify_insert_hook
    - control_notify_session_renamed
    - control_notify_window_renamed
    - control_notify_window_layout_changed
    - control_notify_paste_buffer_deleted
    - session_remove_ref
    - control_notify_session_created
    - server_client_unref
    - control_notify_window_linked
    - strcmp
    - control_notify_session_closed
    - free
    - control_notify_window_unlinked
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval notify_callback(struct cmdq_item *item, void *data)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_running
      Src: /src/tmux/notify.c:186,1
    - Dst: cmdq_get_flags
      Src: /src/tmux/notify.c:187,1
    - Dst: xcalloc
      Src: /src/tmux/notify.c:190,1
    - Dst: xstrdup
      Src: /src/tmux/notify.c:191,1
    - Dst: xstrdup
      Src: /src/tmux/notify.c:197,1
    - Dst: format_create
      Src: /src/tmux/notify.c:199,1
    - Dst: format_add
      Src: /src/tmux/notify.c:200,1
    - Dst: format_add
      Src: /src/tmux/notify.c:202,1
    - Dst: format_add
      Src: /src/tmux/notify.c:204,1
    - Dst: format_add
      Src: /src/tmux/notify.c:205,1
    - Dst: format_add
      Src: /src/tmux/notify.c:208,1
    - Dst: format_add
      Src: /src/tmux/notify.c:209,1
    - Dst: format_add
      Src: /src/tmux/notify.c:212,1
    - Dst: format_add
      Src: /src/tmux/notify.c:213,1
    - Dst: format_add
      Src: /src/tmux/notify.c:214,1
    - Dst: format_log_debug
      Src: /src/tmux/notify.c:217,1
    - Dst: session_add_ref
      Src: /src/tmux/notify.c:222,1
    - Dst: window_add_ref
      Src: /src/tmux/notify.c:224,1
    - Dst: cmd_find_copy_state
      Src: /src/tmux/notify.c:226,1
    - Dst: session_add_ref
      Src: /src/tmux/notify.c:228,1
    - Dst: cmdq_append
      Src: /src/tmux/notify.c:230,1
    - Dst: cmdq_get_callback
      Src: /src/tmux/notify.c:230,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 7
    argNames:
    - name
    - fs
    - c
    - s
    - w
    - wp
    - pbname
    argTypes:
    - char*
    - struct cmd_find_state*
    - struct client*
    - struct session*
    - struct window*
    - struct window_pane*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 231
    functionName: notify_add
    functionSourceFile: /src/tmux/notify.c
    functionUses: 0
    functionsReached:
    - cmdq_running
    - session_add_ref
    - cmdq_get_callback
    - cmd_find_copy_state
    - format_log_debug
    - xcalloc
    - cmdq_append
    - cmdq_get_flags
    - window_add_ref
    - format_create
    - format_add
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void notify_add(const char *name, struct cmd_find_state *fs, struct
      client *c,\n    struct session *s, struct window *w, struct window_pane *wp,\n
      \   const char *pbname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get_target
      Src: /src/tmux/notify.c:236,1
    - Dst: memset
      Src: /src/tmux/notify.c:239,1
    - Dst: cmd_find_copy_state
      Src: /src/tmux/notify.c:242,1
    - Dst: cmdq_get_client
      Src: /src/tmux/notify.c:244,1
    - Dst: format_create
      Src: /src/tmux/notify.c:249,1
    - Dst: format_add
      Src: /src/tmux/notify.c:250,1
    - Dst: format_log_debug
      Src: /src/tmux/notify.c:251,1
    - Dst: notify_insert_hook
      Src: /src/tmux/notify.c:253,1
    - Dst: format_free
      Src: /src/tmux/notify.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - item
    - name
    argTypes:
    - struct cmdq_item*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 233
    functionDepth: 5
    functionLinenumber: 233
    functionLinenumberEnd: 255
    functionName: notify_hook
    functionSourceFile: /src/tmux/notify.c
    functionUses: 1
    functionsReached:
    - cmd_find_copy_state
    - format_free
    - memset
    - format_create
    - format_add
    - cmdq_get_client
    - format_log_debug
    - cmdq_get_target
    - notify_insert_hook
    linkageType: ''
    returnType: void
    signature: void notify_hook(struct cmdq_item *item, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmd_find_from_client
      Src: /src/tmux/notify.c:262,1
    - Dst: notify_add
      Src: /src/tmux/notify.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - c
    argTypes:
    - char*
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 257
    functionDepth: 5
    functionLinenumber: 257
    functionLinenumberEnd: 264
    functionName: notify_client
    functionSourceFile: /src/tmux/notify.c
    functionUses: 7
    functionsReached:
    - cmd_find_from_client
    - notify_add
    linkageType: ''
    returnType: void
    signature: void notify_client(const char *name, struct client *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: session_alive
      Src: /src/tmux/notify.c:271,1
    - Dst: cmd_find_from_session
      Src: /src/tmux/notify.c:272,1
    - Dst: cmd_find_from_nothing
      Src: /src/tmux/notify.c:274,1
    - Dst: notify_add
      Src: /src/tmux/notify.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - name
    - s
    argTypes:
    - char*
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 266
    functionDepth: 4
    functionLinenumber: 266
    functionLinenumberEnd: 276
    functionName: notify_session
    functionSourceFile: /src/tmux/notify.c
    functionUses: 4
    functionsReached:
    - cmd_find_from_session
    - cmd_find_from_nothing
    - notify_add
    - session_alive
    linkageType: ''
    returnType: void
    signature: void notify_session(const char *name, struct session *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmd_find_from_winlink
      Src: /src/tmux/notify.c:283,1
    - Dst: notify_add
      Src: /src/tmux/notify.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - wl
    argTypes:
    - char*
    - struct winlink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 278
    functionDepth: 3
    functionLinenumber: 278
    functionLinenumberEnd: 285
    functionName: notify_winlink
    functionSourceFile: /src/tmux/notify.c
    functionUses: 3
    functionsReached:
    - notify_add
    - cmd_find_from_winlink
    linkageType: ''
    returnType: void
    signature: void notify_winlink(const char *name, struct winlink *wl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmd_find_from_session_window
      Src: /src/tmux/notify.c:292,1
    - Dst: notify_add
      Src: /src/tmux/notify.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - name
    - s
    - w
    argTypes:
    - char*
    - struct session*
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 294
    functionName: notify_session_window
    functionSourceFile: /src/tmux/notify.c
    functionUses: 7
    functionsReached:
    - notify_add
    - cmd_find_from_session_window
    linkageType: ''
    returnType: void
    signature: void notify_session_window(const char *name, struct session *s, struct
      window *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmd_find_from_window
      Src: /src/tmux/notify.c:301,1
    - Dst: notify_add
      Src: /src/tmux/notify.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - w
    argTypes:
    - char*
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 296
    functionDepth: 5
    functionLinenumber: 296
    functionLinenumberEnd: 303
    functionName: notify_window
    functionSourceFile: /src/tmux/notify.c
    functionUses: 18
    functionsReached:
    - notify_add
    - cmd_find_from_window
    linkageType: ''
    returnType: void
    signature: void notify_window(const char *name, struct window *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmd_find_from_pane
      Src: /src/tmux/notify.c:310,1
    - Dst: notify_add
      Src: /src/tmux/notify.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - wp
    argTypes:
    - char*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 305
    functionDepth: 6
    functionLinenumber: 305
    functionLinenumberEnd: 312
    functionName: notify_pane
    functionSourceFile: /src/tmux/notify.c
    functionUses: 11
    functionsReached:
    - notify_add
    - cmd_find_from_pane
    linkageType: ''
    returnType: void
    signature: void notify_pane(const char *name, struct window_pane *wp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmd_find_clear_state
      Src: /src/tmux/notify.c:319,1
    - Dst: notify_add
      Src: /src/tmux/notify.c:321,1
    - Dst: notify_add
      Src: /src/tmux/notify.c:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pbname
    - deleted
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 314
    functionDepth: 3
    functionLinenumber: 314
    functionLinenumberEnd: 327
    functionName: notify_paste_buffer
    functionSourceFile: /src/tmux/notify.c
    functionUses: 5
    functionsReached:
    - cmd_find_clear_state
    - notify_add
    linkageType: ''
    returnType: void
    signature: void notify_paste_buffer(const char *pbname, int deleted)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/format.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - fj1
    - fj2
    argTypes:
    - struct format_job*
    - struct format_job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 85
    functionName: format_job_cmp
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void format_job_cmp(struct format_job *fj1, struct format_job *fj2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/format.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fe1
    - fe2
    argTypes:
    - struct format_entry*
    - struct format_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: format_entry_cmp
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int format_entry_cmp(struct format_entry *fe1, struct format_entry
      *fe2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_get_level
      Src: /src/tmux/format.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 263
    functionName: format_logging
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - log_get_level
    linkageType: ''
    returnType: int
    signature: int format_logging(struct format_tree *ft)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: format_logging
      Src: /src/tmux/format.c:275,1
    - Dst: va_start
      Src: /src/tmux/format.c:278,1
    - Dst: xvasprintf
      Src: /src/tmux/format.c:279,1
    - Dst: va_end
      Src: /src/tmux/format.c:280,1
    - Dst: log_debug
      Src: /src/tmux/format.c:282,1
    - Dst: cmdq_print
      Src: /src/tmux/format.c:284,1
    - Dst: free
      Src: /src/tmux/format.c:286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - es
    - from
    - fmt
    argTypes:
    - struct format_expand_state*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 287
    functionName: format_log1
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - cmdq_print
    - format_logging
    - xvasprintf
    - free
    - va_end
    - va_start
    - log_debug
    linkageType: ''
    returnType: void
    signature: "void format_log1(struct format_expand_state *es, const char *from,
      const char *fmt,\n    ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - es
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 289
    functionName: format_log
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: format_log(es, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/format.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - to
    - from
    - flags
    argTypes:
    - struct format_expand_state*
    - struct format_expand_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 301
    functionName: format_copy_state
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void format_copy_state(struct format_expand_state *to,\n    struct
      format_expand_state *from, int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: job_get_data
      Src: /src/tmux/format.c:307,1
    - Dst: job_get_event
      Src: /src/tmux/format.c:308,1
    - Dst: evbuffer_readline
      Src: /src/tmux/format.c:312,1
    - Dst: free
      Src: /src/tmux/format.c:313,1
    - Dst: free
      Src: /src/tmux/format.c:320,1
    - Dst: log_debug
      Src: /src/tmux/format.c:323,1
    - Dst: time
      Src: /src/tmux/format.c:325,1
    - Dst: server_status_client
      Src: /src/tmux/format.c:328,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - job
    argTypes:
    - struct job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 331
    functionName: format_job_update
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - evbuffer_readline
    - server_status_client
    - free
    - time
    - log_debug
    - job_get_event
    - job_get_data
    linkageType: ''
    returnType: void
    signature: void format_job_update(struct job *job)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: job_get_data
      Src: /src/tmux/format.c:337,1
    - Dst: job_get_event
      Src: /src/tmux/format.c:338,1
    - Dst: evbuffer_readline
      Src: /src/tmux/format.c:345,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/format.c:346,1
    - Dst: xmalloc
      Src: /src/tmux/format.c:347,1
    - Dst: memcpy
      Src: /src/tmux/format.c:349,1
    - Dst: EVBUFFER_DATA
      Src: /src/tmux/format.c:349,1
    - Dst: log_debug
      Src: /src/tmux/format.c:354,1
    - Dst: free
      Src: /src/tmux/format.c:357,1
    - Dst: free
      Src: /src/tmux/format.c:360,1
    - Dst: server_status_client
      Src: /src/tmux/format.c:364,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - job
    argTypes:
    - struct job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 367
    functionName: format_job_complete
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - evbuffer_readline
    - EVBUFFER_DATA
    - xmalloc
    - server_status_client
    - job_get_data
    - free
    - memcpy
    - log_debug
    - job_get_event
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: void format_job_complete(struct job *job)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/tmux/format.c:386,1
    - Dst: RB_INIT
      Src: /src/tmux/format.c:387,1
    - Dst: RB_FIND
      Src: /src/tmux/format.c:392,1
    - Dst: xcalloc
      Src: /src/tmux/format.c:393,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:396,1
    - Dst: RB_INSERT
      Src: /src/tmux/format.c:398,1
    - Dst: format_copy_state
      Src: /src/tmux/format.c:401,1
    - Dst: format_expand1
      Src: /src/tmux/format.c:404,1
    - Dst: strcmp
      Src: /src/tmux/format.c:405,1
    - Dst: free
      Src: /src/tmux/format.c:406,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:407,1
    - Dst: time
      Src: /src/tmux/format.c:412,1
    - Dst: job_free
      Src: /src/tmux/format.c:414,1
    - Dst: job_run
      Src: /src/tmux/format.c:416,1
    - Dst: server_client_get_cwd
      Src: /src/tmux/format.c:417,1
    - Dst: free
      Src: /src/tmux/format.c:420,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:421,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:426,1
    - Dst: free
      Src: /src/tmux/format.c:427,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:432,1
    - Dst: format_expand1
      Src: /src/tmux/format.c:433,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 2
    argNames:
    - es
    - cmd
    argTypes:
    - struct format_expand_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 434
    functionName: format_job_get
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - RB_INIT
    - job_run
    - xasprintf
    - xcalloc
    - xmalloc
    - server_client_get_cwd
    - strcmp
    - free
    - time
    - format_copy_state
    - job_free
    - format_expand1
    - xstrdup
    - RB_FIND
    - RB_INSERT
    linkageType: ''
    returnType: char
    signature: 'char *

      format_job_get(struct format_expand_state *es, const char *cmd)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/tmux/format.c:443,1
    - Dst: RB_REMOVE
      Src: /src/tmux/format.c:447,1
    - Dst: log_debug
      Src: /src/tmux/format.c:449,1
    - Dst: job_free
      Src: /src/tmux/format.c:452,1
    - Dst: free
      Src: /src/tmux/format.c:454,1
    - Dst: free
      Src: /src/tmux/format.c:455,1
    - Dst: free
      Src: /src/tmux/format.c:456,1
    - Dst: free
      Src: /src/tmux/format.c:458,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - jobs
    - force
    argTypes:
    - struct format_job_tree*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 437
    functionDepth: 3
    functionLinenumber: 437
    functionLinenumberEnd: 460
    functionName: format_job_tidy
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - job_free
    - free
    - time
    - log_debug
    - RB_REMOVE
    linkageType: ''
    returnType: void
    signature: void format_job_tidy(struct format_job_tree *jobs, int force)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RB_REMOVE
      Src: /src/tmux/format.c:447,1
    - Dst: log_debug
      Src: /src/tmux/format.c:449,1
    - Dst: job_free
      Src: /src/tmux/format.c:452,1
    - Dst: free
      Src: /src/tmux/format.c:454,1
    - Dst: free
      Src: /src/tmux/format.c:455,1
    - Dst: free
      Src: /src/tmux/format.c:456,1
    - Dst: free
      Src: /src/tmux/format.c:458,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 444
    functionDepth: 3
    functionLinenumber: 444
    functionLinenumberEnd: 459
    functionName: RB_FOREACH_SAFE
    functionSourceFile: /src/tmux/format.c
    functionUses: 19
    functionsReached:
    - log_debug
    - job_free
    - free
    - RB_REMOVE
    linkageType: ''
    returnType: void
    signature: void RB_FOREACH_SAFE(fj, format_job_tree, jobs, fj1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strftime
      Src: /src/tmux/format.c:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - s
    - max
    - fmt
    - tm
    argTypes:
    - char*
    - size_t
    - char*
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 471
    functionName: format_strftime
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - strftime
    linkageType: ''
    returnType: size_t
    signature: size_t format_strftime(char *s, size_t max, const char *fmt, const
      struct tm *tm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_job_tidy
      Src: /src/tmux/format.c:482,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/format.c:483,1
    - Dst: format_job_tidy
      Src: /src/tmux/format.c:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 477
    functionDepth: 4
    functionLinenumber: 477
    functionLinenumberEnd: 487
    functionName: format_tidy_jobs
    functionSourceFile: /src/tmux/format.c
    functionUses: 1
    functionsReached:
    - format_job_tidy
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void format_tidy_jobs(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_job_tidy
      Src: /src/tmux/format.c:494,1
    - Dst: free
      Src: /src/tmux/format.c:495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 490
    functionDepth: 4
    functionLinenumber: 490
    functionLinenumberEnd: 496
    functionName: format_lost_client
    functionSourceFile: /src/tmux/format.c
    functionUses: 1
    functionsReached:
    - format_job_tidy
    - free
    linkageType: ''
    returnType: void
    signature: void format_lost_client(struct client *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/tmux/format.c:505,1
    - Dst: xvasprintf
      Src: /src/tmux/format.c:506,1
    - Dst: va_end
      Src: /src/tmux/format.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 500
    functionDepth: 2
    functionLinenumber: 500
    functionLinenumberEnd: 509
    functionName: format_printf
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - va_end
    - xvasprintf
    - va_start
    linkageType: ''
    returnType: void
    signature: void format_printf(const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gethostname
      Src: /src/tmux/format.c:517,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:518,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 520
    functionName: format_cb_host
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - gethostname
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_host(__unused struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gethostname
      Src: /src/tmux/format.c:528,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:529,1
    - Dst: strchr
      Src: /src/tmux/format.c:530,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ft
    argTypes:
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 533
    functionName: format_cb_host_short
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - strchr
    - xstrdup
    - gethostname
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_host_short(__unused struct format_tree *ft)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/tmux/format.c:541,1
    - Dst: getpid
      Src: /src/tmux/format.c:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ft
    argTypes:
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 536
    functionDepth: 2
    functionLinenumber: 536
    functionLinenumberEnd: 543
    functionName: format_cb_pid
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - getpid
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pid(__unused struct format_tree *ft)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/tmux/format.c:558,1
    - Dst: fatalx
      Src: /src/tmux/format.c:560,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/format.c:562,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/format.c:564,1
    - Dst: evbuffer_add
      Src: /src/tmux/format.c:565,1
    - Dst: evbuffer_add_printf
      Src: /src/tmux/format.c:566,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/format.c:570,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:571,1
    - Dst: EVBUFFER_DATA
      Src: /src/tmux/format.c:571,1
    - Dst: evbuffer_free
      Src: /src/tmux/format.c:572,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 546
    functionDepth: 3
    functionLinenumber: 546
    functionLinenumberEnd: 574
    functionName: format_cb_session_attached_list
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - evbuffer_add
    - TAILQ_FOREACH
    - EVBUFFER_DATA
    - fatalx
    - evbuffer_free
    - evbuffer_add_printf
    - evbuffer_new
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_session_attached_list(struct format_tree *ft)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/format.c:589,1
    - Dst: strlcat
      Src: /src/tmux/format.c:593,1
    - Dst: strlcat
      Src: /src/tmux/format.c:597,1
    - Dst: strlcat
      Src: /src/tmux/format.c:601,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:605,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 577
    functionDepth: 2
    functionLinenumber: 577
    functionLinenumberEnd: 606
    functionName: format_cb_session_alert
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - RB_FOREACH
    - xstrdup
    - strlcat
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_session_alert(struct format_tree *ft)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/format.c:620,1
    - Dst: xsnprintf
      Src: /src/tmux/format.c:623,1
    - Dst: strlcat
      Src: /src/tmux/format.c:626,1
    - Dst: strlcat
      Src: /src/tmux/format.c:627,1
    - Dst: strlcat
      Src: /src/tmux/format.c:629,1
    - Dst: strlcat
      Src: /src/tmux/format.c:631,1
    - Dst: strlcat
      Src: /src/tmux/format.c:633,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:635,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 609
    functionDepth: 2
    functionLinenumber: 609
    functionLinenumberEnd: 636
    functionName: format_cb_session_alerts
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - RB_FOREACH
    - xsnprintf
    - xstrdup
    - strlcat
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_session_alerts(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/tmux/format.c:649,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/format.c:650,1
    - Dst: xsnprintf
      Src: /src/tmux/format.c:651,1
    - Dst: strlcat
      Src: /src/tmux/format.c:654,1
    - Dst: strlcat
      Src: /src/tmux/format.c:655,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:657,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 639
    functionDepth: 2
    functionLinenumber: 639
    functionLinenumberEnd: 658
    functionName: format_cb_session_stack
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xsnprintf
    - xstrdup
    - strlcat
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_session_stack(struct format_tree *ft)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/format.c:674,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:680,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:681,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 661
    functionDepth: 2
    functionLinenumber: 661
    functionLinenumberEnd: 683
    functionName: format_cb_window_stack_index
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - xstrdup
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_stack_index(struct format_tree *ft)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/tmux/format.c:699,1
    - Dst: fatalx
      Src: /src/tmux/format.c:701,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/format.c:703,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/format.c:704,1
    - Dst: evbuffer_add
      Src: /src/tmux/format.c:705,1
    - Dst: evbuffer_add_printf
      Src: /src/tmux/format.c:706,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/format.c:709,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:710,1
    - Dst: EVBUFFER_DATA
      Src: /src/tmux/format.c:710,1
    - Dst: evbuffer_free
      Src: /src/tmux/format.c:711,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 686
    functionDepth: 3
    functionLinenumber: 686
    functionLinenumberEnd: 713
    functionName: format_cb_window_linked_sessions_list
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - evbuffer_add
    - TAILQ_FOREACH
    - EVBUFFER_DATA
    - fatalx
    - evbuffer_free
    - evbuffer_add_printf
    - evbuffer_new
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_linked_sessions_list(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/format.c:728,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:733,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 716
    functionDepth: 2
    functionLinenumber: 716
    functionLinenumberEnd: 735
    functionName: format_cb_window_active_sessions
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_active_sessions(struct format_tree *ft)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/tmux/format.c:751,1
    - Dst: fatalx
      Src: /src/tmux/format.c:753,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/format.c:755,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/format.c:757,1
    - Dst: evbuffer_add
      Src: /src/tmux/format.c:758,1
    - Dst: evbuffer_add_printf
      Src: /src/tmux/format.c:759,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/format.c:763,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:764,1
    - Dst: EVBUFFER_DATA
      Src: /src/tmux/format.c:764,1
    - Dst: evbuffer_free
      Src: /src/tmux/format.c:765,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 738
    functionDepth: 3
    functionLinenumber: 738
    functionLinenumberEnd: 767
    functionName: format_cb_window_active_sessions_list
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - evbuffer_add
    - TAILQ_FOREACH
    - EVBUFFER_DATA
    - fatalx
    - evbuffer_free
    - evbuffer_add_printf
    - evbuffer_new
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_active_sessions_list(struct format_tree *ft)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/format.c:783,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:792,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 770
    functionDepth: 2
    functionLinenumber: 770
    functionLinenumberEnd: 794
    functionName: format_cb_window_active_clients
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_active_clients(struct format_tree *ft)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/tmux/format.c:811,1
    - Dst: fatalx
      Src: /src/tmux/format.c:813,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/format.c:815,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/format.c:821,1
    - Dst: evbuffer_add
      Src: /src/tmux/format.c:822,1
    - Dst: evbuffer_add_printf
      Src: /src/tmux/format.c:823,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/format.c:827,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:828,1
    - Dst: EVBUFFER_DATA
      Src: /src/tmux/format.c:828,1
    - Dst: evbuffer_free
      Src: /src/tmux/format.c:829,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 797
    functionDepth: 3
    functionLinenumber: 797
    functionLinenumberEnd: 831
    functionName: format_cb_window_active_clients_list
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - evbuffer_add
    - TAILQ_FOREACH
    - EVBUFFER_DATA
    - fatalx
    - evbuffer_free
    - evbuffer_add_printf
    - evbuffer_new
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_active_clients_list(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: layout_dump
      Src: /src/tmux/format.c:843,1
    - Dst: layout_dump
      Src: /src/tmux/format.c:844,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 834
    functionDepth: 3
    functionLinenumber: 834
    functionLinenumberEnd: 845
    functionName: format_cb_window_layout
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - layout_dump
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_layout(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: layout_dump
      Src: /src/tmux/format.c:856,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 848
    functionDepth: 3
    functionLinenumber: 848
    functionLinenumberEnd: 857
    functionName: format_cb_window_visible_layout
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - layout_dump
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_visible_layout(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmd_stringify_argv
      Src: /src/tmux/format.c:868,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 860
    functionDepth: 2
    functionLinenumber: 860
    functionLinenumberEnd: 869
    functionName: format_cb_start_command
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - cmd_stringify_argv
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_start_command(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:881,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:882,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 872
    functionDepth: 2
    functionLinenumber: 872
    functionLinenumberEnd: 883
    functionName: format_cb_start_path
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_start_path(struct format_tree *ft)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: osdep_get_name
      Src: /src/tmux/format.c:895,1
    - Dst: free
      Src: /src/tmux/format.c:897,1
    - Dst: cmd_stringify_argv
      Src: /src/tmux/format.c:898,1
    - Dst: free
      Src: /src/tmux/format.c:900,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:901,1
    - Dst: parse_window_name
      Src: /src/tmux/format.c:904,1
    - Dst: free
      Src: /src/tmux/format.c:905,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 886
    functionDepth: 3
    functionLinenumber: 886
    functionLinenumberEnd: 907
    functionName: format_cb_current_command
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - osdep_get_name
    - free
    - cmd_stringify_argv
    - parse_window_name
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_current_command(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: osdep_get_cwd
      Src: /src/tmux/format.c:919,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:922,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 910
    functionDepth: 2
    functionLinenumber: 910
    functionLinenumberEnd: 923
    functionName: format_cb_current_path
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - osdep_get_cwd
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_current_path(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_line
      Src: /src/tmux/format.c:941,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:947,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 926
    functionDepth: 2
    functionLinenumber: 926
    functionLinenumberEnd: 949
    functionName: format_cb_history_bytes
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - grid_get_line
    - xasprintf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_history_bytes(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_line
      Src: /src/tmux/format.c:967,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:972,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 952
    functionDepth: 2
    functionLinenumber: 952
    functionLinenumberEnd: 976
    functionName: format_cb_history_all_bytes
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - grid_get_line
    - xasprintf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_history_all_bytes(struct format_tree *ft)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/tmux/format.c:991,1
    - Dst: fatalx
      Src: /src/tmux/format.c:993,1
    - Dst: bit_test
      Src: /src/tmux/format.c:995,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/format.c:998,1
    - Dst: evbuffer_add
      Src: /src/tmux/format.c:999,1
    - Dst: evbuffer_add_printf
      Src: /src/tmux/format.c:1000,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/format.c:1002,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:1003,1
    - Dst: EVBUFFER_DATA
      Src: /src/tmux/format.c:1003,1
    - Dst: evbuffer_free
      Src: /src/tmux/format.c:1004,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 979
    functionDepth: 3
    functionLinenumber: 979
    functionLinenumberEnd: 1006
    functionName: format_cb_pane_tabs
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - evbuffer_add
    - EVBUFFER_DATA
    - fatalx
    - bit_test
    - evbuffer_free
    - evbuffer_add_printf
    - evbuffer_new
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_tabs(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_default_colours
      Src: /src/tmux/format.c:1018,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1019,1
    - Dst: colour_tostring
      Src: /src/tmux/format.c:1019,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1009
    functionDepth: 3
    functionLinenumber: 1009
    functionLinenumberEnd: 1020
    functionName: format_cb_pane_fg
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - colour_tostring
    - xstrdup
    - tty_default_colours
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_fg(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1027,1
    - Dst: window_pane_printable_flags
      Src: /src/tmux/format.c:1027,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1023
    functionDepth: 2
    functionLinenumber: 1023
    functionLinenumberEnd: 1029
    functionName: format_cb_pane_flags
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - window_pane_printable_flags
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_flags(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1039,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1040,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1032
    functionDepth: 2
    functionLinenumber: 1032
    functionLinenumberEnd: 1043
    functionName: format_cb_pane_floating_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_floating_flag(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tty_default_colours
      Src: /src/tmux/format.c:1055,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1056,1
    - Dst: colour_tostring
      Src: /src/tmux/format.c:1056,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1046
    functionDepth: 3
    functionLinenumber: 1046
    functionLinenumberEnd: 1057
    functionName: format_cb_pane_bg
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - colour_tostring
    - xstrdup
    - tty_default_colours
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_bg(struct format_tree *ft)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: session_group_contains
      Src: /src/tmux/format.c:1072,1
    - Dst: evbuffer_new
      Src: /src/tmux/format.c:1076,1
    - Dst: fatalx
      Src: /src/tmux/format.c:1078,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/format.c:1080,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/format.c:1081,1
    - Dst: evbuffer_add
      Src: /src/tmux/format.c:1082,1
    - Dst: evbuffer_add_printf
      Src: /src/tmux/format.c:1083,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/format.c:1086,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:1087,1
    - Dst: EVBUFFER_DATA
      Src: /src/tmux/format.c:1087,1
    - Dst: evbuffer_free
      Src: /src/tmux/format.c:1088,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1060
    functionDepth: 3
    functionLinenumber: 1060
    functionLinenumberEnd: 1090
    functionName: format_cb_session_group_list
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - session_group_contains
    - xasprintf
    - evbuffer_add
    - TAILQ_FOREACH
    - EVBUFFER_DATA
    - fatalx
    - evbuffer_free
    - evbuffer_add_printf
    - evbuffer_new
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_session_group_list(struct format_tree *ft)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: session_group_contains
      Src: /src/tmux/format.c:1105,1
    - Dst: evbuffer_new
      Src: /src/tmux/format.c:1109,1
    - Dst: fatalx
      Src: /src/tmux/format.c:1111,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/format.c:1113,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/format.c:1117,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/format.c:1119,1
    - Dst: evbuffer_add
      Src: /src/tmux/format.c:1120,1
    - Dst: evbuffer_add_printf
      Src: /src/tmux/format.c:1121,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/format.c:1126,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:1127,1
    - Dst: EVBUFFER_DATA
      Src: /src/tmux/format.c:1127,1
    - Dst: evbuffer_free
      Src: /src/tmux/format.c:1128,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1093
    functionDepth: 3
    functionLinenumber: 1093
    functionLinenumberEnd: 1130
    functionName: format_cb_session_group_attached_list
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - session_group_contains
    - xasprintf
    - evbuffer_add
    - TAILQ_FOREACH
    - EVBUFFER_DATA
    - fatalx
    - evbuffer_free
    - evbuffer_add_printf
    - evbuffer_new
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_session_group_attached_list(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/format.c:1144,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:1146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1133
    functionDepth: 2
    functionLinenumber: 1133
    functionLinenumberEnd: 1148
    functionName: format_cb_pane_in_mode
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_in_mode(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/format.c:1163,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:1168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1151
    functionDepth: 4
    functionLinenumber: 1151
    functionLinenumberEnd: 1170
    functionName: format_cb_pane_at_top
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - options_get_number
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_at_top(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/format.c:1185,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:1190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1173
    functionDepth: 4
    functionLinenumber: 1173
    functionLinenumberEnd: 1192
    functionName: format_cb_pane_at_bottom
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - options_get_number
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_at_bottom(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: grid_view_get_cell
      Src: /src/tmux/format.c:1205,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:1207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1195
    functionDepth: 4
    functionLinenumber: 1195
    functionLinenumberEnd: 1209
    functionName: format_cb_cursor_character
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - grid_view_get_cell
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_cursor_character(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1221,1
    - Dst: colour_tostring
      Src: /src/tmux/format.c:1221,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1222,1
    - Dst: colour_tostring
      Src: /src/tmux/format.c:1222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1212
    functionDepth: 2
    functionLinenumber: 1212
    functionLinenumberEnd: 1223
    functionName: format_cb_cursor_colour
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - colour_tostring
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_cursor_colour(struct format_tree *ft)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cmd_mouse_pane
      Src: /src/tmux/format.c:1235,1
    - Dst: cmd_mouse_at
      Src: /src/tmux/format.c:1238,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/format.c:1241,1
    - Dst: window_pane_mode
      Src: /src/tmux/format.c:1242,1
    - Dst: window_copy_get_word
      Src: /src/tmux/format.c:1243,1
    - Dst: format_grid_word
      Src: /src/tmux/format.c:1247,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1226
    functionDepth: 3
    functionLinenumber: 1226
    functionLinenumberEnd: 1248
    functionName: format_cb_mouse_word
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - cmd_mouse_at
    - window_copy_get_word
    - window_pane_mode
    - format_grid_word
    - cmd_mouse_pane
    - TAILQ_EMPTY
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_mouse_word(struct format_tree *ft)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cmd_mouse_pane
      Src: /src/tmux/format.c:1260,1
    - Dst: cmd_mouse_at
      Src: /src/tmux/format.c:1263,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/format.c:1266,1
    - Dst: window_pane_mode
      Src: /src/tmux/format.c:1267,1
    - Dst: window_copy_get_hyperlink
      Src: /src/tmux/format.c:1268,1
    - Dst: format_grid_hyperlink
      Src: /src/tmux/format.c:1272,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1251
    functionDepth: 3
    functionLinenumber: 1251
    functionLinenumberEnd: 1273
    functionName: format_cb_mouse_hyperlink
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_grid_hyperlink
    - cmd_mouse_at
    - window_pane_mode
    - cmd_mouse_pane
    - TAILQ_EMPTY
    - window_copy_get_hyperlink
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_mouse_hyperlink(struct format_tree *ft)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cmd_mouse_pane
      Src: /src/tmux/format.c:1285,1
    - Dst: cmd_mouse_at
      Src: /src/tmux/format.c:1288,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/format.c:1291,1
    - Dst: window_pane_mode
      Src: /src/tmux/format.c:1292,1
    - Dst: window_copy_get_line
      Src: /src/tmux/format.c:1293,1
    - Dst: format_grid_line
      Src: /src/tmux/format.c:1297,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1276
    functionDepth: 3
    functionLinenumber: 1276
    functionLinenumberEnd: 1298
    functionName: format_cb_mouse_line
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - cmd_mouse_at
    - format_grid_line
    - window_pane_mode
    - cmd_mouse_pane
    - TAILQ_EMPTY
    - window_copy_get_line
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_mouse_line(struct format_tree *ft)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/tmux/format.c:1318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1301
    functionDepth: 2
    functionLinenumber: 1301
    functionLinenumberEnd: 1321
    functionName: format_cb_mouse_status_line
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xasprintf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_mouse_status_line(struct format_tree *ft)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: status_get_range
      Src: /src/tmux/format.c:1344,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1351,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1353,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1355,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1357,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1359,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1361,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1363,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1324
    functionDepth: 2
    functionLinenumber: 1324
    functionLinenumberEnd: 1366
    functionName: format_cb_mouse_status_range
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - status_get_range
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_mouse_status_range(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1374,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1369
    functionDepth: 2
    functionLinenumber: 1369
    functionLinenumberEnd: 1378
    functionName: format_cb_alternate_on
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_alternate_on(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:1385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1381
    functionDepth: 3
    functionLinenumber: 1381
    functionLinenumberEnd: 1387
    functionName: format_cb_alternate_saved_x
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_alternate_saved_x(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:1394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1390
    functionDepth: 3
    functionLinenumber: 1390
    functionLinenumberEnd: 1396
    functionName: format_cb_alternate_saved_y
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_alternate_saved_y(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1404,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1405,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1399
    functionDepth: 2
    functionLinenumber: 1399
    functionLinenumberEnd: 1408
    functionName: format_cb_bracket_paste_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_bracket_paste_flag(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1415,1
    - Dst: paste_buffer_name
      Src: /src/tmux/format.c:1415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1411
    functionDepth: 2
    functionLinenumber: 1411
    functionLinenumberEnd: 1417
    functionName: format_cb_buffer_name
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - paste_buffer_name
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_buffer_name(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paste_make_sample
      Src: /src/tmux/format.c:1424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1420
    functionDepth: 3
    functionLinenumber: 1420
    functionLinenumberEnd: 1426
    functionName: format_cb_buffer_sample
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - paste_make_sample
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_buffer_sample(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: paste_buffer_data
      Src: /src/tmux/format.c:1436,1
    - Dst: xstrndup
      Src: /src/tmux/format.c:1438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1429
    functionDepth: 2
    functionLinenumber: 1429
    functionLinenumberEnd: 1441
    functionName: format_cb_buffer_full
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrndup
    - paste_buffer_data
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_buffer_full(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paste_buffer_data
      Src: /src/tmux/format.c:1450,1
    - Dst: format_printf
      Src: /src/tmux/format.c:1451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1444
    functionDepth: 3
    functionLinenumber: 1444
    functionLinenumberEnd: 1454
    functionName: format_cb_buffer_size
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - paste_buffer_data
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_buffer_size(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:1461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1457
    functionDepth: 3
    functionLinenumber: 1457
    functionLinenumberEnd: 1463
    functionName: format_cb_client_cell_height
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_client_cell_height(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:1470,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1472
      start: 1466
    functionDepth: 3
    functionLinenumber: 1466
    functionLinenumberEnd: 1472
    functionName: format_cb_client_cell_width
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_client_cell_width(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1480,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1475
    functionDepth: 2
    functionLinenumber: 1475
    functionLinenumberEnd: 1484
    functionName: format_cb_client_control_mode
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_client_control_mode(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:1491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1487
    functionDepth: 3
    functionLinenumber: 1487
    functionLinenumberEnd: 1493
    functionName: format_cb_client_discarded
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_client_discarded(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1500,1
    - Dst: server_client_get_flags
      Src: /src/tmux/format.c:1500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1496
    functionDepth: 3
    functionLinenumber: 1496
    functionLinenumberEnd: 1502
    functionName: format_cb_client_flags
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - server_client_get_flags
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_client_flags(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:1509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1505
    functionDepth: 3
    functionLinenumber: 1505
    functionLinenumberEnd: 1511
    functionName: format_cb_client_height
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_client_height(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1514
    functionDepth: 2
    functionLinenumber: 1514
    functionLinenumberEnd: 1520
    functionName: format_cb_client_key_table
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_client_key_table(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: session_alive
      Src: /src/tmux/format.c:1528,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1529,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1523
    functionDepth: 2
    functionLinenumber: 1523
    functionLinenumberEnd: 1531
    functionName: format_cb_client_last_session
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - session_alive
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_client_last_session(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1534
    functionDepth: 2
    functionLinenumber: 1534
    functionLinenumberEnd: 1540
    functionName: format_cb_client_name
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_client_name(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:1547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1549
      start: 1543
    functionDepth: 3
    functionLinenumber: 1543
    functionLinenumberEnd: 1549
    functionName: format_cb_client_pid
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_client_pid(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: server_client_get_key_table
      Src: /src/tmux/format.c:1558,1
    - Dst: strcmp
      Src: /src/tmux/format.c:1559,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1560,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1552
    functionDepth: 5
    functionLinenumber: 1552
    functionLinenumberEnd: 1564
    functionName: format_cb_client_prefix
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - server_client_get_key_table
    - xstrdup
    - strcmp
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_client_prefix(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1572,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1567
    functionDepth: 2
    functionLinenumber: 1567
    functionLinenumberEnd: 1576
    functionName: format_cb_client_readonly
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_client_readonly(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1583,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1579
    functionDepth: 2
    functionLinenumber: 1579
    functionLinenumberEnd: 1585
    functionName: format_cb_client_session
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_client_session(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1592,1
    - Dst: tty_get_features
      Src: /src/tmux/format.c:1592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1588
    functionDepth: 2
    functionLinenumber: 1588
    functionLinenumberEnd: 1594
    functionName: format_cb_client_termfeatures
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - tty_get_features
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_client_termfeatures(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1597
    functionDepth: 2
    functionLinenumber: 1597
    functionLinenumberEnd: 1603
    functionName: format_cb_client_termname
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_client_termname(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1611,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1612,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1606
    functionDepth: 2
    functionLinenumber: 1606
    functionLinenumberEnd: 1615
    functionName: format_cb_client_termtype
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_client_termtype(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1618
    functionDepth: 2
    functionLinenumber: 1618
    functionLinenumberEnd: 1624
    functionName: format_cb_client_tty
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_client_tty(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: proc_get_peer_uid
      Src: /src/tmux/format.c:1633,1
    - Dst: format_printf
      Src: /src/tmux/format.c:1635,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1627
    functionDepth: 3
    functionLinenumber: 1627
    functionLinenumberEnd: 1638
    functionName: format_cb_client_uid
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    - proc_get_peer_uid
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_client_uid(struct format_tree *ft)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1649,1
    - Dst: proc_get_peer_uid
      Src: /src/tmux/format.c:1650,1
    - Dst: getpwuid
      Src: /src/tmux/format.c:1651,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1652,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1653,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1641
    functionDepth: 2
    functionLinenumber: 1641
    functionLinenumberEnd: 1657
    functionName: format_cb_client_user
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - getpwuid
    - xstrdup
    - proc_get_peer_uid
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_client_user(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1665,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1660
    functionDepth: 2
    functionLinenumber: 1660
    functionLinenumberEnd: 1669
    functionName: format_cb_client_utf8
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_client_utf8(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:1676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1672
    functionDepth: 3
    functionLinenumber: 1672
    functionLinenumberEnd: 1678
    functionName: format_cb_client_width
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_client_width(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:1685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1681
    functionDepth: 3
    functionLinenumber: 1681
    functionLinenumberEnd: 1687
    functionName: format_cb_client_written
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_client_written(struct format_tree *ft)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1696,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1698,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1690
    functionDepth: 2
    functionLinenumber: 1690
    functionLinenumberEnd: 1704
    functionName: format_cb_client_theme
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_client_theme(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/tmux/format.c:1716,1
    - Dst: xrealloc
      Src: /src/tmux/format.c:1717,1
    - Dst: xsnprintf
      Src: /src/tmux/format.c:1718,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1721,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ft
    argTypes:
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1724
      start: 1707
    functionDepth: 2
    functionLinenumber: 1707
    functionLinenumberEnd: 1724
    functionName: format_cb_config_files
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - strlen
    - xstrdup
    - xsnprintf
    - xrealloc
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_config_files(__unused struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1732,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1733,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1727
    functionDepth: 2
    functionLinenumber: 1727
    functionLinenumberEnd: 1736
    functionName: format_cb_cursor_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_cursor_flag(struct format_tree *ft)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1745,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1747,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1749,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1751,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1739
    functionDepth: 2
    functionLinenumber: 1739
    functionLinenumberEnd: 1755
    functionName: format_cb_cursor_shape
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_cursor_shape(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1763,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1764,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1758
    functionDepth: 2
    functionLinenumber: 1758
    functionLinenumberEnd: 1767
    functionName: format_cb_cursor_very_visible
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_cursor_very_visible(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:1774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1770
    functionDepth: 3
    functionLinenumber: 1770
    functionLinenumberEnd: 1776
    functionName: format_cb_cursor_x
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_cursor_x(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:1783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1779
    functionDepth: 3
    functionLinenumber: 1779
    functionLinenumberEnd: 1785
    functionName: format_cb_cursor_y
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_cursor_y(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1793,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1794,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1788
    functionDepth: 2
    functionLinenumber: 1788
    functionLinenumberEnd: 1797
    functionName: format_cb_cursor_blinking
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_cursor_blinking(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:1804,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1806
      start: 1800
    functionDepth: 3
    functionLinenumber: 1800
    functionLinenumberEnd: 1806
    functionName: format_cb_history_limit
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_history_limit(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:1813,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1815
      start: 1809
    functionDepth: 3
    functionLinenumber: 1809
    functionLinenumberEnd: 1815
    functionName: format_cb_history_size
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_history_size(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1823,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1824,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1827
      start: 1818
    functionDepth: 2
    functionLinenumber: 1818
    functionLinenumberEnd: 1827
    functionName: format_cb_insert_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_insert_flag(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1835,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1836,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1839
      start: 1830
    functionDepth: 2
    functionLinenumber: 1830
    functionLinenumberEnd: 1839
    functionName: format_cb_keypad_cursor_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_keypad_cursor_flag(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1847,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1848,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1851
      start: 1842
    functionDepth: 2
    functionLinenumber: 1842
    functionLinenumberEnd: 1851
    functionName: format_cb_keypad_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_keypad_flag(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1858,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1859,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1860
      start: 1854
    functionDepth: 2
    functionLinenumber: 1854
    functionLinenumberEnd: 1860
    functionName: format_cb_loop_last_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_loop_last_flag(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1868,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1869,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1872
      start: 1863
    functionDepth: 2
    functionLinenumber: 1863
    functionLinenumberEnd: 1872
    functionName: format_cb_mouse_all_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_mouse_all_flag(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1880,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1881,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1884
      start: 1875
    functionDepth: 2
    functionLinenumber: 1875
    functionLinenumberEnd: 1884
    functionName: format_cb_mouse_any_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_mouse_any_flag(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1892,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1893,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1896
      start: 1887
    functionDepth: 2
    functionLinenumber: 1887
    functionLinenumberEnd: 1896
    functionName: format_cb_mouse_button_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_mouse_button_flag(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmd_mouse_pane
      Src: /src/tmux/format.c:1905,1
    - Dst: format_printf
      Src: /src/tmux/format.c:1907,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1899
    functionDepth: 3
    functionLinenumber: 1899
    functionLinenumberEnd: 1911
    functionName: format_cb_mouse_pane
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    - cmd_mouse_pane
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_mouse_pane(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1919,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1920,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1923
      start: 1914
    functionDepth: 2
    functionLinenumber: 1914
    functionLinenumberEnd: 1923
    functionName: format_cb_mouse_sgr_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_mouse_sgr_flag(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1931,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1932,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1935
      start: 1926
    functionDepth: 2
    functionLinenumber: 1926
    functionLinenumberEnd: 1935
    functionName: format_cb_mouse_standard_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_mouse_standard_flag(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:1943,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:1944,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1938
    functionDepth: 2
    functionLinenumber: 1938
    functionLinenumberEnd: 1947
    functionName: format_cb_mouse_utf8_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_mouse_utf8_flag(struct format_tree *ft)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cmd_mouse_pane
      Src: /src/tmux/format.c:1958,1
    - Dst: cmd_mouse_at
      Src: /src/tmux/format.c:1959,1
    - Dst: format_printf
      Src: /src/tmux/format.c:1960,1
    - Dst: format_printf
      Src: /src/tmux/format.c:1963,1
    - Dst: format_printf
      Src: /src/tmux/format.c:1965,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1968
      start: 1950
    functionDepth: 3
    functionLinenumber: 1950
    functionLinenumberEnd: 1968
    functionName: format_cb_mouse_x
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - cmd_mouse_at
    - format_printf
    - cmd_mouse_pane
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_mouse_x(struct format_tree *ft)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cmd_mouse_pane
      Src: /src/tmux/format.c:1979,1
    - Dst: cmd_mouse_at
      Src: /src/tmux/format.c:1980,1
    - Dst: format_printf
      Src: /src/tmux/format.c:1981,1
    - Dst: format_printf
      Src: /src/tmux/format.c:1984,1
    - Dst: format_printf
      Src: /src/tmux/format.c:1986,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1971
    functionDepth: 3
    functionLinenumber: 1971
    functionLinenumberEnd: 1989
    functionName: format_cb_mouse_y
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - cmd_mouse_at
    - format_printf
    - cmd_mouse_pane
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_mouse_y(struct format_tree *ft)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:1995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ft
    argTypes:
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1996
      start: 1992
    functionDepth: 3
    functionLinenumber: 1992
    functionLinenumberEnd: 1996
    functionName: format_cb_next_session_id
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_next_session_id(__unused struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2004,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2005,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2008
      start: 1999
    functionDepth: 2
    functionLinenumber: 1999
    functionLinenumberEnd: 2008
    functionName: format_cb_origin_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_origin_flag(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2016,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2017,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2020
      start: 2011
    functionDepth: 2
    functionLinenumber: 2011
    functionLinenumberEnd: 2020
    functionName: format_cb_synchronized_output_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_synchronized_output_flag(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2028,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2029,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2032
      start: 2023
    functionDepth: 2
    functionLinenumber: 2023
    functionLinenumberEnd: 2032
    functionName: format_cb_pane_active
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_active(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2040,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2041,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 2035
    functionDepth: 2
    functionLinenumber: 2035
    functionLinenumberEnd: 2044
    functionName: format_cb_pane_at_left
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_at_left(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2052,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2053,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2056
      start: 2047
    functionDepth: 2
    functionLinenumber: 2047
    functionLinenumberEnd: 2056
    functionName: format_cb_pane_at_right
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_at_right(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:2065,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2067
      start: 2059
    functionDepth: 3
    functionLinenumber: 2059
    functionLinenumberEnd: 2067
    functionName: format_cb_pane_bottom
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_bottom(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2077,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2078,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2070
    functionDepth: 2
    functionLinenumber: 2070
    functionLinenumberEnd: 2081
    functionName: format_cb_pane_dead
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_dead(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WIFSIGNALED
      Src: /src/tmux/format.c:2091,1
    - Dst: sig2name
      Src: /src/tmux/format.c:2092,1
    - Dst: WTERMSIG
      Src: /src/tmux/format.c:2092,1
    - Dst: format_printf
      Src: /src/tmux/format.c:2093,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2098
      start: 2084
    functionDepth: 3
    functionLinenumber: 2084
    functionLinenumberEnd: 2098
    functionName: format_cb_pane_dead_signal
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - WTERMSIG
    - format_printf
    - sig2name
    - WIFSIGNALED
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_dead_signal(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WIFEXITED
      Src: /src/tmux/format.c:2107,1
    - Dst: format_printf
      Src: /src/tmux/format.c:2108,1
    - Dst: WEXITSTATUS
      Src: /src/tmux/format.c:2108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2101
    functionDepth: 3
    functionLinenumber: 2101
    functionLinenumberEnd: 2112
    functionName: format_cb_pane_dead_status
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - WEXITSTATUS
    - WIFEXITED
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_dead_status(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2115
    functionDepth: 0
    functionLinenumber: 2115
    functionLinenumberEnd: 2126
    functionName: format_cb_pane_dead_time
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_dead_time(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2133,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2135
      start: 2129
    functionDepth: 2
    functionLinenumber: 2129
    functionLinenumberEnd: 2135
    functionName: format_cb_pane_format
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_format(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:2142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2144
      start: 2138
    functionDepth: 3
    functionLinenumber: 2138
    functionLinenumberEnd: 2144
    functionName: format_cb_pane_height
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_height(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:2151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2153
      start: 2147
    functionDepth: 3
    functionLinenumber: 2147
    functionLinenumberEnd: 2153
    functionName: format_cb_pane_id
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_id(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: window_pane_index
      Src: /src/tmux/format.c:2161,1
    - Dst: format_printf
      Src: /src/tmux/format.c:2162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2164
      start: 2156
    functionDepth: 3
    functionLinenumber: 2156
    functionLinenumberEnd: 2164
    functionName: format_cb_pane_index
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    - window_pane_index
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_index(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2172,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2176
      start: 2167
    functionDepth: 2
    functionLinenumber: 2167
    functionLinenumberEnd: 2176
    functionName: format_cb_pane_input_off
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_input_off(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2184,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2188
      start: 2179
    functionDepth: 2
    functionLinenumber: 2179
    functionLinenumberEnd: 2188
    functionName: format_cb_pane_unseen_changes
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_unseen_changes(struct format_tree *ft)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2197,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2199,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2205
      start: 2191
    functionDepth: 2
    functionLinenumber: 2191
    functionLinenumberEnd: 2205
    functionName: format_cb_pane_key_mode
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_key_mode(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/format.c:2212,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2213,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2217
      start: 2208
    functionDepth: 2
    functionLinenumber: 2208
    functionLinenumberEnd: 2217
    functionName: format_cb_pane_last
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - TAILQ_FIRST
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_last(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:2224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2226
      start: 2220
    functionDepth: 3
    functionLinenumber: 2220
    functionLinenumberEnd: 2226
    functionName: format_cb_pane_left
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_left(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: server_check_marked
      Src: /src/tmux/format.c:2233,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2234,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2238
      start: 2229
    functionDepth: 3
    functionLinenumber: 2229
    functionLinenumberEnd: 2238
    functionName: format_cb_pane_marked
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - server_check_marked
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_marked(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: server_check_marked
      Src: /src/tmux/format.c:2245,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2246,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2250
      start: 2241
    functionDepth: 3
    functionLinenumber: 2241
    functionLinenumberEnd: 2250
    functionName: format_cb_pane_marked_set
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - server_check_marked
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_marked_set(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/format.c:2259,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2265
      start: 2253
    functionDepth: 2
    functionLinenumber: 2253
    functionLinenumberEnd: 2265
    functionName: format_cb_pane_mode
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - TAILQ_FIRST
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_mode(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2273,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2277
      start: 2268
    functionDepth: 2
    functionLinenumber: 2268
    functionLinenumberEnd: 2277
    functionName: format_cb_pane_path
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_path(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:2284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2286
      start: 2280
    functionDepth: 3
    functionLinenumber: 2280
    functionLinenumberEnd: 2286
    functionName: format_cb_pane_pid
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_pid(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2294,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2298
      start: 2289
    functionDepth: 2
    functionLinenumber: 2289
    functionLinenumberEnd: 2298
    functionName: format_cb_pane_pipe
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_pipe(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/tmux/format.c:2307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2309
      start: 2301
    functionDepth: 2
    functionLinenumber: 2301
    functionLinenumberEnd: 2309
    functionName: format_cb_pane_pipe_pid
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xasprintf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_pipe_pid(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/tmux/format.c:2318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2320
      start: 2312
    functionDepth: 2
    functionLinenumber: 2312
    functionLinenumberEnd: 2320
    functionName: format_cb_pane_pb_progress
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xasprintf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_pb_progress(struct format_tree *ft)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2329,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2331,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2333,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2335,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2341
      start: 2323
    functionDepth: 2
    functionLinenumber: 2323
    functionLinenumberEnd: 2341
    functionName: format_cb_pane_pb_state
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_pb_state(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:2350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2352
      start: 2344
    functionDepth: 3
    functionLinenumber: 2344
    functionLinenumberEnd: 2352
    functionName: format_cb_pane_right
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_right(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2360,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2364
      start: 2355
    functionDepth: 2
    functionLinenumber: 2355
    functionLinenumberEnd: 2364
    functionName: format_cb_pane_search_string
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_search_string(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/format.c:2371,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2372,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2367
    functionDepth: 4
    functionLinenumber: 2367
    functionLinenumberEnd: 2376
    functionName: format_cb_pane_synchronized
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - options_get_number
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_synchronized(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2385
      start: 2379
    functionDepth: 2
    functionLinenumber: 2379
    functionLinenumberEnd: 2385
    functionName: format_cb_pane_title
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_title(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:2392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2394
      start: 2388
    functionDepth: 3
    functionLinenumber: 2388
    functionLinenumberEnd: 2394
    functionName: format_cb_pane_top
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_top(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2403
      start: 2397
    functionDepth: 2
    functionLinenumber: 2397
    functionLinenumberEnd: 2403
    functionName: format_cb_pane_tty
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_tty(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:2410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2412
      start: 2406
    functionDepth: 3
    functionLinenumber: 2406
    functionLinenumberEnd: 2412
    functionName: format_cb_pane_width
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_width(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2422,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2426
      start: 2415
    functionDepth: 2
    functionLinenumber: 2415
    functionLinenumberEnd: 2426
    functionName: format_cb_pane_zoomed_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_pane_zoomed_flag(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:2433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2435
      start: 2429
    functionDepth: 3
    functionLinenumber: 2429
    functionLinenumberEnd: 2435
    functionName: format_cb_scroll_region_lower
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_scroll_region_lower(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:2442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2444
      start: 2438
    functionDepth: 3
    functionLinenumber: 2438
    functionLinenumberEnd: 2444
    functionName: format_cb_scroll_region_upper
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_scroll_region_upper(struct format_tree *ft)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/format.c:2453,1
    - Dst: format_printf
      Src: /src/tmux/format.c:2455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ft
    argTypes:
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2456
      start: 2447
    functionDepth: 3
    functionLinenumber: 2447
    functionLinenumberEnd: 2456
    functionName: format_cb_server_sessions
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - RB_FOREACH
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_server_sessions(__unused struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2466,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2467,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2468
      start: 2459
    functionDepth: 2
    functionLinenumber: 2459
    functionLinenumberEnd: 2468
    functionName: format_cb_session_active
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_session_active(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/format.c:2477,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2479,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2484
      start: 2471
    functionDepth: 2
    functionLinenumber: 2471
    functionLinenumberEnd: 2484
    functionName: format_cb_session_activity_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - RB_FOREACH
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_session_activity_flag(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/format.c:2493,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2495,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2500
      start: 2487
    functionDepth: 2
    functionLinenumber: 2487
    functionLinenumberEnd: 2500
    functionName: format_cb_session_bell_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - RB_FOREACH
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_session_bell_flag(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/format.c:2509,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2511,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2512,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2516
      start: 2503
    functionDepth: 2
    functionLinenumber: 2503
    functionLinenumberEnd: 2516
    functionName: format_cb_session_silence_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - RB_FOREACH
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_session_silence_flag(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:2523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2525
      start: 2519
    functionDepth: 3
    functionLinenumber: 2519
    functionLinenumberEnd: 2525
    functionName: format_cb_session_attached
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_session_attached(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2532,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2534
      start: 2528
    functionDepth: 2
    functionLinenumber: 2528
    functionLinenumberEnd: 2534
    functionName: format_cb_session_format
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_session_format(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: session_group_contains
      Src: /src/tmux/format.c:2542,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2545
      start: 2537
    functionDepth: 2
    functionLinenumber: 2537
    functionLinenumberEnd: 2545
    functionName: format_cb_session_group
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - session_group_contains
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_session_group(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: session_group_contains
      Src: /src/tmux/format.c:2553,1
    - Dst: format_printf
      Src: /src/tmux/format.c:2554,1
    - Dst: session_group_attached_count
      Src: /src/tmux/format.c:2554,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2556
      start: 2548
    functionDepth: 3
    functionLinenumber: 2548
    functionLinenumberEnd: 2556
    functionName: format_cb_session_group_attached
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - session_group_contains
    - format_printf
    - session_group_attached_count
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_session_group_attached(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: session_group_contains
      Src: /src/tmux/format.c:2564,1
    - Dst: session_group_attached_count
      Src: /src/tmux/format.c:2565,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2566,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2570
      start: 2559
    functionDepth: 2
    functionLinenumber: 2559
    functionLinenumberEnd: 2570
    functionName: format_cb_session_group_many_attached
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - session_group_contains
    - xstrdup
    - session_group_attached_count
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_session_group_many_attached(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: session_group_contains
      Src: /src/tmux/format.c:2578,1
    - Dst: format_printf
      Src: /src/tmux/format.c:2579,1
    - Dst: session_group_count
      Src: /src/tmux/format.c:2579,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2581
      start: 2573
    functionDepth: 3
    functionLinenumber: 2573
    functionLinenumberEnd: 2581
    functionName: format_cb_session_group_size
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - session_group_count
    - session_group_contains
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_session_group_size(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: session_group_contains
      Src: /src/tmux/format.c:2588,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2589,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2593
      start: 2584
    functionDepth: 2
    functionLinenumber: 2584
    functionLinenumberEnd: 2593
    functionName: format_cb_session_grouped
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - session_group_contains
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_session_grouped(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:2600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2602
      start: 2596
    functionDepth: 3
    functionLinenumber: 2596
    functionLinenumberEnd: 2602
    functionName: format_cb_session_id
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_session_id(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2610,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2611,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2614
      start: 2605
    functionDepth: 2
    functionLinenumber: 2605
    functionLinenumberEnd: 2614
    functionName: format_cb_session_many_attached
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_session_many_attached(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: server_check_marked
      Src: /src/tmux/format.c:2621,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2622,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2623,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2626
      start: 2617
    functionDepth: 3
    functionLinenumber: 2617
    functionLinenumberEnd: 2626
    functionName: format_cb_session_marked
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - server_check_marked
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_session_marked(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2633,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2635
      start: 2629
    functionDepth: 2
    functionLinenumber: 2629
    functionLinenumberEnd: 2635
    functionName: format_cb_session_name
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_session_name(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2644
      start: 2638
    functionDepth: 2
    functionLinenumber: 2638
    functionLinenumberEnd: 2644
    functionName: format_cb_session_path
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_session_path(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:2651,1
    - Dst: winlink_count
      Src: /src/tmux/format.c:2651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2653
      start: 2647
    functionDepth: 3
    functionLinenumber: 2647
    functionLinenumberEnd: 2653
    functionName: format_cb_session_windows
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    - winlink_count
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_session_windows(struct format_tree *ft)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ft
    argTypes:
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2660
      start: 2656
    functionDepth: 2
    functionLinenumber: 2656
    functionLinenumberEnd: 2660
    functionName: format_cb_socket_path
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_socket_path(__unused struct format_tree *ft)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2666,1
    - Dst: getversion
      Src: /src/tmux/format.c:2666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ft
    argTypes:
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2667
      start: 2663
    functionDepth: 2
    functionLinenumber: 2663
    functionLinenumberEnd: 2667
    functionName: format_cb_version
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - getversion
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_version(__unused struct format_tree *ft)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2674,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ft
    argTypes:
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2678
      start: 2670
    functionDepth: 2
    functionLinenumber: 2670
    functionLinenumberEnd: 2678
    functionName: format_cb_sixel_support
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_sixel_support(__unused struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:2685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2687
      start: 2681
    functionDepth: 3
    functionLinenumber: 2681
    functionLinenumberEnd: 2687
    functionName: format_cb_active_window_index
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_active_window_index(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_MAX
      Src: /src/tmux/format.c:2696,1
    - Dst: format_printf
      Src: /src/tmux/format.c:2697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2700
      start: 2690
    functionDepth: 3
    functionLinenumber: 2690
    functionLinenumberEnd: 2700
    functionName: format_cb_last_window_index
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - RB_MAX
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_last_window_index(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2708,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2709,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2712
      start: 2703
    functionDepth: 2
    functionLinenumber: 2703
    functionLinenumberEnd: 2712
    functionName: format_cb_window_active
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_active(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2720,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2721,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2724
      start: 2715
    functionDepth: 2
    functionLinenumber: 2715
    functionLinenumberEnd: 2724
    functionName: format_cb_window_activity_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_activity_flag(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2732,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2733,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2736
      start: 2727
    functionDepth: 2
    functionLinenumber: 2727
    functionLinenumberEnd: 2736
    functionName: format_cb_window_bell_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_bell_flag(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tty_window_offset
      Src: /src/tmux/format.c:2745,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2746,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2747,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2750
      start: 2739
    functionDepth: 2
    functionLinenumber: 2739
    functionLinenumberEnd: 2750
    functionName: format_cb_window_bigger
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - tty_window_offset
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_bigger(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:2757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2759
      start: 2753
    functionDepth: 3
    functionLinenumber: 2753
    functionLinenumberEnd: 2759
    functionName: format_cb_window_cell_height
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_cell_height(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:2766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2768
      start: 2762
    functionDepth: 3
    functionLinenumber: 2762
    functionLinenumberEnd: 2768
    functionName: format_cb_window_cell_width
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_cell_width(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RB_MAX
      Src: /src/tmux/format.c:2775,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2776,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2777,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2780
      start: 2771
    functionDepth: 2
    functionLinenumber: 2771
    functionLinenumberEnd: 2780
    functionName: format_cb_window_end_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - RB_MAX
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_end_flag(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2787,1
    - Dst: window_printable_flags
      Src: /src/tmux/format.c:2787,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2789
      start: 2783
    functionDepth: 2
    functionLinenumber: 2783
    functionLinenumberEnd: 2789
    functionName: format_cb_window_flags
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - window_printable_flags
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_flags(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2796,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2798
      start: 2792
    functionDepth: 2
    functionLinenumber: 2792
    functionLinenumberEnd: 2798
    functionName: format_cb_window_format
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_format(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:2805,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2807
      start: 2801
    functionDepth: 3
    functionLinenumber: 2801
    functionLinenumberEnd: 2807
    functionName: format_cb_window_height
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_height(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:2814,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2816
      start: 2810
    functionDepth: 3
    functionLinenumber: 2810
    functionLinenumberEnd: 2816
    functionName: format_cb_window_id
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_id(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:2823,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2825
      start: 2819
    functionDepth: 3
    functionLinenumber: 2819
    functionLinenumberEnd: 2825
    functionName: format_cb_window_index
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_index(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/format.c:2832,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2833,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2834,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2837
      start: 2828
    functionDepth: 2
    functionLinenumber: 2828
    functionLinenumberEnd: 2837
    functionName: format_cb_window_last_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - TAILQ_FIRST
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_last_flag(struct format_tree *ft)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/format.c:2848,1
    - Dst: RB_FOREACH
      Src: /src/tmux/format.c:2849,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2852,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2857,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2860
      start: 2840
    functionDepth: 2
    functionLinenumber: 2840
    functionLinenumberEnd: 2860
    functionName: format_cb_window_linked
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - RB_FOREACH
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_linked(struct format_tree *ft)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/format.c:2875,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/format.c:2876,1
    - Dst: winlink_find_by_window
      Src: /src/tmux/format.c:2877,1
    - Dst: RB_FOREACH
      Src: /src/tmux/format.c:2880,1
    - Dst: session_group_contains
      Src: /src/tmux/format.c:2881,1
    - Dst: winlink_find_by_window
      Src: /src/tmux/format.c:2883,1
    - Dst: format_printf
      Src: /src/tmux/format.c:2886,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2887
      start: 2863
    functionDepth: 3
    functionLinenumber: 2863
    functionLinenumberEnd: 2887
    functionName: format_cb_window_linked_sessions
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - session_group_contains
    - TAILQ_FIRST
    - RB_FOREACH
    - format_printf
    - winlink_find_by_window
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_linked_sessions(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: server_check_marked
      Src: /src/tmux/format.c:2894,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2895,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2896,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2899
      start: 2890
    functionDepth: 3
    functionLinenumber: 2890
    functionLinenumberEnd: 2899
    functionName: format_cb_window_marked_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - server_check_marked
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_marked_flag(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:2906,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2908
      start: 2902
    functionDepth: 3
    functionLinenumber: 2902
    functionLinenumberEnd: 2908
    functionName: format_cb_window_name
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_name(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tty_window_offset
      Src: /src/tmux/format.c:2917,1
    - Dst: format_printf
      Src: /src/tmux/format.c:2918,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2922
      start: 2911
    functionDepth: 3
    functionLinenumber: 2911
    functionLinenumberEnd: 2922
    functionName: format_cb_window_offset_x
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - tty_window_offset
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_offset_x(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tty_window_offset
      Src: /src/tmux/format.c:2931,1
    - Dst: format_printf
      Src: /src/tmux/format.c:2932,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2936
      start: 2925
    functionDepth: 3
    functionLinenumber: 2925
    functionLinenumberEnd: 2936
    functionName: format_cb_window_offset_y
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - tty_window_offset
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_offset_y(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:2943,1
    - Dst: window_count_panes
      Src: /src/tmux/format.c:2943,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2945
      start: 2939
    functionDepth: 3
    functionLinenumber: 2939
    functionLinenumberEnd: 2945
    functionName: format_cb_window_panes
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - window_count_panes
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_panes(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2952,1
    - Dst: window_printable_flags
      Src: /src/tmux/format.c:2952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2954
      start: 2948
    functionDepth: 2
    functionLinenumber: 2948
    functionLinenumberEnd: 2954
    functionName: format_cb_window_raw_flags
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - window_printable_flags
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_raw_flags(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2962,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2963,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2966
      start: 2957
    functionDepth: 2
    functionLinenumber: 2957
    functionLinenumberEnd: 2966
    functionName: format_cb_window_silence_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_silence_flag(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RB_MIN
      Src: /src/tmux/format.c:2973,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2974,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2975,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2978
      start: 2969
    functionDepth: 2
    functionLinenumber: 2969
    functionLinenumberEnd: 2978
    functionName: format_cb_window_start_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - RB_MIN
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_start_flag(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:2985,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2987
      start: 2981
    functionDepth: 3
    functionLinenumber: 2981
    functionLinenumberEnd: 2987
    functionName: format_cb_window_width
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_width(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:2995,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:2996,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2999
      start: 2990
    functionDepth: 2
    functionLinenumber: 2990
    functionLinenumberEnd: 2999
    functionName: format_cb_window_zoomed_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_zoomed_flag(struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:3007,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:3008,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3011
      start: 3002
    functionDepth: 2
    functionLinenumber: 3002
    functionLinenumberEnd: 3011
    functionName: format_cb_wrap_flag
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_wrap_flag(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: timerclear
      Src: /src/tmux/format.c:3020,1
    - Dst: paste_buffer_created
      Src: /src/tmux/format.c:3021,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3025
      start: 3014
    functionDepth: 1
    functionLinenumber: 3014
    functionLinenumberEnd: 3025
    functionName: format_cb_buffer_created
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - paste_buffer_created
    - timerclear
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_buffer_created(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3034
      start: 3028
    functionDepth: 0
    functionLinenumber: 3028
    functionLinenumberEnd: 3034
    functionName: format_cb_client_activity
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_client_activity(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3043
      start: 3037
    functionDepth: 0
    functionLinenumber: 3037
    functionLinenumberEnd: 3043
    functionName: format_cb_client_created
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_client_created(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3052
      start: 3046
    functionDepth: 0
    functionLinenumber: 3046
    functionLinenumberEnd: 3052
    functionName: format_cb_session_activity
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_session_activity(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3061
      start: 3055
    functionDepth: 0
    functionLinenumber: 3055
    functionLinenumberEnd: 3061
    functionName: format_cb_session_created
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_session_created(struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3070
      start: 3064
    functionDepth: 0
    functionLinenumber: 3064
    functionLinenumberEnd: 3070
    functionName: format_cb_session_last_attached
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_session_last_attached(struct format_tree *ft)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ft
    argTypes:
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3077
      start: 3073
    functionDepth: 0
    functionLinenumber: 3073
    functionLinenumberEnd: 3077
    functionName: format_cb_start_time
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_start_time(__unused struct format_tree *ft)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3086
      start: 3080
    functionDepth: 0
    functionLinenumber: 3080
    functionLinenumberEnd: 3086
    functionName: format_cb_window_activity
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_window_activity(struct format_tree *ft)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:3092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ft
    argTypes:
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3093
      start: 3089
    functionDepth: 2
    functionLinenumber: 3089
    functionLinenumberEnd: 3093
    functionName: format_cb_buffer_mode_format
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_buffer_mode_format(__unused struct format_tree *ft)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:3099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ft
    argTypes:
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3100
      start: 3096
    functionDepth: 2
    functionLinenumber: 3096
    functionLinenumberEnd: 3100
    functionName: format_cb_client_mode_format
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_client_mode_format(__unused struct format_tree *ft)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/tmux/format.c:3106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ft
    argTypes:
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3107
      start: 3103
    functionDepth: 2
    functionLinenumber: 3103
    functionLinenumberEnd: 3107
    functionName: format_cb_tree_mode_format
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_tree_mode_format(__unused struct format_tree *ft)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_printf
      Src: /src/tmux/format.c:3113,1
    - Dst: getuid
      Src: /src/tmux/format.c:3113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ft
    argTypes:
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3114
      start: 3110
    functionDepth: 3
    functionLinenumber: 3110
    functionLinenumberEnd: 3114
    functionName: format_cb_uid
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - getuid
    - format_printf
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_uid(__unused struct format_tree *ft)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getpwuid
      Src: /src/tmux/format.c:3123,1
    - Dst: getuid
      Src: /src/tmux/format.c:3123,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:3124,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:3126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ft
    argTypes:
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3128
      start: 3117
    functionDepth: 2
    functionLinenumber: 3117
    functionLinenumberEnd: 3128
    functionName: format_cb_user
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - getpwuid
    - xstrdup
    - getuid
    linkageType: ''
    returnType: void
    signature: 'void *

      format_cb_user(__unused struct format_tree *ft)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/format.c:3734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key0
    - entry0
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3735
      start: 3728
    functionDepth: 0
    functionLinenumber: 3728
    functionLinenumberEnd: 3735
    functionName: format_table_compare
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int format_table_compare(const void *key0, const void *entry0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bsearch
      Src: /src/tmux/format.c:3741,1
    - Dst: nitems
      Src: /src/tmux/format.c:3741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3743
      start: 3738
    functionDepth: 0
    functionLinenumber: 3738
    functionLinenumberEnd: 3743
    functionName: format_table_get
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - nitems
    - bsearch
    linkageType: ''
    returnType: struct format_table_entry
    signature: 'struct format_table_entry *

      format_table_get(const char *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH
      Src: /src/tmux/format.c:3751,1
    - Dst: format_add
      Src: /src/tmux/format.c:3753,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ft
    - from
    argTypes:
    - struct format_tree*
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3755
      start: 3746
    functionDepth: 1
    functionLinenumber: 3746
    functionLinenumberEnd: 3755
    functionName: format_merge
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - RB_FOREACH
    - format_add
    linkageType: ''
    returnType: void
    signature: void format_merge(struct format_tree *ft, struct format_tree *from)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3762
      start: 3758
    functionDepth: 0
    functionLinenumber: 3758
    functionLinenumberEnd: 3762
    functionName: format_get_pane
    functionSourceFile: /src/tmux/format.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: struct window_pane
    signature: 'struct window_pane *

      format_get_pane(struct format_tree *ft)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get_event
      Src: /src/tmux/format.c:3768,1
    - Dst: cmdq_merge_formats
      Src: /src/tmux/format.c:3771,1
    - Dst: memcpy
      Src: /src/tmux/format.c:3772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ft
    - item
    argTypes:
    - struct format_tree*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3773
      start: 3765
    functionDepth: 1
    functionLinenumber: 3765
    functionLinenumberEnd: 3773
    functionName: format_create_add_item
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - cmdq_get_event
    - memcpy
    - cmdq_merge_formats
    linkageType: ''
    returnType: void
    signature: void format_create_add_item(struct format_tree *ft, struct cmdq_item
      *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/format.c:3781,1
    - Dst: RB_INIT
      Src: /src/tmux/format.c:3782,1
    - Dst: format_create_add_item
      Src: /src/tmux/format.c:3794,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - c
    - item
    - tag
    - flags
    argTypes:
    - struct client*
    - struct cmdq_item*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3797
      start: 3776
    functionDepth: 2
    functionLinenumber: 3776
    functionLinenumberEnd: 3797
    functionName: format_create
    functionSourceFile: /src/tmux/format.c
    functionUses: 19
    functionsReached:
    - RB_INIT
    - format_create_add_item
    - xcalloc
    linkageType: ''
    returnType: struct format_tree
    signature: 'struct format_tree *

      format_create(struct client *c, struct cmdq_item *item, int tag, int flags)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_FOREACH_SAFE
      Src: /src/tmux/format.c:3805,1
    - Dst: RB_REMOVE
      Src: /src/tmux/format.c:3806,1
    - Dst: free
      Src: /src/tmux/format.c:3807,1
    - Dst: free
      Src: /src/tmux/format.c:3808,1
    - Dst: free
      Src: /src/tmux/format.c:3809,1
    - Dst: server_client_unref
      Src: /src/tmux/format.c:3813,1
    - Dst: free
      Src: /src/tmux/format.c:3814,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ft
    argTypes:
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3815
      start: 3800
    functionDepth: 4
    functionLinenumber: 3800
    functionLinenumberEnd: 3815
    functionName: format_free
    functionSourceFile: /src/tmux/format.c
    functionUses: 36
    functionsReached:
    - server_client_unref
    - RB_REMOVE
    - free
    - RB_FOREACH_SAFE
    linkageType: ''
    returnType: void
    signature: void format_free(struct format_tree *ft)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/format.c:3823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - value
    - arg
    argTypes:
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3824
      start: 3818
    functionDepth: 3
    functionLinenumber: 3818
    functionLinenumberEnd: 3824
    functionName: format_log_debug_cb
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - log_debug
    linkageType: ''
    returnType: void
    signature: void format_log_debug_cb(const char *key, const char *value, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_each
      Src: /src/tmux/format.c:3830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ft
    - prefix
    argTypes:
    - struct format_tree*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3831
      start: 3827
    functionDepth: 1
    functionLinenumber: 3827
    functionLinenumberEnd: 3831
    functionName: format_log_debug
    functionSourceFile: /src/tmux/format.c
    functionUses: 2
    functionsReached:
    - format_each
    linkageType: ''
    returnType: void
    signature: void format_log_debug(struct format_tree *ft, const char *prefix)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nitems
      Src: /src/tmux/format.c:3845,1
    - Dst: struct format_table_entry*::cb
      Src: /src/tmux/format.c:3848,1
    - Dst: xsnprintf
      Src: /src/tmux/format.c:3853,1
    - Dst: cb
      Src: /src/tmux/format.c:3854,1
    - Dst: cb
      Src: /src/tmux/format.c:3856,1
    - Dst: free
      Src: /src/tmux/format.c:3857,1
    - Dst: RB_FOREACH
      Src: /src/tmux/format.c:3860,1
    - Dst: xsnprintf
      Src: /src/tmux/format.c:3862,1
    - Dst: cb
      Src: /src/tmux/format.c:3863,1
    - Dst: struct format_entry*::cb
      Src: /src/tmux/format.c:3866,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:3868,1
    - Dst: cb
      Src: /src/tmux/format.c:3870,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - ft
    - arg
    argTypes:
    - struct format_tree*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3873
      start: 3834
    functionDepth: 2
    functionLinenumber: 3834
    functionLinenumberEnd: 3873
    functionName: format_each
    functionSourceFile: /src/tmux/format.c
    functionUses: 2
    functionsReached:
    - struct format_entry*::cb
    - struct format_table_entry*::cb
    - nitems
    - RB_FOREACH
    - xsnprintf
    - free
    - cb
    - xstrdup
    linkageType: ''
    returnType: void
    signature: "void format_each(struct format_tree *ft, void (*cb)(const char *,
      const char *,\n    void *), void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/tmux/format.c:3883,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:3884,1
    - Dst: RB_INSERT
      Src: /src/tmux/format.c:3886,1
    - Dst: free
      Src: /src/tmux/format.c:3888,1
    - Dst: free
      Src: /src/tmux/format.c:3889,1
    - Dst: free
      Src: /src/tmux/format.c:3890,1
    - Dst: va_start
      Src: /src/tmux/format.c:3897,1
    - Dst: xvasprintf
      Src: /src/tmux/format.c:3898,1
    - Dst: va_end
      Src: /src/tmux/format.c:3899,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - ft
    - key
    - fmt
    argTypes:
    - struct format_tree*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3900
      start: 3876
    functionDepth: 2
    functionLinenumber: 3876
    functionLinenumberEnd: 3900
    functionName: format_add
    functionSourceFile: /src/tmux/format.c
    functionUses: 20
    functionsReached:
    - xmalloc
    - xvasprintf
    - free
    - va_start
    - va_end
    - xstrdup
    - RB_INSERT
    linkageType: ''
    returnType: void
    signature: void format_add(struct format_tree *ft, const char *key, const char
      *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/tmux/format.c:3908,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:3909,1
    - Dst: RB_INSERT
      Src: /src/tmux/format.c:3911,1
    - Dst: free
      Src: /src/tmux/format.c:3913,1
    - Dst: free
      Src: /src/tmux/format.c:3914,1
    - Dst: free
      Src: /src/tmux/format.c:3915,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - ft
    - key
    - tv
    argTypes:
    - struct format_tree*
    - char*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3923
      start: 3903
    functionDepth: 2
    functionLinenumber: 3903
    functionLinenumberEnd: 3923
    functionName: format_add_tv
    functionSourceFile: /src/tmux/format.c
    functionUses: 1
    functionsReached:
    - xmalloc
    - xstrdup
    - free
    - RB_INSERT
    linkageType: ''
    returnType: void
    signature: void format_add_tv(struct format_tree *ft, const char *key, struct
      timeval *tv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/tmux/format.c:3932,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:3933,1
    - Dst: RB_INSERT
      Src: /src/tmux/format.c:3935,1
    - Dst: free
      Src: /src/tmux/format.c:3937,1
    - Dst: free
      Src: /src/tmux/format.c:3938,1
    - Dst: free
      Src: /src/tmux/format.c:3939,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - ft
    - key
    - cb
    argTypes:
    - struct format_tree*
    - char*
    - format_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3947
      start: 3926
    functionDepth: 2
    functionLinenumber: 3926
    functionLinenumberEnd: 3947
    functionName: format_add_cb
    functionSourceFile: /src/tmux/format.c
    functionUses: 1
    functionsReached:
    - xmalloc
    - xstrdup
    - free
    - RB_INSERT
    linkageType: ''
    returnType: void
    signature: void format_add_cb(struct format_tree *ft, const char *key, format_cb
      cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/tmux/format.c:3956,1
    - Dst: strlen
      Src: /src/tmux/format.c:3956,1
    - Dst: strchr
      Src: /src/tmux/format.c:3958,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3964
      start: 3950
    functionDepth: 2
    functionLinenumber: 3950
    functionLinenumberEnd: 3964
    functionName: format_quote_shell
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - strlen
    - xmalloc
    - strchr
    linkageType: ''
    returnType: char
    signature: 'char *

      format_quote_shell(const char *s)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/tmux/format.c:3973,1
    - Dst: strlen
      Src: /src/tmux/format.c:3973,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3981
      start: 3967
    functionDepth: 2
    functionLinenumber: 3967
    functionLinenumberEnd: 3981
    functionName: format_quote_style
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - strlen
    - xmalloc
    linkageType: ''
    returnType: char
    signature: 'char *

      format_quote_style(const char *s)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/tmux/format.c:3991,1
    - Dst: localtime_r
      Src: /src/tmux/format.c:3996,1
    - Dst: localtime_r
      Src: /src/tmux/format.c:3997,1
    - Dst: strftime
      Src: /src/tmux/format.c:4002,1
    - Dst: strftime
      Src: /src/tmux/format.c:4004,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4005,1
    - Dst: strftime
      Src: /src/tmux/format.c:4011,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4012,1
    - Dst: strftime
      Src: /src/tmux/format.c:4018,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4019,1
    - Dst: strftime
      Src: /src/tmux/format.c:4023,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4024,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - t
    - seconds
    argTypes:
    - time_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4025
      start: 3984
    functionDepth: 2
    functionLinenumber: 3984
    functionLinenumberEnd: 4025
    functionName: format_pretty_time
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - time
    - strftime
    - localtime_r
    linkageType: ''
    returnType: char
    signature: 'char *

      format_pretty_time(time_t t, int seconds)'
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: options_parse_get
      Src: /src/tmux/format.c:4043,1
    - Dst: options_parse_get
      Src: /src/tmux/format.c:4045,1
    - Dst: options_parse_get
      Src: /src/tmux/format.c:4047,1
    - Dst: options_parse_get
      Src: /src/tmux/format.c:4049,1
    - Dst: options_parse_get
      Src: /src/tmux/format.c:4051,1
    - Dst: options_parse_get
      Src: /src/tmux/format.c:4053,1
    - Dst: options_to_string
      Src: /src/tmux/format.c:4055,1
    - Dst: format_table_get
      Src: /src/tmux/format.c:4059,1
    - Dst: struct format_table_entry*::cb
      Src: /src/tmux/format.c:4061,1
    - Dst: RB_FIND
      Src: /src/tmux/format.c:4069,1
    - Dst: struct format_entry*::cb
      Src: /src/tmux/format.c:4076,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4078,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4080,1
    - Dst: environ_find
      Src: /src/tmux/format.c:4087,1
    - Dst: environ_find
      Src: /src/tmux/format.c:4089,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4091,1
    - Dst: strtonum
      Src: /src/tmux/format.c:4101,1
    - Dst: free
      Src: /src/tmux/format.c:4104,1
    - Dst: format_pretty_time
      Src: /src/tmux/format.c:4109,1
    - Dst: localtime_r
      Src: /src/tmux/format.c:4112,1
    - Dst: format_strftime
      Src: /src/tmux/format.c:4113,1
    - Dst: ctime_r
      Src: /src/tmux/format.c:4115,1
    - Dst: strcspn
      Src: /src/tmux/format.c:4116,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4118,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:4124,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4129,1
    - Dst: basename
      Src: /src/tmux/format.c:4129,1
    - Dst: free
      Src: /src/tmux/format.c:4130,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4134,1
    - Dst: dirname
      Src: /src/tmux/format.c:4134,1
    - Dst: free
      Src: /src/tmux/format.c:4135,1
    - Dst: format_quote_shell
      Src: /src/tmux/format.c:4139,1
    - Dst: free
      Src: /src/tmux/format.c:4140,1
    - Dst: format_quote_style
      Src: /src/tmux/format.c:4144,1
    - Dst: free
      Src: /src/tmux/format.c:4145,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 105
    argCount: 4
    argNames:
    - ft
    - key
    - modifiers
    - time_format
    argTypes:
    - struct format_tree*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4148
      start: 4028
    functionDepth: 5
    functionLinenumber: 4028
    functionLinenumberEnd: 4148
    functionName: format_find
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - dirname
    - struct format_entry*::cb
    - format_quote_style
    - strcspn
    - localtime_r
    - format_strftime
    - struct format_table_entry*::cb
    - strtonum
    - format_quote_shell
    - xstrdup
    - RB_FIND
    - environ_find
    - options_to_string
    - ctime_r
    - format_table_get
    - format_pretty_time
    - xasprintf
    - free
    - basename
    - options_parse_get
    linkageType: ''
    returnType: char
    signature: "char *\nformat_find(struct format_tree *ft, const char *key, int modifiers,\n
      \   const char *time_format)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_timer
      Src: /src/tmux/format.c:4154,1
    - Dst: format_log
      Src: /src/tmux/format.c:4160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - es
    argTypes:
    - struct format_expand_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4162
      start: 4151
    functionDepth: 2
    functionLinenumber: 4151
    functionLinenumberEnd: 4162
    functionName: format_check_time
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - get_timer
    - format_log
    linkageType: ''
    returnType: int
    signature: int format_check_time(struct format_expand_state *es)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/tmux/format.c:4171,1
    - Dst: strlen
      Src: /src/tmux/format.c:4171,1
    - Dst: format_check_time
      Src: /src/tmux/format.c:4173,1
    - Dst: free
      Src: /src/tmux/format.c:4174,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4175,1
    - Dst: strchr
      Src: /src/tmux/format.c:4181,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - es
    - s
    argTypes:
    - struct format_expand_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4191
      start: 4165
    functionDepth: 3
    functionLinenumber: 4165
    functionLinenumberEnd: 4191
    functionName: format_unescape
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - format_check_time
    - strchr
    - free
    - strlen
    - xstrdup
    linkageType: ''
    returnType: char
    signature: 'char *

      format_unescape(struct format_expand_state *es, const char *s)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/tmux/format.c:4200,1
    - Dst: strlen
      Src: /src/tmux/format.c:4200,1
    - Dst: format_check_time
      Src: /src/tmux/format.c:4202,1
    - Dst: free
      Src: /src/tmux/format.c:4203,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4204,1
    - Dst: strchr
      Src: /src/tmux/format.c:4208,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - es
    - s
    argTypes:
    - struct format_expand_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4219
      start: 4194
    functionDepth: 3
    functionLinenumber: 4194
    functionLinenumberEnd: 4219
    functionName: format_strip
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - format_check_time
    - strchr
    - free
    - strlen
    - xstrdup
    linkageType: ''
    returnType: char
    signature: 'char *

      format_strip(struct format_expand_state *es, const char *s)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: format_check_time
      Src: /src/tmux/format.c:4228,1
    - Dst: strchr
      Src: /src/tmux/format.c:4234,1
    - Dst: strchr
      Src: /src/tmux/format.c:4240,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 18
    argCount: 3
    argNames:
    - es
    - s
    - end
    argTypes:
    - struct format_expand_state*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4246
      start: 4222
    functionDepth: 3
    functionLinenumber: 4222
    functionLinenumberEnd: 4246
    functionName: format_skip1
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_check_time
    - strchr
    linkageType: ''
    returnType: char
    signature: 'char *

      format_skip1(struct format_expand_state *es, const char *s, const char *end)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_skip1
      Src: /src/tmux/format.c:4252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - end
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4253
      start: 4249
    functionDepth: 4
    functionLinenumber: 4249
    functionLinenumberEnd: 4253
    functionName: format_skip
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_skip1
    linkageType: ''
    returnType: char
    signature: 'char *

      format_skip(const char *s, const char *end)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: format_skip1
      Src: /src/tmux/format.c:4263,1
    - Dst: xstrndup
      Src: /src/tmux/format.c:4266,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4267,1
    - Dst: format_expand1
      Src: /src/tmux/format.c:4270,1
    - Dst: free
      Src: /src/tmux/format.c:4271,1
    - Dst: format_expand1
      Src: /src/tmux/format.c:4272,1
    - Dst: free
      Src: /src/tmux/format.c:4273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - es
    - s
    - left
    - right
    - expand
    argTypes:
    - struct format_expand_state*
    - char*
    - char**
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4279
      start: 4256
    functionDepth: 4
    functionLinenumber: 4256
    functionLinenumberEnd: 4279
    functionName: format_choose
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrndup
    - free
    - format_skip1
    - xstrdup
    - format_expand1
    linkageType: ''
    returnType: int
    signature: "int format_choose(struct format_expand_state *es, const char *s, char
      **left,\n    char **right, int expand)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4288
      start: 4282
    functionDepth: 0
    functionLinenumber: 4282
    functionLinenumberEnd: 4288
    functionName: format_true
    functionSourceFile: /src/tmux/format.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int format_true(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4295
      start: 4291
    functionDepth: 0
    functionLinenumber: 4291
    functionLinenumberEnd: 4295
    functionName: format_is_end
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int format_is_end(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xreallocarray
      Src: /src/tmux/format.c:4304,1
    - Dst: memcpy
      Src: /src/tmux/format.c:4307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - list
    - count
    - c
    - n
    - argv
    - argc
    argTypes:
    - struct format_modifier**
    - u_int*
    - char*
    - size_t
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4313
      start: 4298
    functionDepth: 2
    functionLinenumber: 4298
    functionLinenumberEnd: 4313
    functionName: format_add_modifier
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - memcpy
    - xreallocarray
    linkageType: ''
    returnType: void
    signature: "void format_add_modifier(struct format_modifier **list, u_int *count,\n
      \   const char *c, size_t n, char **argv, int argc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmd_free_argv
      Src: /src/tmux/format.c:4322,1
    - Dst: free
      Src: /src/tmux/format.c:4323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - list
    - count
    argTypes:
    - struct format_modifier*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4324
      start: 4316
    functionDepth: 1
    functionLinenumber: 4316
    functionLinenumberEnd: 4324
    functionName: format_free_modifiers
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - free
    - cmd_free_argv
    linkageType: ''
    returnType: void
    signature: void format_free_modifiers(struct format_modifier *list, u_int count)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/tmux/format.c:4357,1
    - Dst: format_is_end
      Src: /src/tmux/format.c:4358,1
    - Dst: format_add_modifier
      Src: /src/tmux/format.c:4359,1
    - Dst: memcmp
      Src: /src/tmux/format.c:4365,1
    - Dst: memcmp
      Src: /src/tmux/format.c:4366,1
    - Dst: memcmp
      Src: /src/tmux/format.c:4367,1
    - Dst: memcmp
      Src: /src/tmux/format.c:4368,1
    - Dst: memcmp
      Src: /src/tmux/format.c:4369,1
    - Dst: memcmp
      Src: /src/tmux/format.c:4370,1
    - Dst: memcmp
      Src: /src/tmux/format.c:4371,1
    - Dst: format_is_end
      Src: /src/tmux/format.c:4372,1
    - Dst: format_add_modifier
      Src: /src/tmux/format.c:4373,1
    - Dst: strchr
      Src: /src/tmux/format.c:4379,1
    - Dst: format_is_end
      Src: /src/tmux/format.c:4384,1
    - Dst: format_add_modifier
      Src: /src/tmux/format.c:4385,1
    - Dst: ispunct
      Src: /src/tmux/format.c:4393,1
    - Dst: format_skip1
      Src: /src/tmux/format.c:4394,1
    - Dst: xcalloc
      Src: /src/tmux/format.c:4398,1
    - Dst: xstrndup
      Src: /src/tmux/format.c:4399,1
    - Dst: format_expand1
      Src: /src/tmux/format.c:4400,1
    - Dst: free
      Src: /src/tmux/format.c:4401,1
    - Dst: format_add_modifier
      Src: /src/tmux/format.c:4404,1
    - Dst: format_is_end
      Src: /src/tmux/format.c:4413,1
    - Dst: format_skip1
      Src: /src/tmux/format.c:4417,1
    - Dst: xreallocarray
      Src: /src/tmux/format.c:4422,1
    - Dst: xstrndup
      Src: /src/tmux/format.c:4423,1
    - Dst: format_expand1
      Src: /src/tmux/format.c:4424,1
    - Dst: free
      Src: /src/tmux/format.c:4425,1
    - Dst: format_is_end
      Src: /src/tmux/format.c:4428,1
    - Dst: format_add_modifier
      Src: /src/tmux/format.c:4429,1
    - Dst: format_free_modifiers
      Src: /src/tmux/format.c:4432,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 66
    argCount: 3
    argNames:
    - es
    - s
    - count
    argTypes:
    - struct format_expand_state*
    - char**
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4438
      start: 4327
    functionDepth: 4
    functionLinenumber: 4327
    functionLinenumberEnd: 4438
    functionName: format_build_modifiers
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_is_end
    - xstrndup
    - format_add_modifier
    - xcalloc
    - format_free_modifiers
    - strchr
    - ispunct
    - free
    - xreallocarray
    - memcmp
    - format_skip1
    - format_expand1
    linkageType: ''
    returnType: struct format_modifier
    signature: "struct format_modifier *\nformat_build_modifiers(struct format_expand_state
      *es, const char **s,\n    u_int *count)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/tmux/format.c:4450,1
    - Dst: strchr
      Src: /src/tmux/format.c:4451,1
    - Dst: fnmatch
      Src: /src/tmux/format.c:4453,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4454,1
    - Dst: strchr
      Src: /src/tmux/format.c:4457,1
    - Dst: regcomp
      Src: /src/tmux/format.c:4459,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4460,1
    - Dst: regexec
      Src: /src/tmux/format.c:4461,1
    - Dst: regfree
      Src: /src/tmux/format.c:4462,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4463,1
    - Dst: regfree
      Src: /src/tmux/format.c:4465,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4467,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - fm
    - pattern
    - text
    argTypes:
    - struct format_modifier*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4468
      start: 4441
    functionDepth: 2
    functionLinenumber: 4441
    functionLinenumberEnd: 4468
    functionName: format_match
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - regfree
    - regexec
    - strchr
    - regcomp
    - fnmatch
    - xstrdup
    linkageType: ''
    returnType: char
    signature: 'char *

      format_match(struct format_modifier *fm, const char *pattern, const char *text)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/tmux/format.c:4478,1
    - Dst: regsub
      Src: /src/tmux/format.c:4480,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4482,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - fm
    - text
    - pattern
    - with
    argTypes:
    - struct format_modifier*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4484
      start: 4471
    functionDepth: 5
    functionLinenumber: 4471
    functionLinenumberEnd: 4484
    functionName: format_sub
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - regsub
    - strchr
    linkageType: ''
    returnType: char
    signature: "char *\nformat_sub(struct format_modifier *fm, const char *text, const
      char *pattern,\n    const char *with)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/tmux/format.c:4494,1
    - Dst: strchr
      Src: /src/tmux/format.c:4496,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:4499,1
    - Dst: window_pane_search
      Src: /src/tmux/format.c:4499,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - fm
    - wp
    - s
    argTypes:
    - struct format_modifier*
    - struct window_pane*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4501
      start: 4487
    functionDepth: 2
    functionLinenumber: 4487
    functionLinenumberEnd: 4501
    functionName: format_search
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - window_pane_search
    - strchr
    linkageType: ''
    returnType: char
    signature: 'char *

      format_search(struct format_modifier *fm, struct window_pane *wp, const char
      *s)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_expand1
      Src: /src/tmux/format.c:4510,1
    - Dst: format_true
      Src: /src/tmux/format.c:4511,1
    - Dst: free
      Src: /src/tmux/format.c:4514,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - es
    - fmt
    - not
    argTypes:
    - struct format_expand_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4517
      start: 4504
    functionDepth: 2
    functionLinenumber: 4504
    functionLinenumberEnd: 4517
    functionName: format_bool_op_1
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_true
    - xstrdup
    - free
    - format_expand1
    linkageType: ''
    returnType: char
    signature: 'char *

      format_bool_op_1(struct format_expand_state *es, const char *fmt, int not)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: format_skip1
      Src: /src/tmux/format.c:4531,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4534,1
    - Dst: xstrndup
      Src: /src/tmux/format.c:4536,1
    - Dst: format_expand1
      Src: /src/tmux/format.c:4537,1
    - Dst: free
      Src: /src/tmux/format.c:4538,1
    - Dst: format_log
      Src: /src/tmux/format.c:4539,1
    - Dst: format_true
      Src: /src/tmux/format.c:4543,1
    - Dst: format_true
      Src: /src/tmux/format.c:4545,1
    - Dst: free
      Src: /src/tmux/format.c:4546,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4554,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - es
    - fmt
    - and
    argTypes:
    - struct format_expand_state*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4555
      start: 4520
    functionDepth: 4
    functionLinenumber: 4520
    functionLinenumberEnd: 4555
    functionName: format_bool_op_n
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrndup
    - format_true
    - format_log
    - free
    - format_skip1
    - xstrdup
    - format_expand1
    linkageType: ''
    returnType: char
    signature: 'char *

      format_bool_op_n(struct format_expand_state *es, const char *fmt, int and)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_expand1
      Src: /src/tmux/format.c:4564,1
    - Dst: RB_FOREACH
      Src: /src/tmux/format.c:4565,1
    - Dst: strcmp
      Src: /src/tmux/format.c:4566,1
    - Dst: free
      Src: /src/tmux/format.c:4567,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4568,1
    - Dst: free
      Src: /src/tmux/format.c:4571,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - es
    - fmt
    argTypes:
    - struct format_expand_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4573
      start: 4558
    functionDepth: 2
    functionLinenumber: 4558
    functionLinenumberEnd: 4573
    functionName: format_session_name
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - strcmp
    - RB_FOREACH
    - free
    - xstrdup
    - format_expand1
    linkageType: ''
    returnType: char
    signature: 'char *

      format_session_name(struct format_expand_state *es, const char *fmt)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: format_choose
      Src: /src/tmux/format.c:4590,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4591,1
    - Dst: xcalloc
      Src: /src/tmux/format.c:4595,1
    - Dst: sort_get_sessions
      Src: /src/tmux/format.c:4598,1
    - Dst: format_log
      Src: /src/tmux/format.c:4601,1
    - Dst: format_create
      Src: /src/tmux/format.c:4610,1
    - Dst: format_defaults
      Src: /src/tmux/format.c:4611,1
    - Dst: format_copy_state
      Src: /src/tmux/format.c:4612,1
    - Dst: format_expand1
      Src: /src/tmux/format.c:4614,1
    - Dst: format_free
      Src: /src/tmux/format.c:4615,1
    - Dst: strlen
      Src: /src/tmux/format.c:4617,1
    - Dst: xrealloc
      Src: /src/tmux/format.c:4618,1
    - Dst: strlcat
      Src: /src/tmux/format.c:4620,1
    - Dst: free
      Src: /src/tmux/format.c:4621,1
    - Dst: free
      Src: /src/tmux/format.c:4624,1
    - Dst: free
      Src: /src/tmux/format.c:4625,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - es
    - fmt
    argTypes:
    - struct format_expand_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4628
      start: 4576
    functionDepth: 5
    functionLinenumber: 4576
    functionLinenumberEnd: 4628
    functionName: format_loop_sessions
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_expand1
    - format_free
    - xcalloc
    - format_log
    - format_defaults
    - strlcat
    - free
    - xrealloc
    - format_create
    - format_copy_state
    - strlen
    - sort_get_sessions
    - xstrdup
    - format_choose
    linkageType: ''
    returnType: char
    signature: 'char *

      format_loop_sessions(struct format_expand_state *es, const char *fmt)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: format_log
      Src: /src/tmux/format.c:4639,1
    - Dst: format_expand1
      Src: /src/tmux/format.c:4643,1
    - Dst: RB_FOREACH
      Src: /src/tmux/format.c:4644,1
    - Dst: strcmp
      Src: /src/tmux/format.c:4645,1
    - Dst: free
      Src: /src/tmux/format.c:4646,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4647,1
    - Dst: free
      Src: /src/tmux/format.c:4650,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4651,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - es
    - fmt
    argTypes:
    - struct format_expand_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4652
      start: 4631
    functionDepth: 2
    functionLinenumber: 4631
    functionLinenumberEnd: 4652
    functionName: format_window_name
    functionSourceFile: /src/tmux/format.c
    functionUses: 1
    functionsReached:
    - format_log
    - strcmp
    - RB_FOREACH
    - free
    - xstrdup
    - format_expand1
    linkageType: ''
    returnType: char
    signature: 'char *

      format_window_name(struct format_expand_state *es, const char *fmt)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/tmux/format.c:4663,1
    - Dst: format_add
      Src: /src/tmux/format.c:4664,1
    - Dst: free
      Src: /src/tmux/format.c:4665,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:4667,1
    - Dst: format_add
      Src: /src/tmux/format.c:4668,1
    - Dst: free
      Src: /src/tmux/format.c:4669,1
    - Dst: options_first
      Src: /src/tmux/format.c:4671,1
    - Dst: options_name
      Src: /src/tmux/format.c:4673,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:4675,1
    - Dst: options_to_string
      Src: /src/tmux/format.c:4676,1
    - Dst: format_add
      Src: /src/tmux/format.c:4677,1
    - Dst: free
      Src: /src/tmux/format.c:4678,1
    - Dst: free
      Src: /src/tmux/format.c:4679,1
    - Dst: options_next
      Src: /src/tmux/format.c:4681,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 4
    argNames:
    - nft
    - wl
    - s
    - prefix
    argTypes:
    - struct format_tree*
    - struct winlink*
    - struct session*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4683
      start: 4655
    functionDepth: 5
    functionLinenumber: 4655
    functionLinenumberEnd: 4683
    functionName: format_add_window_neighbor
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - options_to_string
    - options_next
    - options_name
    - free
    - format_add
    - options_first
    linkageType: ''
    returnType: void
    signature: "void format_add_window_neighbor(struct format_tree *nft, struct winlink
      *wl,\n    struct session *s, const char *prefix)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: format_log
      Src: /src/tmux/format.c:4702,1
    - Dst: format_choose
      Src: /src/tmux/format.c:4706,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4707,1
    - Dst: xcalloc
      Src: /src/tmux/format.c:4711,1
    - Dst: sort_get_winlinks_session
      Src: /src/tmux/format.c:4714,1
    - Dst: format_log
      Src: /src/tmux/format.c:4718,1
    - Dst: format_create
      Src: /src/tmux/format.c:4725,1
    - Dst: format_defaults
      Src: /src/tmux/format.c:4727,1
    - Dst: format_add
      Src: /src/tmux/format.c:4730,1
    - Dst: format_add
      Src: /src/tmux/format.c:4732,1
    - Dst: format_add_window_neighbor
      Src: /src/tmux/format.c:4735,1
    - Dst: format_add_window_neighbor
      Src: /src/tmux/format.c:4737,1
    - Dst: format_copy_state
      Src: /src/tmux/format.c:4739,1
    - Dst: format_expand1
      Src: /src/tmux/format.c:4741,1
    - Dst: format_free
      Src: /src/tmux/format.c:4742,1
    - Dst: strlen
      Src: /src/tmux/format.c:4744,1
    - Dst: xrealloc
      Src: /src/tmux/format.c:4745,1
    - Dst: strlcat
      Src: /src/tmux/format.c:4747,1
    - Dst: free
      Src: /src/tmux/format.c:4748,1
    - Dst: free
      Src: /src/tmux/format.c:4751,1
    - Dst: free
      Src: /src/tmux/format.c:4752,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 2
    argNames:
    - es
    - fmt
    argTypes:
    - struct format_expand_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4755
      start: 4686
    functionDepth: 6
    functionLinenumber: 4686
    functionLinenumberEnd: 4755
    functionName: format_loop_windows
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_free
    - xcalloc
    - format_log
    - format_defaults
    - strlcat
    - sort_get_winlinks_session
    - format_add_window_neighbor
    - xrealloc
    - format_create
    - format_add
    - format_copy_state
    - strlen
    - free
    - format_expand1
    - xstrdup
    - format_choose
    linkageType: ''
    returnType: char
    signature: 'char *

      format_loop_windows(struct format_expand_state *es, const char *fmt)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: format_log
      Src: /src/tmux/format.c:4773,1
    - Dst: format_choose
      Src: /src/tmux/format.c:4777,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:4778,1
    - Dst: xcalloc
      Src: /src/tmux/format.c:4782,1
    - Dst: sort_get_panes_window
      Src: /src/tmux/format.c:4785,1
    - Dst: format_log
      Src: /src/tmux/format.c:4788,1
    - Dst: format_create
      Src: /src/tmux/format.c:4795,1
    - Dst: format_defaults
      Src: /src/tmux/format.c:4797,1
    - Dst: format_copy_state
      Src: /src/tmux/format.c:4798,1
    - Dst: format_expand1
      Src: /src/tmux/format.c:4800,1
    - Dst: format_free
      Src: /src/tmux/format.c:4801,1
    - Dst: strlen
      Src: /src/tmux/format.c:4803,1
    - Dst: xrealloc
      Src: /src/tmux/format.c:4804,1
    - Dst: strlcat
      Src: /src/tmux/format.c:4806,1
    - Dst: free
      Src: /src/tmux/format.c:4807,1
    - Dst: free
      Src: /src/tmux/format.c:4810,1
    - Dst: free
      Src: /src/tmux/format.c:4811,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 2
    argNames:
    - es
    - fmt
    argTypes:
    - struct format_expand_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4814
      start: 4758
    functionDepth: 5
    functionLinenumber: 4758
    functionLinenumberEnd: 4814
    functionName: format_loop_panes
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - format_free
    - xcalloc
    - format_log
    - format_defaults
    - strlcat
    - sort_get_panes_window
    - free
    - xrealloc
    - format_create
    - format_copy_state
    - strlen
    - format_expand1
    - xstrdup
    - format_choose
    linkageType: ''
    returnType: char
    signature: 'char *

      format_loop_panes(struct format_expand_state *es, const char *fmt)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/format.c:4830,1
    - Dst: sort_get_clients
      Src: /src/tmux/format.c:4833,1
    - Dst: format_log
      Src: /src/tmux/format.c:4836,1
    - Dst: format_create
      Src: /src/tmux/format.c:4839,1
    - Dst: format_defaults
      Src: /src/tmux/format.c:4840,1
    - Dst: format_copy_state
      Src: /src/tmux/format.c:4841,1
    - Dst: format_expand1
      Src: /src/tmux/format.c:4843,1
    - Dst: format_free
      Src: /src/tmux/format.c:4844,1
    - Dst: strlen
      Src: /src/tmux/format.c:4846,1
    - Dst: xrealloc
      Src: /src/tmux/format.c:4847,1
    - Dst: strlcat
      Src: /src/tmux/format.c:4849,1
    - Dst: free
      Src: /src/tmux/format.c:4850,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - es
    - fmt
    argTypes:
    - struct format_expand_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4854
      start: 4817
    functionDepth: 5
    functionLinenumber: 4817
    functionLinenumberEnd: 4854
    functionName: format_loop_clients
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - sort_get_clients
    - format_free
    - xcalloc
    - format_log
    - format_defaults
    - strlcat
    - free
    - xrealloc
    - format_create
    - format_copy_state
    - strlen
    - format_expand1
    linkageType: ''
    returnType: char
    signature: 'char *

      format_loop_clients(struct format_expand_state *es, const char *fmt)'
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/format.c:4878,1
    - Dst: strcmp
      Src: /src/tmux/format.c:4880,1
    - Dst: strcmp
      Src: /src/tmux/format.c:4882,1
    - Dst: strcmp
      Src: /src/tmux/format.c:4884,1
    - Dst: strcmp
      Src: /src/tmux/format.c:4886,1
    - Dst: strcmp
      Src: /src/tmux/format.c:4887,1
    - Dst: strcmp
      Src: /src/tmux/format.c:4889,1
    - Dst: strcmp
      Src: /src/tmux/format.c:4891,1
    - Dst: strcmp
      Src: /src/tmux/format.c:4893,1
    - Dst: strcmp
      Src: /src/tmux/format.c:4895,1
    - Dst: strcmp
      Src: /src/tmux/format.c:4897,1
    - Dst: strcmp
      Src: /src/tmux/format.c:4899,1
    - Dst: format_log
      Src: /src/tmux/format.c:4902,1
    - Dst: strchr
      Src: /src/tmux/format.c:4908,1
    - Dst: strtonum
      Src: /src/tmux/format.c:4915,1
    - Dst: format_log
      Src: /src/tmux/format.c:4918,1
    - Dst: format_choose
      Src: /src/tmux/format.c:4924,1
    - Dst: format_log
      Src: /src/tmux/format.c:4925,1
    - Dst: strtod
      Src: /src/tmux/format.c:4929,1
    - Dst: format_log
      Src: /src/tmux/format.c:4931,1
    - Dst: strtod
      Src: /src/tmux/format.c:4935,1
    - Dst: format_log
      Src: /src/tmux/format.c:4937,1
    - Dst: format_log
      Src: /src/tmux/format.c:4945,1
    - Dst: format_log
      Src: /src/tmux/format.c:4946,1
    - Dst: fmod
      Src: /src/tmux/format.c:4962,1
    - Dst: fabs
      Src: /src/tmux/format.c:4965,1
    - Dst: fabs
      Src: /src/tmux/format.c:4968,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:4984,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:4986,1
    - Dst: format_log
      Src: /src/tmux/format.c:4987,1
    - Dst: free
      Src: /src/tmux/format.c:4989,1
    - Dst: free
      Src: /src/tmux/format.c:4990,1
    - Dst: free
      Src: /src/tmux/format.c:4994,1
    - Dst: free
      Src: /src/tmux/format.c:4995,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 109
    argCount: 3
    argNames:
    - mexp
    - es
    - copy
    argTypes:
    - struct format_modifier*
    - struct format_expand_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4997
      start: 4856
    functionDepth: 5
    functionLinenumber: 4856
    functionLinenumberEnd: 4997
    functionName: format_replace_expression
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - fmod
    - strtod
    - xasprintf
    - strtonum
    - fabs
    - format_log
    - strchr
    - strcmp
    - free
    - format_choose
    linkageType: ''
    returnType: char
    signature: "char *\nformat_replace_expression(struct format_modifier *mexp,\n
      \   struct format_expand_state *es, const char *copy)"
  - BBCount: 128
    BranchProfiles: []
    Callsites:
    - Dst: xstrndup
      Src: /src/tmux/format.c:5026,1
    - Dst: format_build_modifiers
      Src: /src/tmux/format.c:5029,1
    - Dst: format_logging
      Src: /src/tmux/format.c:5032,1
    - Dst: format_log
      Src: /src/tmux/format.c:5033,1
    - Dst: format_log
      Src: /src/tmux/format.c:5035,1
    - Dst: xreallocarray
      Src: /src/tmux/format.c:5055,1
    - Dst: strtonum
      Src: /src/tmux/format.c:5061,1
    - Dst: strtonum
      Src: /src/tmux/format.c:5071,1
    - Dst: strchr
      Src: /src/tmux/format.c:5106,1
    - Dst: strchr
      Src: /src/tmux/format.c:5109,1
    - Dst: free
      Src: /src/tmux/format.c:5110,1
    - Dst: format_strip
      Src: /src/tmux/format.c:5111,1
    - Dst: strchr
      Src: /src/tmux/format.c:5117,1
    - Dst: strchr
      Src: /src/tmux/format.c:5118,1
    - Dst: strchr
      Src: /src/tmux/format.c:5129,1
    - Dst: strchr
      Src: /src/tmux/format.c:5131,1
    - Dst: strchr
      Src: /src/tmux/format.c:5141,1
    - Dst: strchr
      Src: /src/tmux/format.c:5143,1
    - Dst: strchr
      Src: /src/tmux/format.c:5145,1
    - Dst: strchr
      Src: /src/tmux/format.c:5149,1
    - Dst: strchr
      Src: /src/tmux/format.c:5161,1
    - Dst: strchr
      Src: /src/tmux/format.c:5163,1
    - Dst: strchr
      Src: /src/tmux/format.c:5165,1
    - Dst: strchr
      Src: /src/tmux/format.c:5169,1
    - Dst: strchr
      Src: /src/tmux/format.c:5181,1
    - Dst: strchr
      Src: /src/tmux/format.c:5193,1
    - Dst: strchr
      Src: /src/tmux/format.c:5195,1
    - Dst: strchr
      Src: /src/tmux/format.c:5197,1
    - Dst: strchr
      Src: /src/tmux/format.c:5201,1
    - Dst: strcmp
      Src: /src/tmux/format.c:5211,1
    - Dst: strcmp
      Src: /src/tmux/format.c:5212,1
    - Dst: strcmp
      Src: /src/tmux/format.c:5214,1
    - Dst: strcmp
      Src: /src/tmux/format.c:5216,1
    - Dst: strcmp
      Src: /src/tmux/format.c:5217,1
    - Dst: strcmp
      Src: /src/tmux/format.c:5218,1
    - Dst: strcmp
      Src: /src/tmux/format.c:5219,1
    - Dst: format_log
      Src: /src/tmux/format.c:5226,1
    - Dst: format_unescape
      Src: /src/tmux/format.c:5227,1
    - Dst: format_expand1::format_expand1
      Src: /src/tmux/format.c:5233,1
    - Dst: strtonum
      Src: /src/tmux/format.c:5234,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:5236,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:5238,1
    - Dst: format_expand1::format_expand1
      Src: /src/tmux/format.c:5245,1
    - Dst: colour_fromstring
      Src: /src/tmux/format.c:5246,1
    - Dst: colour_force_rgb
      Src: /src/tmux/format.c:5247,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:5248,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:5250,1
    - Dst: format_loop_sessions
      Src: /src/tmux/format.c:5257,1
    - Dst: format_loop_windows
      Src: /src/tmux/format.c:5261,1
    - Dst: format_loop_panes
      Src: /src/tmux/format.c:5265,1
    - Dst: format_loop_clients
      Src: /src/tmux/format.c:5269,1
    - Dst: format_window_name
      Src: /src/tmux/format.c:5273,1
    - Dst: format_session_name
      Src: /src/tmux/format.c:5277,1
    - Dst: format_expand1::format_expand1
      Src: /src/tmux/format.c:5282,1
    - Dst: format_log
      Src: /src/tmux/format.c:5284,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:5285,1
    - Dst: format_log
      Src: /src/tmux/format.c:5287,1
    - Dst: wp::wp
      Src: /src/tmux/format.c:5287,1
    - Dst: format_search
      Src: /src/tmux/format.c:5288,1
    - Dst: format_choose
      Src: /src/tmux/format.c:5293,1
    - Dst: format_log
      Src: /src/tmux/format.c:5294,1
    - Dst: strtonum
      Src: /src/tmux/format.c:5297,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:5299,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:5301,1
    - Dst: format_check_time
      Src: /src/tmux/format.c:5303,1
    - Dst: free
      Src: /src/tmux/format.c:5304,1
    - Dst: free
      Src: /src/tmux/format.c:5305,1
    - Dst: free
      Src: /src/tmux/format.c:5306,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:5309,1
    - Dst: free
      Src: /src/tmux/format.c:5310,1
    - Dst: free
      Src: /src/tmux/format.c:5314,1
    - Dst: free
      Src: /src/tmux/format.c:5315,1
    - Dst: format_bool_op_1
      Src: /src/tmux/format.c:5317,1
    - Dst: format_bool_op_1
      Src: /src/tmux/format.c:5319,1
    - Dst: strcmp
      Src: /src/tmux/format.c:5322,1
    - Dst: format_bool_op_n
      Src: /src/tmux/format.c:5323,1
    - Dst: strcmp
      Src: /src/tmux/format.c:5324,1
    - Dst: format_bool_op_n
      Src: /src/tmux/format.c:5325,1
    - Dst: format_choose
      Src: /src/tmux/format.c:5328,1
    - Dst: format_log
      Src: /src/tmux/format.c:5329,1
    - Dst: format_log
      Src: /src/tmux/format.c:5333,1
    - Dst: format_log
      Src: /src/tmux/format.c:5334,1
    - Dst: strcmp
      Src: /src/tmux/format.c:5336,1
    - Dst: strcmp
      Src: /src/tmux/format.c:5337,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:5338,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:5340,1
    - Dst: strcmp
      Src: /src/tmux/format.c:5341,1
    - Dst: strcmp
      Src: /src/tmux/format.c:5342,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:5343,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:5345,1
    - Dst: strcmp
      Src: /src/tmux/format.c:5346,1
    - Dst: strcmp
      Src: /src/tmux/format.c:5347,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:5348,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:5350,1
    - Dst: strcmp
      Src: /src/tmux/format.c:5351,1
    - Dst: strcmp
      Src: /src/tmux/format.c:5352,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:5353,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:5355,1
    - Dst: strcmp
      Src: /src/tmux/format.c:5356,1
    - Dst: strcmp
      Src: /src/tmux/format.c:5357,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:5358,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:5360,1
    - Dst: strcmp
      Src: /src/tmux/format.c:5361,1
    - Dst: strcmp
      Src: /src/tmux/format.c:5362,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:5363,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:5365,1
    - Dst: strcmp
      Src: /src/tmux/format.c:5366,1
    - Dst: format_match
      Src: /src/tmux/format.c:5367,1
    - Dst: free
      Src: /src/tmux/format.c:5369,1
    - Dst: free
      Src: /src/tmux/format.c:5370,1
    - Dst: format_skip1
      Src: /src/tmux/format.c:5380,1
    - Dst: format_log
      Src: /src/tmux/format.c:5382,1
    - Dst: format_expand1
      Src: /src/tmux/format.c:5385,1
    - Dst: xstrndup
      Src: /src/tmux/format.c:5389,1
    - Dst: format_log
      Src: /src/tmux/format.c:5390,1
    - Dst: format_find
      Src: /src/tmux/format.c:5392,1
    - Dst: format_expand1
      Src: /src/tmux/format.c:5400,1
    - Dst: strcmp
      Src: /src/tmux/format.c:5401,1
    - Dst: free
      Src: /src/tmux/format.c:5402,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:5403,1
    - Dst: format_log
      Src: /src/tmux/format.c:5404,1
    - Dst: format_log
      Src: /src/tmux/format.c:5410,1
    - Dst: format_skip1
      Src: /src/tmux/format.c:5415,1
    - Dst: format_true
      Src: /src/tmux/format.c:5416,1
    - Dst: format_log
      Src: /src/tmux/format.c:5417,1
    - Dst: format_expand1
      Src: /src/tmux/format.c:5420,1
    - Dst: xstrndup
      Src: /src/tmux/format.c:5422,1
    - Dst: format_expand1
      Src: /src/tmux/format.c:5423,1
    - Dst: free
      Src: /src/tmux/format.c:5424,1
    - Dst: free
      Src: /src/tmux/format.c:5426,1
    - Dst: free
      Src: /src/tmux/format.c:5427,1
    - Dst: format_log
      Src: /src/tmux/format.c:5430,1
    - Dst: free
      Src: /src/tmux/format.c:5434,1
    - Dst: free
      Src: /src/tmux/format.c:5435,1
    - Dst: format_log
      Src: /src/tmux/format.c:5438,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:5441,1
    - Dst: format_replace_expression
      Src: /src/tmux/format.c:5448,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:5450,1
    - Dst: strstr
      Src: /src/tmux/format.c:5452,1
    - Dst: format_log
      Src: /src/tmux/format.c:5453,1
    - Dst: format_expand1
      Src: /src/tmux/format.c:5454,1
    - Dst: format_find
      Src: /src/tmux/format.c:5456,1
    - Dst: format_log
      Src: /src/tmux/format.c:5458,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:5459,1
    - Dst: format_log
      Src: /src/tmux/format.c:5461,1
    - Dst: format_expand1::format_expand1
      Src: /src/tmux/format.c:5470,1
    - Dst: free
      Src: /src/tmux/format.c:5471,1
    - Dst: format_copy_state
      Src: /src/tmux/format.c:5474,1
    - Dst: format_expand1::format_expand1
      Src: /src/tmux/format.c:5475,1
    - Dst: free
      Src: /src/tmux/format.c:5476,1
    - Dst: format_expand1
      Src: /src/tmux/format.c:5482,1
    - Dst: format_expand1
      Src: /src/tmux/format.c:5483,1
    - Dst: format_sub::format_sub
      Src: /src/tmux/format.c:5484,1
    - Dst: format_log
      Src: /src/tmux/format.c:5485,1
    - Dst: free
      Src: /src/tmux/format.c:5486,1
    - Dst: free::free
      Src: /src/tmux/format.c:5487,1
    - Dst: free
      Src: /src/tmux/format.c:5489,1
    - Dst: format_trim_left::format_trim_left
      Src: /src/tmux/format.c:5494,1
    - Dst: strcmp
      Src: /src/tmux/format.c:5495,1
    - Dst: value::value
      Src: /src/tmux/format.c:5495,1
    - Dst: free
      Src: /src/tmux/format.c:5496,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:5497,1
    - Dst: marker::marker
      Src: /src/tmux/format.c:5497,1
    - Dst: free
      Src: /src/tmux/format.c:5500,1
    - Dst: format_log
      Src: /src/tmux/format.c:5503,1
    - Dst: format_trim_right::format_trim_right
      Src: /src/tmux/format.c:5505,1
    - Dst: strcmp
      Src: /src/tmux/format.c:5506,1
    - Dst: value::value
      Src: /src/tmux/format.c:5506,1
    - Dst: free
      Src: /src/tmux/format.c:5507,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:5508,1
    - Dst: free
      Src: /src/tmux/format.c:5511,1
    - Dst: format_log
      Src: /src/tmux/format.c:5514,1
    - Dst: utf8_padcstr::utf8_padcstr
      Src: /src/tmux/format.c:5519,1
    - Dst: free
      Src: /src/tmux/format.c:5520,1
    - Dst: format_log::format_log
      Src: /src/tmux/format.c:5521,1
    - Dst: utf8_rpadcstr::utf8_rpadcstr
      Src: /src/tmux/format.c:5524,1
    - Dst: free
      Src: /src/tmux/format.c:5525,1
    - Dst: format_log::format_log
      Src: /src/tmux/format.c:5526,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:5532,1
    - Dst: strlen
      Src: /src/tmux/format.c:5532,1
    - Dst: free
      Src: /src/tmux/format.c:5533,1
    - Dst: format_log::format_log
      Src: /src/tmux/format.c:5534,1
    - Dst: xasprintf
      Src: /src/tmux/format.c:5538,1
    - Dst: format_width
      Src: /src/tmux/format.c:5538,1
    - Dst: free
      Src: /src/tmux/format.c:5539,1
    - Dst: format_log::format_log
      Src: /src/tmux/format.c:5540,1
    - Dst: strlen
      Src: /src/tmux/format.c:5545,1
    - Dst: xreallocarray
      Src: /src/tmux/format.c:5547,1
    - Dst: memcpy
      Src: /src/tmux/format.c:5550,1
    - Dst: format_log
      Src: /src/tmux/format.c:5553,1
    - Dst: free
      Src: /src/tmux/format.c:5554,1
    - Dst: free
      Src: /src/tmux/format.c:5556,1
    - Dst: format_free_modifiers
      Src: /src/tmux/format.c:5557,1
    - Dst: free
      Src: /src/tmux/format.c:5558,1
    - Dst: free
      Src: /src/tmux/format.c:5559,1
    - Dst: format_log
      Src: /src/tmux/format.c:5563,1
    - Dst: free
      Src: /src/tmux/format.c:5565,1
    - Dst: format_free_modifiers
      Src: /src/tmux/format.c:5566,1
    - Dst: free
      Src: /src/tmux/format.c:5567,1
    - Dst: free
      Src: /src/tmux/format.c:5568,1
    CyclomaticComplexity: 168
    EdgeCount: 168
    ICount: 485
    argCount: 6
    argNames:
    - es
    - key
    - keylen
    - buf
    - len
    - 'off'
    argTypes:
    - struct format_expand_state*
    - char*
    - size_t
    - char**
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5570
      start: 5000
    functionDepth: 7
    functionLinenumber: 5000
    functionLinenumberEnd: 5570
    functionName: format_replace
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - xstrndup
    - format_expand1::format_expand1
    - wp::wp
    - format_free_modifiers
    - format_match
    - format_search
    - format_bool_op_1
    - utf8_padcstr::utf8_padcstr
    - format_choose
    - format_trim_left::format_trim_left
    - format_width
    - strtonum
    - marker::marker
    - format_logging
    - strchr
    - format_loop_sessions
    - format_unescape
    - memcpy
    - format_true
    - format_trim_right::format_trim_right
    - strlen
    - xstrdup
    - utf8_rpadcstr::utf8_rpadcstr
    - format_bool_op_n
    - format_build_modifiers
    - format_loop_windows
    - format_check_time
    - format_sub::format_sub
    - format_loop_panes
    - colour_fromstring
    - free::free
    - colour_force_rgb
    - format_session_name
    - format_copy_state
    - format_skip1
    - format_expand1
    - format_loop_clients
    - value::value
    - xasprintf
    - format_log
    - format_log::format_log
    - format_find
    - strcmp
    - format_window_name
    - free
    - xreallocarray
    - strstr
    - format_strip
    - format_replace_expression
    linkageType: ''
    returnType: int
    signature: "int format_replace(struct format_expand_state *es, const char *key,
      size_t keylen,\n    char **buf, size_t *len, size_t *off)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: format_check_time
      Src: /src/tmux/format.c:5583,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:5584,1
    - Dst: format_log
      Src: /src/tmux/format.c:5587,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:5588,1
    - Dst: format_log
      Src: /src/tmux/format.c:5592,1
    - Dst: strchr
      Src: /src/tmux/format.c:5594,1
    - Dst: time
      Src: /src/tmux/format.c:5596,1
    - Dst: localtime_r
      Src: /src/tmux/format.c:5597,1
    - Dst: format_strftime
      Src: /src/tmux/format.c:5599,1
    - Dst: format_log
      Src: /src/tmux/format.c:5601,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:5602,1
    - Dst: format_logging
      Src: /src/tmux/format.c:5604,1
    - Dst: strcmp
      Src: /src/tmux/format.c:5604,1
    - Dst: format_log
      Src: /src/tmux/format.c:5605,1
    - Dst: xmalloc
      Src: /src/tmux/format.c:5610,1
    - Dst: xreallocarray
      Src: /src/tmux/format.c:5616,1
    - Dst: xstrndup
      Src: /src/tmux/format.c:5639,1
    - Dst: format_log
      Src: /src/tmux/format.c:5640,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:5644,1
    - Dst: format_log
      Src: /src/tmux/format.c:5645,1
    - Dst: format_job_get
      Src: /src/tmux/format.c:5647,1
    - Dst: format_log
      Src: /src/tmux/format.c:5648,1
    - Dst: free
      Src: /src/tmux/format.c:5650,1
    - Dst: strlen
      Src: /src/tmux/format.c:5652,1
    - Dst: xreallocarray
      Src: /src/tmux/format.c:5654,1
    - Dst: memcpy
      Src: /src/tmux/format.c:5657,1
    - Dst: free
      Src: /src/tmux/format.c:5660,1
    - Dst: format_skip1
      Src: /src/tmux/format.c:5665,1
    - Dst: format_log
      Src: /src/tmux/format.c:5670,1
    - Dst: format_replace
      Src: /src/tmux/format.c:5671,1
    - Dst: format_skip1
      Src: /src/tmux/format.c:5688,1
    - Dst: format_log
      Src: /src/tmux/format.c:5689,1
    - Dst: xreallocarray
      Src: /src/tmux/format.c:5691,1
    - Dst: memcpy
      Src: /src/tmux/format.c:5694,1
    - Dst: format_log
      Src: /src/tmux/format.c:5702,1
    - Dst: xreallocarray
      Src: /src/tmux/format.c:5704,1
    - Dst: xreallocarray
      Src: /src/tmux/format.c:5719,1
    - Dst: strlen
      Src: /src/tmux/format.c:5726,1
    - Dst: format_log
      Src: /src/tmux/format.c:5727,1
    - Dst: format_replace
      Src: /src/tmux/format.c:5728,1
    - Dst: format_log
      Src: /src/tmux/format.c:5737,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 137
    argCount: 2
    argNames:
    - es
    - fmt
    argTypes:
    - struct format_expand_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5741
      start: 5573
    functionDepth: 8
    functionLinenumber: 5573
    functionLinenumberEnd: 5741
    functionName: format_expand1
    functionSourceFile: /src/tmux/format.c
    functionUses: 12
    functionsReached:
    - xstrndup
    - localtime_r
    - format_strftime
    - xmalloc
    - format_log
    - format_check_time
    - format_skip1
    - strchr
    - format_logging
    - strcmp
    - free
    - time
    - memcpy
    - xreallocarray
    - format_job_get
    - strlen
    - format_replace
    - xstrdup
    linkageType: ''
    returnType: char
    signature: 'char *

      format_expand1(struct format_expand_state *es, const char *fmt)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/tmux/format.c:5749,1
    - Dst: get_timer
      Src: /src/tmux/format.c:5752,1
    - Dst: format_expand1
      Src: /src/tmux/format.c:5753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ft
    - fmt
    argTypes:
    - struct format_tree*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5754
      start: 5744
    functionDepth: 9
    functionLinenumber: 5744
    functionLinenumberEnd: 5754
    functionName: format_expand_time
    functionSourceFile: /src/tmux/format.c
    functionUses: 9
    functionsReached:
    - memset
    - get_timer
    - format_expand1
    linkageType: ''
    returnType: char
    signature: 'char *

      format_expand_time(struct format_tree *ft, const char *fmt)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/tmux/format.c:5762,1
    - Dst: get_timer
      Src: /src/tmux/format.c:5765,1
    - Dst: format_expand1
      Src: /src/tmux/format.c:5766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ft
    - fmt
    argTypes:
    - struct format_tree*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5767
      start: 5757
    functionDepth: 9
    functionLinenumber: 5757
    functionLinenumberEnd: 5767
    functionName: format_expand
    functionSourceFile: /src/tmux/format.c
    functionUses: 23
    functionsReached:
    - memset
    - get_timer
    - format_expand1
    linkageType: ''
    returnType: char
    signature: 'char *

      format_expand(struct format_tree *ft, const char *fmt)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_create_defaults
      Src: /src/tmux/format.c:5777,1
    - Dst: format_expand
      Src: /src/tmux/format.c:5778,1
    - Dst: format_free
      Src: /src/tmux/format.c:5779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - item
    - fmt
    - c
    - s
    - wl
    - wp
    argTypes:
    - struct cmdq_item*
    - char*
    - struct client*
    - struct session*
    - struct winlink*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5781
      start: 5770
    functionDepth: 10
    functionLinenumber: 5770
    functionLinenumberEnd: 5781
    functionName: format_single
    functionSourceFile: /src/tmux/format.c
    functionUses: 18
    functionsReached:
    - format_free
    - format_create_defaults
    - format_expand
    linkageType: ''
    returnType: char
    signature: "char *\nformat_single(struct cmdq_item *item, const char *fmt, struct
      client *c,\n    struct session *s, struct winlink *wl, struct window_pane *wp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_single
      Src: /src/tmux/format.c:5788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - item
    - fmt
    - c
    - fs
    argTypes:
    - struct cmdq_item*
    - char*
    - struct client*
    - struct cmd_find_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5789
      start: 5784
    functionDepth: 11
    functionLinenumber: 5784
    functionLinenumberEnd: 5789
    functionName: format_single_from_state
    functionSourceFile: /src/tmux/format.c
    functionUses: 1
    functionsReached:
    - format_single
    linkageType: ''
    returnType: char
    signature: "char *\nformat_single_from_state(struct cmdq_item *item, const char
      *fmt,\n    struct client *c, struct cmd_find_state *fs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get_target_client
      Src: /src/tmux/format.c:5795,1
    - Dst: format_single_from_state
      Src: /src/tmux/format.c:5797,1
    - Dst: cmdq_get_target
      Src: /src/tmux/format.c:5797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - item
    - fmt
    argTypes:
    - struct cmdq_item*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5798
      start: 5792
    functionDepth: 12
    functionLinenumber: 5792
    functionLinenumberEnd: 5798
    functionName: format_single_from_target
    functionSourceFile: /src/tmux/format.c
    functionUses: 14
    functionsReached:
    - cmdq_get_target
    - cmdq_get_target_client
    - format_single_from_state
    linkageType: ''
    returnType: char
    signature: 'char *

      format_single_from_target(struct cmdq_item *item, const char *fmt)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_create
      Src: /src/tmux/format.c:5808,1
    - Dst: cmdq_get_client
      Src: /src/tmux/format.c:5808,1
    - Dst: format_create
      Src: /src/tmux/format.c:5810,1
    - Dst: format_defaults
      Src: /src/tmux/format.c:5811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - item
    - c
    - s
    - wl
    - wp
    argTypes:
    - struct cmdq_item*
    - struct client*
    - struct session*
    - struct winlink*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5813
      start: 5801
    functionDepth: 3
    functionLinenumber: 5801
    functionLinenumberEnd: 5813
    functionName: format_create_defaults
    functionSourceFile: /src/tmux/format.c
    functionUses: 14
    functionsReached:
    - format_defaults
    - format_create
    - cmdq_get_client
    linkageType: ''
    returnType: struct format_tree
    signature: "struct format_tree *\nformat_create_defaults(struct cmdq_item *item,
      struct client *c,\n    struct session *s, struct winlink *wl, struct window_pane
      *wp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_create_defaults
      Src: /src/tmux/format.c:5820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - item
    - c
    - fs
    argTypes:
    - struct cmdq_item*
    - struct client*
    - struct cmd_find_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5821
      start: 5816
    functionDepth: 4
    functionLinenumber: 5816
    functionLinenumberEnd: 5821
    functionName: format_create_from_state
    functionSourceFile: /src/tmux/format.c
    functionUses: 6
    functionsReached:
    - format_create_defaults
    linkageType: ''
    returnType: struct format_tree
    signature: "struct format_tree *\nformat_create_from_state(struct cmdq_item *item,
      struct client *c,\n    struct cmd_find_state *fs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get_target_client
      Src: /src/tmux/format.c:5827,1
    - Dst: format_create_from_state
      Src: /src/tmux/format.c:5829,1
    - Dst: cmdq_get_target
      Src: /src/tmux/format.c:5829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5830
      start: 5824
    functionDepth: 5
    functionLinenumber: 5824
    functionLinenumberEnd: 5830
    functionName: format_create_from_target
    functionSourceFile: /src/tmux/format.c
    functionUses: 2
    functionsReached:
    - cmdq_get_target_client
    - cmdq_get_target
    - format_create_from_state
    linkageType: ''
    returnType: struct format_tree
    signature: 'struct format_tree *

      format_create_from_target(struct cmdq_item *item)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/format.c:5840,1
    - Dst: log_debug
      Src: /src/tmux/format.c:5842,1
    - Dst: log_debug
      Src: /src/tmux/format.c:5844,1
    - Dst: log_debug
      Src: /src/tmux/format.c:5846,1
    - Dst: log_debug
      Src: /src/tmux/format.c:5848,1
    - Dst: log_debug
      Src: /src/tmux/format.c:5850,1
    - Dst: log_debug
      Src: /src/tmux/format.c:5852,1
    - Dst: log_debug
      Src: /src/tmux/format.c:5854,1
    - Dst: log_debug
      Src: /src/tmux/format.c:5857,1
    - Dst: format_defaults_client
      Src: /src/tmux/format.c:5876,1
    - Dst: format_defaults_session
      Src: /src/tmux/format.c:5878,1
    - Dst: format_defaults_winlink
      Src: /src/tmux/format.c:5880,1
    - Dst: format_defaults_pane
      Src: /src/tmux/format.c:5882,1
    - Dst: paste_get_top
      Src: /src/tmux/format.c:5884,1
    - Dst: format_defaults_paste_buffer
      Src: /src/tmux/format.c:5886,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 39
    argCount: 5
    argNames:
    - ft
    - c
    - s
    - wl
    - wp
    argTypes:
    - struct format_tree*
    - struct client*
    - struct session*
    - struct winlink*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5887
      start: 5833
    functionDepth: 3
    functionLinenumber: 5833
    functionLinenumberEnd: 5887
    functionName: format_defaults
    functionSourceFile: /src/tmux/format.c
    functionUses: 19
    functionsReached:
    - format_defaults_winlink
    - format_defaults_paste_buffer
    - format_defaults_session
    - paste_get_top
    - format_defaults_client
    - log_debug
    - format_defaults_pane
    linkageType: ''
    returnType: void
    signature: "void format_defaults(struct format_tree *ft, struct client *c, struct
      session *s,\n    struct winlink *wl, struct window_pane *wp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ft
    - s
    argTypes:
    - struct format_tree*
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5894
      start: 5890
    functionDepth: 0
    functionLinenumber: 5890
    functionLinenumberEnd: 5894
    functionName: format_defaults_session
    functionSourceFile: /src/tmux/format.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void format_defaults_session(struct format_tree *ft, struct session
      *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ft
    - c
    argTypes:
    - struct format_tree*
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5903
      start: 5897
    functionDepth: 0
    functionLinenumber: 5897
    functionLinenumberEnd: 5903
    functionName: format_defaults_client
    functionSourceFile: /src/tmux/format.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void format_defaults_client(struct format_tree *ft, struct client *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ft
    - w
    argTypes:
    - struct format_tree*
    - struct window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5910
      start: 5906
    functionDepth: 0
    functionLinenumber: 5906
    functionLinenumberEnd: 5910
    functionName: format_defaults_window
    functionSourceFile: /src/tmux/format.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void format_defaults_window(struct format_tree *ft, struct window *w)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_defaults_window
      Src: /src/tmux/format.c:5917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ft
    - wl
    argTypes:
    - struct format_tree*
    - struct winlink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5919
      start: 5913
    functionDepth: 1
    functionLinenumber: 5913
    functionLinenumberEnd: 5919
    functionName: format_defaults_winlink
    functionSourceFile: /src/tmux/format.c
    functionUses: 1
    functionsReached:
    - format_defaults_window
    linkageType: ''
    returnType: void
    signature: void format_defaults_winlink(struct format_tree *ft, struct winlink
      *wl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: format_defaults_window
      Src: /src/tmux/format.c:5928,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/format.c:5931,1
    - Dst: struct window_mode_entry*::mode::formats
      Src: /src/tmux/format.c:5933,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ft
    - wp
    argTypes:
    - struct format_tree*
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5934
      start: 5922
    functionDepth: 1
    functionLinenumber: 5922
    functionLinenumberEnd: 5934
    functionName: format_defaults_pane
    functionSourceFile: /src/tmux/format.c
    functionUses: 2
    functionsReached:
    - format_defaults_window
    - struct window_mode_entry*::mode::formats
    - TAILQ_FIRST
    linkageType: ''
    returnType: void
    signature: void format_defaults_pane(struct format_tree *ft, struct window_pane
      *wp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ft
    - pb
    argTypes:
    - struct format_tree*
    - struct paste_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5941
      start: 5937
    functionDepth: 0
    functionLinenumber: 5937
    functionLinenumberEnd: 5941
    functionName: format_defaults_paste_buffer
    functionSourceFile: /src/tmux/format.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void format_defaults_paste_buffer(struct format_tree *ft, struct paste_buffer
      *pb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: utf8_cstrhas
      Src: /src/tmux/format.c:5946,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ws
    - gc
    argTypes:
    - char*
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5951
      start: 5943
    functionDepth: 7
    functionLinenumber: 5943
    functionLinenumberEnd: 5951
    functionName: format_is_word_separator
    functionSourceFile: /src/tmux/format.c
    functionUses: 0
    functionsReached:
    - utf8_cstrhas
    linkageType: ''
    returnType: int
    signature: int format_is_word_separator(const char *ws, const struct grid_cell
      *gc)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: options_get_string
      Src: /src/tmux/format.c:5966,1
    - Dst: grid_get_cell
      Src: /src/tmux/format.c:5969,1
    - Dst: format_is_word_separator
      Src: /src/tmux/format.c:5971,1
    - Dst: grid_peek_line
      Src: /src/tmux/format.c:5979,1
    - Dst: grid_line_length
      Src: /src/tmux/format.c:5983,1
    - Dst: grid_line_length
      Src: /src/tmux/format.c:5991,1
    - Dst: grid_peek_line
      Src: /src/tmux/format.c:5995,1
    - Dst: grid_get_cell
      Src: /src/tmux/format.c:6005,1
    - Dst: format_is_word_separator
      Src: /src/tmux/format.c:6008,1
    - Dst: xreallocarray
      Src: /src/tmux/format.c:6011,1
    - Dst: memcpy
      Src: /src/tmux/format.c:6012,1
    - Dst: utf8_tocstr
      Src: /src/tmux/format.c:6016,1
    - Dst: free
      Src: /src/tmux/format.c:6017,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 50
    argCount: 3
    argNames:
    - gd
    - x
    - y
    argTypes:
    - struct grid*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6020
      start: 5954
    functionDepth: 8
    functionLinenumber: 5954
    functionLinenumberEnd: 6020
    functionName: format_grid_word
    functionSourceFile: /src/tmux/format.c
    functionUses: 2
    functionsReached:
    - grid_peek_line
    - format_is_word_separator
    - grid_line_length
    - grid_get_cell
    - free
    - memcpy
    - xreallocarray
    - utf8_tocstr
    - options_get_string
    linkageType: ''
    returnType: char
    signature: 'char *

      format_grid_word(struct grid *gd, u_int x, u_int y)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: grid_line_length
      Src: /src/tmux/format.c:6032,1
    - Dst: grid_get_cell
      Src: /src/tmux/format.c:6033,1
    - Dst: xreallocarray
      Src: /src/tmux/format.c:6037,1
    - Dst: utf8_set
      Src: /src/tmux/format.c:6039,1
    - Dst: memcpy
      Src: /src/tmux/format.c:6041,1
    - Dst: utf8_tocstr
      Src: /src/tmux/format.c:6045,1
    - Dst: free
      Src: /src/tmux/format.c:6046,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - gd
    - y
    argTypes:
    - struct grid*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6049
      start: 6023
    functionDepth: 4
    functionLinenumber: 6023
    functionLinenumberEnd: 6049
    functionName: format_grid_line
    functionSourceFile: /src/tmux/format.c
    functionUses: 2
    functionsReached:
    - grid_line_length
    - grid_get_cell
    - free
    - memcpy
    - xreallocarray
    - utf8_tocstr
    - utf8_set
    linkageType: ''
    returnType: char
    signature: 'char *

      format_grid_line(struct grid *gd, u_int y)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_cell
      Src: /src/tmux/format.c:6059,1
    - Dst: hyperlinks_get
      Src: /src/tmux/format.c:6068,1
    - Dst: xstrdup
      Src: /src/tmux/format.c:6070,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 4
    argNames:
    - gd
    - x
    - y
    - s
    argTypes:
    - struct grid*
    - u_int
    - u_int
    - struct screen*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6071
      start: 6052
    functionDepth: 3
    functionLinenumber: 6052
    functionLinenumberEnd: 6071
    functionName: format_grid_hyperlink
    functionSourceFile: /src/tmux/format.c
    functionUses: 3
    functionsReached:
    - grid_get_cell
    - xstrdup
    - hyperlinks_get
    linkageType: ''
    returnType: char
    signature: 'char *

      format_grid_hyperlink(struct grid *gd, u_int x, u_int y, struct screen* s)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: nitems
    functionSourceFile: /src/tmux/osdep-openbsd.c
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nitems(_a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: is_runnable
    functionSourceFile: /src/tmux/osdep-openbsd.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_runnable(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: is_stopped
    functionSourceFile: /src/tmux/osdep-openbsd.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_stopped(p)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: is_runnable
      Src: /src/tmux/osdep-openbsd.c:49,1
    - Dst: is_runnable
      Src: /src/tmux/osdep-openbsd.c:49,1
    - Dst: is_runnable
      Src: /src/tmux/osdep-openbsd.c:51,1
    - Dst: is_runnable
      Src: /src/tmux/osdep-openbsd.c:51,1
    - Dst: is_stopped
      Src: /src/tmux/osdep-openbsd.c:54,1
    - Dst: is_stopped
      Src: /src/tmux/osdep-openbsd.c:54,1
    - Dst: is_stopped
      Src: /src/tmux/osdep-openbsd.c:56,1
    - Dst: is_stopped
      Src: /src/tmux/osdep-openbsd.c:56,1
    - Dst: strcmp
      Src: /src/tmux/osdep-openbsd.c:74,1
    - Dst: strcmp
      Src: /src/tmux/osdep-openbsd.c:76,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 28
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - struct kinfo_proc*
    - struct kinfo_proc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 82
    functionName: cmp_procs
    functionSourceFile: /src/tmux/osdep-openbsd.c
    functionUses: 3
    functionsReached:
    - strcmp
    - is_stopped
    - is_runnable
    linkageType: ''
    returnType: struct kinfo_proc
    signature: 'struct kinfo_proc *

      cmp_procs(struct kinfo_proc *p1, struct kinfo_proc *p2)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/tmux/osdep-openbsd.c:97,1
    - Dst: tcgetpgrp
      Src: /src/tmux/osdep-openbsd.c:99,1
    - Dst: sysctl
      Src: /src/tmux/osdep-openbsd.c:103,1
    - Dst: nitems
      Src: /src/tmux/osdep-openbsd.c:103,1
    - Dst: realloc
      Src: /src/tmux/osdep-openbsd.c:107,1
    - Dst: sysctl
      Src: /src/tmux/osdep-openbsd.c:112,1
    - Dst: nitems
      Src: /src/tmux/osdep-openbsd.c:112,1
    - Dst: cmp_procs
      Src: /src/tmux/osdep-openbsd.c:125,1
    - Dst: strdup
      Src: /src/tmux/osdep-openbsd.c:130,1
    - Dst: free
      Src: /src/tmux/osdep-openbsd.c:132,1
    - Dst: free
      Src: /src/tmux/osdep-openbsd.c:136,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 2
    argNames:
    - fd
    - tty
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 138
    functionName: osdep_get_name
    functionSourceFile: /src/tmux/osdep-openbsd.c
    functionUses: 1
    functionsReached:
    - realloc
    - nitems
    - sysctl
    - stat
    - free
    - cmp_procs
    - tcgetpgrp
    - strdup
    linkageType: ''
    returnType: char
    signature: 'char *

      osdep_get_name(int fd, char *tty)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tcgetpgrp
      Src: /src/tmux/osdep-openbsd.c:147,1
    - Dst: sysctl
      Src: /src/tmux/osdep-openbsd.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 152
    functionName: osdep_get_cwd
    functionSourceFile: /src/tmux/osdep-openbsd.c
    functionUses: 1
    functionsReached:
    - tcgetpgrp
    - sysctl
    linkageType: ''
    returnType: char
    signature: 'char *

      osdep_get_cwd(int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_init
      Src: /src/tmux/osdep-openbsd.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: osdep_event_init
    functionSourceFile: /src/tmux/osdep-openbsd.c
    functionUses: 1
    functionsReached:
    - event_init
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      osdep_event_init(void)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_DATA
      Src: /src/tmux/cmd-load-buffer.c:60,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/cmd-load-buffer.c:61,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-load-buffer.c:69,1
    - Dst: strerror
      Src: /src/tmux/cmd-load-buffer.c:69,1
    - Dst: xmalloc
      Src: /src/tmux/cmd-load-buffer.c:71,1
    - Dst: memcpy
      Src: /src/tmux/cmd-load-buffer.c:72,1
    - Dst: paste_set
      Src: /src/tmux/cmd-load-buffer.c:73,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-load-buffer.c:74,1
    - Dst: free
      Src: /src/tmux/cmd-load-buffer.c:75,1
    - Dst: free
      Src: /src/tmux/cmd-load-buffer.c:76,1
    - Dst: tty_set_selection
      Src: /src/tmux/cmd-load-buffer.c:80,1
    - Dst: server_client_unref
      Src: /src/tmux/cmd-load-buffer.c:82,1
    - Dst: cmdq_continue
      Src: /src/tmux/cmd-load-buffer.c:84,1
    - Dst: free
      Src: /src/tmux/cmd-load-buffer.c:86,1
    - Dst: free
      Src: /src/tmux/cmd-load-buffer.c:87,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 6
    argNames:
    - c
    - path
    - error
    - closed
    - buffer
    - data
    argTypes:
    - __unused*
    - char*
    - int
    - int
    - struct evbuffer*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 53
    functionDepth: 6
    functionLinenumber: 53
    functionLinenumberEnd: 88
    functionName: cmd_load_buffer_done
    functionSourceFile: /src/tmux/cmd-load-buffer.c
    functionUses: 0
    functionsReached:
    - cmdq_continue
    - cmdq_error
    - EVBUFFER_DATA
    - tty_set_selection
    - server_client_unref
    - xmalloc
    - free
    - strerror
    - memcpy
    - paste_set
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: "void cmd_load_buffer_done(__unused struct client *c, const char *path,
      int error,\n    int closed, struct evbuffer *buffer, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-load-buffer.c:93,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/cmd-load-buffer.c:94,1
    - Dst: args_get
      Src: /src/tmux/cmd-load-buffer.c:96,1
    - Dst: xcalloc
      Src: /src/tmux/cmd-load-buffer.c:99,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-load-buffer.c:102,1
    - Dst: args_has
      Src: /src/tmux/cmd-load-buffer.c:103,1
    - Dst: format_single_from_target
      Src: /src/tmux/cmd-load-buffer.c:108,1
    - Dst: args_string
      Src: /src/tmux/cmd-load-buffer.c:108,1
    - Dst: file_read
      Src: /src/tmux/cmd-load-buffer.c:109,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-load-buffer.c:109,1
    - Dst: free
      Src: /src/tmux/cmd-load-buffer.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 90
    functionDepth: 13
    functionLinenumber: 90
    functionLinenumberEnd: 113
    functionName: cmd_load_buffer_exec
    functionSourceFile: /src/tmux/cmd-load-buffer.c
    functionUses: 0
    functionsReached:
    - file_read
    - args_string
    - xcalloc
    - cmd_get_args
    - format_single_from_target
    - free
    - cmdq_get_target_client
    - args_get
    - cmdq_get_client
    - xstrdup
    - args_has
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_load_buffer_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-select-layout.c:74,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-select-layout.c:75,1
    - Dst: server_unzoom_window
      Src: /src/tmux/cmd-select-layout.c:83,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-select-layout.c:85,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-layout.c:86,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-select-layout.c:88,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-layout.c:89,1
    - Dst: layout_dump
      Src: /src/tmux/cmd-select-layout.c:93,1
    - Dst: layout_set_next
      Src: /src/tmux/cmd-select-layout.c:97,1
    - Dst: layout_set_previous
      Src: /src/tmux/cmd-select-layout.c:99,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-layout.c:103,1
    - Dst: layout_spread_out
      Src: /src/tmux/cmd-select-layout.c:104,1
    - Dst: args_count
      Src: /src/tmux/cmd-select-layout.c:108,1
    - Dst: args_string
      Src: /src/tmux/cmd-select-layout.c:109,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-layout.c:110,1
    - Dst: args_has
      Src: /src/tmux/cmd-select-layout.c:115,1
    - Dst: layout_set_lookup
      Src: /src/tmux/cmd-select-layout.c:119,1
    - Dst: layout_set_select
      Src: /src/tmux/cmd-select-layout.c:121,1
    - Dst: layout_parse
      Src: /src/tmux/cmd-select-layout.c:127,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-select-layout.c:128,1
    - Dst: free
      Src: /src/tmux/cmd-select-layout.c:129,1
    - Dst: free
      Src: /src/tmux/cmd-select-layout.c:135,1
    - Dst: free
      Src: /src/tmux/cmd-select-layout.c:139,1
    - Dst: recalculate_sizes
      Src: /src/tmux/cmd-select-layout.c:140,1
    - Dst: server_redraw_window
      Src: /src/tmux/cmd-select-layout.c:141,1
    - Dst: notify_window
      Src: /src/tmux/cmd-select-layout.c:142,1
    - Dst: free
      Src: /src/tmux/cmd-select-layout.c:146,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 71
    functionDepth: 6
    functionLinenumber: 71
    functionLinenumberEnd: 149
    functionName: cmd_select_layout_exec
    functionSourceFile: /src/tmux/cmd-select-layout.c
    functionUses: 0
    functionsReached:
    - server_redraw_window
    - layout_set_select
    - layout_spread_out
    - args_count
    - args_has
    - args_string
    - recalculate_sizes
    - notify_window
    - server_unzoom_window
    - layout_parse
    - cmd_get_args
    - cmd_get_entry
    - layout_set_lookup
    - layout_dump
    - cmdq_get_target
    - layout_set_previous
    - cmdq_error
    - layout_set_next
    - free
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_select_layout_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - R
    - G
    - B
    - r
    - g
    - b
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: colour_dist_sq
    functionSourceFile: /src/tmux/colour.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int colour_dist_sq(int R, int G, int B, int r, int g, int b)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: colour_to_6cube
    functionSourceFile: /src/tmux/colour.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int colour_to_6cube(int v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: colour_to_6cube
      Src: /src/tmux/colour.c:65,1
    - Dst: colour_to_6cube
      Src: /src/tmux/colour.c:66,1
    - Dst: colour_to_6cube
      Src: /src/tmux/colour.c:67,1
    - Dst: colour_dist_sq
      Src: /src/tmux/colour.c:82,1
    - Dst: colour_dist_sq
      Src: /src/tmux/colour.c:83,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - r
    - g
    - b
    argTypes:
    - u_char
    - u_char
    - u_char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 88
    functionName: colour_find_rgb
    functionSourceFile: /src/tmux/colour.c
    functionUses: 2
    functionsReached:
    - colour_dist_sq
    - colour_to_6cube
    linkageType: ''
    returnType: int
    signature: int colour_find_rgb(u_char r, u_char g, u_char b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - g
    - b
    argTypes:
    - u_char
    - u_char
    - u_char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: colour_join_rgb
    functionSourceFile: /src/tmux/colour.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int colour_join_rgb(u_char r, u_char g, u_char b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - c
    - r
    - g
    - b
    argTypes:
    - int
    - u_char*
    - u_char*
    - u_char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: colour_split_rgb
    functionSourceFile: /src/tmux/colour.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void colour_split_rgb(int c, u_char *r, u_char *g, u_char *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: colour_256toRGB
      Src: /src/tmux/colour.c:115,1
    - Dst: colour_256toRGB
      Src: /src/tmux/colour.c:117,1
    - Dst: colour_256toRGB
      Src: /src/tmux/colour.c:119,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 121
    functionName: colour_force_rgb
    functionSourceFile: /src/tmux/colour.c
    functionUses: 4
    functionsReached:
    - colour_256toRGB
    linkageType: ''
    returnType: int
    signature: int colour_force_rgb(int c)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: colour_split_rgb
      Src: /src/tmux/colour.c:134,1
    - Dst: xsnprintf
      Src: /src/tmux/colour.c:135,1
    - Dst: xsnprintf
      Src: /src/tmux/colour.c:140,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 51
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 183
    functionName: colour_tostring
    functionSourceFile: /src/tmux/colour.c
    functionUses: 7
    functionsReached:
    - xsnprintf
    - colour_split_rgb
    linkageType: ''
    returnType: char
    signature: 'char *

      colour_tostring(int c)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: colour_totheme
      Src: /src/tmux/colour.c:206,1
    - Dst: colour_256toRGB
      Src: /src/tmux/colour.c:206,1
    - Dst: colour_totheme
      Src: /src/tmux/colour.c:217,1
    - Dst: colour_256toRGB
      Src: /src/tmux/colour.c:217,1
    - Dst: colour_totheme
      Src: /src/tmux/colour.c:219,1
    - Dst: colour_256toRGB
      Src: /src/tmux/colour.c:219,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 223
    functionName: colour_totheme
    functionSourceFile: /src/tmux/colour.c
    functionUses: 2
    functionsReached:
    - colour_totheme
    - colour_256toRGB
    linkageType: ''
    returnType: enum client_theme
    signature: enum client_theme colour_totheme(int c)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/tmux/colour.c:234,1
    - Dst: isxdigit
      Src: /src/tmux/colour.c:235,1
    - Dst: sscanf
      Src: /src/tmux/colour.c:239,1
    - Dst: colour_join_rgb
      Src: /src/tmux/colour.c:242,1
    - Dst: strncasecmp
      Src: /src/tmux/colour.c:245,1
    - Dst: strtonum
      Src: /src/tmux/colour.c:246,1
    - Dst: strncasecmp
      Src: /src/tmux/colour.c:251,1
    - Dst: strtonum
      Src: /src/tmux/colour.c:252,1
    - Dst: strcasecmp
      Src: /src/tmux/colour.c:258,1
    - Dst: strcasecmp
      Src: /src/tmux/colour.c:260,1
    - Dst: strcasecmp
      Src: /src/tmux/colour.c:263,1
    - Dst: strcmp
      Src: /src/tmux/colour.c:263,1
    - Dst: strcasecmp
      Src: /src/tmux/colour.c:265,1
    - Dst: strcmp
      Src: /src/tmux/colour.c:265,1
    - Dst: strcasecmp
      Src: /src/tmux/colour.c:267,1
    - Dst: strcmp
      Src: /src/tmux/colour.c:267,1
    - Dst: strcasecmp
      Src: /src/tmux/colour.c:269,1
    - Dst: strcmp
      Src: /src/tmux/colour.c:269,1
    - Dst: strcasecmp
      Src: /src/tmux/colour.c:271,1
    - Dst: strcmp
      Src: /src/tmux/colour.c:271,1
    - Dst: strcasecmp
      Src: /src/tmux/colour.c:273,1
    - Dst: strcmp
      Src: /src/tmux/colour.c:273,1
    - Dst: strcasecmp
      Src: /src/tmux/colour.c:275,1
    - Dst: strcmp
      Src: /src/tmux/colour.c:275,1
    - Dst: strcasecmp
      Src: /src/tmux/colour.c:277,1
    - Dst: strcmp
      Src: /src/tmux/colour.c:277,1
    - Dst: strcasecmp
      Src: /src/tmux/colour.c:279,1
    - Dst: strcmp
      Src: /src/tmux/colour.c:279,1
    - Dst: strcasecmp
      Src: /src/tmux/colour.c:281,1
    - Dst: strcmp
      Src: /src/tmux/colour.c:281,1
    - Dst: strcasecmp
      Src: /src/tmux/colour.c:283,1
    - Dst: strcmp
      Src: /src/tmux/colour.c:283,1
    - Dst: strcasecmp
      Src: /src/tmux/colour.c:285,1
    - Dst: strcmp
      Src: /src/tmux/colour.c:285,1
    - Dst: strcasecmp
      Src: /src/tmux/colour.c:287,1
    - Dst: strcmp
      Src: /src/tmux/colour.c:287,1
    - Dst: strcasecmp
      Src: /src/tmux/colour.c:289,1
    - Dst: strcmp
      Src: /src/tmux/colour.c:289,1
    - Dst: strcasecmp
      Src: /src/tmux/colour.c:291,1
    - Dst: strcmp
      Src: /src/tmux/colour.c:291,1
    - Dst: strcasecmp
      Src: /src/tmux/colour.c:293,1
    - Dst: strcmp
      Src: /src/tmux/colour.c:293,1
    - Dst: colour_byname
      Src: /src/tmux/colour.c:295,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 60
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 296
    functionName: colour_fromstring
    functionSourceFile: /src/tmux/colour.c
    functionUses: 4
    functionsReached:
    - colour_join_rgb
    - isxdigit
    - colour_byname
    - strtonum
    - strncasecmp
    - strcasecmp
    - strcmp
    - sscanf
    - strlen
    linkageType: ''
    returnType: int
    signature: int colour_fromstring(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 370
    functionName: colour_256toRGB
    functionSourceFile: /src/tmux/colour.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int colour_256toRGB(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 396
    functionName: colour_256to16
    functionSourceFile: /src/tmux/colour.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int colour_256to16(int c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strncasecmp
      Src: /src/tmux/colour.c:989,1
    - Dst: strncasecmp
      Src: /src/tmux/colour.c:990,1
    - Dst: strtonum
      Src: /src/tmux/colour.c:993,1
    - Dst: round
      Src: /src/tmux/colour.c:996,1
    - Dst: colour_join_rgb
      Src: /src/tmux/colour.c:999,1
    - Dst: nitems
      Src: /src/tmux/colour.c:1001,1
    - Dst: strcasecmp
      Src: /src/tmux/colour.c:1002,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 1006
    functionName: colour_byname
    functionSourceFile: /src/tmux/colour.c
    functionUses: 1
    functionsReached:
    - colour_join_rgb
    - strtonum
    - nitems
    - round
    - strncasecmp
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int colour_byname(const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/tmux/colour.c:1014,1
    - Dst: sscanf
      Src: /src/tmux/colour.c:1018,1
    - Dst: sscanf
      Src: /src/tmux/colour.c:1019,1
    - Dst: sscanf
      Src: /src/tmux/colour.c:1020,1
    - Dst: colour_join_rgb
      Src: /src/tmux/colour.c:1021,1
    - Dst: sscanf
      Src: /src/tmux/colour.c:1023,1
    - Dst: sscanf
      Src: /src/tmux/colour.c:1024,1
    - Dst: colour_join_rgb
      Src: /src/tmux/colour.c:1025,1
    - Dst: sscanf
      Src: /src/tmux/colour.c:1026,1
    - Dst: sscanf
      Src: /src/tmux/colour.c:1027,1
    - Dst: colour_join_rgb
      Src: /src/tmux/colour.c:1030,1
    - Dst: xstrndup
      Src: /src/tmux/colour.c:1041,1
    - Dst: colour_byname
      Src: /src/tmux/colour.c:1042,1
    - Dst: free
      Src: /src/tmux/colour.c:1043,1
    - Dst: log_debug
      Src: /src/tmux/colour.c:1045,1
    - Dst: colour_tostring
      Src: /src/tmux/colour.c:1045,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 20
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1009
    functionDepth: 3
    functionLinenumber: 1009
    functionLinenumberEnd: 1047
    functionName: colour_parseX11
    functionSourceFile: /src/tmux/colour.c
    functionUses: 6
    functionsReached:
    - colour_join_rgb
    - colour_byname
    - xstrndup
    - log_debug
    - colour_tostring
    - free
    - sscanf
    - strlen
    linkageType: ''
    returnType: int
    signature: int colour_parseX11(const char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct colour_palette*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1050
    functionDepth: 0
    functionLinenumber: 1050
    functionLinenumberEnd: 1057
    functionName: colour_palette_init
    functionSourceFile: /src/tmux/colour.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void colour_palette_init(struct colour_palette *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/colour.c:1066,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct colour_palette*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1069
    functionName: colour_palette_clear
    functionSourceFile: /src/tmux/colour.c
    functionUses: 3
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void colour_palette_clear(struct colour_palette *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/colour.c:1076,1
    - Dst: free
      Src: /src/tmux/colour.c:1078,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct colour_palette*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1072
    functionDepth: 0
    functionLinenumber: 1072
    functionLinenumberEnd: 1081
    functionName: colour_palette_free
    functionSourceFile: /src/tmux/colour.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void colour_palette_free(struct colour_palette *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - struct colour_palette*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1084
    functionDepth: 0
    functionLinenumber: 1084
    functionLinenumberEnd: 1102
    functionName: colour_palette_get
    functionSourceFile: /src/tmux/colour.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int colour_palette_get(struct colour_palette *p, int n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/colour.c:1117,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - p
    - n
    - c
    argTypes:
    - struct colour_palette*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1105
    functionDepth: 2
    functionLinenumber: 1105
    functionLinenumberEnd: 1123
    functionName: colour_palette_set
    functionSourceFile: /src/tmux/colour.c
    functionUses: 2
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: int
    signature: int colour_palette_set(struct colour_palette *p, int n, int c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: options_get
      Src: /src/tmux/colour.c:1137,1
    - Dst: options_array_first
      Src: /src/tmux/colour.c:1138,1
    - Dst: free
      Src: /src/tmux/colour.c:1140,1
    - Dst: xcalloc
      Src: /src/tmux/colour.c:1146,1
    - Dst: options_array_item_index
      Src: /src/tmux/colour.c:1150,1
    - Dst: options_array_item_value
      Src: /src/tmux/colour.c:1152,1
    - Dst: options_array_next
      Src: /src/tmux/colour.c:1155,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - p
    - oo
    argTypes:
    - struct colour_palette*
    - struct options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1126
    functionDepth: 3
    functionLinenumber: 1126
    functionLinenumberEnd: 1157
    functionName: colour_palette_from_option
    functionSourceFile: /src/tmux/colour.c
    functionUses: 6
    functionsReached:
    - options_array_first
    - options_array_next
    - xcalloc
    - options_array_item_value
    - free
    - options_get
    - options_array_item_index
    linkageType: ''
    returnType: void
    signature: void colour_palette_from_option(struct colour_palette *p, struct options
      *oo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/screen-write.c:66,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/screen-write.c:68,1
    - Dst: memset
      Src: /src/tmux/screen-write.c:69,1
    - Dst: xcalloc
      Src: /src/tmux/screen-write.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: screen_write_get_citem
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 0
    functionsReached:
    - memset
    - xcalloc
    - TAILQ_FIRST
    - TAILQ_REMOVE
    linkageType: ''
    returnType: struct screen_write_citem
    signature: 'struct screen_write_citem *

      screen_write_get_citem(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/screen-write.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ci
    argTypes:
    - struct screen_write_citem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: screen_write_free_citem
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 0
    functionsReached:
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: void
    signature: void screen_write_free_citem(struct screen_write_citem *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tty_update_window_offset
      Src: /src/tmux/screen-write.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - int
    - events
    - data
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: screen_write_offset_timer
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 0
    functionsReached:
    - tty_update_window_offset
    linkageType: ''
    returnType: void
    signature: void screen_write_offset_timer(__unused int fd, __unused short events,
      void *data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:102,1
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:103,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:107,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:108,1
    - Dst: event_initialized
      Src: /src/tmux/screen-write.c:116,1
    - Dst: evtimer_set
      Src: /src/tmux/screen-write.c:117,1
    - Dst: evtimer_pending
      Src: /src/tmux/screen-write.c:118,1
    - Dst: evtimer_add
      Src: /src/tmux/screen-write.c:119,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - cx
    - cy
    argTypes:
    - struct screen_write_ctx*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 120
    functionName: screen_write_set_cursor
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 0
    functionsReached:
    - screen_size_y
    - evtimer_add
    - screen_size_x
    - evtimer_pending
    - evtimer_set
    - event_initialized
    linkageType: ''
    returnType: void
    signature: void screen_write_set_cursor(struct screen_write_ctx *ctx, int cx,
      int cy)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ttyctx
    argTypes:
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 130
    functionName: screen_write_redraw_cb
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void screen_write_redraw_cb(const struct tty_ctx *ttyctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: session_has
      Src: /src/tmux/screen-write.c:139,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:156,1
    - Dst: tty_window_offset
      Src: /src/tmux/screen-write.c:162,1
    - Dst: status_at_line
      Src: /src/tmux/screen-write.c:171,1
    - Dst: status_line_size
      Src: /src/tmux/screen-write.c:172,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - ttyctx
    - c
    argTypes:
    - struct tty_ctx*
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 133
    functionDepth: 5
    functionLinenumber: 133
    functionLinenumberEnd: 175
    functionName: screen_write_set_client_cb
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 0
    functionsReached:
    - status_line_size
    - tty_window_offset
    - status_at_line
    - session_has
    - log_debug
    linkageType: ''
    returnType: int
    signature: int screen_write_set_client_cb(struct tty_ctx *ttyctx, struct client
      *c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_PREV
      Src: /src/tmux/screen-write.c:200,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 20
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct screen_write_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 215
    functionName: screen_write_pane_is_obscured
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 0
    functionsReached:
    - TAILQ_PREV
    linkageType: ''
    returnType: int
    signature: int screen_write_pane_is_obscured(struct screen_write_ctx *ctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/tmux/screen-write.c:224,1
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:227,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:228,1
    - Dst: screen_write_pane_is_obscured
      Src: /src/tmux/screen-write.c:235,1
    - Dst: memcpy
      Src: /src/tmux/screen-write.c:238,1
    - Dst: struct screen_write_ctx*::init_ctx_cb
      Src: /src/tmux/screen-write.c:240,1
    - Dst: tty_default_colours
      Src: /src/tmux/screen-write.c:250,1
    - Dst: tty_write
      Src: /src/tmux/screen-write.c:272,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 4
    argNames:
    - ctx
    - ttyctx
    - is_sync
    - check_obscured
    argTypes:
    - struct screen_write_ctx*
    - struct tty_ctx*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 275
    functionName: screen_write_initctx
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 0
    functionsReached:
    - struct screen_write_ctx*::init_ctx_cb
    - screen_size_y
    - tty_write
    - screen_size_x
    - tty_default_colours
    - memset
    - screen_write_pane_is_obscured
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void screen_write_initctx(struct screen_write_ctx *ctx, struct tty_ctx
      *ttyctx,\n    int is_sync, int check_obscured)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/screen-write.c:283,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:283,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:284,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/screen-write.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct screen*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 286
    functionName: screen_write_make_list
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - xcalloc
    - screen_size_y
    - TAILQ_INIT
    linkageType: ''
    returnType: void
    signature: void screen_write_make_list(struct screen *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:294,1
    - Dst: free
      Src: /src/tmux/screen-write.c:295,1
    - Dst: free
      Src: /src/tmux/screen-write.c:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct screen*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 297
    functionName: screen_write_free_list
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 2
    functionsReached:
    - free
    - screen_size_y
    linkageType: ''
    returnType: void
    signature: void screen_write_free_list(struct screen *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/tmux/screen-write.c:303,1
    - Dst: screen_write_make_list
      Src: /src/tmux/screen-write.c:308,1
    - Dst: screen_write_get_citem
      Src: /src/tmux/screen-write.c:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - s
    argTypes:
    - struct screen_write_ctx*
    - struct screen*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 313
    functionName: screen_write_init
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 0
    functionsReached:
    - memset
    - screen_write_get_citem
    - screen_write_make_list
    linkageType: ''
    returnType: void
    signature: void screen_write_init(struct screen_write_ctx *ctx, struct screen
      *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_init
      Src: /src/tmux/screen-write.c:322,1
    - Dst: log_get_level
      Src: /src/tmux/screen-write.c:325,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:326,1
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:327,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - wp
    - s
    argTypes:
    - struct screen_write_ctx*
    - struct window_pane*
    - struct screen*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 316
    functionDepth: 4
    functionLinenumber: 316
    functionLinenumberEnd: 330
    functionName: screen_write_start_pane
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 11
    functionsReached:
    - screen_size_y
    - log_debug
    - screen_size_x
    - log_get_level
    - screen_write_init
    linkageType: ''
    returnType: void
    signature: "void screen_write_start_pane(struct screen_write_ctx *ctx, struct
      window_pane *wp,\n    struct screen *s)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_init
      Src: /src/tmux/screen-write.c:337,1
    - Dst: log_get_level
      Src: /src/tmux/screen-write.c:342,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:343,1
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:344,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - s
    - cb
    - arg
    argTypes:
    - struct screen_write_ctx*
    - struct screen*
    - screen_write_init_ctx_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 333
    functionDepth: 4
    functionLinenumber: 333
    functionLinenumberEnd: 346
    functionName: screen_write_start_callback
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - screen_size_y
    - log_debug
    - screen_size_x
    - log_get_level
    - screen_write_init
    linkageType: ''
    returnType: void
    signature: "void screen_write_start_callback(struct screen_write_ctx *ctx, struct
      screen *s,\n    screen_write_init_ctx_cb cb, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_init
      Src: /src/tmux/screen-write.c:352,1
    - Dst: log_get_level
      Src: /src/tmux/screen-write.c:354,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:355,1
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:356,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - s
    argTypes:
    - struct screen_write_ctx*
    - struct screen*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 349
    functionDepth: 4
    functionLinenumber: 349
    functionLinenumberEnd: 358
    functionName: screen_write_start
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 19
    functionsReached:
    - screen_size_y
    - log_debug
    - screen_size_x
    - log_get_level
    - screen_write_init
    linkageType: ''
    returnType: void
    signature: void screen_write_start(struct screen_write_ctx *ctx, struct screen
      *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_collect_end
      Src: /src/tmux/screen-write.c:364,1
    - Dst: screen_write_collect_flush
      Src: /src/tmux/screen-write.c:365,1
    - Dst: screen_write_free_citem
      Src: /src/tmux/screen-write.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct screen_write_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 368
    functionName: screen_write_stop
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 25
    functionsReached:
    - screen_write_free_citem
    - screen_write_collect_end
    - screen_write_collect_flush
    linkageType: ''
    returnType: void
    signature: void screen_write_stop(struct screen_write_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: screen_reset_tabs
      Src: /src/tmux/screen-write.c:376,1
    - Dst: screen_write_scrollregion
      Src: /src/tmux/screen-write.c:377,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:377,1
    - Dst: options_get_number
      Src: /src/tmux/screen-write.c:381,1
    - Dst: screen_write_clearscreen
      Src: /src/tmux/screen-write.c:384,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct screen_write_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 371
    functionDepth: 4
    functionLinenumber: 371
    functionLinenumberEnd: 386
    functionName: screen_write_reset
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 2
    functionsReached:
    - screen_reset_tabs
    - screen_size_y
    - screen_write_clearscreen
    - screen_write_scrollregion
    - screen_write_set_cursor
    - options_get_number
    linkageType: ''
    returnType: void
    signature: void screen_write_reset(struct screen_write_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/screen-write.c:395,1
    - Dst: utf8_set
      Src: /src/tmux/screen-write.c:397,1
    - Dst: screen_write_cell
      Src: /src/tmux/screen-write.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - gcp
    - ch
    argTypes:
    - struct screen_write_ctx*
    - struct grid_cell*
    - u_char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 399
    functionName: screen_write_putc
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 3
    functionsReached:
    - screen_write_cell
    - memcpy
    - utf8_set
    linkageType: ''
    returnType: void
    signature: "void screen_write_putc(struct screen_write_ctx *ctx, const struct
      grid_cell *gcp,\n    u_char ch)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/tmux/screen-write.c:412,1
    - Dst: xvasprintf
      Src: /src/tmux/screen-write.c:413,1
    - Dst: va_end
      Src: /src/tmux/screen-write.c:414,1
    - Dst: utf8_open
      Src: /src/tmux/screen-write.c:418,1
    - Dst: strlen
      Src: /src/tmux/screen-write.c:421,1
    - Dst: utf8_append
      Src: /src/tmux/screen-write.c:424,1
    - Dst: free
      Src: /src/tmux/screen-write.c:437,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 402
    functionDepth: 5
    functionLinenumber: 402
    functionLinenumberEnd: 439
    functionName: screen_write_strlen
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 2
    functionsReached:
    - utf8_open
    - xvasprintf
    - free
    - va_end
    - va_start
    - strlen
    - utf8_append
    linkageType: ''
    returnType: size_t
    signature: size_t screen_write_strlen(const char *fmt, ...)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/screen-write.c:453,1
    - Dst: va_start
      Src: /src/tmux/screen-write.c:455,1
    - Dst: xvasprintf
      Src: /src/tmux/screen-write.c:456,1
    - Dst: va_end
      Src: /src/tmux/screen-write.c:457,1
    - Dst: utf8_fromcstr
      Src: /src/tmux/screen-write.c:459,1
    - Dst: free
      Src: /src/tmux/screen-write.c:460,1
    - Dst: utf8_copy
      Src: /src/tmux/screen-write.c:498,1
    - Dst: screen_write_cell
      Src: /src/tmux/screen-write.c:499,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/screen-write.c:507,1
    - Dst: free
      Src: /src/tmux/screen-write.c:517,1
    - Dst: free
      Src: /src/tmux/screen-write.c:520,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/screen-write.c:527,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 51
    argCount: 7
    argNames:
    - ctx
    - cx
    - width
    - lines
    - more
    - gcp
    - fmt
    argTypes:
    - struct screen_write_ctx*
    - u_int
    - u_int
    - u_int
    - int
    - struct grid_cell*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 442
    functionDepth: 6
    functionLinenumber: 442
    functionLinenumberEnd: 529
    functionName: screen_write_text
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 2
    functionsReached:
    - utf8_fromcstr
    - screen_write_cell
    - utf8_copy
    - screen_write_cursormove
    - xvasprintf
    - free
    - memcpy
    - va_end
    - va_start
    linkageType: ''
    returnType: int
    signature: "int screen_write_text(struct screen_write_ctx *ctx, u_int cx, u_int
      width,\n    u_int lines, int more, const struct grid_cell *gcp, const char *fmt,
      ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/tmux/screen-write.c:538,1
    - Dst: screen_write_vnputs
      Src: /src/tmux/screen-write.c:539,1
    - Dst: va_end
      Src: /src/tmux/screen-write.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - gcp
    - fmt
    argTypes:
    - struct screen_write_ctx*
    - struct grid_cell*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 541
    functionName: screen_write_puts
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 2
    functionsReached:
    - va_end
    - screen_write_vnputs
    - va_start
    linkageType: ''
    returnType: void
    signature: "void screen_write_puts(struct screen_write_ctx *ctx, const struct
      grid_cell *gcp,\n    const char *fmt, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/tmux/screen-write.c:550,1
    - Dst: screen_write_vnputs
      Src: /src/tmux/screen-write.c:551,1
    - Dst: va_end
      Src: /src/tmux/screen-write.c:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - maxlen
    - gcp
    - fmt
    argTypes:
    - struct screen_write_ctx*
    - ssize_t
    - struct grid_cell*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 553
    functionName: screen_write_nputs
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 5
    functionsReached:
    - va_end
    - screen_write_vnputs
    - va_start
    linkageType: ''
    returnType: void
    signature: "void screen_write_nputs(struct screen_write_ctx *ctx, ssize_t maxlen,\n
      \   const struct grid_cell *gcp, const char *fmt, ...)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/screen-write.c:566,1
    - Dst: xvasprintf
      Src: /src/tmux/screen-write.c:567,1
    - Dst: utf8_open
      Src: /src/tmux/screen-write.c:571,1
    - Dst: strlen
      Src: /src/tmux/screen-write.c:574,1
    - Dst: utf8_append
      Src: /src/tmux/screen-write.c:577,1
    - Dst: screen_write_putc
      Src: /src/tmux/screen-write.c:585,1
    - Dst: screen_write_cell
      Src: /src/tmux/screen-write.c:591,1
    - Dst: screen_write_linefeed
      Src: /src/tmux/screen-write.c:599,1
    - Dst: screen_write_carriagereturn
      Src: /src/tmux/screen-write.c:600,1
    - Dst: screen_write_putc
      Src: /src/tmux/screen-write.c:603,1
    - Dst: free
      Src: /src/tmux/screen-write.c:609,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 41
    argCount: 5
    argNames:
    - ctx
    - maxlen
    - gcp
    - fmt
    - ap
    argTypes:
    - struct screen_write_ctx*
    - ssize_t
    - struct grid_cell*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 555
    functionDepth: 5
    functionLinenumber: 555
    functionLinenumberEnd: 610
    functionName: screen_write_vnputs
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 3
    functionsReached:
    - screen_write_cell
    - utf8_open
    - screen_write_carriagereturn
    - screen_write_putc
    - xvasprintf
    - free
    - screen_write_linefeed
    - memcpy
    - utf8_append
    - strlen
    linkageType: ''
    returnType: void
    signature: "void screen_write_vnputs(struct screen_write_ctx *ctx, ssize_t maxlen,\n
      \   const struct grid_cell *gcp, const char *fmt, va_list ap)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_initctx
      Src: /src/tmux/screen-write.c:639,1
    - Dst: screen_redraw_get_visible_ranges
      Src: /src/tmux/screen-write.c:640,1
    - Dst: grid_get_line
      Src: /src/tmux/screen-write.c:643,1
    - Dst: grid_get_line
      Src: /src/tmux/screen-write.c:644,1
    - Dst: grid_get_cell
      Src: /src/tmux/screen-write.c:648,1
    - Dst: grid_view_set_cell
      Src: /src/tmux/screen-write.c:651,1
    - Dst: screen_redraw_is_visible
      Src: /src/tmux/screen-write.c:653,1
    - Dst: tty_write
      Src: /src/tmux/screen-write.c:657,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 6
    argNames:
    - ctx
    - src
    - px
    - py
    - nx
    - ny
    argTypes:
    - struct screen_write_ctx*
    - struct screen*
    - u_int
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 616
    functionDepth: 7
    functionLinenumber: 616
    functionLinenumberEnd: 667
    functionName: screen_write_fast_copy
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 4
    functionsReached:
    - screen_redraw_get_visible_ranges
    - grid_view_set_cell
    - tty_write
    - grid_get_line
    - screen_write_initctx
    - grid_get_cell
    - screen_redraw_is_visible
    linkageType: ''
    returnType: void
    signature: "void screen_write_fast_copy(struct screen_write_ctx *ctx, struct screen
      *src,\n    u_int px, u_int py, u_int nx, u_int ny)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: utf8_copy
      Src: /src/tmux/screen-write.c:679,1
    - Dst: tty_acs_double_borders
      Src: /src/tmux/screen-write.c:679,1
    - Dst: utf8_copy
      Src: /src/tmux/screen-write.c:683,1
    - Dst: tty_acs_heavy_borders
      Src: /src/tmux/screen-write.c:683,1
    - Dst: utf8_copy
      Src: /src/tmux/screen-write.c:687,1
    - Dst: tty_acs_rounded_borders
      Src: /src/tmux/screen-write.c:687,1
    - Dst: utf8_set
      Src: /src/tmux/screen-write.c:691,1
    - Dst: utf8_set
      Src: /src/tmux/screen-write.c:695,1
    - Dst: utf8_set
      Src: /src/tmux/screen-write.c:700,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - lines
    - cell_type
    - gc
    argTypes:
    - enum box_lines
    - int
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 703
    functionName: screen_write_box_border_set
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 0
    functionsReached:
    - tty_acs_rounded_borders
    - tty_acs_double_borders
    - tty_acs_heavy_borders
    - utf8_copy
    - utf8_set
    linkageType: ''
    returnType: void
    signature: "void screen_write_box_border_set(enum box_lines lines, int cell_type,\n
      \   struct grid_cell *gc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/screen-write.c:718,1
    - Dst: memcpy
      Src: /src/tmux/screen-write.c:720,1
    - Dst: screen_write_box_border_set
      Src: /src/tmux/screen-write.c:724,1
    - Dst: screen_write_box_border_set
      Src: /src/tmux/screen-write.c:726,1
    - Dst: screen_write_cell
      Src: /src/tmux/screen-write.c:727,1
    - Dst: screen_write_box_border_set
      Src: /src/tmux/screen-write.c:729,1
    - Dst: screen_write_cell
      Src: /src/tmux/screen-write.c:731,1
    - Dst: screen_write_box_border_set
      Src: /src/tmux/screen-write.c:734,1
    - Dst: screen_write_box_border_set
      Src: /src/tmux/screen-write.c:736,1
    - Dst: screen_write_cell
      Src: /src/tmux/screen-write.c:737,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:739,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - ctx
    - nx
    - left
    - right
    - lines
    - border_gc
    argTypes:
    - struct screen_write_ctx*
    - u_int
    - int
    - int
    - enum box_lines
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 706
    functionDepth: 2
    functionLinenumber: 706
    functionLinenumberEnd: 740
    functionName: screen_write_hline
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - screen_write_cell
    - screen_write_box_border_set
    - memcpy
    - screen_write_set_cursor
    linkageType: ''
    returnType: void
    signature: "void screen_write_hline(struct screen_write_ctx *ctx, u_int nx, int
      left, int right,\n   enum box_lines lines, const struct grid_cell *border_gc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/screen-write.c:753,1
    - Dst: screen_write_putc
      Src: /src/tmux/screen-write.c:756,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:758,1
    - Dst: screen_write_putc
      Src: /src/tmux/screen-write.c:759,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:761,1
    - Dst: screen_write_putc
      Src: /src/tmux/screen-write.c:762,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - ctx
    - ny
    - top
    - bottom
    argTypes:
    - struct screen_write_ctx*
    - u_int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 743
    functionDepth: 2
    functionLinenumber: 743
    functionLinenumberEnd: 765
    functionName: screen_write_vline
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 0
    functionsReached:
    - screen_write_putc
    - screen_write_set_cursor
    - memcpy
    linkageType: ''
    returnType: void
    signature: void screen_write_vline(struct screen_write_ctx *ctx, u_int ny, int
      top, int bottom)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/screen-write.c:782,1
    - Dst: screen_write_box
      Src: /src/tmux/screen-write.c:784,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/screen-write.c:790,1
    - Dst: screen_write_hline
      Src: /src/tmux/screen-write.c:791,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/screen-write.c:799,1
    - Dst: screen_write_putc
      Src: /src/tmux/screen-write.c:801,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/screen-write.c:803,1
    - Dst: format_draw
      Src: /src/tmux/screen-write.c:806,1
    - Dst: format_draw
      Src: /src/tmux/screen-write.c:811,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:815,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 7
    argNames:
    - ctx
    - menu
    - choice
    - lines
    - menu_gc
    - border_gc
    - choice_gc
    argTypes:
    - struct screen_write_ctx*
    - struct menu*
    - int
    - enum box_lines
    - struct grid_cell*
    - struct grid_cell*
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 768
    functionDepth: 3
    functionLinenumber: 768
    functionLinenumberEnd: 816
    functionName: screen_write_menu
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - screen_write_box
    - screen_write_putc
    - screen_write_cursormove
    - screen_write_hline
    - memcpy
    - screen_write_set_cursor
    - format_draw
    linkageType: ''
    returnType: void
    signature: "void screen_write_menu(struct screen_write_ctx *ctx, struct menu *menu,
      int choice,\n    enum box_lines lines, const struct grid_cell *menu_gc,\n    const
      struct grid_cell *border_gc, const struct grid_cell *choice_gc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/screen-write.c:831,1
    - Dst: memcpy
      Src: /src/tmux/screen-write.c:833,1
    - Dst: screen_write_box_border_set
      Src: /src/tmux/screen-write.c:839,1
    - Dst: screen_write_cell
      Src: /src/tmux/screen-write.c:840,1
    - Dst: screen_write_box_border_set
      Src: /src/tmux/screen-write.c:841,1
    - Dst: screen_write_cell
      Src: /src/tmux/screen-write.c:843,1
    - Dst: screen_write_box_border_set
      Src: /src/tmux/screen-write.c:844,1
    - Dst: screen_write_cell
      Src: /src/tmux/screen-write.c:845,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:848,1
    - Dst: screen_write_box_border_set
      Src: /src/tmux/screen-write.c:849,1
    - Dst: screen_write_cell
      Src: /src/tmux/screen-write.c:850,1
    - Dst: screen_write_box_border_set
      Src: /src/tmux/screen-write.c:851,1
    - Dst: screen_write_cell
      Src: /src/tmux/screen-write.c:853,1
    - Dst: screen_write_box_border_set
      Src: /src/tmux/screen-write.c:854,1
    - Dst: screen_write_cell
      Src: /src/tmux/screen-write.c:855,1
    - Dst: screen_write_box_border_set
      Src: /src/tmux/screen-write.c:858,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:861,1
    - Dst: screen_write_cell
      Src: /src/tmux/screen-write.c:862,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:864,1
    - Dst: screen_write_cell
      Src: /src/tmux/screen-write.c:865,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/screen-write.c:870,1
    - Dst: format_draw
      Src: /src/tmux/screen-write.c:871,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:874,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 6
    argNames:
    - ctx
    - nx
    - ny
    - lines
    - gcp
    - title
    argTypes:
    - struct screen_write_ctx*
    - u_int
    - u_int
    - enum box_lines
    - struct grid_cell*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 819
    functionDepth: 2
    functionLinenumber: 819
    functionLinenumberEnd: 875
    functionName: screen_write_box
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 5
    functionsReached:
    - screen_write_cell
    - screen_write_cursormove
    - screen_write_box_border_set
    - memcpy
    - screen_write_set_cursor
    - format_draw
    linkageType: ''
    returnType: void
    signature: "void screen_write_box(struct screen_write_ctx *ctx, u_int nx, u_int
      ny,\n    enum box_lines lines, const struct grid_cell *gcp, const char *title)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:902,1
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:903,1
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:906,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:913,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:914,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:917,1
    - Dst: screen_write_fast_copy
      Src: /src/tmux/screen-write.c:924,1
    - Dst: grid_view_get_cell
      Src: /src/tmux/screen-write.c:927,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:929,1
    - Dst: screen_write_cell
      Src: /src/tmux/screen-write.c:931,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 4
    argNames:
    - ctx
    - src
    - nx
    - ny
    argTypes:
    - struct screen_write_ctx*
    - struct screen*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 881
    functionDepth: 8
    functionLinenumber: 881
    functionLinenumberEnd: 933
    functionName: screen_write_preview
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - screen_write_cell
    - screen_size_y
    - grid_view_get_cell
    - screen_size_x
    - screen_write_fast_copy
    - screen_write_set_cursor
    linkageType: ''
    returnType: void
    signature: "void screen_write_preview(struct screen_write_ctx *ctx, struct screen
      *src, u_int nx,\n    u_int ny)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_get_level
      Src: /src/tmux/screen-write.c:943,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:944,1
    - Dst: screen_mode_to_string
      Src: /src/tmux/screen-write.c:944,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - mode
    argTypes:
    - struct screen_write_ctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 936
    functionDepth: 3
    functionLinenumber: 936
    functionLinenumberEnd: 945
    functionName: screen_write_mode_set
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 7
    functionsReached:
    - log_debug
    - screen_mode_to_string
    - log_get_level
    linkageType: ''
    returnType: void
    signature: void screen_write_mode_set(struct screen_write_ctx *ctx, int mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_get_level
      Src: /src/tmux/screen-write.c:955,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:956,1
    - Dst: screen_mode_to_string
      Src: /src/tmux/screen-write.c:956,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - mode
    argTypes:
    - struct screen_write_ctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 948
    functionDepth: 3
    functionLinenumber: 948
    functionLinenumberEnd: 957
    functionName: screen_write_mode_clear
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 7
    functionsReached:
    - log_debug
    - screen_mode_to_string
    - log_get_level
    linkageType: ''
    returnType: void
    signature: void screen_write_mode_clear(struct screen_write_ctx *ctx, int mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:965,1
    - Dst: evtimer_del
      Src: /src/tmux/screen-write.c:966,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - int
    - events
    - arg
    argTypes:
    - __unused
    - __unused short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 960
    functionDepth: 3
    functionLinenumber: 960
    functionLinenumberEnd: 972
    functionName: screen_write_sync_callback
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 0
    functionsReached:
    - log_debug
    - evtimer_del
    linkageType: ''
    returnType: void
    signature: void screen_write_sync_callback(__unused int fd, __unused short events,
      void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_initialized
      Src: /src/tmux/screen-write.c:984,1
    - Dst: evtimer_set
      Src: /src/tmux/screen-write.c:985,1
    - Dst: evtimer_add
      Src: /src/tmux/screen-write.c:986,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:988,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 975
    functionDepth: 3
    functionLinenumber: 975
    functionLinenumberEnd: 989
    functionName: screen_write_start_sync
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - evtimer_set
    - evtimer_add
    - event_initialized
    - log_debug
    linkageType: ''
    returnType: void
    signature: void screen_write_start_sync(struct window_pane *wp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_initialized
      Src: /src/tmux/screen-write.c:998,1
    - Dst: evtimer_del
      Src: /src/tmux/screen-write.c:999,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:1002,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - wp
    argTypes:
    - struct window_pane*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 992
    functionDepth: 3
    functionLinenumber: 992
    functionLinenumberEnd: 1003
    functionName: screen_write_stop_sync
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 4
    functionsReached:
    - evtimer_del
    - event_initialized
    - log_debug
    linkageType: ''
    returnType: void
    signature: void screen_write_stop_sync(struct window_pane *wp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:1024,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:1029,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - ny
    argTypes:
    - struct screen_write_ctx*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1006
    functionDepth: 2
    functionLinenumber: 1006
    functionLinenumberEnd: 1030
    functionName: screen_write_cursorup
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - screen_size_x
    - screen_write_set_cursor
    linkageType: ''
    returnType: void
    signature: void screen_write_cursorup(struct screen_write_ctx *ctx, u_int ny)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:1044,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:1045,1
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:1051,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:1058,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - ny
    argTypes:
    - struct screen_write_ctx*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1033
    functionDepth: 2
    functionLinenumber: 1033
    functionLinenumberEnd: 1059
    functionName: screen_write_cursordown
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - screen_size_x
    - screen_write_set_cursor
    - screen_size_y
    linkageType: ''
    returnType: void
    signature: void screen_write_cursordown(struct screen_write_ctx *ctx, u_int ny)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:1071,1
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:1072,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:1078,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - nx
    argTypes:
    - struct screen_write_ctx*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1062
    functionDepth: 2
    functionLinenumber: 1062
    functionLinenumberEnd: 1079
    functionName: screen_write_cursorright
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - screen_size_x
    - screen_write_set_cursor
    linkageType: ''
    returnType: void
    signature: void screen_write_cursorright(struct screen_write_ctx *ctx, u_int nx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:1098,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - nx
    argTypes:
    - struct screen_write_ctx*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1082
    functionDepth: 2
    functionLinenumber: 1082
    functionLinenumberEnd: 1099
    functionName: screen_write_cursorleft
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - screen_write_set_cursor
    linkageType: ''
    returnType: void
    signature: void screen_write_cursorleft(struct screen_write_ctx *ctx, u_int nx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_line
      Src: /src/tmux/screen-write.c:1112,1
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:1115,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:1120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct screen_write_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1102
    functionDepth: 2
    functionLinenumber: 1102
    functionLinenumberEnd: 1121
    functionName: screen_write_backspace
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - screen_size_x
    - grid_get_line
    - screen_write_set_cursor
    linkageType: ''
    returnType: void
    signature: void screen_write_backspace(struct screen_write_ctx *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:1131,1
    - Dst: screen_redraw_get_visible_ranges
      Src: /src/tmux/screen-write.c:1136,1
    - Dst: grid_view_get_cell
      Src: /src/tmux/screen-write.c:1144,1
    - Dst: screen_select_cell
      Src: /src/tmux/screen-write.c:1148,1
    - Dst: tty_write
      Src: /src/tmux/screen-write.c:1154,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - ctx
    - ttyctx
    - yy
    argTypes:
    - struct screen_write_ctx*
    - struct tty_ctx*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1124
    functionDepth: 5
    functionLinenumber: 1124
    functionLinenumberEnd: 1157
    functionName: screen_write_redraw_line
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 0
    functionsReached:
    - screen_redraw_get_visible_ranges
    - grid_view_get_cell
    - tty_write
    - screen_size_x
    - screen_select_cell
    linkageType: ''
    returnType: void
    signature: "void screen_write_redraw_line(struct screen_write_ctx *ctx, struct
      tty_ctx *ttyctx,\n    u_int yy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:1166,1
    - Dst: screen_write_redraw_line
      Src: /src/tmux/screen-write.c:1167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - ttyctx
    argTypes:
    - struct screen_write_ctx*
    - struct tty_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1160
    functionDepth: 6
    functionLinenumber: 1160
    functionLinenumberEnd: 1168
    functionName: screen_write_redraw_pane
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 0
    functionsReached:
    - screen_write_redraw_line
    - screen_size_y
    linkageType: ''
    returnType: void
    signature: void screen_write_redraw_pane(struct screen_write_ctx *ctx, struct
      tty_ctx *ttyctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/tmux/screen-write.c:1179,1
    - Dst: utf8_set
      Src: /src/tmux/screen-write.c:1180,1
    - Dst: image_free_all
      Src: /src/tmux/screen-write.c:1183,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:1187,1
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:1188,1
    - Dst: grid_view_set_cell
      Src: /src/tmux/screen-write.c:1189,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:1192,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:1195,1
    - Dst: screen_write_collect_clear
      Src: /src/tmux/screen-write.c:1197,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:1197,1
    - Dst: screen_write_initctx
      Src: /src/tmux/screen-write.c:1199,1
    - Dst: tty_write
      Src: /src/tmux/screen-write.c:1202,1
    - Dst: screen_write_redraw_pane
      Src: /src/tmux/screen-write.c:1206,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct screen_write_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1171
    functionDepth: 7
    functionLinenumber: 1171
    functionLinenumberEnd: 1207
    functionName: screen_write_alignmenttest
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - screen_size_y
    - grid_view_set_cell
    - tty_write
    - screen_size_x
    - image_free_all
    - screen_write_collect_clear
    - screen_write_initctx
    - memcpy
    - screen_write_redraw_pane
    - screen_write_set_cursor
    - utf8_set
    linkageType: ''
    returnType: void
    signature: void screen_write_alignmenttest(struct screen_write_ctx *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:1219,1
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:1220,1
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:1224,1
    - Dst: image_check_line
      Src: /src/tmux/screen-write.c:1228,1
    - Dst: screen_write_initctx
      Src: /src/tmux/screen-write.c:1232,1
    - Dst: grid_view_insert_cells
      Src: /src/tmux/screen-write.c:1235,1
    - Dst: screen_write_collect_flush
      Src: /src/tmux/screen-write.c:1237,1
    - Dst: tty_write
      Src: /src/tmux/screen-write.c:1241,1
    - Dst: screen_write_redraw_line
      Src: /src/tmux/screen-write.c:1245,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - ctx
    - nx
    - bg
    argTypes:
    - struct screen_write_ctx*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1210
    functionDepth: 7
    functionLinenumber: 1210
    functionLinenumberEnd: 1246
    functionName: screen_write_insertcharacter
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - tty_write
    - screen_size_x
    - screen_write_collect_flush
    - grid_view_insert_cells
    - screen_write_initctx
    - image_check_line
    - screen_write_redraw_line
    linkageType: ''
    returnType: void
    signature: void screen_write_insertcharacter(struct screen_write_ctx *ctx, u_int
      nx, u_int bg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:1258,1
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:1259,1
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:1263,1
    - Dst: image_check_line
      Src: /src/tmux/screen-write.c:1267,1
    - Dst: screen_write_initctx
      Src: /src/tmux/screen-write.c:1271,1
    - Dst: grid_view_delete_cells
      Src: /src/tmux/screen-write.c:1274,1
    - Dst: screen_write_collect_flush
      Src: /src/tmux/screen-write.c:1276,1
    - Dst: tty_write
      Src: /src/tmux/screen-write.c:1280,1
    - Dst: screen_write_redraw_line
      Src: /src/tmux/screen-write.c:1284,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - ctx
    - nx
    - bg
    argTypes:
    - struct screen_write_ctx*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1249
    functionDepth: 7
    functionLinenumber: 1249
    functionLinenumberEnd: 1285
    functionName: screen_write_deletecharacter
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - tty_write
    - screen_size_x
    - grid_view_delete_cells
    - screen_write_collect_flush
    - screen_write_initctx
    - image_check_line
    - screen_write_redraw_line
    linkageType: ''
    returnType: void
    signature: void screen_write_deletecharacter(struct screen_write_ctx *ctx, u_int
      nx, u_int bg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:1297,1
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:1298,1
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:1302,1
    - Dst: image_check_line
      Src: /src/tmux/screen-write.c:1306,1
    - Dst: screen_write_initctx
      Src: /src/tmux/screen-write.c:1310,1
    - Dst: grid_view_clear
      Src: /src/tmux/screen-write.c:1313,1
    - Dst: screen_write_collect_flush
      Src: /src/tmux/screen-write.c:1315,1
    - Dst: tty_write
      Src: /src/tmux/screen-write.c:1319,1
    - Dst: screen_write_redraw_line
      Src: /src/tmux/screen-write.c:1323,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - ctx
    - nx
    - bg
    argTypes:
    - struct screen_write_ctx*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1288
    functionDepth: 7
    functionLinenumber: 1288
    functionLinenumberEnd: 1324
    functionName: screen_write_clearcharacter
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - tty_write
    - screen_size_x
    - screen_write_collect_flush
    - screen_write_initctx
    - image_check_line
    - grid_view_clear
    - screen_write_redraw_line
    linkageType: ''
    returnType: void
    signature: void screen_write_clearcharacter(struct screen_write_ctx *ctx, u_int
      nx, u_int bg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:1333,1
    - Dst: image_check_line
      Src: /src/tmux/screen-write.c:1339,1
    - Dst: screen_write_initctx
      Src: /src/tmux/screen-write.c:1349,1
    - Dst: grid_view_insert_lines
      Src: /src/tmux/screen-write.c:1352,1
    - Dst: screen_write_collect_flush
      Src: /src/tmux/screen-write.c:1354,1
    - Dst: tty_write
      Src: /src/tmux/screen-write.c:1358,1
    - Dst: screen_write_redraw_pane
      Src: /src/tmux/screen-write.c:1362,1
    - Dst: screen_write_initctx
      Src: /src/tmux/screen-write.c:1371,1
    - Dst: grid_view_insert_lines
      Src: /src/tmux/screen-write.c:1375,1
    - Dst: grid_view_insert_lines_region
      Src: /src/tmux/screen-write.c:1377,1
    - Dst: screen_write_collect_flush
      Src: /src/tmux/screen-write.c:1379,1
    - Dst: tty_write
      Src: /src/tmux/screen-write.c:1383,1
    - Dst: screen_write_redraw_pane
      Src: /src/tmux/screen-write.c:1387,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 3
    argNames:
    - ctx
    - ny
    - bg
    argTypes:
    - struct screen_write_ctx*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1327
    functionDepth: 8
    functionLinenumber: 1327
    functionLinenumberEnd: 1388
    functionName: screen_write_insertline
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 2
    functionsReached:
    - screen_size_y
    - tty_write
    - grid_view_insert_lines
    - screen_write_collect_flush
    - grid_view_insert_lines_region
    - screen_write_initctx
    - image_check_line
    - screen_write_redraw_pane
    linkageType: ''
    returnType: void
    signature: void screen_write_insertline(struct screen_write_ctx *ctx, u_int ny,
      u_int bg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:1397,1
    - Dst: image_check_line
      Src: /src/tmux/screen-write.c:1403,1
    - Dst: screen_write_initctx
      Src: /src/tmux/screen-write.c:1413,1
    - Dst: grid_view_delete_lines
      Src: /src/tmux/screen-write.c:1416,1
    - Dst: screen_write_collect_flush
      Src: /src/tmux/screen-write.c:1418,1
    - Dst: tty_write
      Src: /src/tmux/screen-write.c:1422,1
    - Dst: screen_write_redraw_pane
      Src: /src/tmux/screen-write.c:1426,1
    - Dst: screen_write_initctx
      Src: /src/tmux/screen-write.c:1435,1
    - Dst: grid_view_delete_lines
      Src: /src/tmux/screen-write.c:1439,1
    - Dst: grid_view_delete_lines_region
      Src: /src/tmux/screen-write.c:1441,1
    - Dst: screen_write_collect_flush
      Src: /src/tmux/screen-write.c:1443,1
    - Dst: tty_write
      Src: /src/tmux/screen-write.c:1447,1
    - Dst: screen_write_redraw_pane
      Src: /src/tmux/screen-write.c:1451,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 3
    argNames:
    - ctx
    - ny
    - bg
    argTypes:
    - struct screen_write_ctx*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1391
    functionDepth: 8
    functionLinenumber: 1391
    functionLinenumberEnd: 1452
    functionName: screen_write_deleteline
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 2
    functionsReached:
    - screen_size_y
    - tty_write
    - grid_view_delete_lines_region
    - screen_write_collect_flush
    - screen_write_initctx
    - image_check_line
    - screen_write_redraw_pane
    - grid_view_delete_lines
    linkageType: ''
    returnType: void
    signature: void screen_write_deleteline(struct screen_write_ctx *ctx, u_int ny,
      u_int bg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:1460,1
    - Dst: grid_get_line
      Src: /src/tmux/screen-write.c:1463,1
    - Dst: COLOUR_DEFAULT
      Src: /src/tmux/screen-write.c:1464,1
    - Dst: image_check_line
      Src: /src/tmux/screen-write.c:1468,1
    - Dst: grid_view_clear
      Src: /src/tmux/screen-write.c:1472,1
    - Dst: screen_write_collect_clear
      Src: /src/tmux/screen-write.c:1474,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/screen-write.c:1479,1
    - Dst: screen_write_get_citem
      Src: /src/tmux/screen-write.c:1480,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - bg
    argTypes:
    - struct screen_write_ctx*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1455
    functionDepth: 7
    functionLinenumber: 1455
    functionLinenumberEnd: 1481
    functionName: screen_write_clearline
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - COLOUR_DEFAULT
    - screen_size_x
    - grid_get_line
    - screen_write_collect_clear
    - image_check_line
    - grid_view_clear
    - screen_write_get_citem
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: void
    signature: void screen_write_clearline(struct screen_write_ctx *ctx, u_int bg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:1489,1
    - Dst: screen_write_clearline
      Src: /src/tmux/screen-write.c:1493,1
    - Dst: grid_get_line
      Src: /src/tmux/screen-write.c:1497,1
    - Dst: COLOUR_DEFAULT
      Src: /src/tmux/screen-write.c:1498,1
    - Dst: image_check_line
      Src: /src/tmux/screen-write.c:1502,1
    - Dst: grid_view_clear
      Src: /src/tmux/screen-write.c:1506,1
    - Dst: screen_write_collect_insert
      Src: /src/tmux/screen-write.c:1512,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - bg
    argTypes:
    - struct screen_write_ctx*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1484
    functionDepth: 8
    functionLinenumber: 1484
    functionLinenumberEnd: 1513
    functionName: screen_write_clearendofline
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 2
    functionsReached:
    - COLOUR_DEFAULT
    - screen_size_x
    - grid_get_line
    - screen_write_collect_insert
    - screen_write_clearline
    - image_check_line
    - grid_view_clear
    linkageType: ''
    returnType: void
    signature: void screen_write_clearendofline(struct screen_write_ctx *ctx, u_int
      bg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:1520,1
    - Dst: screen_write_clearline
      Src: /src/tmux/screen-write.c:1524,1
    - Dst: image_check_line
      Src: /src/tmux/screen-write.c:1529,1
    - Dst: grid_view_clear
      Src: /src/tmux/screen-write.c:1534,1
    - Dst: grid_view_clear
      Src: /src/tmux/screen-write.c:1536,1
    - Dst: screen_write_collect_insert
      Src: /src/tmux/screen-write.c:1542,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - bg
    argTypes:
    - struct screen_write_ctx*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1516
    functionDepth: 8
    functionLinenumber: 1516
    functionLinenumberEnd: 1543
    functionName: screen_write_clearstartofline
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - screen_size_x
    - screen_write_collect_insert
    - screen_write_clearline
    - image_check_line
    - grid_view_clear
    linkageType: ''
    returnType: void
    signature: void screen_write_clearstartofline(struct screen_write_ctx *ctx, u_int
      bg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:1559,1
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:1560,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:1561,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:1562,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:1564,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:1565,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 4
    argNames:
    - ctx
    - px
    - py
    - origin
    argTypes:
    - struct screen_write_ctx*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1546
    functionDepth: 3
    functionLinenumber: 1546
    functionLinenumberEnd: 1566
    functionName: screen_write_cursormove
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 26
    functionsReached:
    - log_debug
    - screen_size_x
    - screen_write_set_cursor
    - screen_size_y
    linkageType: ''
    returnType: void
    signature: "void screen_write_cursormove(struct screen_write_ctx *ctx, int px,
      int py,\n    int origin)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: image_free_all
      Src: /src/tmux/screen-write.c:1577,1
    - Dst: grid_view_scroll_region_down
      Src: /src/tmux/screen-write.c:1581,1
    - Dst: screen_write_collect_flush
      Src: /src/tmux/screen-write.c:1582,1
    - Dst: screen_write_initctx
      Src: /src/tmux/screen-write.c:1584,1
    - Dst: tty_write
      Src: /src/tmux/screen-write.c:1588,1
    - Dst: screen_write_redraw_pane
      Src: /src/tmux/screen-write.c:1592,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:1594,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - bg
    argTypes:
    - struct screen_write_ctx*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1569
    functionDepth: 8
    functionLinenumber: 1569
    functionLinenumberEnd: 1595
    functionName: screen_write_reverseindex
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - grid_view_scroll_region_down
    - tty_write
    - image_free_all
    - screen_write_collect_flush
    - screen_write_initctx
    - screen_write_redraw_pane
    - screen_write_set_cursor
    linkageType: ''
    returnType: void
    signature: void screen_write_reverseindex(struct screen_write_ctx *ctx, u_int
      bg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:1604,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:1605,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:1606,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:1607,1
    - Dst: screen_write_collect_flush
      Src: /src/tmux/screen-write.c:1611,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:1614,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - rupper
    - rlower
    argTypes:
    - struct screen_write_ctx*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1598
    functionDepth: 2
    functionLinenumber: 1598
    functionLinenumberEnd: 1618
    functionName: screen_write_scrollregion
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 3
    functionsReached:
    - screen_write_set_cursor
    - screen_size_y
    - screen_write_collect_flush
    linkageType: ''
    returnType: void
    signature: "void screen_write_scrollregion(struct screen_write_ctx *ctx, u_int
      rupper,\n    u_int rlower)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: grid_get_line
      Src: /src/tmux/screen-write.c:1632,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:1636,1
    - Dst: screen_write_collect_flush
      Src: /src/tmux/screen-write.c:1640,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:1646,1
    - Dst: image_scroll_up
      Src: /src/tmux/screen-write.c:1647,1
    - Dst: image_check_line
      Src: /src/tmux/screen-write.c:1649,1
    - Dst: grid_view_scroll_region_up
      Src: /src/tmux/screen-write.c:1653,1
    - Dst: screen_write_collect_scroll
      Src: /src/tmux/screen-write.c:1654,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:1656,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:1657,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - ctx
    - wrapped
    - bg
    argTypes:
    - struct screen_write_ctx*
    - int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1621
    functionDepth: 8
    functionLinenumber: 1621
    functionLinenumberEnd: 1658
    functionName: screen_write_linefeed
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 5
    functionsReached:
    - image_scroll_up
    - screen_size_y
    - grid_get_line
    - screen_write_collect_scroll
    - screen_write_collect_flush
    - grid_view_scroll_region_up
    - image_check_line
    - log_debug
    - screen_write_set_cursor
    linkageType: ''
    returnType: void
    signature: void screen_write_linefeed(struct screen_write_ctx *ctx, int wrapped,
      u_int bg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_collect_flush
      Src: /src/tmux/screen-write.c:1674,1
    - Dst: image_scroll_up
      Src: /src/tmux/screen-write.c:1679,1
    - Dst: grid_view_scroll_region_up
      Src: /src/tmux/screen-write.c:1684,1
    - Dst: screen_write_collect_scroll
      Src: /src/tmux/screen-write.c:1685,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - lines
    - bg
    argTypes:
    - struct screen_write_ctx*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1661
    functionDepth: 8
    functionLinenumber: 1661
    functionLinenumberEnd: 1688
    functionName: screen_write_scrollup
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - image_scroll_up
    - grid_view_scroll_region_up
    - screen_write_collect_scroll
    - screen_write_collect_flush
    linkageType: ''
    returnType: void
    signature: void screen_write_scrollup(struct screen_write_ctx *ctx, u_int lines,
      u_int bg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_initctx
      Src: /src/tmux/screen-write.c:1699,1
    - Dst: image_free_all
      Src: /src/tmux/screen-write.c:1708,1
    - Dst: grid_view_scroll_region_down
      Src: /src/tmux/screen-write.c:1713,1
    - Dst: screen_write_collect_flush
      Src: /src/tmux/screen-write.c:1715,1
    - Dst: tty_write
      Src: /src/tmux/screen-write.c:1719,1
    - Dst: screen_write_redraw_pane
      Src: /src/tmux/screen-write.c:1723,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - ctx
    - lines
    - bg
    argTypes:
    - struct screen_write_ctx*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1724
      start: 1691
    functionDepth: 8
    functionLinenumber: 1691
    functionLinenumberEnd: 1724
    functionName: screen_write_scrolldown
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - grid_view_scroll_region_down
    - tty_write
    - image_free_all
    - screen_write_collect_flush
    - screen_write_initctx
    - screen_write_redraw_pane
    linkageType: ''
    returnType: void
    signature: void screen_write_scrolldown(struct screen_write_ctx *ctx, u_int lines,
      u_int bg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:1730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct screen_write_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1727
    functionDepth: 2
    functionLinenumber: 1727
    functionLinenumberEnd: 1731
    functionName: screen_write_carriagereturn
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 5
    functionsReached:
    - screen_write_set_cursor
    linkageType: ''
    returnType: void
    signature: void screen_write_carriagereturn(struct screen_write_ctx *ctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:1740,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:1740,1
    - Dst: image_check_line
      Src: /src/tmux/screen-write.c:1746,1
    - Dst: screen_write_initctx
      Src: /src/tmux/screen-write.c:1750,1
    - Dst: options_get_number
      Src: /src/tmux/screen-write.c:1758,1
    - Dst: grid_view_clear_history
      Src: /src/tmux/screen-write.c:1759,1
    - Dst: grid_view_clear
      Src: /src/tmux/screen-write.c:1762,1
    - Dst: grid_view_clear
      Src: /src/tmux/screen-write.c:1763,1
    - Dst: screen_write_collect_clear
      Src: /src/tmux/screen-write.c:1766,1
    - Dst: screen_write_collect_flush
      Src: /src/tmux/screen-write.c:1767,1
    - Dst: tty_write
      Src: /src/tmux/screen-write.c:1770,1
    - Dst: screen_redraw_get_visible_ranges
      Src: /src/tmux/screen-write.c:1787,1
    - Dst: screen_write_collect_insert_clear
      Src: /src/tmux/screen-write.c:1793,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:1800,1
    - Dst: screen_redraw_get_visible_ranges
      Src: /src/tmux/screen-write.c:1801,1
    - Dst: screen_write_collect_insert_clear
      Src: /src/tmux/screen-write.c:1807,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:1811,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 2
    argNames:
    - ctx
    - bg
    argTypes:
    - struct screen_write_ctx*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1812
      start: 1734
    functionDepth: 7
    functionLinenumber: 1734
    functionLinenumberEnd: 1812
    functionName: screen_write_clearendofscreen
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - screen_redraw_get_visible_ranges
    - screen_size_y
    - tty_write
    - screen_size_x
    - grid_view_clear_history
    - screen_write_collect_flush
    - screen_write_collect_clear
    - screen_write_initctx
    - image_check_line
    - grid_view_clear
    - screen_write_set_cursor
    - options_get_number
    - screen_write_collect_insert_clear
    linkageType: ''
    returnType: void
    signature: void screen_write_clearendofscreen(struct screen_write_ctx *ctx, u_int
      bg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:1820,1
    - Dst: image_check_line
      Src: /src/tmux/screen-write.c:1826,1
    - Dst: screen_write_initctx
      Src: /src/tmux/screen-write.c:1830,1
    - Dst: grid_view_clear
      Src: /src/tmux/screen-write.c:1834,1
    - Dst: grid_view_clear
      Src: /src/tmux/screen-write.c:1836,1
    - Dst: grid_view_clear
      Src: /src/tmux/screen-write.c:1838,1
    - Dst: screen_write_collect_clear
      Src: /src/tmux/screen-write.c:1840,1
    - Dst: screen_write_collect_flush
      Src: /src/tmux/screen-write.c:1841,1
    - Dst: tty_write
      Src: /src/tmux/screen-write.c:1844,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:1861,1
    - Dst: screen_redraw_get_visible_ranges
      Src: /src/tmux/screen-write.c:1862,1
    - Dst: screen_write_collect_insert_clear
      Src: /src/tmux/screen-write.c:1868,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:1874,1
    - Dst: screen_redraw_get_visible_ranges
      Src: /src/tmux/screen-write.c:1875,1
    - Dst: screen_write_collect_insert_clear
      Src: /src/tmux/screen-write.c:1881,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:1884,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 2
    argNames:
    - ctx
    - bg
    argTypes:
    - struct screen_write_ctx*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1885
      start: 1815
    functionDepth: 7
    functionLinenumber: 1815
    functionLinenumberEnd: 1885
    functionName: screen_write_clearstartofscreen
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - screen_redraw_get_visible_ranges
    - tty_write
    - screen_size_x
    - screen_write_collect_flush
    - screen_write_collect_clear
    - screen_write_initctx
    - image_check_line
    - grid_view_clear
    - screen_write_set_cursor
    - screen_write_collect_insert_clear
    linkageType: ''
    returnType: void
    signature: void screen_write_clearstartofscreen(struct screen_write_ctx *ctx,
      u_int bg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:1893,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:1893,1
    - Dst: image_free_all
      Src: /src/tmux/screen-write.c:1899,1
    - Dst: screen_write_initctx
      Src: /src/tmux/screen-write.c:1903,1
    - Dst: options_get_number
      Src: /src/tmux/screen-write.c:1909,1
    - Dst: grid_view_clear_history
      Src: /src/tmux/screen-write.c:1910,1
    - Dst: grid_view_clear
      Src: /src/tmux/screen-write.c:1912,1
    - Dst: screen_write_collect_clear
      Src: /src/tmux/screen-write.c:1914,1
    - Dst: tty_write
      Src: /src/tmux/screen-write.c:1917,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:1934,1
    - Dst: screen_redraw_get_visible_ranges
      Src: /src/tmux/screen-write.c:1935,1
    - Dst: screen_write_collect_insert_clear
      Src: /src/tmux/screen-write.c:1941,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:1945,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 2
    argNames:
    - ctx
    - bg
    argTypes:
    - struct screen_write_ctx*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1888
    functionDepth: 7
    functionLinenumber: 1888
    functionLinenumberEnd: 1946
    functionName: screen_write_clearscreen
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 8
    functionsReached:
    - screen_redraw_get_visible_ranges
    - screen_size_y
    - tty_write
    - screen_size_x
    - grid_view_clear_history
    - image_free_all
    - screen_write_collect_clear
    - screen_write_initctx
    - grid_view_clear
    - screen_write_set_cursor
    - options_get_number
    - screen_write_collect_insert_clear
    linkageType: ''
    returnType: void
    signature: void screen_write_clearscreen(struct screen_write_ctx *ctx, u_int bg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grid_clear_history
      Src: /src/tmux/screen-write.c:1952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct screen_write_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1949
    functionDepth: 4
    functionLinenumber: 1949
    functionLinenumberEnd: 1953
    functionName: screen_write_clearhistory
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - grid_clear_history
    linkageType: ''
    returnType: void
    signature: void screen_write_clearhistory(struct screen_write_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_collect_flush
      Src: /src/tmux/screen-write.c:1961,1
    - Dst: screen_write_initctx
      Src: /src/tmux/screen-write.c:1963,1
    - Dst: struct tty_ctx::redraw_cb
      Src: /src/tmux/screen-write.c:1965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct screen_write_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1966
      start: 1956
    functionDepth: 4
    functionLinenumber: 1956
    functionLinenumberEnd: 1966
    functionName: screen_write_fullredraw
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 7
    functionsReached:
    - struct tty_ctx::redraw_cb
    - screen_write_initctx
    - screen_write_collect_flush
    linkageType: ''
    returnType: void
    signature: void screen_write_fullredraw(struct screen_write_ctx *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/screen-write.c:1978,1
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/screen-write.c:1980,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:1986,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:1993,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:2001,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/screen-write.c:2003,1
    - Dst: screen_write_free_citem
      Src: /src/tmux/screen-write.c:2004,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:2012,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:2015,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:2022,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:2026,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:2033,1
    - Dst: screen_write_get_citem
      Src: /src/tmux/screen-write.c:2035,1
    - Dst: memcpy
      Src: /src/tmux/screen-write.c:2038,1
    - Dst: TAILQ_INSERT_AFTER
      Src: /src/tmux/screen-write.c:2039,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:2045,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 5
    argNames:
    - ctx
    - y
    - x
    - used
    - wrapped
    argTypes:
    - struct screen_write_ctx*
    - u_int
    - u_int
    - u_int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2052
      start: 1969
    functionDepth: 3
    functionLinenumber: 1969
    functionLinenumberEnd: 2052
    functionName: screen_write_collect_trim
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 0
    functionsReached:
    - log_debug
    - screen_write_free_citem
    - TAILQ_FOREACH_SAFE
    - TAILQ_INSERT_AFTER
    - memcpy
    - TAILQ_EMPTY
    - screen_write_get_citem
    - TAILQ_REMOVE
    linkageType: ''
    returnType: struct screen_write_citem
    signature: "struct screen_write_citem *\nscreen_write_collect_trim(struct screen_write_ctx
      *ctx, u_int y, u_int x,\n    u_int used, int *wrapped)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_CONCAT
      Src: /src/tmux/screen-write.c:2063,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - y
    - n
    argTypes:
    - struct screen_write_ctx*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2055
    functionDepth: 1
    functionLinenumber: 2055
    functionLinenumberEnd: 2065
    functionName: screen_write_collect_clear
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 5
    functionsReached:
    - TAILQ_CONCAT
    linkageType: ''
    returnType: void
    signature: void screen_write_collect_clear(struct screen_write_ctx *ctx, u_int
      y, u_int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:2077,1
    - Dst: screen_write_collect_clear
      Src: /src/tmux/screen-write.c:2080,1
    - Dst: TAILQ_CONCAT
      Src: /src/tmux/screen-write.c:2084,1
    - Dst: screen_write_get_citem
      Src: /src/tmux/screen-write.c:2089,1
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:2091,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/screen-write.c:2094,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - bg
    argTypes:
    - struct screen_write_ctx*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2068
    functionDepth: 3
    functionLinenumber: 2068
    functionLinenumberEnd: 2095
    functionName: screen_write_collect_scroll
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 2
    functionsReached:
    - screen_size_x
    - screen_write_collect_clear
    - log_debug
    - TAILQ_CONCAT
    - screen_write_get_citem
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: void
    signature: void screen_write_collect_scroll(struct screen_write_ctx *ctx, u_int
      bg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_initctx
      Src: /src/tmux/screen-write.c:2105,1
    - Dst: screen_write_redraw_pane
      Src: /src/tmux/screen-write.c:2107,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:2111,1
    - Dst: tty_write
      Src: /src/tmux/screen-write.c:2120,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct screen_write_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2098
    functionDepth: 7
    functionLinenumber: 2098
    functionLinenumberEnd: 2125
    functionName: screen_write_collect_flush_scrolled
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 0
    functionsReached:
    - log_debug
    - screen_write_redraw_pane
    - screen_write_initctx
    - tty_write
    linkageType: ''
    returnType: int
    signature: int screen_write_collect_flush_scrolled(struct screen_write_ctx *ctx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:2149,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:2150,1
    - Dst: screen_redraw_get_visible_ranges
      Src: /src/tmux/screen-write.c:2157,1
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/screen-write.c:2158,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:2159,1
    - Dst: fatalx
      Src: /src/tmux/screen-write.c:2162,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:2190,1
    - Dst: screen_write_initctx
      Src: /src/tmux/screen-write.c:2192,1
    - Dst: tty_write
      Src: /src/tmux/screen-write.c:2195,1
    - Dst: screen_write_initctx
      Src: /src/tmux/screen-write.c:2197,1
    - Dst: tty_write
      Src: /src/tmux/screen-write.c:2203,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/screen-write.c:2210,1
    - Dst: screen_write_free_citem
      Src: /src/tmux/screen-write.c:2211,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 65
    argCount: 2
    argNames:
    - ctx
    - y
    argTypes:
    - struct screen_write_ctx*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2215
      start: 2128
    functionDepth: 5
    functionLinenumber: 2128
    functionLinenumberEnd: 2215
    functionName: screen_write_collect_flush_line
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 0
    functionsReached:
    - screen_redraw_get_visible_ranges
    - screen_size_y
    - tty_write
    - screen_size_x
    - fatalx
    - screen_write_free_citem
    - TAILQ_FOREACH_SAFE
    - screen_write_initctx
    - log_debug
    - screen_write_set_cursor
    - TAILQ_REMOVE
    linkageType: ''
    returnType: u_int
    signature: u_int screen_write_collect_flush_line(struct screen_write_ctx *ctx,
      u_int y)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_collect_flush_scrolled
      Src: /src/tmux/screen-write.c:2231,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:2241,1
    - Dst: screen_write_collect_flush_line
      Src: /src/tmux/screen-write.c:2242,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:2245,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:2249,1
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/screen-write.c:2251,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/screen-write.c:2252,1
    - Dst: screen_write_free_citem
      Src: /src/tmux/screen-write.c:2253,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - ctx
    - scroll_only
    - from
    argTypes:
    - struct screen_write_ctx*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2258
      start: 2218
    functionDepth: 8
    functionLinenumber: 2218
    functionLinenumberEnd: 2258
    functionName: screen_write_collect_flush
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 14
    functionsReached:
    - screen_write_collect_flush_line
    - screen_size_y
    - screen_write_free_citem
    - TAILQ_FOREACH_SAFE
    - screen_write_collect_flush_scrolled
    - log_debug
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: "void screen_write_collect_flush(struct screen_write_ctx *ctx, int
      scroll_only,\n    const char *from)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_collect_trim
      Src: /src/tmux/screen-write.c:2269,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/screen-write.c:2272,1
    - Dst: TAILQ_INSERT_BEFORE
      Src: /src/tmux/screen-write.c:2274,1
    - Dst: screen_write_get_citem
      Src: /src/tmux/screen-write.c:2275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - ci
    argTypes:
    - struct screen_write_ctx*
    - struct screen_write_citem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2276
      start: 2261
    functionDepth: 4
    functionLinenumber: 2261
    functionLinenumberEnd: 2276
    functionName: screen_write_collect_insert
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 2
    functionsReached:
    - TAILQ_INSERT_BEFORE
    - screen_write_get_citem
    - screen_write_collect_trim
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: void
    signature: "void screen_write_collect_insert(struct screen_write_ctx *ctx,\n    struct
      screen_write_citem *ci)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_collect_insert
      Src: /src/tmux/screen-write.c:2290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - ctx
    - px
    - nx
    - bg
    argTypes:
    - struct screen_write_ctx*
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2292
      start: 2279
    functionDepth: 5
    functionLinenumber: 2279
    functionLinenumberEnd: 2292
    functionName: screen_write_collect_insert_clear
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 3
    functionsReached:
    - screen_write_collect_insert
    linkageType: ''
    returnType: void
    signature: "void screen_write_collect_insert_clear(struct screen_write_ctx *ctx,
      u_int px,\n    u_int nx, u_int bg)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_collect_insert
      Src: /src/tmux/screen-write.c:2308,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:2310,1
    - Dst: grid_view_get_cell
      Src: /src/tmux/screen-write.c:2315,1
    - Dst: grid_view_set_cell
      Src: /src/tmux/screen-write.c:2318,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:2320,1
    - Dst: grid_view_get_cell
      Src: /src/tmux/screen-write.c:2325,1
    - Dst: grid_view_set_cell
      Src: /src/tmux/screen-write.c:2328,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:2330,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:2340,1
    - Dst: image_check_area
      Src: /src/tmux/screen-write.c:2346,1
    - Dst: grid_view_set_cells
      Src: /src/tmux/screen-write.c:2350,1
    - Dst: screen_write_collect_insert
      Src: /src/tmux/screen-write.c:2353,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:2354,1
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:2356,1
    - Dst: grid_view_get_cell
      Src: /src/tmux/screen-write.c:2357,1
    - Dst: grid_view_set_cell
      Src: /src/tmux/screen-write.c:2360,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:2361,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:2370,1
    - Dst: screen_write_collect_insert
      Src: /src/tmux/screen-write.c:2372,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct screen_write_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2374
      start: 2295
    functionDepth: 7
    functionLinenumber: 2295
    functionLinenumberEnd: 2374
    functionName: screen_write_collect_end
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 2
    functionsReached:
    - grid_view_get_cell
    - grid_view_set_cell
    - screen_write_collect_insert
    - screen_size_x
    - image_check_area
    - grid_view_set_cells
    - log_debug
    - screen_write_set_cursor
    linkageType: ''
    returnType: void
    signature: void screen_write_collect_end(struct screen_write_ctx *ctx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:2383,1
    - Dst: screen_write_collect_end
      Src: /src/tmux/screen-write.c:2406,1
    - Dst: screen_write_collect_flush
      Src: /src/tmux/screen-write.c:2407,1
    - Dst: screen_write_cell
      Src: /src/tmux/screen-write.c:2408,1
    - Dst: screen_write_collect_end
      Src: /src/tmux/screen-write.c:2413,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:2417,1
    - Dst: screen_write_linefeed
      Src: /src/tmux/screen-write.c:2419,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:2420,1
    - Dst: memcpy
      Src: /src/tmux/screen-write.c:2424,1
    - Dst: xmalloc
      Src: /src/tmux/screen-write.c:2426,1
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:2426,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 2
    argNames:
    - ctx
    - gc
    argTypes:
    - struct screen_write_ctx*
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2428
      start: 2377
    functionDepth: 9
    functionLinenumber: 2377
    functionLinenumberEnd: 2428
    functionName: screen_write_collect_add
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 5
    functionsReached:
    - screen_write_cell
    - screen_size_x
    - xmalloc
    - screen_write_collect_flush
    - screen_write_collect_end
    - screen_write_linefeed
    - memcpy
    - log_debug
    - screen_write_set_cursor
    linkageType: ''
    returnType: void
    signature: "void screen_write_collect_add(struct screen_write_ctx *ctx,\n    const
      struct grid_cell *gc)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:2442,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:2442,1
    - Dst: screen_write_combine
      Src: /src/tmux/screen-write.c:2454,1
    - Dst: screen_write_collect_flush
      Src: /src/tmux/screen-write.c:2458,1
    - Dst: grid_view_insert_cells
      Src: /src/tmux/screen-write.c:2468,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:2474,1
    - Dst: screen_write_linefeed
      Src: /src/tmux/screen-write.c:2475,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:2476,1
    - Dst: screen_write_collect_flush
      Src: /src/tmux/screen-write.c:2477,1
    - Dst: screen_write_initctx
      Src: /src/tmux/screen-write.c:2483,1
    - Dst: grid_get_line
      Src: /src/tmux/screen-write.c:2486,1
    - Dst: grid_view_get_cell
      Src: /src/tmux/screen-write.c:2488,1
    - Dst: screen_write_overwrite
      Src: /src/tmux/screen-write.c:2489,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:2500,1
    - Dst: grid_view_set_padding
      Src: /src/tmux/screen-write.c:2501,1
    - Dst: grid_cells_equal
      Src: /src/tmux/screen-write.c:2508,1
    - Dst: screen_check_selection
      Src: /src/tmux/screen-write.c:2531,1
    - Dst: memcpy
      Src: /src/tmux/screen-write.c:2533,1
    - Dst: grid_view_set_cell
      Src: /src/tmux/screen-write.c:2535,1
    - Dst: memcpy
      Src: /src/tmux/screen-write.c:2537,1
    - Dst: grid_view_set_cell
      Src: /src/tmux/screen-write.c:2539,1
    - Dst: grid_view_set_cell
      Src: /src/tmux/screen-write.c:2541,1
    - Dst: screen_redraw_get_visible_ranges
      Src: /src/tmux/screen-write.c:2550,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:2559,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:2561,1
    - Dst: screen_write_collect_flush
      Src: /src/tmux/screen-write.c:2565,1
    - Dst: tty_write
      Src: /src/tmux/screen-write.c:2567,1
    - Dst: screen_write_redraw_line
      Src: /src/tmux/screen-write.c:2576,1
    - Dst: screen_select_cell
      Src: /src/tmux/screen-write.c:2582,1
    - Dst: memcpy
      Src: /src/tmux/screen-write.c:2584,1
    - Dst: tty_write
      Src: /src/tmux/screen-write.c:2591,1
    - Dst: utf8_set
      Src: /src/tmux/screen-write.c:2599,1
    - Dst: tty_write
      Src: /src/tmux/screen-write.c:2606,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 111
    argCount: 2
    argNames:
    - ctx
    - gc
    argTypes:
    - struct screen_write_ctx*
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2609
      start: 2431
    functionDepth: 9
    functionLinenumber: 2431
    functionLinenumberEnd: 2609
    functionName: screen_write_cell
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 10
    functionsReached:
    - grid_view_get_cell
    - screen_size_x
    - grid_view_insert_cells
    - screen_select_cell
    - screen_write_linefeed
    - screen_write_set_cursor
    - utf8_set
    - screen_redraw_get_visible_ranges
    - screen_size_y
    - screen_check_selection
    - memcpy
    - log_debug
    - grid_view_set_cell
    - tty_write
    - grid_get_line
    - grid_cells_equal
    - screen_write_initctx
    - grid_view_set_padding
    - screen_write_overwrite
    - screen_write_combine
    - screen_write_collect_flush
    - screen_write_redraw_line
    linkageType: ''
    returnType: void
    signature: void screen_write_cell(struct screen_write_ctx *ctx, const struct grid_cell
      *gc)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: utf8_is_hangul_filler
      Src: /src/tmux/screen-write.c:2627,1
    - Dst: utf8_is_zwj
      Src: /src/tmux/screen-write.c:2635,1
    - Dst: utf8_is_vs
      Src: /src/tmux/screen-write.c:2637,1
    - Dst: options_get_number
      Src: /src/tmux/screen-write.c:2639,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:2647,1
    - Dst: grid_view_get_cell
      Src: /src/tmux/screen-write.c:2652,1
    - Dst: grid_view_get_cell
      Src: /src/tmux/screen-write.c:2655,1
    - Dst: hanguljamo_check_state
      Src: /src/tmux/screen-write.c:2666,1
    - Dst: utf8_should_combine
      Src: /src/tmux/screen-write.c:2674,1
    - Dst: utf8_should_combine
      Src: /src/tmux/screen-write.c:2676,1
    - Dst: utf8_has_zwj
      Src: /src/tmux/screen-write.c:2678,1
    - Dst: screen_write_collect_flush
      Src: /src/tmux/screen-write.c:2689,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:2691,1
    - Dst: memcpy
      Src: /src/tmux/screen-write.c:2696,1
    - Dst: grid_view_set_cell
      Src: /src/tmux/screen-write.c:2708,1
    - Dst: grid_view_set_padding
      Src: /src/tmux/screen-write.c:2710,1
    - Dst: screen_redraw_get_visible_ranges
      Src: /src/tmux/screen-write.c:2719,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:2736,1
    - Dst: screen_write_initctx
      Src: /src/tmux/screen-write.c:2737,1
    - Dst: tty_write
      Src: /src/tmux/screen-write.c:2741,1
    - Dst: screen_write_set_cursor
      Src: /src/tmux/screen-write.c:2742,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 72
    argCount: 2
    argNames:
    - ctx
    - gc
    argTypes:
    - struct screen_write_ctx*
    - struct grid_cell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2745
      start: 2612
    functionDepth: 9
    functionLinenumber: 2612
    functionLinenumberEnd: 2745
    functionName: screen_write_combine
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - grid_view_set_padding
    - screen_redraw_get_visible_ranges
    - utf8_is_hangul_filler
    - grid_view_get_cell
    - grid_view_set_cell
    - utf8_is_vs
    - tty_write
    - utf8_has_zwj
    - utf8_should_combine
    - screen_write_collect_flush
    - screen_write_initctx
    - memcpy
    - log_debug
    - screen_write_set_cursor
    - options_get_number
    - hanguljamo_check_state
    - utf8_is_zwj
    linkageType: ''
    returnType: int
    signature: int screen_write_combine(struct screen_write_ctx *ctx, const struct
      grid_cell *gc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: grid_view_get_cell
      Src: /src/tmux/screen-write.c:2774,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:2777,1
    - Dst: grid_view_set_cell
      Src: /src/tmux/screen-write.c:2778,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:2782,1
    - Dst: grid_view_set_cell
      Src: /src/tmux/screen-write.c:2783,1
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:2795,1
    - Dst: grid_view_get_cell
      Src: /src/tmux/screen-write.c:2796,1
    - Dst: log_debug
      Src: /src/tmux/screen-write.c:2799,1
    - Dst: memcpy
      Src: /src/tmux/screen-write.c:2802,1
    - Dst: memset
      Src: /src/tmux/screen-write.c:2803,1
    - Dst: grid_view_set_cell
      Src: /src/tmux/screen-write.c:2808,1
    - Dst: grid_view_set_cell
      Src: /src/tmux/screen-write.c:2810,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - ctx
    - gc
    - width
    argTypes:
    - struct screen_write_ctx*
    - struct grid_cell*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2817
      start: 2756
    functionDepth: 7
    functionLinenumber: 2756
    functionLinenumberEnd: 2817
    functionName: screen_write_overwrite
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - grid_view_get_cell
    - grid_view_set_cell
    - screen_size_x
    - memset
    - memcpy
    - log_debug
    linkageType: ''
    returnType: int
    signature: "int screen_write_overwrite(struct screen_write_ctx *ctx, struct grid_cell
      *gc,\n    u_int width)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_initctx
      Src: /src/tmux/screen-write.c:2826,1
    - Dst: tty_write
      Src: /src/tmux/screen-write.c:2831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - clip
    - str
    - len
    argTypes:
    - struct screen_write_ctx*
    - char*
    - u_char*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2832
      start: 2820
    functionDepth: 4
    functionLinenumber: 2820
    functionLinenumberEnd: 2832
    functionName: screen_write_setselection
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 3
    functionsReached:
    - screen_write_initctx
    - tty_write
    linkageType: ''
    returnType: void
    signature: "void screen_write_setselection(struct screen_write_ctx *ctx, const
      char *clip,\n    u_char *str, u_int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_initctx
      Src: /src/tmux/screen-write.c:2841,1
    - Dst: tty_write
      Src: /src/tmux/screen-write.c:2847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - str
    - len
    - allow_invisible_panes
    argTypes:
    - struct screen_write_ctx*
    - u_char*
    - u_int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2848
      start: 2835
    functionDepth: 4
    functionLinenumber: 2835
    functionLinenumberEnd: 2848
    functionName: screen_write_rawstring
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - screen_write_initctx
    - tty_write
    linkageType: ''
    returnType: void
    signature: "void screen_write_rawstring(struct screen_write_ctx *ctx, u_char *str,
      u_int len,\n    int allow_invisible_panes)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:2862,1
    - Dst: sixel_size_in_cells
      Src: /src/tmux/screen-write.c:2865,1
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:2866,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:2866,1
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:2867,1
    - Dst: screen_size_x
      Src: /src/tmux/screen-write.c:2868,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:2871,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:2872,1
    - Dst: sixel_scale::sixel_scale
      Src: /src/tmux/screen-write.c:2875,1
    - Dst: sixel_free
      Src: /src/tmux/screen-write.c:2876,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:2883,1
    - Dst: image_scroll_up
      Src: /src/tmux/screen-write.c:2886,1
    - Dst: grid_view_scroll_region_up
      Src: /src/tmux/screen-write.c:2889,1
    - Dst: screen_size_y
      Src: /src/tmux/screen-write.c:2889,1
    - Dst: screen_write_collect_scroll
      Src: /src/tmux/screen-write.c:2891,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/screen-write.c:2895,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/screen-write.c:2897,1
    - Dst: screen_write_collect_flush
      Src: /src/tmux/screen-write.c:2899,1
    - Dst: screen_write_initctx
      Src: /src/tmux/screen-write.c:2901,1
    - Dst: image_store
      Src: /src/tmux/screen-write.c:2902,1
    - Dst: tty_write
      Src: /src/tmux/screen-write.c:2904,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/screen-write.c:2906,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - ctx
    - si
    - bg
    argTypes:
    - struct screen_write_ctx*
    - struct sixel_image*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2907
      start: 2852
    functionDepth: 9
    functionLinenumber: 2852
    functionLinenumberEnd: 2907
    functionName: screen_write_sixelimage
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - image_scroll_up
    - screen_size_y
    - tty_write
    - screen_size_x
    - screen_write_collect_scroll
    - screen_write_cursormove
    - sixel_size_in_cells
    - sixel_free
    - screen_write_collect_flush
    - image_store
    - sixel_scale::sixel_scale
    - grid_view_scroll_region_up
    - screen_write_initctx
    linkageType: ''
    returnType: void
    signature: "void screen_write_sixelimage(struct screen_write_ctx *ctx, struct
      sixel_image *si,\n    u_int bg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/screen-write.c:2918,1
    - Dst: screen_write_collect_flush
      Src: /src/tmux/screen-write.c:2921,1
    - Dst: screen_alternate_on
      Src: /src/tmux/screen-write.c:2922,1
    - Dst: layout_fix_panes
      Src: /src/tmux/screen-write.c:2925,1
    - Dst: server_redraw_window_borders
      Src: /src/tmux/screen-write.c:2926,1
    - Dst: screen_write_initctx
      Src: /src/tmux/screen-write.c:2929,1
    - Dst: struct tty_ctx::redraw_cb
      Src: /src/tmux/screen-write.c:2931,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - gc
    - cursor
    argTypes:
    - struct screen_write_ctx*
    - struct grid_cell*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2932
      start: 2911
    functionDepth: 9
    functionLinenumber: 2911
    functionLinenumberEnd: 2932
    functionName: screen_write_alternateon
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - screen_alternate_on
    - layout_fix_panes
    - struct tty_ctx::redraw_cb
    - screen_write_collect_flush
    - server_redraw_window_borders
    - screen_write_initctx
    - options_get_number
    linkageType: ''
    returnType: void
    signature: "void screen_write_alternateon(struct screen_write_ctx *ctx, struct
      grid_cell *gc,\n    int cursor)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: options_get_number
      Src: /src/tmux/screen-write.c:2942,1
    - Dst: screen_write_collect_flush
      Src: /src/tmux/screen-write.c:2945,1
    - Dst: screen_alternate_off
      Src: /src/tmux/screen-write.c:2946,1
    - Dst: layout_fix_panes
      Src: /src/tmux/screen-write.c:2949,1
    - Dst: server_redraw_window_borders
      Src: /src/tmux/screen-write.c:2950,1
    - Dst: screen_write_initctx
      Src: /src/tmux/screen-write.c:2953,1
    - Dst: struct tty_ctx::redraw_cb
      Src: /src/tmux/screen-write.c:2955,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - gc
    - cursor
    argTypes:
    - struct screen_write_ctx*
    - struct grid_cell*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2956
      start: 2935
    functionDepth: 9
    functionLinenumber: 2935
    functionLinenumberEnd: 2956
    functionName: screen_write_alternateoff
    functionSourceFile: /src/tmux/screen-write.c
    functionUses: 1
    functionsReached:
    - layout_fix_panes
    - struct tty_ctx::redraw_cb
    - screen_write_collect_flush
    - screen_write_initctx
    - server_redraw_window_borders
    - screen_alternate_off
    - options_get_number
    linkageType: ''
    returnType: void
    signature: "void screen_write_alternateoff(struct screen_write_ctx *ctx, struct
      grid_cell *gc,\n    int cursor)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-kill-server.c:57,1
    - Dst: kill
      Src: /src/tmux/cmd-kill-server.c:58,1
    - Dst: getpid
      Src: /src/tmux/cmd-kill-server.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: cmd_kill_server_exec
    functionSourceFile: /src/tmux/cmd-kill-server.c
    functionUses: 0
    functionsReached:
    - kill
    - cmd_get_entry
    - getpid
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_kill_server_exec(struct cmd *self, __unused struct
      cmdq_item *item)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-find-window.c:47,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-find-window.c:48,1
    - Dst: args_string
      Src: /src/tmux/cmd-find-window.c:50,1
    - Dst: args_has
      Src: /src/tmux/cmd-find-window.c:55,1
    - Dst: args_has
      Src: /src/tmux/cmd-find-window.c:56,1
    - Dst: args_has
      Src: /src/tmux/cmd-find-window.c:57,1
    - Dst: args_has
      Src: /src/tmux/cmd-find-window.c:59,1
    - Dst: args_has
      Src: /src/tmux/cmd-find-window.c:61,1
    - Dst: args_has
      Src: /src/tmux/cmd-find-window.c:61,1
    - Dst: args_has
      Src: /src/tmux/cmd-find-window.c:63,1
    - Dst: args_has
      Src: /src/tmux/cmd-find-window.c:65,1
    - Dst: xcalloc
      Src: /src/tmux/cmd-find-window.c:71,1
    - Dst: xasprintf
      Src: /src/tmux/cmd-find-window.c:75,1
    - Dst: xasprintf
      Src: /src/tmux/cmd-find-window.c:81,1
    - Dst: xasprintf
      Src: /src/tmux/cmd-find-window.c:85,1
    - Dst: xasprintf
      Src: /src/tmux/cmd-find-window.c:89,1
    - Dst: xasprintf
      Src: /src/tmux/cmd-find-window.c:94,1
    - Dst: xasprintf
      Src: /src/tmux/cmd-find-window.c:98,1
    - Dst: xasprintf
      Src: /src/tmux/cmd-find-window.c:102,1
    - Dst: args_create
      Src: /src/tmux/cmd-find-window.c:107,1
    - Dst: args_has
      Src: /src/tmux/cmd-find-window.c:108,1
    - Dst: args_set
      Src: /src/tmux/cmd-find-window.c:109,1
    - Dst: args_set
      Src: /src/tmux/cmd-find-window.c:110,1
    - Dst: window_pane_set_mode
      Src: /src/tmux/cmd-find-window.c:112,1
    - Dst: args_free
      Src: /src/tmux/cmd-find-window.c:113,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 43
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 44
    functionDepth: 6
    functionLinenumber: 44
    functionLinenumberEnd: 116
    functionName: cmd_find_window_exec
    functionSourceFile: /src/tmux/cmd-find-window.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - args_create
    - args_set
    - args_string
    - xcalloc
    - cmd_get_args
    - window_pane_set_mode
    - args_free
    - cmdq_get_target
    - args_has
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_find_window_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-respawn-pane.c:50,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-respawn-pane.c:51,1
    - Dst: args_to_vector
      Src: /src/tmux/cmd-respawn-pane.c:65,1
    - Dst: environ_create
      Src: /src/tmux/cmd-respawn-pane.c:66,1
    - Dst: args_first_value
      Src: /src/tmux/cmd-respawn-pane.c:68,1
    - Dst: environ_put
      Src: /src/tmux/cmd-respawn-pane.c:70,1
    - Dst: args_next_value
      Src: /src/tmux/cmd-respawn-pane.c:71,1
    - Dst: args_get
      Src: /src/tmux/cmd-respawn-pane.c:75,1
    - Dst: args_has
      Src: /src/tmux/cmd-respawn-pane.c:78,1
    - Dst: spawn_pane
      Src: /src/tmux/cmd-respawn-pane.c:81,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-respawn-pane.c:82,1
    - Dst: free
      Src: /src/tmux/cmd-respawn-pane.c:83,1
    - Dst: cmd_free_argv
      Src: /src/tmux/cmd-respawn-pane.c:85,1
    - Dst: environ_free
      Src: /src/tmux/cmd-respawn-pane.c:86,1
    - Dst: server_redraw_window_borders
      Src: /src/tmux/cmd-respawn-pane.c:91,1
    - Dst: server_status_window
      Src: /src/tmux/cmd-respawn-pane.c:92,1
    - Dst: cmd_free_argv
      Src: /src/tmux/cmd-respawn-pane.c:95,1
    - Dst: environ_free
      Src: /src/tmux/cmd-respawn-pane.c:96,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 47
    functionDepth: 7
    functionLinenumber: 47
    functionLinenumberEnd: 98
    functionName: cmd_respawn_pane_exec
    functionSourceFile: /src/tmux/cmd-respawn-pane.c
    functionUses: 0
    functionsReached:
    - environ_free
    - environ_put
    - cmdq_error
    - cmdq_get_target
    - args_to_vector
    - cmd_get_args
    - args_next_value
    - server_redraw_window_borders
    - free
    - args_get
    - args_first_value
    - server_status_window
    - spawn_pane
    - cmd_free_argv
    - environ_create
    - args_has
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_respawn_pane_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/format-draw.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - fr
    - sy
    argTypes:
    - struct format_range*
    - struct style*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 62
    functionName: format_is_type
    functionSourceFile: /src/tmux/format-draw.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int format_is_type(struct format_range *fr, struct style *sy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/format-draw.c:68,1
    - Dst: free
      Src: /src/tmux/format-draw.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - frs
    - fr
    argTypes:
    - struct format_ranges*
    - struct format_range*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: format_free_range
    functionSourceFile: /src/tmux/format-draw.c
    functionUses: 0
    functionsReached:
    - free
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void format_free_range(struct format_ranges *frs, struct format_range
      *fr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: format_free_range
      Src: /src/tmux/format-draw.c:87,1
    - Dst: format_free_range
      Src: /src/tmux/format-draw.c:96,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 5
    argNames:
    - frs
    - s
    - offset
    - start
    - width
    argTypes:
    - struct format_ranges*
    - struct screen*
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 106
    functionName: format_update_ranges
    functionSourceFile: /src/tmux/format-draw.c
    functionUses: 0
    functionsReached:
    - format_free_range
    linkageType: ''
    returnType: void
    signature: "void format_update_ranges(struct format_ranges *frs, struct screen
      *s, u_int offset,\n    u_int start, u_int width)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: format_free_range
      Src: /src/tmux/format-draw.c:87,1
    - Dst: format_free_range
      Src: /src/tmux/format-draw.c:96,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 105
    functionName: TAILQ_FOREACH_SAFE
    functionSourceFile: /src/tmux/format-draw.c
    functionUses: 27
    functionsReached:
    - format_free_range
    linkageType: ''
    returnType: void
    signature: void TAILQ_FOREACH_SAFE(fr, frs, entry, fr1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_cursormove
      Src: /src/tmux/format-draw.c:118,1
    - Dst: screen_write_fast_copy
      Src: /src/tmux/format-draw.c:119,1
    - Dst: format_update_ranges
      Src: /src/tmux/format-draw.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 8
    argNames:
    - octx
    - ocx
    - ocy
    - s
    - frs
    - offset
    - start
    - width
    argTypes:
    - struct screen_write_ctx*
    - u_int
    - u_int
    - struct screen*
    - struct format_ranges*
    - u_int
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 109
    functionDepth: 8
    functionLinenumber: 109
    functionLinenumberEnd: 121
    functionName: format_draw_put
    functionSourceFile: /src/tmux/format-draw.c
    functionUses: 0
    functionsReached:
    - format_update_ranges
    - screen_write_cursormove
    - screen_write_fast_copy
    linkageType: ''
    returnType: void
    signature: "void format_draw_put(struct screen_write_ctx *octx, u_int ocx, u_int
      ocy,\n    struct screen *s, struct format_ranges *frs, u_int offset, u_int start,\n
      \   u_int width)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: format_draw_put
      Src: /src/tmux/format-draw.c:134,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/format-draw.c:149,1
    - Dst: screen_write_fast_copy
      Src: /src/tmux/format-draw.c:150,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/format-draw.c:156,1
    - Dst: screen_write_fast_copy
      Src: /src/tmux/format-draw.c:158,1
    - Dst: format_draw_put
      Src: /src/tmux/format-draw.c:164,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 11
    argNames:
    - octx
    - ocx
    - ocy
    - offset
    - width
    - list
    - list_left
    - list_right
    - focus_start
    - focus_end
    - frs
    argTypes:
    - struct screen_write_ctx*
    - u_int
    - u_int
    - u_int
    - u_int
    - struct screen*
    - struct screen*
    - struct screen*
    - int
    - int
    - struct format_ranges*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 124
    functionDepth: 9
    functionLinenumber: 124
    functionLinenumberEnd: 165
    functionName: format_draw_put_list
    functionSourceFile: /src/tmux/format-draw.c
    functionUses: 0
    functionsReached:
    - screen_write_cursormove
    - format_draw_put
    - screen_write_fast_copy
    linkageType: ''
    returnType: void
    signature: "void format_draw_put_list(struct screen_write_ctx *octx,\n    u_int
      ocx, u_int ocy, u_int offset, u_int width, struct screen *list,\n    struct
      screen *list_left, struct screen *list_right, int focus_start,\n    int focus_end,
      struct format_ranges *frs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: format_draw_put
      Src: /src/tmux/format-draw.c:194,1
    - Dst: format_draw_put
      Src: /src/tmux/format-draw.c:197,1
    - Dst: format_draw_put
      Src: /src/tmux/format-draw.c:208,1
    - Dst: format_draw_put
      Src: /src/tmux/format-draw.c:220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 9
    argNames:
    - octx
    - available
    - ocx
    - ocy
    - left
    - centre
    - right
    - abs_centre
    - frs
    argTypes:
    - struct screen_write_ctx*
    - u_int
    - u_int
    - u_int
    - struct screen*
    - struct screen*
    - struct screen*
    - struct screen*
    - struct format_ranges*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 168
    functionDepth: 9
    functionLinenumber: 168
    functionLinenumberEnd: 224
    functionName: format_draw_none
    functionSourceFile: /src/tmux/format-draw.c
    functionUses: 0
    functionsReached:
    - format_draw_put
    linkageType: ''
    returnType: void
    signature: "void format_draw_none(struct screen_write_ctx *octx, u_int available,
      u_int ocx,\n    u_int ocy, struct screen *left, struct screen *centre, struct
      screen *right,\n    struct screen *abs_centre, struct format_ranges *frs)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_start
      Src: /src/tmux/format-draw.c:268,1
    - Dst: screen_write_fast_copy
      Src: /src/tmux/format-draw.c:269,1
    - Dst: screen_write_stop
      Src: /src/tmux/format-draw.c:270,1
    - Dst: format_draw_none
      Src: /src/tmux/format-draw.c:272,1
    - Dst: format_draw_put
      Src: /src/tmux/format-draw.c:278,1
    - Dst: format_draw_put
      Src: /src/tmux/format-draw.c:281,1
    - Dst: format_draw_put
      Src: /src/tmux/format-draw.c:287,1
    - Dst: format_draw_put
      Src: /src/tmux/format-draw.c:298,1
    - Dst: format_draw_put_list
      Src: /src/tmux/format-draw.c:315,1
    - Dst: format_draw_put
      Src: /src/tmux/format-draw.c:323,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 15
    argNames:
    - octx
    - available
    - ocx
    - ocy
    - left
    - centre
    - right
    - abs_centre
    - list
    - list_left
    - list_right
    - after
    - focus_start
    - focus_end
    - frs
    argTypes:
    - struct screen_write_ctx*
    - u_int
    - u_int
    - u_int
    - struct screen*
    - struct screen*
    - struct screen*
    - struct screen*
    - struct screen*
    - struct screen*
    - struct screen*
    - struct screen*
    - int
    - int
    - struct format_ranges*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 227
    functionDepth: 10
    functionLinenumber: 227
    functionLinenumberEnd: 327
    functionName: format_draw_left
    functionSourceFile: /src/tmux/format-draw.c
    functionUses: 0
    functionsReached:
    - format_draw_put
    - format_draw_none
    - screen_write_fast_copy
    - format_draw_put_list
    - screen_write_start
    - screen_write_stop
    linkageType: ''
    returnType: void
    signature: "void format_draw_left(struct screen_write_ctx *octx, u_int available,
      u_int ocx,\n    u_int ocy, struct screen *left, struct screen *centre, struct
      screen *right,\n    struct screen *abs_centre, struct screen *list, struct screen
      *list_left,\n    struct screen *list_right, struct screen *after, int focus_start,\n
      \   int focus_end, struct format_ranges *frs)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_start
      Src: /src/tmux/format-draw.c:371,1
    - Dst: screen_write_fast_copy
      Src: /src/tmux/format-draw.c:372,1
    - Dst: screen_write_stop
      Src: /src/tmux/format-draw.c:373,1
    - Dst: format_draw_none
      Src: /src/tmux/format-draw.c:375,1
    - Dst: format_draw_put
      Src: /src/tmux/format-draw.c:381,1
    - Dst: format_draw_put
      Src: /src/tmux/format-draw.c:384,1
    - Dst: format_draw_put
      Src: /src/tmux/format-draw.c:399,1
    - Dst: format_draw_put
      Src: /src/tmux/format-draw.c:408,1
    - Dst: format_draw_put_list
      Src: /src/tmux/format-draw.c:422,1
    - Dst: format_draw_put
      Src: /src/tmux/format-draw.c:431,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 15
    argNames:
    - octx
    - available
    - ocx
    - ocy
    - left
    - centre
    - right
    - abs_centre
    - list
    - list_left
    - list_right
    - after
    - focus_start
    - focus_end
    - frs
    argTypes:
    - struct screen_write_ctx*
    - u_int
    - u_int
    - u_int
    - struct screen*
    - struct screen*
    - struct screen*
    - struct screen*
    - struct screen*
    - struct screen*
    - struct screen*
    - struct screen*
    - int
    - int
    - struct format_ranges*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 330
    functionDepth: 10
    functionLinenumber: 330
    functionLinenumberEnd: 435
    functionName: format_draw_centre
    functionSourceFile: /src/tmux/format-draw.c
    functionUses: 0
    functionsReached:
    - format_draw_put
    - format_draw_none
    - screen_write_fast_copy
    - format_draw_put_list
    - screen_write_start
    - screen_write_stop
    linkageType: ''
    returnType: void
    signature: "void format_draw_centre(struct screen_write_ctx *octx, u_int available,
      u_int ocx,\n    u_int ocy, struct screen *left, struct screen *centre, struct
      screen *right,\n    struct screen *abs_centre, struct screen *list, struct screen
      *list_left,\n    struct screen *list_right, struct screen *after, int focus_start,\n
      \   int focus_end, struct format_ranges *frs)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: screen_write_start
      Src: /src/tmux/format-draw.c:479,1
    - Dst: screen_write_fast_copy
      Src: /src/tmux/format-draw.c:480,1
    - Dst: screen_write_stop
      Src: /src/tmux/format-draw.c:481,1
    - Dst: format_draw_none
      Src: /src/tmux/format-draw.c:483,1
    - Dst: format_draw_put
      Src: /src/tmux/format-draw.c:489,1
    - Dst: format_draw_put
      Src: /src/tmux/format-draw.c:492,1
    - Dst: format_draw_put
      Src: /src/tmux/format-draw.c:501,1
    - Dst: format_draw_put
      Src: /src/tmux/format-draw.c:512,1
    - Dst: format_draw_put_list
      Src: /src/tmux/format-draw.c:529,1
    - Dst: format_draw_put
      Src: /src/tmux/format-draw.c:538,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 15
    argNames:
    - octx
    - available
    - ocx
    - ocy
    - left
    - centre
    - right
    - abs_centre
    - list
    - list_left
    - list_right
    - after
    - focus_start
    - focus_end
    - frs
    argTypes:
    - struct screen_write_ctx*
    - u_int
    - u_int
    - u_int
    - struct screen*
    - struct screen*
    - struct screen*
    - struct screen*
    - struct screen*
    - struct screen*
    - struct screen*
    - struct screen*
    - int
    - int
    - struct format_ranges*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 438
    functionDepth: 10
    functionLinenumber: 438
    functionLinenumberEnd: 542
    functionName: format_draw_right
    functionSourceFile: /src/tmux/format-draw.c
    functionUses: 0
    functionsReached:
    - format_draw_put
    - format_draw_none
    - screen_write_fast_copy
    - format_draw_put_list
    - screen_write_start
    - screen_write_stop
    linkageType: ''
    returnType: void
    signature: "void format_draw_right(struct screen_write_ctx *octx, u_int available,
      u_int ocx,\n    u_int ocy, struct screen *left, struct screen *centre, struct
      screen *right,\n    struct screen *abs_centre,     struct screen *list,\n    struct
      screen *list_left, struct screen *list_right, struct screen *after,\n    int
      focus_start, int focus_end, struct format_ranges *frs)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: format_draw_put
      Src: /src/tmux/format-draw.c:590,1
    - Dst: format_draw_put
      Src: /src/tmux/format-draw.c:593,1
    - Dst: format_draw_put
      Src: /src/tmux/format-draw.c:608,1
    - Dst: format_draw_put
      Src: /src/tmux/format-draw.c:628,1
    - Dst: format_draw_put_list
      Src: /src/tmux/format-draw.c:635,1
    - Dst: format_draw_put
      Src: /src/tmux/format-draw.c:642,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 15
    argNames:
    - octx
    - available
    - ocx
    - ocy
    - left
    - centre
    - right
    - abs_centre
    - list
    - list_left
    - list_right
    - after
    - focus_start
    - focus_end
    - frs
    argTypes:
    - struct screen_write_ctx*
    - u_int
    - u_int
    - u_int
    - struct screen*
    - struct screen*
    - struct screen*
    - struct screen*
    - struct screen*
    - struct screen*
    - struct screen*
    - struct screen*
    - int
    - int
    - struct format_ranges*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 544
    functionDepth: 10
    functionLinenumber: 544
    functionLinenumberEnd: 644
    functionName: format_draw_absolute_centre
    functionSourceFile: /src/tmux/format-draw.c
    functionUses: 0
    functionsReached:
    - format_draw_put_list
    - format_draw_put
    linkageType: ''
    returnType: void
    signature: "void format_draw_absolute_centre(struct screen_write_ctx *octx, u_int
      available,\n    u_int ocx, u_int ocy, struct screen *left, struct screen *centre,\n
      \   struct screen *right, struct screen *abs_centre, struct screen *list,\n
      \   struct screen *list_left, struct screen *list_right, struct screen *after,\n
      \   int focus_start, int focus_end, struct format_ranges *frs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - cp
    - n
    - width
    argTypes:
    - char*
    - u_int*
    - u_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 674
    functionName: format_leading_hashes
    functionSourceFile: /src/tmux/format-draw.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      format_leading_hashes(const char *cp, u_int *n, u_int *width)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utf8_set
      Src: /src/tmux/format-draw.c:683,1
    - Dst: screen_write_cell
      Src: /src/tmux/format-draw.c:685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - sy
    - ch
    - n
    argTypes:
    - struct screen_write_ctx*
    - struct style*
    - char
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 677
    functionDepth: 10
    functionLinenumber: 677
    functionLinenumberEnd: 686
    functionName: format_draw_many
    functionSourceFile: /src/tmux/format-draw.c
    functionUses: 0
    functionsReached:
    - screen_write_cell
    - utf8_set
    linkageType: ''
    returnType: void
    signature: "void format_draw_many(struct screen_write_ctx *ctx, struct style *sy,
      char ch,\n    u_int n)"
  - BBCount: 61
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/tmux/format-draw.c:711,1
    - Dst: memcpy
      Src: /src/tmux/format-draw.c:733,1
    - Dst: memcpy
      Src: /src/tmux/format-draw.c:734,1
    - Dst: style_set
      Src: /src/tmux/format-draw.c:736,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/format-draw.c:737,1
    - Dst: log_debug
      Src: /src/tmux/format-draw.c:738,1
    - Dst: screen_init
      Src: /src/tmux/format-draw.c:746,1
    - Dst: screen_write_start
      Src: /src/tmux/format-draw.c:747,1
    - Dst: screen_write_clearendofline
      Src: /src/tmux/format-draw.c:748,1
    - Dst: format_draw_many
      Src: /src/tmux/format-draw.c:770,1
    - Dst: format_draw_many
      Src: /src/tmux/format-draw.c:779,1
    - Dst: utf8_set
      Src: /src/tmux/format-draw.c:782,1
    - Dst: screen_write_cell
      Src: /src/tmux/format-draw.c:783,1
    - Dst: utf8_open
      Src: /src/tmux/format-draw.c:792,1
    - Dst: utf8_append
      Src: /src/tmux/format-draw.c:794,1
    - Dst: utf8_set
      Src: /src/tmux/format-draw.c:806,1
    - Dst: screen_write_cell
      Src: /src/tmux/format-draw.c:811,1
    - Dst: format_skip
      Src: /src/tmux/format-draw.c:817,1
    - Dst: log_debug
      Src: /src/tmux/format-draw.c:819,1
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/format-draw.c:821,1
    - Dst: format_free_range
      Src: /src/tmux/format-draw.c:822,1
    - Dst: xstrndup
      Src: /src/tmux/format-draw.c:825,1
    - Dst: style_copy
      Src: /src/tmux/format-draw.c:826,1
    - Dst: style_parse
      Src: /src/tmux/format-draw.c:827,1
    - Dst: log_debug
      Src: /src/tmux/format-draw.c:828,1
    - Dst: free
      Src: /src/tmux/format-draw.c:829,1
    - Dst: log_debug
      Src: /src/tmux/format-draw.c:833,1
    - Dst: style_tostring
      Src: /src/tmux/format-draw.c:834,1
    - Dst: free
      Src: /src/tmux/format-draw.c:835,1
    - Dst: memcpy
      Src: /src/tmux/format-draw.c:847,1
    - Dst: memcpy
      Src: /src/tmux/format-draw.c:851,1
    - Dst: memcpy
      Src: /src/tmux/format-draw.c:854,1
    - Dst: memcpy
      Src: /src/tmux/format-draw.c:856,1
    - Dst: free
      Src: /src/tmux/format-draw.c:870,1
    - Dst: free
      Src: /src/tmux/format-draw.c:894,1
    - Dst: free
      Src: /src/tmux/format-draw.c:914,1
    - Dst: free
      Src: /src/tmux/format-draw.c:928,1
    - Dst: log_debug
      Src: /src/tmux/format-draw.c:937,1
    - Dst: format_is_type
      Src: /src/tmux/format-draw.c:947,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/format-draw.c:950,1
    - Dst: free
      Src: /src/tmux/format-draw.c:952,1
    - Dst: xcalloc
      Src: /src/tmux/format-draw.c:956,1
    - Dst: strlcpy
      Src: /src/tmux/format-draw.c:964,1
    - Dst: free
      Src: /src/tmux/format-draw.c:971,1
    - Dst: screen_write_stop
      Src: /src/tmux/format-draw.c:974,1
    - Dst: log_debug
      Src: /src/tmux/format-draw.c:975,1
    - Dst: log_debug
      Src: /src/tmux/format-draw.c:978,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/format-draw.c:979,1
    - Dst: log_debug
      Src: /src/tmux/format-draw.c:980,1
    - Dst: memcpy
      Src: /src/tmux/format-draw.c:986,1
    - Dst: screen_write_putc
      Src: /src/tmux/format-draw.c:989,1
    - Dst: format_draw_none
      Src: /src/tmux/format-draw.c:999,1
    - Dst: format_draw_left
      Src: /src/tmux/format-draw.c:1004,1
    - Dst: format_draw_centre
      Src: /src/tmux/format-draw.c:1011,1
    - Dst: format_draw_right
      Src: /src/tmux/format-draw.c:1018,1
    - Dst: format_draw_absolute_centre
      Src: /src/tmux/format-draw.c:1025,1
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/format-draw.c:1033,1
    - Dst: xcalloc
      Src: /src/tmux/format-draw.c:1034,1
    - Dst: strlcpy
      Src: /src/tmux/format-draw.c:1037,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/format-draw.c:1040,1
    - Dst: log_debug
      Src: /src/tmux/format-draw.c:1046,1
    - Dst: log_debug
      Src: /src/tmux/format-draw.c:1050,1
    - Dst: log_debug
      Src: /src/tmux/format-draw.c:1054,1
    - Dst: log_debug
      Src: /src/tmux/format-draw.c:1058,1
    - Dst: log_debug
      Src: /src/tmux/format-draw.c:1062,1
    - Dst: log_debug
      Src: /src/tmux/format-draw.c:1066,1
    - Dst: log_debug
      Src: /src/tmux/format-draw.c:1070,1
    - Dst: format_free_range
      Src: /src/tmux/format-draw.c:1074,1
    - Dst: screen_free
      Src: /src/tmux/format-draw.c:1080,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/format-draw.c:1083,1
    CyclomaticComplexity: 95
    EdgeCount: 95
    ICount: 258
    argCount: 6
    argNames:
    - octx
    - base
    - available
    - expanded
    - srs
    - default_colours
    argTypes:
    - struct screen_write_ctx*
    - struct grid_cell*
    - u_int
    - char*
    - struct style_ranges*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 689
    functionDepth: 11
    functionLinenumber: 689
    functionLinenumberEnd: 1084
    functionName: format_draw
    functionSourceFile: /src/tmux/format-draw.c
    functionUses: 9
    functionsReached:
    - screen_write_cell
    - xstrndup
    - utf8_set
    - format_draw_left
    - style_copy
    - screen_write_putc
    - xcalloc
    - TAILQ_FOREACH_SAFE
    - memcpy
    - log_debug
    - strlen
    - format_draw_many
    - screen_write_start
    - TAILQ_INIT
    - TAILQ_INSERT_TAIL
    - style_tostring
    - format_skip
    - strlcpy
    - style_set
    - format_draw_absolute_centre
    - format_draw_right
    - utf8_open
    - format_free_range
    - screen_init
    - TAILQ_FOREACH
    - format_draw_none
    - format_is_type
    - screen_free
    - screen_write_cursormove
    - free
    - utf8_append
    - screen_write_clearendofline
    - style_parse
    - screen_write_stop
    - format_draw_centre
    linkageType: ''
    returnType: void
    signature: "void format_draw(struct screen_write_ctx *octx, const struct grid_cell
      *base,\n    u_int available, const char *expanded, struct style_ranges *srs,\n
      \   int default_colours)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: format_leading_hashes
      Src: /src/tmux/format-draw.c:1098,1
    - Dst: format_skip
      Src: /src/tmux/format-draw.c:1102,1
    - Dst: utf8_open
      Src: /src/tmux/format-draw.c:1107,1
    - Dst: utf8_append
      Src: /src/tmux/format-draw.c:1109,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - expanded
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1087
    functionDepth: 5
    functionLinenumber: 1087
    functionLinenumberEnd: 1119
    functionName: format_width
    functionSourceFile: /src/tmux/format-draw.c
    functionUses: 4
    functionsReached:
    - utf8_open
    - format_leading_hashes
    - format_skip
    - utf8_append
    linkageType: ''
    returnType: u_int
    signature: u_int format_width(const char *expanded)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/format-draw.c:1135,1
    - Dst: strlen
      Src: /src/tmux/format-draw.c:1135,1
    - Dst: format_leading_hashes
      Src: /src/tmux/format-draw.c:1140,1
    - Dst: memset
      Src: /src/tmux/format-draw.c:1147,1
    - Dst: format_skip
      Src: /src/tmux/format-draw.c:1154,1
    - Dst: memcpy
      Src: /src/tmux/format-draw.c:1157,1
    - Dst: utf8_open
      Src: /src/tmux/format-draw.c:1161,1
    - Dst: utf8_append
      Src: /src/tmux/format-draw.c:1163,1
    - Dst: memcpy
      Src: /src/tmux/format-draw.c:1166,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 2
    argNames:
    - expanded
    - limit
    argTypes:
    - char*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1126
    functionDepth: 5
    functionLinenumber: 1126
    functionLinenumberEnd: 1184
    functionName: format_trim_left
    functionSourceFile: /src/tmux/format-draw.c
    functionUses: 1
    functionsReached:
    - format_leading_hashes
    - utf8_open
    - xcalloc
    - format_skip
    - memset
    - memcpy
    - utf8_append
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      format_trim_left(const char *expanded, u_int limit)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: format_width
      Src: /src/tmux/format-draw.c:1197,1
    - Dst: xstrdup
      Src: /src/tmux/format-draw.c:1199,1
    - Dst: xcalloc
      Src: /src/tmux/format-draw.c:1202,1
    - Dst: strlen
      Src: /src/tmux/format-draw.c:1202,1
    - Dst: format_leading_hashes
      Src: /src/tmux/format-draw.c:1205,1
    - Dst: memset
      Src: /src/tmux/format-draw.c:1217,1
    - Dst: format_skip
      Src: /src/tmux/format-draw.c:1224,1
    - Dst: memcpy
      Src: /src/tmux/format-draw.c:1227,1
    - Dst: utf8_open
      Src: /src/tmux/format-draw.c:1231,1
    - Dst: utf8_append
      Src: /src/tmux/format-draw.c:1233,1
    - Dst: memcpy
      Src: /src/tmux/format-draw.c:1236,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 2
    argNames:
    - expanded
    - limit
    argTypes:
    - char*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1187
    functionDepth: 6
    functionLinenumber: 1187
    functionLinenumberEnd: 1254
    functionName: format_trim_right
    functionSourceFile: /src/tmux/format-draw.c
    functionUses: 2
    functionsReached:
    - format_width
    - format_leading_hashes
    - utf8_open
    - xcalloc
    - format_skip
    - memset
    - memcpy
    - utf8_append
    - strlen
    - xstrdup
    linkageType: ''
    returnType: char
    signature: 'char *

      format_trim_right(const char *expanded, u_int limit)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: session_find_by_id
      Src: /src/tmux/window-tree.c:148,1
    - Dst: winlink_find_by_index
      Src: /src/tmux/window-tree.c:157,1
    - Dst: window_pane_find_by_id
      Src: /src/tmux/window-tree.c:167,1
    - Dst: window_has_pane
      Src: /src/tmux/window-tree.c:168,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - item
    - sp
    - wlp
    - wp
    argTypes:
    - struct window_tree_itemdata*
    - struct session**
    - struct winlink**
    - struct window_pane**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 175
    functionName: window_tree_pull_item
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - window_pane_find_by_id
    - window_has_pane
    - session_find_by_id
    - winlink_find_by_index
    linkageType: ''
    returnType: void
    signature: "void window_tree_pull_item(struct window_tree_itemdata *item, struct
      session **sp,\n    struct winlink **wlp, struct window_pane **wp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xreallocarray
      Src: /src/tmux/window-tree.c:182,1
    - Dst: xcalloc
      Src: /src/tmux/window-tree.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct window_tree_modedata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 186
    functionName: window_tree_add_item
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - xreallocarray
    linkageType: ''
    returnType: struct window_tree_itemdata
    signature: 'struct window_tree_itemdata *

      window_tree_add_item(struct window_tree_modedata *data)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/window-tree.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct window_tree_itemdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: window_tree_free_item
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void window_tree_free_item(struct window_tree_itemdata *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_pane_index
      Src: /src/tmux/window-tree.c:205,1
    - Dst: window_tree_add_item
      Src: /src/tmux/window-tree.c:207,1
    - Dst: format_create
      Src: /src/tmux/window-tree.c:213,1
    - Dst: format_defaults
      Src: /src/tmux/window-tree.c:214,1
    - Dst: format_expand
      Src: /src/tmux/window-tree.c:215,1
    - Dst: xasprintf
      Src: /src/tmux/window-tree.c:216,1
    - Dst: format_free
      Src: /src/tmux/window-tree.c:217,1
    - Dst: mode_tree_add
      Src: /src/tmux/window-tree.c:219,1
    - Dst: free
      Src: /src/tmux/window-tree.c:221,1
    - Dst: free
      Src: /src/tmux/window-tree.c:222,1
    - Dst: mode_tree_align
      Src: /src/tmux/window-tree.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 5
    argNames:
    - s
    - wl
    - wp
    - modedata
    - parent
    argTypes:
    - struct session*
    - struct winlink*
    - struct window_pane*
    - void*
    - struct mode_tree_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 194
    functionDepth: 10
    functionLinenumber: 194
    functionLinenumberEnd: 224
    functionName: window_tree_build_pane
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - window_tree_add_item
    - format_free
    - format_defaults
    - free
    - format_create
    - mode_tree_add
    - mode_tree_align
    - format_expand
    - window_pane_index
    linkageType: ''
    returnType: void
    signature: "void window_tree_build_pane(struct session *s, struct winlink *wl,\n
      \   struct window_pane *wp, void *modedata, struct mode_tree_item *parent)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_single
      Src: /src/tmux/window-tree.c:236,1
    - Dst: format_true
      Src: /src/tmux/window-tree.c:237,1
    - Dst: free
      Src: /src/tmux/window-tree.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - s
    - wl
    - wp
    - filter
    argTypes:
    - struct session*
    - struct winlink*
    - struct window_pane*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 226
    functionDepth: 11
    functionLinenumber: 226
    functionLinenumberEnd: 241
    functionName: window_tree_filter_pane
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - format_true
    - format_single
    - free
    linkageType: ''
    returnType: int
    signature: "int window_tree_filter_pane(struct session *s, struct winlink *wl,\n
      \   struct window_pane *wp, const char *filter)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: window_tree_add_item
      Src: /src/tmux/window-tree.c:257,1
    - Dst: format_create
      Src: /src/tmux/window-tree.c:263,1
    - Dst: format_defaults
      Src: /src/tmux/window-tree.c:264,1
    - Dst: format_expand
      Src: /src/tmux/window-tree.c:265,1
    - Dst: xasprintf
      Src: /src/tmux/window-tree.c:266,1
    - Dst: format_free
      Src: /src/tmux/window-tree.c:267,1
    - Dst: mode_tree_add
      Src: /src/tmux/window-tree.c:274,1
    - Dst: free
      Src: /src/tmux/window-tree.c:276,1
    - Dst: free
      Src: /src/tmux/window-tree.c:277,1
    - Dst: mode_tree_align
      Src: /src/tmux/window-tree.c:278,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window-tree.c:280,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/window-tree.c:282,1
    - Dst: window_tree_filter_pane
      Src: /src/tmux/window-tree.c:283,1
    - Dst: sort_get_panes_window
      Src: /src/tmux/window-tree.c:287,1
    - Dst: window_tree_filter_pane
      Src: /src/tmux/window-tree.c:291,1
    - Dst: window_tree_build_pane
      Src: /src/tmux/window-tree.c:292,1
    - Dst: window_tree_free_item
      Src: /src/tmux/window-tree.c:297,1
    - Dst: mode_tree_remove
      Src: /src/tmux/window-tree.c:299,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 6
    argNames:
    - s
    - wl
    - modedata
    - sort_crit
    - parent
    - filter
    argTypes:
    - struct session*
    - struct winlink*
    - void*
    - struct sort_criteria*
    - struct mode_tree_item*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 243
    functionDepth: 12
    functionLinenumber: 243
    functionLinenumberEnd: 301
    functionName: window_tree_build_window
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - window_tree_build_pane
    - window_tree_add_item
    - window_tree_filter_pane
    - format_free
    - mode_tree_remove
    - TAILQ_FIRST
    - format_defaults
    - sort_get_panes_window
    - free
    - format_create
    - mode_tree_add
    - window_tree_free_item
    - TAILQ_NEXT
    - mode_tree_align
    - format_expand
    linkageType: ''
    returnType: int
    signature: "int window_tree_build_window(struct session *s, struct winlink *wl,\n
      \   void *modedata, struct sort_criteria *sort_crit,\n    struct mode_tree_item
      *parent, const char *filter)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: window_tree_add_item
      Src: /src/tmux/window-tree.c:316,1
    - Dst: format_create
      Src: /src/tmux/window-tree.c:322,1
    - Dst: format_defaults
      Src: /src/tmux/window-tree.c:323,1
    - Dst: format_expand
      Src: /src/tmux/window-tree.c:324,1
    - Dst: format_free
      Src: /src/tmux/window-tree.c:325,1
    - Dst: mode_tree_add
      Src: /src/tmux/window-tree.c:331,1
    - Dst: free
      Src: /src/tmux/window-tree.c:333,1
    - Dst: sort_get_winlinks_session
      Src: /src/tmux/window-tree.c:335,1
    - Dst: window_tree_build_window
      Src: /src/tmux/window-tree.c:338,1
    - Dst: window_tree_free_item
      Src: /src/tmux/window-tree.c:343,1
    - Dst: mode_tree_remove
      Src: /src/tmux/window-tree.c:345,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - s
    - modedata
    - sort_crit
    - filter
    argTypes:
    - struct session*
    - void*
    - struct sort_criteria*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 303
    functionDepth: 13
    functionLinenumber: 303
    functionLinenumberEnd: 347
    functionName: window_tree_build_session
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - window_tree_build_window
    - window_tree_add_item
    - format_free
    - mode_tree_remove
    - format_defaults
    - sort_get_winlinks_session
    - free
    - format_create
    - mode_tree_add
    - window_tree_free_item
    - format_expand
    linkageType: ''
    returnType: void
    signature: "void window_tree_build_session(struct session *s, void *modedata,\n
      \   struct sort_criteria *sort_crit, const char *filter)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: session_group_contains
      Src: /src/tmux/window-tree.c:358,1
    - Dst: window_tree_free_item
      Src: /src/tmux/window-tree.c:361,1
    - Dst: free
      Src: /src/tmux/window-tree.c:362,1
    - Dst: sort_get_sessions
      Src: /src/tmux/window-tree.c:366,1
    - Dst: session_group_contains
      Src: /src/tmux/window-tree.c:372,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window-tree.c:374,1
    - Dst: window_tree_build_session
      Src: /src/tmux/window-tree.c:377,1
    - Dst: window_count_panes
      Src: /src/tmux/window-tree.c:390,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 4
    argNames:
    - modedata
    - sort_crit
    - tag
    - filter
    argTypes:
    - void*
    - struct sort_criteria*
    - uint64_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 349
    functionDepth: 14
    functionLinenumber: 349
    functionLinenumberEnd: 396
    functionName: window_tree_build
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - session_group_contains
    - window_count_panes
    - TAILQ_FIRST
    - free
    - window_tree_free_item
    - window_tree_build_session
    - sort_get_sessions
    linkageType: ''
    returnType: void
    signature: "void window_tree_build(void *modedata, struct sort_criteria *sort_crit,\n
      \   uint64_t *tag, const char *filter)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: format_width
      Src: /src/tmux/window-tree.c:407,1
    - Dst: format_trim_left
      Src: /src/tmux/window-tree.c:409,1
    - Dst: format_width
      Src: /src/tmux/window-tree.c:410,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-tree.c:417,1
    - Dst: screen_write_box
      Src: /src/tmux/window-tree.c:418,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-tree.c:420,1
    - Dst: screen_write_clearcharacter
      Src: /src/tmux/window-tree.c:421,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-tree.c:422,1
    - Dst: format_draw
      Src: /src/tmux/window-tree.c:423,1
    - Dst: free
      Src: /src/tmux/window-tree.c:424,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 7
    argNames:
    - ctx
    - px
    - py
    - sx
    - sy
    - gc
    - label
    argTypes:
    - struct screen_write_ctx*
    - u_int
    - u_int
    - u_int
    - u_int
    - struct grid_cell*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 398
    functionDepth: 12
    functionLinenumber: 398
    functionLinenumberEnd: 425
    functionName: window_tree_draw_label
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - format_width
    - screen_write_clearcharacter
    - screen_write_box
    - screen_write_cursormove
    - free
    - format_trim_left
    - format_draw
    linkageType: ''
    returnType: void
    signature: "void window_tree_draw_label(struct screen_write_ctx *ctx, u_int px,
      u_int py,\n    u_int sx, u_int sy, const struct grid_cell *gc, const char *label)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: winlink_count
      Src: /src/tmux/window-tree.c:443,1
    - Dst: RB_FOREACH
      Src: /src/tmux/window-tree.c:453,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-tree.c:496,1
    - Dst: screen_write_vline
      Src: /src/tmux/window-tree.c:497,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-tree.c:498,1
    - Dst: screen_write_puts
      Src: /src/tmux/window-tree.c:499,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-tree.c:504,1
    - Dst: screen_write_vline
      Src: /src/tmux/window-tree.c:505,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-tree.c:506,1
    - Dst: screen_write_puts
      Src: /src/tmux/window-tree.c:507,1
    - Dst: RB_FOREACH
      Src: /src/tmux/window-tree.c:516,1
    - Dst: format_create
      Src: /src/tmux/window-tree.c:526,1
    - Dst: format_defaults
      Src: /src/tmux/window-tree.c:527,1
    - Dst: memcpy
      Src: /src/tmux/window-tree.c:529,1
    - Dst: style_apply
      Src: /src/tmux/window-tree.c:530,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-tree.c:541,1
    - Dst: screen_write_preview
      Src: /src/tmux/window-tree.c:542,1
    - Dst: options_get_string
      Src: /src/tmux/window-tree.c:544,1
    - Dst: format_expand
      Src: /src/tmux/window-tree.c:546,1
    - Dst: window_tree_draw_label
      Src: /src/tmux/window-tree.c:548,1
    - Dst: free
      Src: /src/tmux/window-tree.c:551,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-tree.c:555,1
    - Dst: screen_write_vline
      Src: /src/tmux/window-tree.c:557,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 104
    argCount: 5
    argNames:
    - data
    - s
    - ctx
    - sx
    - sy
    argTypes:
    - struct window_tree_modedata*
    - struct session*
    - struct screen_write_ctx*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 427
    functionDepth: 13
    functionLinenumber: 427
    functionLinenumberEnd: 563
    functionName: window_tree_draw_session
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - style_apply
    - screen_write_vline
    - screen_write_cursormove
    - format_defaults
    - winlink_count
    - RB_FOREACH
    - screen_write_preview
    - window_tree_draw_label
    - format_create
    - memcpy
    - free
    - screen_write_puts
    - options_get_string
    - format_expand
    linkageType: ''
    returnType: void
    signature: "void window_tree_draw_session(struct window_tree_modedata *data, struct
      session *s,\n    struct screen_write_ctx *ctx, u_int sx, u_int sy)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: window_count_panes
      Src: /src/tmux/window-tree.c:581,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/window-tree.c:591,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-tree.c:634,1
    - Dst: screen_write_vline
      Src: /src/tmux/window-tree.c:635,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-tree.c:636,1
    - Dst: screen_write_puts
      Src: /src/tmux/window-tree.c:637,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-tree.c:642,1
    - Dst: screen_write_vline
      Src: /src/tmux/window-tree.c:643,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-tree.c:644,1
    - Dst: screen_write_puts
      Src: /src/tmux/window-tree.c:645,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/window-tree.c:654,1
    - Dst: format_create
      Src: /src/tmux/window-tree.c:663,1
    - Dst: format_defaults
      Src: /src/tmux/window-tree.c:664,1
    - Dst: memcpy
      Src: /src/tmux/window-tree.c:666,1
    - Dst: style_apply
      Src: /src/tmux/window-tree.c:667,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-tree.c:678,1
    - Dst: screen_write_preview
      Src: /src/tmux/window-tree.c:679,1
    - Dst: options_get_string
      Src: /src/tmux/window-tree.c:681,1
    - Dst: format_expand
      Src: /src/tmux/window-tree.c:683,1
    - Dst: window_tree_draw_label
      Src: /src/tmux/window-tree.c:685,1
    - Dst: free
      Src: /src/tmux/window-tree.c:688,1
    - Dst: screen_write_cursormove
      Src: /src/tmux/window-tree.c:692,1
    - Dst: screen_write_vline
      Src: /src/tmux/window-tree.c:694,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 103
    argCount: 6
    argNames:
    - data
    - s
    - wl
    - ctx
    - sx
    - sy
    argTypes:
    - struct window_tree_modedata*
    - struct session*
    - struct winlink*
    - struct screen_write_ctx*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 565
    functionDepth: 13
    functionLinenumber: 565
    functionLinenumberEnd: 700
    functionName: window_tree_draw_window
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - style_apply
    - screen_write_vline
    - TAILQ_FOREACH
    - window_count_panes
    - screen_write_cursormove
    - format_defaults
    - screen_write_preview
    - free
    - window_tree_draw_label
    - format_create
    - memcpy
    - screen_write_puts
    - options_get_string
    - format_expand
    linkageType: ''
    returnType: void
    signature: "void window_tree_draw_window(struct window_tree_modedata *data, struct
      session *s,\n    struct winlink *wl, struct screen_write_ctx *ctx, u_int sx,
      u_int sy)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: window_tree_pull_item
      Src: /src/tmux/window-tree.c:711,1
    - Dst: window_tree_draw_session
      Src: /src/tmux/window-tree.c:719,1
    - Dst: window_tree_draw_window
      Src: /src/tmux/window-tree.c:722,1
    - Dst: screen_write_preview
      Src: /src/tmux/window-tree.c:725,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 5
    argNames:
    - modedata
    - itemdata
    - ctx
    - sx
    - sy
    argTypes:
    - void*
    - void*
    - struct screen_write_ctx*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 702
    functionDepth: 14
    functionLinenumber: 702
    functionLinenumberEnd: 728
    functionName: window_tree_draw
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - window_tree_draw_window
    - screen_write_preview
    - window_tree_pull_item
    - window_tree_draw_session
    linkageType: ''
    returnType: void
    signature: "void window_tree_draw(void *modedata, void *itemdata, struct screen_write_ctx
      *ctx,\n    u_int sx, u_int sy)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: window_tree_pull_item
      Src: /src/tmux/window-tree.c:741,1
    - Dst: strcasestr
      Src: /src/tmux/window-tree.c:750,1
    - Dst: strstr
      Src: /src/tmux/window-tree.c:751,1
    - Dst: strcasestr
      Src: /src/tmux/window-tree.c:756,1
    - Dst: strstr
      Src: /src/tmux/window-tree.c:757,1
    - Dst: osdep_get_name
      Src: /src/tmux/window-tree.c:761,1
    - Dst: free
      Src: /src/tmux/window-tree.c:763,1
    - Dst: strcasestr
      Src: /src/tmux/window-tree.c:767,1
    - Dst: strstr
      Src: /src/tmux/window-tree.c:769,1
    - Dst: free
      Src: /src/tmux/window-tree.c:770,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 4
    argNames:
    - modedata
    - itemdata
    - ss
    - icase
    argTypes:
    - __unused*
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 730
    functionDepth: 3
    functionLinenumber: 730
    functionLinenumberEnd: 774
    functionName: window_tree_search
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - osdep_get_name
    - strcasestr
    - free
    - strstr
    - window_tree_pull_item
    linkageType: ''
    returnType: int
    signature: "int window_tree_search(__unused void *modedata, void *itemdata, const
      char *ss,\n    int icase)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/window-tree.c:783,1
    - Dst: window_tree_key
      Src: /src/tmux/window-tree.c:786,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - modedata
    - c
    - key
    argTypes:
    - void*
    - struct client*
    - key_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 787
    functionName: window_tree_menu
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - window_tree_key
    - TAILQ_FIRST
    linkageType: ''
    returnType: void
    signature: void window_tree_menu(void *modedata, struct client *c, key_code key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: format_create
      Src: /src/tmux/window-tree.c:801,1
    - Dst: window_tree_pull_item
      Src: /src/tmux/window-tree.c:802,1
    - Dst: format_defaults
      Src: /src/tmux/window-tree.c:804,1
    - Dst: format_defaults
      Src: /src/tmux/window-tree.c:806,1
    - Dst: format_defaults
      Src: /src/tmux/window-tree.c:808,1
    - Dst: format_add
      Src: /src/tmux/window-tree.c:809,1
    - Dst: format_expand
      Src: /src/tmux/window-tree.c:811,1
    - Dst: key_string_lookup_string
      Src: /src/tmux/window-tree.c:812,1
    - Dst: free
      Src: /src/tmux/window-tree.c:813,1
    - Dst: format_free
      Src: /src/tmux/window-tree.c:814,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - modedata
    - itemdata
    - line
    argTypes:
    - void*
    - void*
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 789
    functionDepth: 10
    functionLinenumber: 789
    functionLinenumberEnd: 816
    functionName: window_tree_get_key
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - window_tree_pull_item
    - format_free
    - format_defaults
    - free
    - format_add
    - format_create
    - format_expand
    - key_string_lookup_string
    linkageType: ''
    returnType: key_code
    signature: key_code window_tree_get_key(void *modedata, void *itemdata, u_int
      line)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: window_tree_pull_item
      Src: /src/tmux/window-tree.c:834,1
    - Dst: window_tree_pull_item
      Src: /src/tmux/window-tree.c:835,1
    - Dst: sort_would_window_tree_swap
      Src: /src/tmux/window-tree.c:845,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/window-tree.c:849,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/window-tree.c:851,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/window-tree.c:854,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/window-tree.c:856,1
    - Dst: session_set_current
      Src: /src/tmux/window-tree.c:859,1
    - Dst: session_set_current
      Src: /src/tmux/window-tree.c:861,1
    - Dst: session_group_synchronize_from
      Src: /src/tmux/window-tree.c:862,1
    - Dst: server_redraw_session_group
      Src: /src/tmux/window-tree.c:863,1
    - Dst: recalculate_sizes
      Src: /src/tmux/window-tree.c:864,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - cur_itemdata
    - other_itemdata
    - sort_crit
    argTypes:
    - void*
    - void*
    - struct sort_criteria*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 818
    functionDepth: 3
    functionLinenumber: 818
    functionLinenumberEnd: 867
    functionName: window_tree_swap
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 1
    functionsReached:
    - window_tree_pull_item
    - session_group_synchronize_from
    - server_redraw_session_group
    - recalculate_sizes
    - sort_would_window_tree_swap
    - session_set_current
    - TAILQ_INSERT_TAIL
    - TAILQ_REMOVE
    linkageType: ''
    returnType: int
    signature: "int window_tree_swap(void *cur_itemdata, void *other_itemdata,\n    struct
      sort_criteria *sort_crit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sort_crit
    argTypes:
    - struct sort_criteria*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 875
    functionName: window_tree_sort
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void window_tree_sort(struct sort_criteria *sort_crit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 899
    functionName: window_tree_help
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char **

      window_tree_help(u_int *width, const char **item)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/window-tree.c:909,1
    - Dst: args_has
      Src: /src/tmux/window-tree.c:913,1
    - Dst: args_has
      Src: /src/tmux/window-tree.c:915,1
    - Dst: memcpy
      Src: /src/tmux/window-tree.c:919,1
    - Dst: args_has
      Src: /src/tmux/window-tree.c:921,1
    - Dst: xstrdup
      Src: /src/tmux/window-tree.c:922,1
    - Dst: xstrdup
      Src: /src/tmux/window-tree.c:924,1
    - Dst: args_get
      Src: /src/tmux/window-tree.c:924,1
    - Dst: args_has
      Src: /src/tmux/window-tree.c:925,1
    - Dst: xstrdup
      Src: /src/tmux/window-tree.c:926,1
    - Dst: xstrdup
      Src: /src/tmux/window-tree.c:928,1
    - Dst: args_get
      Src: /src/tmux/window-tree.c:928,1
    - Dst: args_count
      Src: /src/tmux/window-tree.c:929,1
    - Dst: xstrdup
      Src: /src/tmux/window-tree.c:930,1
    - Dst: xstrdup
      Src: /src/tmux/window-tree.c:932,1
    - Dst: args_string
      Src: /src/tmux/window-tree.c:932,1
    - Dst: args_has
      Src: /src/tmux/window-tree.c:933,1
    - Dst: args_has
      Src: /src/tmux/window-tree.c:934,1
    - Dst: mode_tree_start
      Src: /src/tmux/window-tree.c:937,1
    - Dst: mode_tree_zoom
      Src: /src/tmux/window-tree.c:941,1
    - Dst: mode_tree_build
      Src: /src/tmux/window-tree.c:943,1
    - Dst: mode_tree_draw
      Src: /src/tmux/window-tree.c:944,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - wme
    - fs
    - args
    argTypes:
    - struct window_mode_entry*
    - struct cmd_find_state*
    - struct args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 901
    functionDepth: 5
    functionLinenumber: 901
    functionLinenumberEnd: 949
    functionName: window_tree_init
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - args_string
    - mode_tree_draw
    - xcalloc
    - mode_tree_zoom
    - mode_tree_start
    - mode_tree_build
    - memcpy
    - args_get
    - args_count
    - xstrdup
    - args_has
    linkageType: ''
    returnType: struct screen
    signature: "struct screen *\nwindow_tree_init(struct window_mode_entry *wme, struct
      cmd_find_state *fs,\n    struct args *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: window_tree_free_item
      Src: /src/tmux/window-tree.c:960,1
    - Dst: free
      Src: /src/tmux/window-tree.c:961,1
    - Dst: free
      Src: /src/tmux/window-tree.c:963,1
    - Dst: free
      Src: /src/tmux/window-tree.c:964,1
    - Dst: free
      Src: /src/tmux/window-tree.c:965,1
    - Dst: free
      Src: /src/tmux/window-tree.c:967,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct window_tree_modedata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 968
    functionName: window_tree_destroy
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - free
    - window_tree_free_item
    linkageType: ''
    returnType: void
    signature: void window_tree_destroy(struct window_tree_modedata *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_free
      Src: /src/tmux/window-tree.c:979,1
    - Dst: window_tree_destroy
      Src: /src/tmux/window-tree.c:980,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 970
    functionDepth: 4
    functionLinenumber: 970
    functionLinenumberEnd: 981
    functionName: window_tree_free
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - window_tree_destroy
    - mode_tree_free
    linkageType: ''
    returnType: void
    signature: void window_tree_free(struct window_mode_entry *wme)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_resize
      Src: /src/tmux/window-tree.c:988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - wme
    - sx
    - sy
    argTypes:
    - struct window_mode_entry*
    - u_int
    - u_int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 983
    functionDepth: 5
    functionLinenumber: 983
    functionLinenumberEnd: 989
    functionName: window_tree_resize
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - mode_tree_resize
    linkageType: ''
    returnType: void
    signature: void window_tree_resize(struct window_mode_entry *wme, u_int sx, u_int
      sy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_build
      Src: /src/tmux/window-tree.c:996,1
    - Dst: mode_tree_draw
      Src: /src/tmux/window-tree.c:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - wme
    argTypes:
    - struct window_mode_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 991
    functionDepth: 4
    functionLinenumber: 991
    functionLinenumberEnd: 999
    functionName: window_tree_update
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - mode_tree_draw
    - mode_tree_build
    linkageType: ''
    returnType: void
    signature: void window_tree_update(struct window_mode_entry *wme)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: window_tree_pull_item
      Src: /src/tmux/window-tree.c:1010,1
    - Dst: xasprintf
      Src: /src/tmux/window-tree.c:1019,1
    - Dst: xasprintf
      Src: /src/tmux/window-tree.c:1024,1
    - Dst: xasprintf
      Src: /src/tmux/window-tree.c:1029,1
    - Dst: cmd_find_clear_state
      Src: /src/tmux/window-tree.c:1033,1
    - Dst: cmd_find_from_winlink_pane
      Src: /src/tmux/window-tree.c:1035,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 2
    argNames:
    - item
    - fs
    argTypes:
    - struct window_tree_itemdata*
    - struct cmd_find_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1001
    functionDepth: 3
    functionLinenumber: 1001
    functionLinenumberEnd: 1037
    functionName: window_tree_get_target
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - cmd_find_clear_state
    - cmd_find_from_winlink_pane
    - window_tree_pull_item
    linkageType: ''
    returnType: char
    signature: "char *\nwindow_tree_get_target(struct window_tree_itemdata *item,\n
      \   struct cmd_find_state *fs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: window_tree_get_target
      Src: /src/tmux/window-tree.c:1048,1
    - Dst: mode_tree_run_command
      Src: /src/tmux/window-tree.c:1050,1
    - Dst: free
      Src: /src/tmux/window-tree.c:1051,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - modedata
    - itemdata
    - c
    - key_code
    argTypes:
    - void*
    - void*
    - struct client*
    - __unused
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1039
    functionDepth: 4
    functionLinenumber: 1039
    functionLinenumberEnd: 1052
    functionName: window_tree_command_each
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - window_tree_get_target
    - free
    - mode_tree_run_command
    linkageType: ''
    returnType: void
    signature: "void window_tree_command_each(void *modedata, void *itemdata, struct
      client *c,\n    __unused key_code key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_build
      Src: /src/tmux/window-tree.c:1060,1
    - Dst: mode_tree_draw
      Src: /src/tmux/window-tree.c:1061,1
    - Dst: window_tree_destroy
      Src: /src/tmux/window-tree.c:1064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - item
    - modedata
    argTypes:
    - __unused*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1054
    functionDepth: 4
    functionLinenumber: 1054
    functionLinenumberEnd: 1066
    functionName: window_tree_command_done
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - window_tree_destroy
    - mode_tree_draw
    - mode_tree_build
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval window_tree_command_done(__unused struct cmdq_item
      *item, void *modedata)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_each_tagged
      Src: /src/tmux/window-tree.c:1078,1
    - Dst: cmdq_append
      Src: /src/tmux/window-tree.c:1083,1
    - Dst: cmdq_get_callback
      Src: /src/tmux/window-tree.c:1083,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - c
    - modedata
    - s
    - done
    argTypes:
    - struct client*
    - void*
    - char*
    - __unused
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1068
    functionDepth: 1
    functionLinenumber: 1068
    functionLinenumberEnd: 1086
    functionName: window_tree_command_callback
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - mode_tree_each_tagged
    - cmdq_get_callback
    - cmdq_append
    linkageType: ''
    returnType: int
    signature: "int window_tree_command_callback(struct client *c, void *modedata,
      const char *s,\n    __unused int done)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: window_tree_destroy
      Src: /src/tmux/window-tree.c:1093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - modedata
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1088
    functionDepth: 2
    functionLinenumber: 1088
    functionLinenumberEnd: 1094
    functionName: window_tree_command_free
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - window_tree_destroy
    linkageType: ''
    returnType: void
    signature: void window_tree_command_free(void *modedata)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: window_tree_pull_item
      Src: /src/tmux/window-tree.c:1105,1
    - Dst: server_destroy_session
      Src: /src/tmux/window-tree.c:1112,1
    - Dst: session_destroy
      Src: /src/tmux/window-tree.c:1113,1
    - Dst: server_kill_window
      Src: /src/tmux/window-tree.c:1118,1
    - Dst: server_kill_pane
      Src: /src/tmux/window-tree.c:1122,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - modedata
    - itemdata
    - c
    - key_code
    argTypes:
    - __unused*
    - void*
    - __unused*
    - __unused
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1096
    functionDepth: 7
    functionLinenumber: 1096
    functionLinenumberEnd: 1125
    functionName: window_tree_kill_each
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - session_destroy
    - server_destroy_session
    - server_kill_pane
    - server_kill_window
    - window_tree_pull_item
    linkageType: ''
    returnType: void
    signature: "void window_tree_kill_each(__unused void *modedata, void *itemdata,\n
      \   __unused struct client *c, __unused key_code key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/tmux/window-tree.c:1136,1
    - Dst: window_tree_kill_each
      Src: /src/tmux/window-tree.c:1139,1
    - Dst: mode_tree_get_current
      Src: /src/tmux/window-tree.c:1139,1
    - Dst: server_renumber_all
      Src: /src/tmux/window-tree.c:1140,1
    - Dst: cmdq_append
      Src: /src/tmux/window-tree.c:1143,1
    - Dst: cmdq_get_callback
      Src: /src/tmux/window-tree.c:1143,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - c
    - modedata
    - s
    - done
    argTypes:
    - struct client*
    - void*
    - char*
    - __unused
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1127
    functionDepth: 8
    functionLinenumber: 1127
    functionLinenumberEnd: 1146
    functionName: window_tree_kill_current_callback
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - cmdq_get_callback
    - server_renumber_all
    - cmdq_append
    - window_tree_kill_each
    - tolower
    - mode_tree_get_current
    linkageType: ''
    returnType: int
    signature: "int window_tree_kill_current_callback(struct client *c, void *modedata,\n
      \   const char *s, __unused int done)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/tmux/window-tree.c:1157,1
    - Dst: mode_tree_each_tagged
      Src: /src/tmux/window-tree.c:1160,1
    - Dst: server_renumber_all
      Src: /src/tmux/window-tree.c:1161,1
    - Dst: cmdq_append
      Src: /src/tmux/window-tree.c:1164,1
    - Dst: cmdq_get_callback
      Src: /src/tmux/window-tree.c:1164,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - c
    - modedata
    - s
    - done
    argTypes:
    - struct client*
    - void*
    - char*
    - __unused
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1148
    functionDepth: 3
    functionLinenumber: 1148
    functionLinenumberEnd: 1167
    functionName: window_tree_kill_tagged_callback
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - mode_tree_each_tagged
    - cmdq_get_callback
    - server_renumber_all
    - cmdq_append
    - tolower
    linkageType: ''
    returnType: int
    signature: "int window_tree_kill_tagged_callback(struct client *c, void *modedata,\n
      \   const char *s, __unused int done)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: window_tree_pull_item
      Src: /src/tmux/window-tree.c:1198,1
    - Dst: mode_tree_expand_current
      Src: /src/tmux/window-tree.c:1202,1
    - Dst: RB_FOREACH
      Src: /src/tmux/window-tree.c:1204,1
    - Dst: mode_tree_set_current
      Src: /src/tmux/window-tree.c:1210,1
    - Dst: mode_tree_expand_current
      Src: /src/tmux/window-tree.c:1216,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/window-tree.c:1218,1
    - Dst: mode_tree_set_current
      Src: /src/tmux/window-tree.c:1224,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 4
    argNames:
    - data
    - key
    - x
    - item
    argTypes:
    - struct window_tree_modedata*
    - key_code
    - u_int
    - struct window_tree_itemdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1169
    functionDepth: 3
    functionLinenumber: 1169
    functionLinenumberEnd: 1228
    functionName: window_tree_mouse
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 0
    functionsReached:
    - TAILQ_FOREACH
    - mode_tree_expand_current
    - RB_FOREACH
    - mode_tree_set_current
    - window_tree_pull_item
    linkageType: ''
    returnType: key_code
    signature: "key_code window_tree_mouse(struct window_tree_modedata *data, key_code
      key, u_int x,\n    struct window_tree_itemdata *item)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: mode_tree_get_current
      Src: /src/tmux/window-tree.c:1246,1
    - Dst: mode_tree_key
      Src: /src/tmux/window-tree.c:1247,1
    - Dst: mode_tree_get_current
      Src: /src/tmux/window-tree.c:1250,1
    - Dst: KEYC_IS_MOUSE
      Src: /src/tmux/window-tree.c:1254,1
    - Dst: window_tree_mouse
      Src: /src/tmux/window-tree.c:1255,1
    - Dst: mode_tree_expand
      Src: /src/tmux/window-tree.c:1267,1
    - Dst: mode_tree_expand
      Src: /src/tmux/window-tree.c:1268,1
    - Dst: mode_tree_set_current
      Src: /src/tmux/window-tree.c:1269,1
    - Dst: mode_tree_set_current
      Src: /src/tmux/window-tree.c:1270,1
    - Dst: window_tree_pull_item
      Src: /src/tmux/window-tree.c:1273,1
    - Dst: server_set_marked
      Src: /src/tmux/window-tree.c:1274,1
    - Dst: mode_tree_build
      Src: /src/tmux/window-tree.c:1275,1
    - Dst: server_clear_marked
      Src: /src/tmux/window-tree.c:1278,1
    - Dst: mode_tree_build
      Src: /src/tmux/window-tree.c:1279,1
    - Dst: window_tree_pull_item
      Src: /src/tmux/window-tree.c:1282,1
    - Dst: xasprintf
      Src: /src/tmux/window-tree.c:1289,1
    - Dst: xasprintf
      Src: /src/tmux/window-tree.c:1294,1
    - Dst: window_pane_index
      Src: /src/tmux/window-tree.c:1297,1
    - Dst: xasprintf
      Src: /src/tmux/window-tree.c:1299,1
    - Dst: status_prompt_set
      Src: /src/tmux/window-tree.c:1305,1
    - Dst: free
      Src: /src/tmux/window-tree.c:1309,1
    - Dst: mode_tree_count_tagged
      Src: /src/tmux/window-tree.c:1312,1
    - Dst: xasprintf
      Src: /src/tmux/window-tree.c:1315,1
    - Dst: status_prompt_set
      Src: /src/tmux/window-tree.c:1317,1
    - Dst: free
      Src: /src/tmux/window-tree.c:1321,1
    - Dst: mode_tree_count_tagged
      Src: /src/tmux/window-tree.c:1324,1
    - Dst: xasprintf
      Src: /src/tmux/window-tree.c:1326,1
    - Dst: xasprintf
      Src: /src/tmux/window-tree.c:1328,1
    - Dst: status_prompt_set
      Src: /src/tmux/window-tree.c:1330,1
    - Dst: free
      Src: /src/tmux/window-tree.c:1333,1
    - Dst: window_tree_get_target
      Src: /src/tmux/window-tree.c:1336,1
    - Dst: mode_tree_run_command
      Src: /src/tmux/window-tree.c:1338,1
    - Dst: free
      Src: /src/tmux/window-tree.c:1340,1
    - Dst: window_pane_reset_mode
      Src: /src/tmux/window-tree.c:1344,1
    - Dst: mode_tree_draw
      Src: /src/tmux/window-tree.c:1346,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 94
    argCount: 6
    argNames:
    - wme
    - c
    - s
    - wl
    - key
    - m
    argTypes:
    - struct window_mode_entry*
    - struct client*
    - __unused*
    - __unused*
    - key_code
    - struct mouse_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1230
    functionDepth: 8
    functionLinenumber: 1230
    functionLinenumberEnd: 1349
    functionName: window_tree_key
    functionSourceFile: /src/tmux/window-tree.c
    functionUses: 1
    functionsReached:
    - mode_tree_key
    - mode_tree_draw
    - window_tree_mouse
    - window_tree_get_target
    - mode_tree_set_current
    - server_clear_marked
    - status_prompt_set
    - window_pane_index
    - window_tree_pull_item
    - mode_tree_count_tagged
    - mode_tree_run_command
    - KEYC_IS_MOUSE
    - xasprintf
    - server_set_marked
    - mode_tree_build
    - free
    - mode_tree_expand
    - mode_tree_get_current
    - window_pane_reset_mode
    linkageType: ''
    returnType: void
    signature: "void window_tree_key(struct window_mode_entry *wme, struct client
      *c,\n    __unused struct session *s, __unused struct winlink *wl, key_code key,\n
      \   struct mouse_event *m)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-kill-pane.c:47,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-kill-pane.c:48,1
    - Dst: args_has
      Src: /src/tmux/cmd-kill-pane.c:52,1
    - Dst: server_unzoom_window
      Src: /src/tmux/cmd-kill-pane.c:53,1
    - Dst: TAILQ_FOREACH_SAFE
      Src: /src/tmux/cmd-kill-pane.c:54,1
    - Dst: server_client_remove_pane
      Src: /src/tmux/cmd-kill-pane.c:57,1
    - Dst: layout_close_pane
      Src: /src/tmux/cmd-kill-pane.c:58,1
    - Dst: window_remove_pane
      Src: /src/tmux/cmd-kill-pane.c:59,1
    - Dst: server_redraw_window
      Src: /src/tmux/cmd-kill-pane.c:61,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-kill-pane.c:66,1
    - Dst: server_kill_pane
      Src: /src/tmux/cmd-kill-pane.c:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 44
    functionDepth: 7
    functionLinenumber: 44
    functionLinenumberEnd: 71
    functionName: cmd_kill_pane_exec
    functionSourceFile: /src/tmux/cmd-kill-pane.c
    functionUses: 0
    functionsReached:
    - layout_close_pane
    - cmdq_error
    - server_redraw_window
    - cmd_get_args
    - server_kill_pane
    - TAILQ_FOREACH_SAFE
    - server_unzoom_window
    - server_client_remove_pane
    - window_remove_pane
    - cmdq_get_target
    - args_has
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_kill_pane_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-resize-pane.c:56,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-resize-pane.c:57,1
    - Dst: args_has
      Src: /src/tmux/cmd-resize-pane.c:67,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/cmd-resize-pane.c:68,1
    - Dst: screen_size_y
      Src: /src/tmux/cmd-resize-pane.c:70,1
    - Dst: grid_remove_history
      Src: /src/tmux/cmd-resize-pane.c:73,1
    - Dst: args_has
      Src: /src/tmux/cmd-resize-pane.c:79,1
    - Dst: cmd_resize_pane_mouse_update
      Src: /src/tmux/cmd-resize-pane.c:80,1
    - Dst: args_has
      Src: /src/tmux/cmd-resize-pane.c:82,1
    - Dst: window_unzoom
      Src: /src/tmux/cmd-resize-pane.c:84,1
    - Dst: window_zoom
      Src: /src/tmux/cmd-resize-pane.c:86,1
    - Dst: server_redraw_window
      Src: /src/tmux/cmd-resize-pane.c:87,1
    - Dst: server_unzoom_window
      Src: /src/tmux/cmd-resize-pane.c:90,1
    - Dst: args_count
      Src: /src/tmux/cmd-resize-pane.c:92,1
    - Dst: strtonum
      Src: /src/tmux/cmd-resize-pane.c:95,1
    - Dst: args_string
      Src: /src/tmux/cmd-resize-pane.c:95,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-resize-pane.c:97,1
    - Dst: args_has
      Src: /src/tmux/cmd-resize-pane.c:102,1
    - Dst: args_percentage
      Src: /src/tmux/cmd-resize-pane.c:103,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-resize-pane.c:105,1
    - Dst: free
      Src: /src/tmux/cmd-resize-pane.c:106,1
    - Dst: layout_resize_pane_to
      Src: /src/tmux/cmd-resize-pane.c:109,1
    - Dst: args_has
      Src: /src/tmux/cmd-resize-pane.c:111,1
    - Dst: args_percentage
      Src: /src/tmux/cmd-resize-pane.c:112,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-resize-pane.c:114,1
    - Dst: free
      Src: /src/tmux/cmd-resize-pane.c:115,1
    - Dst: options_get_number
      Src: /src/tmux/cmd-resize-pane.c:118,1
    - Dst: layout_resize_pane_to
      Src: /src/tmux/cmd-resize-pane.c:129,1
    - Dst: args_has
      Src: /src/tmux/cmd-resize-pane.c:132,1
    - Dst: layout_resize_pane
      Src: /src/tmux/cmd-resize-pane.c:133,1
    - Dst: args_has
      Src: /src/tmux/cmd-resize-pane.c:134,1
    - Dst: layout_resize_pane
      Src: /src/tmux/cmd-resize-pane.c:135,1
    - Dst: args_has
      Src: /src/tmux/cmd-resize-pane.c:136,1
    - Dst: layout_resize_pane
      Src: /src/tmux/cmd-resize-pane.c:137,1
    - Dst: args_has
      Src: /src/tmux/cmd-resize-pane.c:138,1
    - Dst: layout_resize_pane
      Src: /src/tmux/cmd-resize-pane.c:139,1
    - Dst: server_redraw_window
      Src: /src/tmux/cmd-resize-pane.c:140,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 69
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 53
    functionDepth: 5
    functionLinenumber: 53
    functionLinenumberEnd: 143
    functionName: cmd_resize_pane_exec
    functionSourceFile: /src/tmux/cmd-resize-pane.c
    functionUses: 0
    functionsReached:
    - server_redraw_window
    - window_zoom
    - layout_resize_pane
    - args_count
    - args_has
    - screen_size_y
    - args_string
    - strtonum
    - args_percentage
    - server_unzoom_window
    - window_unzoom
    - layout_resize_pane_to
    - grid_remove_history
    - cmd_get_args
    - cmd_resize_pane_mouse_update
    - cmdq_get_target
    - cmdq_error
    - free
    - TAILQ_EMPTY
    - options_get_number
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_resize_pane_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-resize-pane.c:148,1
    - Dst: cmdq_get_event
      Src: /src/tmux/cmd-resize-pane.c:149,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-resize-pane.c:153,1
    - Dst: cmd_mouse_pane
      Src: /src/tmux/cmd-resize-pane.c:158,1
    - Dst: cmd_resize_pane_mouse_update_tiled
      Src: /src/tmux/cmd-resize-pane.c:164,1
    - Dst: window_redraw_active_switch
      Src: /src/tmux/cmd-resize-pane.c:168,1
    - Dst: window_set_active_pane
      Src: /src/tmux/cmd-resize-pane.c:169,1
    - Dst: cmd_resize_pane_mouse_update_floating
      Src: /src/tmux/cmd-resize-pane.c:172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - __unused*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 174
    functionName: cmd_resize_pane_mouse_update
    functionSourceFile: /src/tmux/cmd-resize-pane.c
    functionUses: 1
    functionsReached:
    - cmdq_get_event
    - window_redraw_active_switch
    - cmd_resize_pane_mouse_update_tiled
    - cmd_resize_pane_mouse_update_floating
    - cmd_mouse_pane
    - cmdq_get_client
    - cmdq_get_target
    - window_set_active_pane
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_resize_pane_mouse_update(__unused struct cmd *self,
      struct cmdq_item *item)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: cmd_mouse_pane
      Src: /src/tmux/cmd-resize-pane.c:186,1
    - Dst: layout_set_size
      Src: /src/tmux/cmd-resize-pane.c:217,1
    - Dst: layout_set_size
      Src: /src/tmux/cmd-resize-pane.c:229,1
    - Dst: layout_set_size
      Src: /src/tmux/cmd-resize-pane.c:241,1
    - Dst: layout_set_size
      Src: /src/tmux/cmd-resize-pane.c:252,1
    - Dst: layout_set_size
      Src: /src/tmux/cmd-resize-pane.c:259,1
    - Dst: layout_set_size
      Src: /src/tmux/cmd-resize-pane.c:267,1
    - Dst: layout_set_size
      Src: /src/tmux/cmd-resize-pane.c:274,1
    - Dst: layout_set_size
      Src: /src/tmux/cmd-resize-pane.c:280,1
    - Dst: layout_fix_panes
      Src: /src/tmux/cmd-resize-pane.c:284,1
    - Dst: server_redraw_window
      Src: /src/tmux/cmd-resize-pane.c:285,1
    - Dst: server_redraw_window_borders
      Src: /src/tmux/cmd-resize-pane.c:286,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 99
    argCount: 2
    argNames:
    - c
    - m
    argTypes:
    - struct client*
    - struct mouse_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 288
    functionName: cmd_resize_pane_mouse_update_floating
    functionSourceFile: /src/tmux/cmd-resize-pane.c
    functionUses: 1
    functionsReached:
    - layout_fix_panes
    - layout_set_size
    - server_redraw_window
    - cmd_mouse_pane
    - server_redraw_window_borders
    linkageType: ''
    returnType: void
    signature: void cmd_resize_pane_mouse_update_floating(struct client *c, struct
      mouse_event *m)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: nitems
      Src: /src/tmux/cmd-resize-pane.c:299,1
    - Dst: cmd_mouse_window
      Src: /src/tmux/cmd-resize-pane.c:303,1
    - Dst: nitems
      Src: /src/tmux/cmd-resize-pane.c:321,1
    - Dst: layout_search_by_border
      Src: /src/tmux/cmd-resize-pane.c:322,1
    - Dst: layout_resize_layout
      Src: /src/tmux/cmd-resize-pane.c:345,1
    - Dst: layout_resize_layout
      Src: /src/tmux/cmd-resize-pane.c:348,1
    - Dst: server_redraw_window
      Src: /src/tmux/cmd-resize-pane.c:353,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 49
    argCount: 2
    argNames:
    - c
    - m
    argTypes:
    - struct client*
    - struct mouse_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 290
    functionDepth: 4
    functionLinenumber: 290
    functionLinenumberEnd: 354
    functionName: cmd_resize_pane_mouse_update_tiled
    functionSourceFile: /src/tmux/cmd-resize-pane.c
    functionUses: 1
    functionsReached:
    - cmd_mouse_window
    - nitems
    - server_redraw_window
    - layout_resize_layout
    - layout_search_by_border
    linkageType: ''
    returnType: void
    signature: void cmd_resize_pane_mouse_update_tiled(struct client *c, struct mouse_event
      *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hook_name
    - ','
    - default_value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 247
    functionName: OPTIONS_TABLE_HOOK
    functionSourceFile: /src/tmux/options-table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPTIONS_TABLE_HOOK(hook_name, default_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hook_name
    - ','
    - default_value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 256
    functionName: OPTIONS_TABLE_PANE_HOOK
    functionSourceFile: /src/tmux/options-table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPTIONS_TABLE_PANE_HOOK(hook_name, default_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hook_name
    - ','
    - default_value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 265
    functionName: OPTIONS_TABLE_WINDOW_HOOK
    functionSourceFile: /src/tmux/options-table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPTIONS_TABLE_WINDOW_HOOK(hook_name, default_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - args
    - u_int
    - cause
    argTypes:
    - __unused*
    - __unused
    - __unused**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: cmd_command_prompt_args_parse
    functionSourceFile: /src/tmux/cmd-command-prompt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum args_parse_type
    signature: "enum args_parse_type cmd_command_prompt_args_parse(__unused struct
      args *args, __unused u_int idx,\n    __unused char **cause)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-command-prompt.c:83,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/cmd-command-prompt.c:84,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-command-prompt.c:85,1
    - Dst: args_count
      Src: /src/tmux/cmd-command-prompt.c:90,1
    - Dst: args_has
      Src: /src/tmux/cmd-command-prompt.c:91,1
    - Dst: args_has
      Src: /src/tmux/cmd-command-prompt.c:95,1
    - Dst: xcalloc
      Src: /src/tmux/cmd-command-prompt.c:98,1
    - Dst: args_make_commands_prepare
      Src: /src/tmux/cmd-command-prompt.c:101,1
    - Dst: args_has
      Src: /src/tmux/cmd-command-prompt.c:102,1
    - Dst: args_get
      Src: /src/tmux/cmd-command-prompt.c:104,1
    - Dst: args_make_commands_get_command
      Src: /src/tmux/cmd-command-prompt.c:106,1
    - Dst: xasprintf
      Src: /src/tmux/cmd-command-prompt.c:107,1
    - Dst: free
      Src: /src/tmux/cmd-command-prompt.c:108,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-command-prompt.c:110,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-command-prompt.c:115,1
    - Dst: args_get
      Src: /src/tmux/cmd-command-prompt.c:116,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-command-prompt.c:117,1
    - Dst: args_has
      Src: /src/tmux/cmd-command-prompt.c:120,1
    - Dst: xcalloc
      Src: /src/tmux/cmd-command-prompt.c:121,1
    - Dst: strsep
      Src: /src/tmux/cmd-command-prompt.c:126,1
    - Dst: xreallocarray
      Src: /src/tmux/cmd-command-prompt.c:127,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-command-prompt.c:130,1
    - Dst: xasprintf
      Src: /src/tmux/cmd-command-prompt.c:132,1
    - Dst: strsep
      Src: /src/tmux/cmd-command-prompt.c:136,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-command-prompt.c:141,1
    - Dst: free
      Src: /src/tmux/cmd-command-prompt.c:144,1
    - Dst: free
      Src: /src/tmux/cmd-command-prompt.c:145,1
    - Dst: args_get
      Src: /src/tmux/cmd-command-prompt.c:148,1
    - Dst: status_prompt_type
      Src: /src/tmux/cmd-command-prompt.c:149,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-command-prompt.c:151,1
    - Dst: cmd_command_prompt_free
      Src: /src/tmux/cmd-command-prompt.c:152,1
    - Dst: args_has
      Src: /src/tmux/cmd-command-prompt.c:158,1
    - Dst: args_has
      Src: /src/tmux/cmd-command-prompt.c:160,1
    - Dst: args_has
      Src: /src/tmux/cmd-command-prompt.c:162,1
    - Dst: args_has
      Src: /src/tmux/cmd-command-prompt.c:164,1
    - Dst: args_has
      Src: /src/tmux/cmd-command-prompt.c:166,1
    - Dst: args_has
      Src: /src/tmux/cmd-command-prompt.c:168,1
    - Dst: status_prompt_set
      Src: /src/tmux/cmd-command-prompt.c:170,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 73
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 80
    functionDepth: 8
    functionLinenumber: 80
    functionLinenumberEnd: 177
    functionName: cmd_command_prompt_exec
    functionSourceFile: /src/tmux/cmd-command-prompt.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - status_prompt_type
    - cmdq_error
    - cmd_get_args
    - xcalloc
    - strsep
    - free
    - cmdq_get_target_client
    - args_get
    - xreallocarray
    - args_make_commands_get_command
    - args_make_commands_prepare
    - args_count
    - cmd_command_prompt_free
    - xstrdup
    - cmdq_get_target
    - args_has
    - status_prompt_set
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_command_prompt_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: cmd_append_argv
      Src: /src/tmux/cmd-command-prompt.c:197,1
    - Dst: status_prompt_update
      Src: /src/tmux/cmd-command-prompt.c:200,1
    - Dst: cmd_copy_argv
      Src: /src/tmux/cmd-command-prompt.c:206,1
    - Dst: cmd_append_argv
      Src: /src/tmux/cmd-command-prompt.c:208,1
    - Dst: cmd_free_argv
      Src: /src/tmux/cmd-command-prompt.c:211,1
    - Dst: cmd_copy_argv
      Src: /src/tmux/cmd-command-prompt.c:213,1
    - Dst: args_make_commands
      Src: /src/tmux/cmd-command-prompt.c:216,1
    - Dst: cmdq_append
      Src: /src/tmux/cmd-command-prompt.c:218,1
    - Dst: cmdq_get_error
      Src: /src/tmux/cmd-command-prompt.c:218,1
    - Dst: free
      Src: /src/tmux/cmd-command-prompt.c:219,1
    - Dst: cmdq_get_command
      Src: /src/tmux/cmd-command-prompt.c:221,1
    - Dst: cmdq_append
      Src: /src/tmux/cmd-command-prompt.c:222,1
    - Dst: cmdq_get_command
      Src: /src/tmux/cmd-command-prompt.c:224,1
    - Dst: cmdq_get_state
      Src: /src/tmux/cmd-command-prompt.c:224,1
    - Dst: cmdq_insert_after
      Src: /src/tmux/cmd-command-prompt.c:225,1
    - Dst: cmd_free_argv
      Src: /src/tmux/cmd-command-prompt.c:227,1
    - Dst: cmdq_continue
      Src: /src/tmux/cmd-command-prompt.c:234,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 4
    argNames:
    - c
    - data
    - s
    - done
    argTypes:
    - struct client*
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 179
    functionDepth: 4
    functionLinenumber: 179
    functionLinenumberEnd: 236
    functionName: cmd_command_prompt_callback
    functionSourceFile: /src/tmux/cmd-command-prompt.c
    functionUses: 0
    functionsReached:
    - cmdq_continue
    - cmdq_append
    - cmdq_get_state
    - cmdq_insert_after
    - cmd_append_argv
    - free
    - status_prompt_update
    - cmdq_get_error
    - args_make_commands
    - cmdq_get_command
    - cmd_copy_argv
    - cmd_free_argv
    linkageType: ''
    returnType: int
    signature: "int cmd_command_prompt_callback(struct client *c, void *data, const
      char *s,\n    int done)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/tmux/cmd-command-prompt.c:245,1
    - Dst: free
      Src: /src/tmux/cmd-command-prompt.c:246,1
    - Dst: free
      Src: /src/tmux/cmd-command-prompt.c:248,1
    - Dst: cmd_free_argv
      Src: /src/tmux/cmd-command-prompt.c:249,1
    - Dst: args_make_commands_free
      Src: /src/tmux/cmd-command-prompt.c:250,1
    - Dst: free
      Src: /src/tmux/cmd-command-prompt.c:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 238
    functionDepth: 4
    functionLinenumber: 238
    functionLinenumberEnd: 252
    functionName: cmd_command_prompt_free
    functionSourceFile: /src/tmux/cmd-command-prompt.c
    functionUses: 1
    functionsReached:
    - args_make_commands_free
    - free
    - cmd_free_argv
    linkageType: ''
    returnType: void
    signature: void cmd_command_prompt_free(void *data)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-detach-client.c:60,1
    - Dst: cmdq_get_source
      Src: /src/tmux/cmd-detach-client.c:61,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-detach-client.c:62,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/cmd-detach-client.c:63,1
    - Dst: args_get
      Src: /src/tmux/cmd-detach-client.c:66,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-detach-client.c:68,1
    - Dst: server_client_suspend
      Src: /src/tmux/cmd-detach-client.c:69,1
    - Dst: args_has
      Src: /src/tmux/cmd-detach-client.c:74,1
    - Dst: args_has
      Src: /src/tmux/cmd-detach-client.c:74,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-detach-client.c:75,1
    - Dst: args_has
      Src: /src/tmux/cmd-detach-client.c:80,1
    - Dst: args_has
      Src: /src/tmux/cmd-detach-client.c:85,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/cmd-detach-client.c:89,1
    - Dst: server_client_exec
      Src: /src/tmux/cmd-detach-client.c:92,1
    - Dst: server_client_detach
      Src: /src/tmux/cmd-detach-client.c:94,1
    - Dst: args_has
      Src: /src/tmux/cmd-detach-client.c:100,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/cmd-detach-client.c:101,1
    - Dst: server_client_exec
      Src: /src/tmux/cmd-detach-client.c:104,1
    - Dst: server_client_detach
      Src: /src/tmux/cmd-detach-client.c:106,1
    - Dst: server_client_exec
      Src: /src/tmux/cmd-detach-client.c:113,1
    - Dst: server_client_detach
      Src: /src/tmux/cmd-detach-client.c:115,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 57
    functionDepth: 5
    functionLinenumber: 57
    functionLinenumberEnd: 117
    functionName: cmd_detach_client_exec
    functionSourceFile: /src/tmux/cmd-detach-client.c
    functionUses: 0
    functionsReached:
    - cmdq_error
    - TAILQ_FOREACH
    - cmd_get_args
    - server_client_suspend
    - cmd_get_entry
    - server_client_detach
    - cmdq_get_target_client
    - args_get
    - cmdq_get_client
    - cmdq_get_source
    - args_has
    - server_client_exec
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_detach_client_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cell_type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: tty_acs_double_borders
    functionSourceFile: /src/tmux/tty-acs.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct utf8_data
    signature: 'struct utf8_data *

      tty_acs_double_borders(int cell_type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cell_type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: tty_acs_heavy_borders
    functionSourceFile: /src/tmux/tty-acs.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct utf8_data
    signature: 'struct utf8_data *

      tty_acs_heavy_borders(int cell_type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cell_type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: tty_acs_rounded_borders
    functionSourceFile: /src/tmux/tty-acs.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct utf8_data
    signature: 'struct utf8_data *

      tty_acs_rounded_borders(int cell_type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 192
    functionName: tty_acs_cmp
    functionSourceFile: /src/tmux/tty-acs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tty_acs_cmp(const void *key, const void *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/tmux/tty-acs.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 201
    functionName: tty_acs_reverse_cmp
    functionSourceFile: /src/tmux/tty-acs.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int tty_acs_reverse_cmp(const void *key, const void *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tty_term_has
      Src: /src/tmux/tty-acs.c:220,1
    - Dst: tty_term_number
      Src: /src/tmux/tty-acs.c:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - tty
    argTypes:
    - struct tty*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 227
    functionName: tty_acs_needed
    functionSourceFile: /src/tmux/tty-acs.c
    functionUses: 4
    functionsReached:
    - tty_term_has
    - tty_term_number
    linkageType: ''
    returnType: int
    signature: int tty_acs_needed(struct tty *tty)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tty_acs_needed
      Src: /src/tmux/tty-acs.c:236,1
    - Dst: bsearch
      Src: /src/tmux/tty-acs.c:243,1
    - Dst: nitems
      Src: /src/tmux/tty-acs.c:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - tty
    - ch
    argTypes:
    - struct tty*
    - u_char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 230
    functionDepth: 3
    functionLinenumber: 230
    functionLinenumberEnd: 248
    functionName: tty_acs_get
    functionSourceFile: /src/tmux/tty-acs.c
    functionUses: 3
    functionsReached:
    - nitems
    - tty_acs_needed
    - bsearch
    linkageType: ''
    returnType: char
    signature: 'char *

      tty_acs_get(struct tty *tty, u_char ch)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nitems
      Src: /src/tmux/tty-acs.c:259,1
    - Dst: nitems
      Src: /src/tmux/tty-acs.c:262,1
    - Dst: bsearch
      Src: /src/tmux/tty-acs.c:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - tty
    - s
    - slen
    argTypes:
    - __unused*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 269
    functionName: tty_acs_reverse_get
    functionSourceFile: /src/tmux/tty-acs.c
    functionUses: 1
    functionsReached:
    - nitems
    - bsearch
    linkageType: ''
    returnType: int
    signature: int tty_acs_reverse_get(__unused struct tty *tty, const char *s, size_t
      slen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: format_add
      Src: /src/tmux/cmd-list-commands.c:55,1
    - Dst: format_add
      Src: /src/tmux/cmd-list-commands.c:60,1
    - Dst: format_add
      Src: /src/tmux/cmd-list-commands.c:65,1
    - Dst: format_expand
      Src: /src/tmux/cmd-list-commands.c:67,1
    - Dst: cmdq_print
      Src: /src/tmux/cmd-list-commands.c:69,1
    - Dst: free
      Src: /src/tmux/cmd-list-commands.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - entry
    - ft
    - item
    argTypes:
    - struct cmd_entry*
    - struct format_tree*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 48
    functionDepth: 10
    functionLinenumber: 48
    functionLinenumberEnd: 71
    functionName: cmd_list_single_command
    functionSourceFile: /src/tmux/cmd-list-commands.c
    functionUses: 0
    functionsReached:
    - cmdq_print
    - free
    - format_add
    - format_expand
    linkageType: ''
    returnType: void
    signature: "void cmd_list_single_command(const struct cmd_entry *entry, struct
      format_tree *ft,\n    const char *template, struct cmdq_item *item)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-list-commands.c:76,1
    - Dst: format_create
      Src: /src/tmux/cmd-list-commands.c:86,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-list-commands.c:86,1
    - Dst: format_defaults
      Src: /src/tmux/cmd-list-commands.c:87,1
    - Dst: args_string
      Src: /src/tmux/cmd-list-commands.c:89,1
    - Dst: cmd_list_single_command
      Src: /src/tmux/cmd-list-commands.c:92,1
    - Dst: cmd_find
      Src: /src/tmux/cmd-list-commands.c:94,1
    - Dst: cmd_list_single_command
      Src: /src/tmux/cmd-list-commands.c:96,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-list-commands.c:98,1
    - Dst: free
      Src: /src/tmux/cmd-list-commands.c:99,1
    - Dst: format_free
      Src: /src/tmux/cmd-list-commands.c:100,1
    - Dst: format_free
      Src: /src/tmux/cmd-list-commands.c:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 73
    functionDepth: 11
    functionLinenumber: 73
    functionLinenumberEnd: 107
    functionName: cmd_list_commands
    functionSourceFile: /src/tmux/cmd-list-commands.c
    functionUses: 0
    functionsReached:
    - cmdq_error
    - args_string
    - format_free
    - cmd_get_args
    - format_defaults
    - cmd_find
    - free
    - format_create
    - cmdq_get_client
    - cmd_list_single_command
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_list_commands(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-source-file.c:66,1
    - Dst: log_debug
      Src: /src/tmux/cmd-source-file.c:70,1
    - Dst: log_debug
      Src: /src/tmux/cmd-source-file.c:73,1
    - Dst: cfg_print_causes
      Src: /src/tmux/cmd-source-file.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - item
    - data
    argTypes:
    - struct cmdq_item*
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 6
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: cmd_source_file_complete_cb
    functionSourceFile: /src/tmux/cmd-source-file.c
    functionUses: 0
    functionsReached:
    - log_debug
    - cfg_print_causes
    - cmdq_get_client
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_source_file_complete_cb(struct cmdq_item *item,
      __unused void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get_callback
      Src: /src/tmux/cmd-source-file.c:91,1
    - Dst: cmdq_insert_after
      Src: /src/tmux/cmd-source-file.c:92,1
    - Dst: free
      Src: /src/tmux/cmd-source-file.c:96,1
    - Dst: free
      Src: /src/tmux/cmd-source-file.c:97,1
    - Dst: free
      Src: /src/tmux/cmd-source-file.c:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - c
    - cdata
    argTypes:
    - struct client*
    - struct cmd_source_file_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 99
    functionName: cmd_source_file_complete
    functionSourceFile: /src/tmux/cmd-source-file.c
    functionUses: 0
    functionsReached:
    - cmdq_get_callback
    - free
    - cmdq_insert_after
    linkageType: ''
    returnType: void
    signature: void cmd_source_file_complete(struct client *c, struct cmd_source_file_data
      *cdata)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_DATA
      Src: /src/tmux/cmd-source-file.c:107,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/tmux/cmd-source-file.c:108,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-source-file.c:111,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-source-file.c:117,1
    - Dst: strerror
      Src: /src/tmux/cmd-source-file.c:117,1
    - Dst: load_cfg_from_buffer
      Src: /src/tmux/cmd-source-file.c:119,1
    - Dst: file_read
      Src: /src/tmux/cmd-source-file.c:128,1
    - Dst: cmd_source_file_complete
      Src: /src/tmux/cmd-source-file.c:130,1
    - Dst: cmdq_continue
      Src: /src/tmux/cmd-source-file.c:131,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 6
    argNames:
    - c
    - path
    - error
    - closed
    - buffer
    - data
    argTypes:
    - struct client*
    - char*
    - int
    - int
    - struct evbuffer*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 101
    functionDepth: 4
    functionLinenumber: 101
    functionLinenumberEnd: 133
    functionName: cmd_source_file_done
    functionSourceFile: /src/tmux/cmd-source-file.c
    functionUses: 0
    functionsReached:
    - file_read
    - cmdq_continue
    - cmdq_error
    - EVBUFFER_DATA
    - strerror
    - load_cfg_from_buffer
    - cmd_source_file_complete
    - cmdq_get_target
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: "void cmd_source_file_done(struct client *c, const char *path, int
      error,\n    int closed, struct evbuffer *buffer, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/tmux/cmd-source-file.c:138,1
    - Dst: xreallocarray
      Src: /src/tmux/cmd-source-file.c:139,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-source-file.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cdata
    - path
    argTypes:
    - struct cmd_source_file_data*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 142
    functionName: cmd_source_file_add
    functionSourceFile: /src/tmux/cmd-source-file.c
    functionUses: 0
    functionsReached:
    - log_debug
    - xstrdup
    - xreallocarray
    linkageType: ''
    returnType: void
    signature: void cmd_source_file_add(struct cmd_source_file_data *cdata, const
      char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/tmux/cmd-source-file.c:147,1
    - Dst: strlen
      Src: /src/tmux/cmd-source-file.c:147,1
    - Dst: isalnum
      Src: /src/tmux/cmd-source-file.c:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 157
    functionName: cmd_source_file_quote_for_glob
    functionSourceFile: /src/tmux/cmd-source-file.c
    functionUses: 0
    functionsReached:
    - strlen
    - xmalloc
    - isalnum
    linkageType: ''
    returnType: char
    signature: 'char *

      cmd_source_file_quote_for_glob(const char *path)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-source-file.c:162,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-source-file.c:164,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-source-file.c:174,1
    - Dst: log_debug
      Src: /src/tmux/cmd-source-file.c:178,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-source-file.c:181,1
    - Dst: log_debug
      Src: /src/tmux/cmd-source-file.c:185,1
    - Dst: xcalloc
      Src: /src/tmux/cmd-source-file.c:188,1
    - Dst: args_has
      Src: /src/tmux/cmd-source-file.c:191,1
    - Dst: args_has
      Src: /src/tmux/cmd-source-file.c:193,1
    - Dst: cmd_get_parse_flags
      Src: /src/tmux/cmd-source-file.c:196,1
    - Dst: args_has
      Src: /src/tmux/cmd-source-file.c:197,1
    - Dst: cmd_source_file_quote_for_glob
      Src: /src/tmux/cmd-source-file.c:201,1
    - Dst: server_client_get_cwd
      Src: /src/tmux/cmd-source-file.c:201,1
    - Dst: args_count
      Src: /src/tmux/cmd-source-file.c:203,1
    - Dst: args_string
      Src: /src/tmux/cmd-source-file.c:204,1
    - Dst: args_has
      Src: /src/tmux/cmd-source-file.c:205,1
    - Dst: free
      Src: /src/tmux/cmd-source-file.c:206,1
    - Dst: format_single_from_target
      Src: /src/tmux/cmd-source-file.c:207,1
    - Dst: strcmp
      Src: /src/tmux/cmd-source-file.c:210,1
    - Dst: cmd_source_file_add
      Src: /src/tmux/cmd-source-file.c:211,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-source-file.c:216,1
    - Dst: xasprintf
      Src: /src/tmux/cmd-source-file.c:218,1
    - Dst: log_debug
      Src: /src/tmux/cmd-source-file.c:219,1
    - Dst: glob
      Src: /src/tmux/cmd-source-file.c:221,1
    - Dst: strerror
      Src: /src/tmux/cmd-source-file.c:225,1
    - Dst: strerror
      Src: /src/tmux/cmd-source-file.c:227,1
    - Dst: strerror
      Src: /src/tmux/cmd-source-file.c:229,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-source-file.c:230,1
    - Dst: globfree
      Src: /src/tmux/cmd-source-file.c:233,1
    - Dst: free
      Src: /src/tmux/cmd-source-file.c:234,1
    - Dst: free
      Src: /src/tmux/cmd-source-file.c:237,1
    - Dst: cmd_source_file_add
      Src: /src/tmux/cmd-source-file.c:240,1
    - Dst: globfree
      Src: /src/tmux/cmd-source-file.c:241,1
    - Dst: free
      Src: /src/tmux/cmd-source-file.c:243,1
    - Dst: file_read
      Src: /src/tmux/cmd-source-file.c:249,1
    - Dst: cmd_source_file_complete
      Src: /src/tmux/cmd-source-file.c:252,1
    - Dst: free
      Src: /src/tmux/cmd-source-file.c:254,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 72
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 159
    functionDepth: 13
    functionLinenumber: 159
    functionLinenumberEnd: 256
    functionName: cmd_source_file_exec
    functionSourceFile: /src/tmux/cmd-source-file.c
    functionUses: 0
    functionsReached:
    - cmd_source_file_quote_for_glob
    - cmdq_get_client
    - args_count
    - args_has
    - globfree
    - file_read
    - args_string
    - xcalloc
    - format_single_from_target
    - strerror
    - log_debug
    - xstrdup
    - cmd_source_file_complete
    - cmd_get_args
    - cmd_source_file_add
    - xasprintf
    - cmdq_error
    - cmd_get_parse_flags
    - server_client_get_cwd
    - strcmp
    - free
    - glob
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_source_file_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsnprintf
      Src: /src/tmux/cmd-queue.c:103,1
    - Dst: xsnprintf
      Src: /src/tmux/cmd-queue.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 107
    functionName: cmdq_name
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 0
    functionsReached:
    - xsnprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      cmdq_name(struct client *c)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_new
      Src: /src/tmux/cmd-queue.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 121
    functionName: cmdq_get
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 0
    functionsReached:
    - cmdq_new
    linkageType: ''
    returnType: struct cmdq_list
    signature: 'struct cmdq_list *

      cmdq_get(struct client *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/cmd-queue.c:129,1
    - Dst: TAILQ_INIT
      Src: /src/tmux/cmd-queue.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 132
    functionName: cmdq_new
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 2
    functionsReached:
    - xcalloc
    - TAILQ_INIT
    linkageType: ''
    returnType: struct cmdq_list
    signature: 'struct cmdq_list *

      cmdq_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/cmd-queue.c:138,1
    - Dst: fatalx
      Src: /src/tmux/cmd-queue.c:139,1
    - Dst: free
      Src: /src/tmux/cmd-queue.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - queue
    argTypes:
    - struct cmdq_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 141
    functionName: cmdq_free
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 1
    functionsReached:
    - TAILQ_EMPTY
    - fatalx
    - free
    linkageType: ''
    returnType: void
    signature: void cmdq_free(struct cmdq_list *queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: cmdq_get_name
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      cmdq_get_name(struct cmdq_item *item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: cmdq_get_client
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 41
    functionsReached: []
    linkageType: ''
    returnType: struct client
    signature: 'struct client *

      cmdq_get_client(struct cmdq_item *item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: cmdq_get_target_client
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: struct client
    signature: 'struct client *

      cmdq_get_target_client(struct cmdq_item *item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: cmdq_get_state
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: struct cmdq_state
    signature: 'struct cmdq_state *

      cmdq_get_state(struct cmdq_item *item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: cmdq_get_target
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: struct cmd_find_state
    signature: 'struct cmd_find_state *

      cmdq_get_target(struct cmdq_item *item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: cmdq_get_source
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: struct cmd_find_state
    signature: 'struct cmd_find_state *

      cmdq_get_source(struct cmdq_item *item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 190
    functionName: cmdq_get_event
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: struct key_event
    signature: 'struct key_event *

      cmdq_get_event(struct cmdq_item *item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: cmdq_get_current
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: struct cmd_find_state
    signature: 'struct cmd_find_state *

      cmdq_get_current(struct cmdq_item *item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: cmdq_get_flags
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmdq_get_flags(struct cmdq_item *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/cmd-queue.c:213,1
    - Dst: memcpy
      Src: /src/tmux/cmd-queue.c:218,1
    - Dst: cmd_find_valid_state
      Src: /src/tmux/cmd-queue.c:221,1
    - Dst: cmd_find_copy_state
      Src: /src/tmux/cmd-queue.c:222,1
    - Dst: cmd_find_clear_state
      Src: /src/tmux/cmd-queue.c:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - current
    - event
    - flags
    argTypes:
    - struct cmd_find_state*
    - struct key_event*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 227
    functionName: cmdq_new_state
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 7
    functionsReached:
    - cmd_find_valid_state
    - cmd_find_copy_state
    - xcalloc
    - cmd_find_clear_state
    - memcpy
    linkageType: ''
    returnType: struct cmdq_state
    signature: "struct cmdq_state *\ncmdq_new_state(struct cmd_find_state *current,
      struct key_event *event,\n    int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct cmdq_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 235
    functionName: cmdq_link_state
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct cmdq_state
    signature: 'struct cmdq_state *

      cmdq_link_state(struct cmdq_state *state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_new_state
      Src: /src/tmux/cmd-queue.c:242,1
    - Dst: cmdq_new_state
      Src: /src/tmux/cmd-queue.c:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - state
    - current
    argTypes:
    - struct cmdq_state*
    - struct cmd_find_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 244
    functionName: cmdq_copy_state
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 2
    functionsReached:
    - cmdq_new_state
    linkageType: ''
    returnType: struct cmdq_state
    signature: 'struct cmdq_state *

      cmdq_copy_state(struct cmdq_state *state, struct cmd_find_state *current)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: format_free
      Src: /src/tmux/cmd-queue.c:254,1
    - Dst: free
      Src: /src/tmux/cmd-queue.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct cmdq_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 247
    functionDepth: 5
    functionLinenumber: 247
    functionLinenumberEnd: 256
    functionName: cmdq_free_state
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 7
    functionsReached:
    - format_free
    - free
    linkageType: ''
    returnType: void
    signature: void cmdq_free_state(struct cmdq_state *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/tmux/cmd-queue.c:265,1
    - Dst: xvasprintf
      Src: /src/tmux/cmd-queue.c:266,1
    - Dst: va_end
      Src: /src/tmux/cmd-queue.c:267,1
    - Dst: format_create
      Src: /src/tmux/cmd-queue.c:270,1
    - Dst: format_add
      Src: /src/tmux/cmd-queue.c:271,1
    - Dst: free
      Src: /src/tmux/cmd-queue.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - state
    - key
    - fmt
    argTypes:
    - struct cmdq_state*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 274
    functionName: cmdq_add_format
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 2
    functionsReached:
    - xvasprintf
    - free
    - format_add
    - va_end
    - format_create
    - va_start
    linkageType: ''
    returnType: void
    signature: void cmdq_add_format(struct cmdq_state *state, const char *key, const
      char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format_create
      Src: /src/tmux/cmd-queue.c:281,1
    - Dst: format_merge
      Src: /src/tmux/cmd-queue.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - state
    - ft
    argTypes:
    - struct cmdq_state*
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 283
    functionName: cmdq_add_formats
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 1
    functionsReached:
    - format_create
    - format_merge
    linkageType: ''
    returnType: void
    signature: void cmdq_add_formats(struct cmdq_state *state, struct format_tree
      *ft)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-queue.c:292,1
    - Dst: format_add
      Src: /src/tmux/cmd-queue.c:293,1
    - Dst: format_merge
      Src: /src/tmux/cmd-queue.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - item
    - ft
    argTypes:
    - struct cmdq_item*
    - struct format_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 286
    functionDepth: 3
    functionLinenumber: 286
    functionLinenumberEnd: 297
    functionName: cmdq_merge_formats
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 1
    functionsReached:
    - format_merge
    - cmd_get_entry
    - format_add
    linkageType: ''
    returnType: void
    signature: void cmdq_merge_formats(struct cmdq_item *item, struct format_tree
      *ft)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get
      Src: /src/tmux/cmd-queue.c:303,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/cmd-queue.c:315,1
    - Dst: log_debug
      Src: /src/tmux/cmd-queue.c:316,1
    - Dst: cmdq_name
      Src: /src/tmux/cmd-queue.c:316,1
    - Dst: TAILQ_LAST
      Src: /src/tmux/cmd-queue.c:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - c
    - item
    argTypes:
    - struct client*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 321
    functionName: cmdq_append
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 18
    functionsReached:
    - cmdq_name
    - cmdq_get
    - log_debug
    - TAILQ_LAST
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: struct cmdq_item
    signature: 'struct cmdq_item *

      cmdq_append(struct client *c, struct cmdq_item *item)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_INSERT_AFTER
      Src: /src/tmux/cmd-queue.c:341,1
    - Dst: log_debug
      Src: /src/tmux/cmd-queue.c:342,1
    - Dst: cmdq_name
      Src: /src/tmux/cmd-queue.c:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - after
    - item
    argTypes:
    - struct cmdq_item*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 324
    functionDepth: 3
    functionLinenumber: 324
    functionLinenumberEnd: 349
    functionName: cmdq_insert_after
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 10
    functionsReached:
    - log_debug
    - TAILQ_INSERT_AFTER
    - cmdq_name
    linkageType: ''
    returnType: struct cmdq_item
    signature: 'struct cmdq_item *

      cmdq_insert_after(struct cmdq_item *after, struct cmdq_item *item)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-queue.c:358,1
    - Dst: va_start
      Src: /src/tmux/cmd-queue.c:379,1
    - Dst: xvasprintf
      Src: /src/tmux/cmd-queue.c:380,1
    - Dst: va_end
      Src: /src/tmux/cmd-queue.c:381,1
    - Dst: options_get
      Src: /src/tmux/cmd-queue.c:383,1
    - Dst: free
      Src: /src/tmux/cmd-queue.c:385,1
    - Dst: log_debug
      Src: /src/tmux/cmd-queue.c:388,1
    - Dst: cmdq_new_state
      Src: /src/tmux/cmd-queue.c:394,1
    - Dst: cmdq_add_format
      Src: /src/tmux/cmd-queue.c:395,1
    - Dst: args_print
      Src: /src/tmux/cmd-queue.c:397,1
    - Dst: cmdq_add_format
      Src: /src/tmux/cmd-queue.c:398,1
    - Dst: free
      Src: /src/tmux/cmd-queue.c:399,1
    - Dst: args_count
      Src: /src/tmux/cmd-queue.c:401,1
    - Dst: xsnprintf
      Src: /src/tmux/cmd-queue.c:402,1
    - Dst: cmdq_add_format
      Src: /src/tmux/cmd-queue.c:403,1
    - Dst: args_string
      Src: /src/tmux/cmd-queue.c:403,1
    - Dst: args_first
      Src: /src/tmux/cmd-queue.c:405,1
    - Dst: args_get
      Src: /src/tmux/cmd-queue.c:407,1
    - Dst: xsnprintf
      Src: /src/tmux/cmd-queue.c:409,1
    - Dst: cmdq_add_format
      Src: /src/tmux/cmd-queue.c:410,1
    - Dst: xsnprintf
      Src: /src/tmux/cmd-queue.c:412,1
    - Dst: cmdq_add_format
      Src: /src/tmux/cmd-queue.c:413,1
    - Dst: args_first_value
      Src: /src/tmux/cmd-queue.c:417,1
    - Dst: xsnprintf
      Src: /src/tmux/cmd-queue.c:419,1
    - Dst: cmdq_add_format
      Src: /src/tmux/cmd-queue.c:420,1
    - Dst: args_next_value
      Src: /src/tmux/cmd-queue.c:422,1
    - Dst: args_next
      Src: /src/tmux/cmd-queue.c:425,1
    - Dst: options_array_first
      Src: /src/tmux/cmd-queue.c:428,1
    - Dst: options_array_item_value
      Src: /src/tmux/cmd-queue.c:430,1
    - Dst: cmdq_get_command
      Src: /src/tmux/cmd-queue.c:432,1
    - Dst: cmdq_insert_after
      Src: /src/tmux/cmd-queue.c:434,1
    - Dst: cmdq_append
      Src: /src/tmux/cmd-queue.c:436,1
    - Dst: options_array_next
      Src: /src/tmux/cmd-queue.c:438,1
    - Dst: cmdq_free_state
      Src: /src/tmux/cmd-queue.c:441,1
    - Dst: free
      Src: /src/tmux/cmd-queue.c:442,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 4
    argNames:
    - s
    - item
    - current
    - fmt
    argTypes:
    - struct session*
    - struct cmdq_item*
    - struct cmd_find_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 352
    functionDepth: 6
    functionLinenumber: 352
    functionLinenumberEnd: 443
    functionName: cmdq_insert_hook
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 5
    functionsReached:
    - cmdq_append
    - xsnprintf
    - args_first_value
    - cmdq_free_state
    - args_count
    - options_array_first
    - cmdq_new_state
    - cmdq_add_format
    - args_string
    - cmdq_insert_after
    - args_get
    - va_end
    - va_start
    - log_debug
    - options_get
    - options_array_item_value
    - args_print
    - cmd_get_args
    - args_next_value
    - cmdq_get_command
    - args_first
    - options_array_next
    - args_next
    - xvasprintf
    - free
    linkageType: ''
    returnType: void
    signature: "void cmdq_insert_hook(struct session *s, struct cmdq_item *item,\n
      \   struct cmd_find_state *current, const char *fmt, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 450
    functionName: cmdq_continue
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cmdq_continue(struct cmdq_item *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: server_client_unref
      Src: /src/tmux/cmd-queue.c:457,1
    - Dst: cmd_list_free
      Src: /src/tmux/cmd-queue.c:459,1
    - Dst: cmdq_free_state
      Src: /src/tmux/cmd-queue.c:460,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/cmd-queue.c:462,1
    - Dst: free
      Src: /src/tmux/cmd-queue.c:464,1
    - Dst: free
      Src: /src/tmux/cmd-queue.c:465,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 453
    functionDepth: 6
    functionLinenumber: 453
    functionLinenumberEnd: 466
    functionName: cmdq_remove
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 0
    functionsReached:
    - cmd_list_free
    - server_client_unref
    - free
    - cmdq_free_state
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void cmdq_remove(struct cmdq_item *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_NEXT
      Src: /src/tmux/cmd-queue.c:476,1
    - Dst: TAILQ_NEXT
      Src: /src/tmux/cmd-queue.c:478,1
    - Dst: cmdq_remove
      Src: /src/tmux/cmd-queue.c:480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 469
    functionDepth: 7
    functionLinenumber: 469
    functionLinenumberEnd: 483
    functionName: cmdq_remove_group
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 0
    functionsReached:
    - TAILQ_NEXT
    - cmdq_remove
    linkageType: ''
    returnType: void
    signature: void cmdq_remove_group(struct cmdq_item *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - item
    - data
    argTypes:
    - __unused*
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 490
    functionName: cmdq_empty_command
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmdq_empty_command(__unused struct cmdq_item *item,
      __unused void *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cmd_list_first
      Src: /src/tmux/cmd-queue.c:501,1
    - Dst: cmdq_get_callback
      Src: /src/tmux/cmd-queue.c:502,1
    - Dst: cmdq_new_state
      Src: /src/tmux/cmd-queue.c:505,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-queue.c:510,1
    - Dst: xcalloc
      Src: /src/tmux/cmd-queue.c:512,1
    - Dst: xasprintf
      Src: /src/tmux/cmd-queue.c:513,1
    - Dst: cmd_get_group
      Src: /src/tmux/cmd-queue.c:516,1
    - Dst: cmdq_link_state
      Src: /src/tmux/cmd-queue.c:517,1
    - Dst: log_debug
      Src: /src/tmux/cmd-queue.c:523,1
    - Dst: cmd_list_next
      Src: /src/tmux/cmd-queue.c:531,1
    - Dst: cmdq_free_state
      Src: /src/tmux/cmd-queue.c:535,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - cmdlist
    - state
    argTypes:
    - struct cmd_list*
    - struct cmdq_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 493
    functionDepth: 6
    functionLinenumber: 493
    functionLinenumberEnd: 537
    functionName: cmdq_get_command
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 12
    functionsReached:
    - cmdq_get_callback
    - xasprintf
    - cmd_list_first
    - cmdq_link_state
    - cmdq_new_state
    - xcalloc
    - cmd_get_entry
    - cmd_list_next
    - cmd_get_group
    - log_debug
    - cmdq_free_state
    linkageType: ''
    returnType: struct cmdq_item
    signature: 'struct cmdq_item *

      cmdq_get_command(struct cmd_list *cmdlist, struct cmdq_state *state)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmd_find_from_client
      Src: /src/tmux/cmd-queue.c:547,1
    - Dst: args_get
      Src: /src/tmux/cmd-queue.c:551,1
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-queue.c:551,1
    - Dst: cmd_find_target
      Src: /src/tmux/cmd-queue.c:552,1
    - Dst: cmd_find_clear_state
      Src: /src/tmux/cmd-queue.c:553,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - item
    - fs
    - flag
    argTypes:
    - struct cmdq_item*
    - struct cmd_find_state*
    - struct cmd_entry_flag*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 540
    functionDepth: 7
    functionLinenumber: 540
    functionLinenumberEnd: 557
    functionName: cmdq_find_flag
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 0
    functionsReached:
    - cmd_find_from_client
    - cmd_find_target
    - cmd_get_args
    - cmd_find_clear_state
    - args_get
    linkageType: ''
    returnType: enum cmd_retval
    signature: "enum cmd_retval cmdq_find_flag(struct cmdq_item *item, struct cmd_find_state
      *fs,\n    const struct cmd_entry_flag *flag)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cmd_print
      Src: /src/tmux/cmd-queue.c:571,1
    - Dst: proc_get_peer_uid
      Src: /src/tmux/cmd-queue.c:573,1
    - Dst: getuid
      Src: /src/tmux/cmd-queue.c:574,1
    - Dst: getpwuid
      Src: /src/tmux/cmd-queue.c:575,1
    - Dst: xasprintf
      Src: /src/tmux/cmd-queue.c:576,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-queue.c:578,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-queue.c:580,1
    - Dst: key_string_lookup_key
      Src: /src/tmux/cmd-queue.c:582,1
    - Dst: server_add_message
      Src: /src/tmux/cmd-queue.c:583,1
    - Dst: server_add_message
      Src: /src/tmux/cmd-queue.c:586,1
    - Dst: free
      Src: /src/tmux/cmd-queue.c:589,1
    - Dst: server_add_message
      Src: /src/tmux/cmd-queue.c:591,1
    - Dst: free
      Src: /src/tmux/cmd-queue.c:592,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 593
    functionName: cmdq_add_message
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 0
    functionsReached:
    - cmd_print
    - xasprintf
    - proc_get_peer_uid
    - server_add_message
    - key_string_lookup_key
    - free
    - getuid
    - getpwuid
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void cmdq_add_message(struct cmdq_item *item)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_name
      Src: /src/tmux/cmd-queue.c:599,1
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-queue.c:602,1
    - Dst: cmd_get_entry
      Src: /src/tmux/cmd-queue.c:603,1
    - Dst: cmdq_add_message
      Src: /src/tmux/cmd-queue.c:611,1
    - Dst: log_get_level
      Src: /src/tmux/cmd-queue.c:612,1
    - Dst: cmd_print
      Src: /src/tmux/cmd-queue.c:613,1
    - Dst: log_debug
      Src: /src/tmux/cmd-queue.c:614,1
    - Dst: free
      Src: /src/tmux/cmd-queue.c:615,1
    - Dst: cmdq_guard
      Src: /src/tmux/cmd-queue.c:619,1
    - Dst: cmd_find_client
      Src: /src/tmux/cmd-queue.c:622,1
    - Dst: cmd_find_client
      Src: /src/tmux/cmd-queue.c:627,1
    - Dst: args_get
      Src: /src/tmux/cmd-queue.c:627,1
    - Dst: cmd_find_client
      Src: /src/tmux/cmd-queue.c:633,1
    - Dst: args_get
      Src: /src/tmux/cmd-queue.c:633,1
    - Dst: cmd_find_client
      Src: /src/tmux/cmd-queue.c:639,1
    - Dst: cmdq_find_flag
      Src: /src/tmux/cmd-queue.c:642,1
    - Dst: cmdq_find_flag
      Src: /src/tmux/cmd-queue.c:645,1
    - Dst: struct cmd_entry*::exec
      Src: /src/tmux/cmd-queue.c:649,1
    - Dst: cmd_find_valid_state
      Src: /src/tmux/cmd-queue.c:654,1
    - Dst: cmd_find_valid_state
      Src: /src/tmux/cmd-queue.c:656,1
    - Dst: cmd_find_from_client
      Src: /src/tmux/cmd-queue.c:658,1
    - Dst: cmdq_insert_hook
      Src: /src/tmux/cmd-queue.c:662,1
    - Dst: cmd_find_valid_state
      Src: /src/tmux/cmd-queue.c:669,1
    - Dst: cmd_find_valid_state
      Src: /src/tmux/cmd-queue.c:671,1
    - Dst: cmd_find_from_client
      Src: /src/tmux/cmd-queue.c:673,1
    - Dst: cmdq_insert_hook
      Src: /src/tmux/cmd-queue.c:675,1
    - Dst: cmdq_guard
      Src: /src/tmux/cmd-queue.c:677,1
    - Dst: cmdq_guard
      Src: /src/tmux/cmd-queue.c:679,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 71
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 596
    functionDepth: 8
    functionLinenumber: 596
    functionLinenumberEnd: 681
    functionName: cmdq_fire_command
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 0
    functionsReached:
    - cmd_find_valid_state
    - cmd_print
    - cmdq_find_flag
    - cmd_find_from_client
    - cmdq_insert_hook
    - cmd_find_client
    - cmdq_guard
    - struct cmd_entry*::exec
    - cmd_get_args
    - cmdq_name
    - cmd_get_entry
    - log_get_level
    - free
    - args_get
    - log_debug
    - cmdq_add_message
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmdq_fire_command(struct cmdq_item *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/tmux/cmd-queue.c:689,1
    - Dst: xasprintf
      Src: /src/tmux/cmd-queue.c:690,1
    - Dst: cmdq_new_state
      Src: /src/tmux/cmd-queue.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - name
    - cb
    - data
    argTypes:
    - char*
    - cmdq_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 684
    functionDepth: 3
    functionLinenumber: 684
    functionLinenumberEnd: 700
    functionName: cmdq_get_callback1
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 0
    functionsReached:
    - cmdq_new_state
    - xasprintf
    - xcalloc
    linkageType: ''
    returnType: struct cmdq_item
    signature: 'struct cmdq_item *

      cmdq_get_callback1(const char *name, cmdq_cb cb, void *data)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_error
      Src: /src/tmux/cmd-queue.c:708,1
    - Dst: free
      Src: /src/tmux/cmd-queue.c:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - item
    - data
    argTypes:
    - struct cmdq_item*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 712
    functionName: cmdq_error_callback
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 0
    functionsReached:
    - free
    - cmdq_error
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmdq_error_callback(struct cmdq_item *item, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get_callback
      Src: /src/tmux/cmd-queue.c:718,1
    - Dst: xstrdup
      Src: /src/tmux/cmd-queue.c:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 715
    functionDepth: 2
    functionLinenumber: 715
    functionLinenumberEnd: 719
    functionName: cmdq_get_error
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 4
    functionsReached:
    - cmdq_get_callback
    - xstrdup
    linkageType: ''
    returnType: struct cmdq_item
    signature: 'struct cmdq_item *

      cmdq_get_error(const char *error)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct cmdq_item*::cb
      Src: /src/tmux/cmd-queue.c:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 726
    functionName: cmdq_fire_callback
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 0
    functionsReached:
    - struct cmdq_item*::cb
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmdq_fire_callback(struct cmdq_item *item)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get
      Src: /src/tmux/cmd-queue.c:732,1
    - Dst: cmdq_name
      Src: /src/tmux/cmd-queue.c:733,1
    - Dst: TAILQ_EMPTY
      Src: /src/tmux/cmd-queue.c:739,1
    - Dst: log_debug
      Src: /src/tmux/cmd-queue.c:740,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/cmd-queue.c:743,1
    - Dst: log_debug
      Src: /src/tmux/cmd-queue.c:744,1
    - Dst: log_debug
      Src: /src/tmux/cmd-queue.c:748,1
    - Dst: TAILQ_FIRST
      Src: /src/tmux/cmd-queue.c:750,1
    - Dst: log_debug
      Src: /src/tmux/cmd-queue.c:753,1
    - Dst: time
      Src: /src/tmux/cmd-queue.c:769,1
    - Dst: cmdq_fire_command
      Src: /src/tmux/cmd-queue.c:774,1
    - Dst: cmdq_remove_group
      Src: /src/tmux/cmd-queue.c:781,1
    - Dst: cmdq_fire_callback
      Src: /src/tmux/cmd-queue.c:784,1
    - Dst: cmdq_remove
      Src: /src/tmux/cmd-queue.c:798,1
    - Dst: log_debug
      Src: /src/tmux/cmd-queue.c:802,1
    - Dst: log_debug
      Src: /src/tmux/cmd-queue.c:806,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 729
    functionDepth: 9
    functionLinenumber: 729
    functionLinenumberEnd: 808
    functionName: cmdq_next
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 1
    functionsReached:
    - log_debug
    - cmdq_name
    - TAILQ_FIRST
    - cmdq_get
    - cmdq_fire_command
    - time
    - TAILQ_EMPTY
    - cmdq_remove
    - cmdq_remove_group
    - cmdq_fire_callback
    linkageType: ''
    returnType: u_int
    signature: u_int cmdq_next(struct client *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmdq_get
      Src: /src/tmux/cmd-queue.c:814,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct client*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 811
    functionDepth: 2
    functionLinenumber: 811
    functionLinenumberEnd: 821
    functionName: cmdq_running
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 1
    functionsReached:
    - cmdq_get
    linkageType: ''
    returnType: struct cmdq_item
    signature: 'struct cmdq_item *

      cmdq_running(struct client *c)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: control_write
      Src: /src/tmux/cmd-queue.c:832,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - item
    - guard
    - flags
    argTypes:
    - struct cmdq_item*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 824
    functionDepth: 5
    functionLinenumber: 824
    functionLinenumberEnd: 833
    functionName: cmdq_guard
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 2
    functionsReached:
    - control_write
    linkageType: ''
    returnType: void
    signature: void cmdq_guard(struct cmdq_item *item, const char *guard, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: server_client_print
      Src: /src/tmux/cmd-queue.c:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - item
    - evb
    argTypes:
    - struct cmdq_item*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 836
    functionDepth: 6
    functionLinenumber: 836
    functionLinenumberEnd: 840
    functionName: cmdq_print_data
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 1
    functionsReached:
    - server_client_print
    linkageType: ''
    returnType: void
    signature: void cmdq_print_data(struct cmdq_item *item, struct evbuffer *evb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/tmux/cmd-queue.c:849,1
    - Dst: fatalx
      Src: /src/tmux/cmd-queue.c:851,1
    - Dst: va_start
      Src: /src/tmux/cmd-queue.c:853,1
    - Dst: evbuffer_add_vprintf
      Src: /src/tmux/cmd-queue.c:854,1
    - Dst: va_end
      Src: /src/tmux/cmd-queue.c:855,1
    - Dst: cmdq_print_data
      Src: /src/tmux/cmd-queue.c:857,1
    - Dst: evbuffer_free
      Src: /src/tmux/cmd-queue.c:858,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - item
    - fmt
    argTypes:
    - struct cmdq_item*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 843
    functionDepth: 7
    functionLinenumber: 843
    functionLinenumberEnd: 859
    functionName: cmdq_print
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 25
    functionsReached:
    - fatalx
    - evbuffer_free
    - cmdq_print_data
    - va_end
    - va_start
    - evbuffer_add_vprintf
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void cmdq_print(struct cmdq_item *item, const char *fmt, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/tmux/cmd-queue.c:872,1
    - Dst: xvasprintf
      Src: /src/tmux/cmd-queue.c:873,1
    - Dst: va_end
      Src: /src/tmux/cmd-queue.c:874,1
    - Dst: log_debug
      Src: /src/tmux/cmd-queue.c:876,1
    - Dst: cmd_get_source
      Src: /src/tmux/cmd-queue.c:879,1
    - Dst: cfg_add_cause
      Src: /src/tmux/cmd-queue.c:880,1
    - Dst: server_add_message
      Src: /src/tmux/cmd-queue.c:882,1
    - Dst: utf8_sanitize
      Src: /src/tmux/cmd-queue.c:885,1
    - Dst: free
      Src: /src/tmux/cmd-queue.c:886,1
    - Dst: control_write
      Src: /src/tmux/cmd-queue.c:889,1
    - Dst: file_error
      Src: /src/tmux/cmd-queue.c:891,1
    - Dst: toupper
      Src: /src/tmux/cmd-queue.c:894,1
    - Dst: status_message_set
      Src: /src/tmux/cmd-queue.c:895,1
    - Dst: free
      Src: /src/tmux/cmd-queue.c:898,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - item
    - fmt
    argTypes:
    - struct cmdq_item*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 862
    functionDepth: 7
    functionLinenumber: 862
    functionLinenumberEnd: 899
    functionName: cmdq_error
    functionSourceFile: /src/tmux/cmd-queue.c
    functionUses: 72
    functionsReached:
    - utf8_sanitize
    - file_error
    - server_add_message
    - toupper
    - cmd_get_source
    - xvasprintf
    - free
    - va_end
    - va_start
    - log_debug
    - cfg_add_cause
    - status_message_set
    - control_write
    linkageType: ''
    returnType: void
    signature: void cmdq_error(struct cmdq_item *item, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - args
    - idx
    - cause
    argTypes:
    - __unused*
    - u_int
    - __unused**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: cmd_if_shell_args_parse
    functionSourceFile: /src/tmux/cmd-if-shell.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum args_parse_type
    signature: "enum args_parse_type cmd_if_shell_args_parse(__unused struct args
      *args, u_int idx,\n    __unused char **cause)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cmd_get_args
      Src: /src/tmux/cmd-if-shell.c:75,1
    - Dst: cmdq_get_target
      Src: /src/tmux/cmd-if-shell.c:76,1
    - Dst: cmdq_get_target_client
      Src: /src/tmux/cmd-if-shell.c:80,1
    - Dst: args_count
      Src: /src/tmux/cmd-if-shell.c:83,1
    - Dst: args_has
      Src: /src/tmux/cmd-if-shell.c:84,1
    - Dst: format_single_from_target
      Src: /src/tmux/cmd-if-shell.c:86,1
    - Dst: args_string
      Src: /src/tmux/cmd-if-shell.c:86,1
    - Dst: args_has
      Src: /src/tmux/cmd-if-shell.c:87,1
    - Dst: args_make_commands_now
      Src: /src/tmux/cmd-if-shell.c:89,1
    - Dst: args_make_commands_now
      Src: /src/tmux/cmd-if-shell.c:91,1
    - Dst: free
      Src: /src/tmux/cmd-if-shell.c:93,1
    - Dst: free
      Src: /src/tmux/cmd-if-shell.c:96,1
    - Dst: cmdq_get_command
      Src: /src/tmux/cmd-if-shell.c:99,1
    - Dst: cmdq_get_state
      Src: /src/tmux/cmd-if-shell.c:99,1
    - Dst: cmdq_insert_after
      Src: /src/tmux/cmd-if-shell.c:100,1
    - Dst: xcalloc
      Src: /src/tmux/cmd-if-shell.c:104,1
    - Dst: args_make_commands_prepare
      Src: /src/tmux/cmd-if-shell.c:106,1
    - Dst: args_make_commands_prepare
      Src: /src/tmux/cmd-if-shell.c:109,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-if-shell.c:114,1
    - Dst: job_run
      Src: /src/tmux/cmd-if-shell.c:121,1
    - Dst: server_client_get_cwd
      Src: /src/tmux/cmd-if-shell.c:122,1
    - Dst: cmdq_get_client
      Src: /src/tmux/cmd-if-shell.c:122,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-if-shell.c:125,1
    - Dst: free
      Src: /src/tmux/cmd-if-shell.c:126,1
    - Dst: cmd_if_shell_free
      Src: /src/tmux/cmd-if-shell.c:127,1
    - Dst: free
      Src: /src/tmux/cmd-if-shell.c:130,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - struct cmd*
    - struct cmdq_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 72
    functionDepth: 13
    functionLinenumber: 72
    functionLinenumberEnd: 135
    functionName: cmd_if_shell_exec
    functionSourceFile: /src/tmux/cmd-if-shell.c
    functionUses: 0
    functionsReached:
    - cmd_if_shell_free
    - cmdq_get_client
    - args_count
    - args_has
    - job_run
    - args_string
    - xcalloc
    - format_single_from_target
    - cmdq_insert_after
    - cmdq_get_target_client
    - cmdq_get_state
    - cmd_get_args
    - args_make_commands_now
    - cmdq_get_command
    - cmdq_get_target
    - args_make_commands_prepare
    - cmdq_error
    - server_client_get_cwd
    - free
    linkageType: ''
    returnType: enum cmd_retval
    signature: enum cmd_retval cmd_if_shell_exec(struct cmd *self, struct cmdq_item
      *item)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: job_get_data
      Src: /src/tmux/cmd-if-shell.c:140,1
    - Dst: job_get_status
      Src: /src/tmux/cmd-if-shell.c:148,1
    - Dst: WIFEXITED
      Src: /src/tmux/cmd-if-shell.c:149,1
    - Dst: WEXITSTATUS
      Src: /src/tmux/cmd-if-shell.c:149,1
    - Dst: args_make_commands
      Src: /src/tmux/cmd-if-shell.c:156,1
    - Dst: toupper
      Src: /src/tmux/cmd-if-shell.c:159,1
    - Dst: status_message_set
      Src: /src/tmux/cmd-if-shell.c:160,1
    - Dst: cmdq_error
      Src: /src/tmux/cmd-if-shell.c:162,1
    - Dst: free
      Src: /src/tmux/cmd-if-shell.c:163,1
    - Dst: cmdq_get_command
      Src: /src/tmux/cmd-if-shell.c:165,1
    - Dst: cmdq_append
      Src: /src/tmux/cmd-if-shell.c:166,1
    - Dst: cmdq_get_command
      Src: /src/tmux/cmd-if-shell.c:168,1
    - Dst: cmdq_get_state
      Src: /src/tmux/cmd-if-shell.c:168,1
    - Dst: cmdq_insert_after
      Src: /src/tmux/cmd-if-shell.c:169,1
    - Dst: cmdq_continue
      Src: /src/tmux/cmd-if-shell.c:174,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - job
    argTypes:
    - struct job*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 137
    functionDepth: 8
    functionLinenumber: 137
    functionLinenumberEnd: 175
    functionName: cmd_if_shell_callback
    functionSourceFile: /src/tmux/cmd-if-shell.c
    functionUses: 0
    functionsReached:
    - job_get_status
    - cmdq_continue
    - cmdq_error
    - cmdq_append
    - cmdq_get_state
    - WIFEXITED
    - toupper
    - cmdq_insert_after
    - free
    - cmdq_get_command
    - args_make_commands
    - status_message_set
    - WEXITSTATUS
    - job_get_data
    linkageType: ''
    returnType: void
    signature: void cmd_if_shell_callback(struct job *job)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: server_client_unref
      Src: /src/tmux/cmd-if-shell.c:183,1
    - Dst: args_make_commands_free
      Src: /src/tmux/cmd-if-shell.c:186,1
    - Dst: args_make_commands_free
      Src: /src/tmux/cmd-if-shell.c:187,1
    - Dst: free
      Src: /src/tmux/cmd-if-shell.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 177
    functionDepth: 4
    functionLinenumber: 177
    functionLinenumberEnd: 190
    functionName: cmd_if_shell_free
    functionSourceFile: /src/tmux/cmd-if-shell.c
    functionUses: 1
    functionsReached:
    - server_client_unref
    - args_make_commands_free
    - free
    linkageType: ''
    returnType: void
    signature: void cmd_if_shell_free(void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/tmux/compat/imsg-buffer.c:74,1
    - Dst: calloc
      Src: /src/tmux/compat/imsg-buffer.c:77,1
    - Dst: free
      Src: /src/tmux/compat/imsg-buffer.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 86
    functionName: ibuf_open
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - free
    - calloc
    linkageType: ''
    returnType: struct ibuf
    signature: 'struct ibuf *

      ibuf_open(size_t len)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/tmux/compat/imsg-buffer.c:98,1
    - Dst: calloc
      Src: /src/tmux/compat/imsg-buffer.c:101,1
    - Dst: free
      Src: /src/tmux/compat/imsg-buffer.c:102,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - len
    - max
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 111
    functionName: ibuf_dynamic
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - free
    - calloc
    linkageType: ''
    returnType: struct ibuf
    signature: 'struct ibuf *

      ibuf_dynamic(size_t len, size_t max)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/tmux/compat/imsg-buffer.c:136,1
    - Dst: memset
      Src: /src/tmux/compat/imsg-buffer.c:139,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - struct ibuf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 147
    functionName: ibuf_reserve
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - realloc
    - memset
    linkageType: ''
    returnType: void
    signature: 'void *

      ibuf_reserve(struct ibuf *buf, size_t len)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_reserve
      Src: /src/tmux/compat/imsg-buffer.c:157,1
    - Dst: memcpy
      Src: /src/tmux/compat/imsg-buffer.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - buf
    - data
    - len
    argTypes:
    - struct ibuf*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 162
    functionName: ibuf_add
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_reserve
    - memcpy
    linkageType: ''
    returnType: int
    signature: int ibuf_add(struct ibuf *buf, const void *data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_add
      Src: /src/tmux/compat/imsg-buffer.c:167,1
    - Dst: ibuf_data
      Src: /src/tmux/compat/imsg-buffer.c:167,1
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg-buffer.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - from
    argTypes:
    - struct ibuf*
    - struct ibuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: ibuf_add_ibuf
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_data
    - ibuf_add
    - ibuf_size
    linkageType: ''
    returnType: int
    signature: int ibuf_add_ibuf(struct ibuf *buf, const struct ibuf *from)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_add
      Src: /src/tmux/compat/imsg-buffer.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - value
    argTypes:
    - struct ibuf*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 181
    functionName: ibuf_add_n8
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_add
    linkageType: ''
    returnType: int
    signature: int ibuf_add_n8(struct ibuf *buf, uint64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htobe16
      Src: /src/tmux/compat/imsg-buffer.c:192,1
    - Dst: ibuf_add
      Src: /src/tmux/compat/imsg-buffer.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - value
    argTypes:
    - struct ibuf*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 194
    functionName: ibuf_add_n16
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - htobe16
    - ibuf_add
    linkageType: ''
    returnType: int
    signature: int ibuf_add_n16(struct ibuf *buf, uint64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htobe32
      Src: /src/tmux/compat/imsg-buffer.c:205,1
    - Dst: ibuf_add
      Src: /src/tmux/compat/imsg-buffer.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - value
    argTypes:
    - struct ibuf*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 207
    functionName: ibuf_add_n32
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_add
    - htobe32
    linkageType: ''
    returnType: int
    signature: int ibuf_add_n32(struct ibuf *buf, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htobe64
      Src: /src/tmux/compat/imsg-buffer.c:212,1
    - Dst: ibuf_add
      Src: /src/tmux/compat/imsg-buffer.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - value
    argTypes:
    - struct ibuf*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 214
    functionName: ibuf_add_n64
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_add
    - htobe64
    linkageType: ''
    returnType: int
    signature: int ibuf_add_n64(struct ibuf *buf, uint64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_add
      Src: /src/tmux/compat/imsg-buffer.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - value
    argTypes:
    - struct ibuf*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 227
    functionName: ibuf_add_h16
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_add
    linkageType: ''
    returnType: int
    signature: int ibuf_add_h16(struct ibuf *buf, uint64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_add
      Src: /src/tmux/compat/imsg-buffer.c:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - value
    argTypes:
    - struct ibuf*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 240
    functionName: ibuf_add_h32
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_add
    linkageType: ''
    returnType: int
    signature: int ibuf_add_h32(struct ibuf *buf, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_add
      Src: /src/tmux/compat/imsg-buffer.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - value
    argTypes:
    - struct ibuf*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: ibuf_add_h64
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_add
    linkageType: ''
    returnType: int
    signature: int ibuf_add_h64(struct ibuf *buf, uint64_t value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_reserve
      Src: /src/tmux/compat/imsg-buffer.c:256,1
    - Dst: memset
      Src: /src/tmux/compat/imsg-buffer.c:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - struct ibuf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 260
    functionName: ibuf_add_zero
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - memset
    - ibuf_reserve
    linkageType: ''
    returnType: int
    signature: int ibuf_add_zero(struct ibuf *buf, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_reserve
      Src: /src/tmux/compat/imsg-buffer.c:268,1
    - Dst: strlcpy
      Src: /src/tmux/compat/imsg-buffer.c:271,1
    - Dst: memset
      Src: /src/tmux/compat/imsg-buffer.c:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - buf
    - str
    - len
    argTypes:
    - struct ibuf*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 279
    functionName: ibuf_add_strbuf
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - memset
    - ibuf_reserve
    - strlcpy
    linkageType: ''
    returnType: int
    signature: int ibuf_add_strbuf(struct ibuf *buf, const char *str, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg-buffer.c:285,1
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg-buffer.c:286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - buf
    - pos
    - len
    argTypes:
    - struct ibuf*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 292
    functionName: ibuf_seek
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_size
    linkageType: ''
    returnType: void
    signature: 'void *

      ibuf_seek(struct ibuf *buf, size_t pos, size_t len)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_seek
      Src: /src/tmux/compat/imsg-buffer.c:299,1
    - Dst: memcpy
      Src: /src/tmux/compat/imsg-buffer.c:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - buf
    - pos
    - data
    - len
    argTypes:
    - struct ibuf*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 306
    functionName: ibuf_set
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ibuf_seek
    linkageType: ''
    returnType: int
    signature: int ibuf_set(struct ibuf *buf, size_t pos, const void *data, size_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_set
      Src: /src/tmux/compat/imsg-buffer.c:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - buf
    - pos
    - value
    argTypes:
    - struct ibuf*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 308
    functionDepth: 3
    functionLinenumber: 308
    functionLinenumberEnd: 319
    functionName: ibuf_set_n8
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_set
    linkageType: ''
    returnType: int
    signature: int ibuf_set_n8(struct ibuf *buf, size_t pos, uint64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htobe16
      Src: /src/tmux/compat/imsg-buffer.c:330,1
    - Dst: ibuf_set
      Src: /src/tmux/compat/imsg-buffer.c:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - buf
    - pos
    - value
    argTypes:
    - struct ibuf*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 332
    functionName: ibuf_set_n16
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - htobe16
    - ibuf_set
    linkageType: ''
    returnType: int
    signature: int ibuf_set_n16(struct ibuf *buf, size_t pos, uint64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htobe32
      Src: /src/tmux/compat/imsg-buffer.c:343,1
    - Dst: ibuf_set
      Src: /src/tmux/compat/imsg-buffer.c:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - buf
    - pos
    - value
    argTypes:
    - struct ibuf*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 345
    functionName: ibuf_set_n32
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_set
    - htobe32
    linkageType: ''
    returnType: int
    signature: int ibuf_set_n32(struct ibuf *buf, size_t pos, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htobe64
      Src: /src/tmux/compat/imsg-buffer.c:350,1
    - Dst: ibuf_set
      Src: /src/tmux/compat/imsg-buffer.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - buf
    - pos
    - value
    argTypes:
    - struct ibuf*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 347
    functionDepth: 3
    functionLinenumber: 347
    functionLinenumberEnd: 352
    functionName: ibuf_set_n64
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_set
    - htobe64
    linkageType: ''
    returnType: int
    signature: int ibuf_set_n64(struct ibuf *buf, size_t pos, uint64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_set
      Src: /src/tmux/compat/imsg-buffer.c:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - buf
    - pos
    - value
    argTypes:
    - struct ibuf*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 354
    functionDepth: 3
    functionLinenumber: 354
    functionLinenumberEnd: 365
    functionName: ibuf_set_h16
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_set
    linkageType: ''
    returnType: int
    signature: int ibuf_set_h16(struct ibuf *buf, size_t pos, uint64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_set
      Src: /src/tmux/compat/imsg-buffer.c:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - buf
    - pos
    - value
    argTypes:
    - struct ibuf*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 367
    functionDepth: 3
    functionLinenumber: 367
    functionLinenumberEnd: 378
    functionName: ibuf_set_h32
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_set
    linkageType: ''
    returnType: int
    signature: int ibuf_set_h32(struct ibuf *buf, size_t pos, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_set
      Src: /src/tmux/compat/imsg-buffer.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - pos
    - value
    argTypes:
    - struct ibuf*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 384
    functionName: ibuf_set_h64
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_set
    linkageType: ''
    returnType: int
    signature: int ibuf_set_h64(struct ibuf *buf, size_t pos, uint64_t value)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - max
    argTypes:
    - struct ibuf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 400
    functionName: ibuf_set_maxsize
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ibuf_set_maxsize(struct ibuf *buf, size_t max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ibuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 406
    functionName: ibuf_data
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      ibuf_data(const struct ibuf *buf)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ibuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 412
    functionName: ibuf_size
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ibuf_size(const struct ibuf *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ibuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 421
    functionName: ibuf_left
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ibuf_left(const struct ibuf *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg-buffer.c:426,1
    - Dst: ibuf_add_zero
      Src: /src/tmux/compat/imsg-buffer.c:435,1
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg-buffer.c:435,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - struct ibuf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 436
    functionName: ibuf_truncate
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_size
    - ibuf_add_zero
    linkageType: ''
    returnType: int
    signature: int ibuf_truncate(struct ibuf *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ibuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 442
    functionName: ibuf_rewind
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ibuf_rewind(struct ibuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibufq_push
      Src: /src/tmux/compat/imsg-buffer.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msgbuf
    - buf
    argTypes:
    - struct msgbuf*
    - struct ibuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 448
    functionName: ibuf_close
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibufq_push
    linkageType: ''
    returnType: void
    signature: void ibuf_close(struct msgbuf *msgbuf, struct ibuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/tmux/compat/imsg-buffer.c:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - data
    - len
    argTypes:
    - struct ibuf*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 457
    functionName: ibuf_from_buffer
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void ibuf_from_buffer(struct ibuf *buf, void *data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_from_buffer
      Src: /src/tmux/compat/imsg-buffer.c:462,1
    - Dst: ibuf_data
      Src: /src/tmux/compat/imsg-buffer.c:462,1
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg-buffer.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - from
    argTypes:
    - struct ibuf*
    - struct ibuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 463
    functionName: ibuf_from_ibuf
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_from_buffer
    - ibuf_data
    - ibuf_size
    linkageType: ''
    returnType: void
    signature: void ibuf_from_ibuf(struct ibuf *buf, const struct ibuf *from)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg-buffer.c:468,1
    - Dst: memcpy
      Src: /src/tmux/compat/imsg-buffer.c:473,1
    - Dst: ibuf_data
      Src: /src/tmux/compat/imsg-buffer.c:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - buf
    - data
    - len
    argTypes:
    - struct ibuf*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 476
    functionName: ibuf_get
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_data
    - ibuf_size
    - memcpy
    linkageType: ''
    returnType: int
    signature: int ibuf_get(struct ibuf *buf, void *data, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg-buffer.c:481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - buf
    - len
    - new
    argTypes:
    - struct ibuf*
    - size_t
    - struct ibuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 489
    functionName: ibuf_get_ibuf
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_size
    linkageType: ''
    returnType: int
    signature: int ibuf_get_ibuf(struct ibuf *buf, size_t len, struct ibuf *new)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_get
      Src: /src/tmux/compat/imsg-buffer.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - value
    argTypes:
    - struct ibuf*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 495
    functionName: ibuf_get_h16
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_get
    linkageType: ''
    returnType: int
    signature: int ibuf_get_h16(struct ibuf *buf, uint16_t *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_get
      Src: /src/tmux/compat/imsg-buffer.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - value
    argTypes:
    - struct ibuf*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 501
    functionName: ibuf_get_h32
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_get
    linkageType: ''
    returnType: int
    signature: int ibuf_get_h32(struct ibuf *buf, uint32_t *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_get
      Src: /src/tmux/compat/imsg-buffer.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - value
    argTypes:
    - struct ibuf*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 503
    functionDepth: 2
    functionLinenumber: 503
    functionLinenumberEnd: 507
    functionName: ibuf_get_h64
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_get
    linkageType: ''
    returnType: int
    signature: int ibuf_get_h64(struct ibuf *buf, uint64_t *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_get
      Src: /src/tmux/compat/imsg-buffer.c:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - value
    argTypes:
    - struct ibuf*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 509
    functionDepth: 2
    functionLinenumber: 509
    functionLinenumberEnd: 513
    functionName: ibuf_get_n8
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_get
    linkageType: ''
    returnType: int
    signature: int ibuf_get_n8(struct ibuf *buf, uint8_t *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_get
      Src: /src/tmux/compat/imsg-buffer.c:520,1
    - Dst: be16toh
      Src: /src/tmux/compat/imsg-buffer.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - value
    argTypes:
    - struct ibuf*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 523
    functionName: ibuf_get_n16
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - be16toh
    - ibuf_get
    linkageType: ''
    returnType: int
    signature: int ibuf_get_n16(struct ibuf *buf, uint16_t *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_get
      Src: /src/tmux/compat/imsg-buffer.c:530,1
    - Dst: be32toh
      Src: /src/tmux/compat/imsg-buffer.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - value
    argTypes:
    - struct ibuf*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 525
    functionDepth: 2
    functionLinenumber: 525
    functionLinenumberEnd: 533
    functionName: ibuf_get_n32
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - be32toh
    - ibuf_get
    linkageType: ''
    returnType: int
    signature: int ibuf_get_n32(struct ibuf *buf, uint32_t *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_get
      Src: /src/tmux/compat/imsg-buffer.c:540,1
    - Dst: be64toh
      Src: /src/tmux/compat/imsg-buffer.c:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - value
    argTypes:
    - struct ibuf*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 535
    functionDepth: 2
    functionLinenumber: 535
    functionLinenumberEnd: 543
    functionName: ibuf_get_n64
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_get
    - be64toh
    linkageType: ''
    returnType: int
    signature: int ibuf_get_n64(struct ibuf *buf, uint64_t *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg-buffer.c:550,1
    - Dst: strndup
      Src: /src/tmux/compat/imsg-buffer.c:555,1
    - Dst: ibuf_data
      Src: /src/tmux/compat/imsg-buffer.c:555,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - struct ibuf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 560
    functionName: ibuf_get_string
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_data
    - strndup
    - ibuf_size
    linkageType: ''
    returnType: char
    signature: 'char *

      ibuf_get_string(struct ibuf *buf, size_t len)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_get
      Src: /src/tmux/compat/imsg-buffer.c:570,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - buf
    - str
    - len
    argTypes:
    - struct ibuf*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 562
    functionDepth: 2
    functionLinenumber: 562
    functionLinenumberEnd: 578
    functionName: ibuf_get_strbuf
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_get
    linkageType: ''
    returnType: int
    signature: int ibuf_get_strbuf(struct ibuf *buf, char *str, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg-buffer.c:583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - struct ibuf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 590
    functionName: ibuf_skip
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_size
    linkageType: ''
    returnType: int
    signature: int ibuf_skip(struct ibuf *buf, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/tmux/compat/imsg-buffer.c:601,1
    - Dst: close
      Src: /src/tmux/compat/imsg-buffer.c:603,1
    - Dst: freezero
      Src: /src/tmux/compat/imsg-buffer.c:604,1
    - Dst: free
      Src: /src/tmux/compat/imsg-buffer.c:605,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ibuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 607
    functionName: ibuf_free
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - close
    - abort
    - free
    - freezero
    linkageType: ''
    returnType: void
    signature: void ibuf_free(struct ibuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ibuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 613
    functionName: ibuf_fd_avail
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ibuf_fd_avail(struct ibuf *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ibuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 626
    functionName: ibuf_fd_get
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ibuf_fd_get(struct ibuf *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/tmux/compat/imsg-buffer.c:633,1
    - Dst: close
      Src: /src/tmux/compat/imsg-buffer.c:635,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - fd
    argTypes:
    - struct ibuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 639
    functionName: ibuf_fd_set
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - close
    - abort
    linkageType: ''
    returnType: void
    signature: void ibuf_fd_set(struct ibuf *buf, int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/tmux/compat/imsg-buffer.c:646,1
    - Dst: ibufq_init
      Src: /src/tmux/compat/imsg-buffer.c:648,1
    - Dst: ibufq_init
      Src: /src/tmux/compat/imsg-buffer.c:649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 652
    functionName: msgbuf_new
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibufq_init
    - calloc
    linkageType: ''
    returnType: struct msgbuf
    signature: 'struct msgbuf *

      msgbuf_new(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/tmux/compat/imsg-buffer.c:666,1
    - Dst: msgbuf_new
      Src: /src/tmux/compat/imsg-buffer.c:669,1
    - Dst: free
      Src: /src/tmux/compat/imsg-buffer.c:671,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - hdrsz
    - (*readhdr)(struct ibuf *, void *, int *)
    - arg
    argTypes:
    - size_t
    - struct ibuf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 681
    functionName: msgbuf_new_reader
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - free
    - msgbuf_new
    - malloc
    linkageType: ''
    returnType: struct msgbuf
    signature: "struct msgbuf *\nmsgbuf_new_reader(size_t hdrsz,\n    struct ibuf
      *(*readhdr)(struct ibuf *, void *, int *), void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: msgbuf_clear
      Src: /src/tmux/compat/imsg-buffer.c:688,1
    - Dst: free
      Src: /src/tmux/compat/imsg-buffer.c:689,1
    - Dst: free
      Src: /src/tmux/compat/imsg-buffer.c:690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - msgbuf
    argTypes:
    - struct msgbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 691
    functionName: msgbuf_free
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - msgbuf_clear
    - free
    linkageType: ''
    returnType: void
    signature: void msgbuf_free(struct msgbuf *msgbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibufq_queuelen
      Src: /src/tmux/compat/imsg-buffer.c:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msgbuf
    argTypes:
    - struct msgbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 697
    functionName: msgbuf_queuelen
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 2
    functionsReached:
    - ibufq_queuelen
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t msgbuf_queuelen(struct msgbuf *msgbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibufq_flush
      Src: /src/tmux/compat/imsg-buffer.c:703,1
    - Dst: ibufq_flush
      Src: /src/tmux/compat/imsg-buffer.c:706,1
    - Dst: ibuf_free
      Src: /src/tmux/compat/imsg-buffer.c:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - msgbuf
    argTypes:
    - struct msgbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 699
    functionDepth: 2
    functionLinenumber: 699
    functionLinenumberEnd: 710
    functionName: msgbuf_clear
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 2
    functionsReached:
    - ibuf_free
    - ibufq_flush
    linkageType: ''
    returnType: void
    signature: void msgbuf_clear(struct msgbuf *msgbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibufq_pop
      Src: /src/tmux/compat/imsg-buffer.c:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msgbuf
    argTypes:
    - struct msgbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 716
    functionName: msgbuf_get
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibufq_pop
    linkageType: ''
    returnType: struct ibuf
    signature: 'struct ibuf *

      msgbuf_get(struct msgbuf *msgbuf)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibufq_concat
      Src: /src/tmux/compat/imsg-buffer.c:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msgbuf
    - from
    argTypes:
    - struct msgbuf*
    - struct ibufqueue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 722
    functionName: msgbuf_concat
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibufq_concat
    linkageType: ''
    returnType: void
    signature: void msgbuf_concat(struct msgbuf *msgbuf, struct ibufqueue *from)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/tmux/compat/imsg-buffer.c:732,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/compat/imsg-buffer.c:733,1
    - Dst: ibuf_data
      Src: /src/tmux/compat/imsg-buffer.c:736,1
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg-buffer.c:737,1
    - Dst: writev
      Src: /src/tmux/compat/imsg-buffer.c:744,1
    - Dst: msgbuf_drain
      Src: /src/tmux/compat/imsg-buffer.c:753,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - fd
    - msgbuf
    argTypes:
    - int
    - struct msgbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 755
    functionName: ibuf_write
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - writev
    - TAILQ_FOREACH
    - ibuf_data
    - memset
    - msgbuf_drain
    - ibuf_size
    linkageType: ''
    returnType: int
    signature: int ibuf_write(int fd, struct msgbuf *msgbuf)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/tmux/compat/imsg-buffer.c:768,1
    - Dst: memset
      Src: /src/tmux/compat/imsg-buffer.c:771,1
    - Dst: memset
      Src: /src/tmux/compat/imsg-buffer.c:772,1
    - Dst: memset
      Src: /src/tmux/compat/imsg-buffer.c:773,1
    - Dst: TAILQ_FOREACH
      Src: /src/tmux/compat/imsg-buffer.c:774,1
    - Dst: ibuf_data
      Src: /src/tmux/compat/imsg-buffer.c:779,1
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg-buffer.c:780,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/tmux/compat/imsg-buffer.c:795,1
    - Dst: CMSG_LEN
      Src: /src/tmux/compat/imsg-buffer.c:796,1
    - Dst: CMSG_DATA
      Src: /src/tmux/compat/imsg-buffer.c:799,1
    - Dst: sendmsg
      Src: /src/tmux/compat/imsg-buffer.c:803,1
    - Dst: close
      Src: /src/tmux/compat/imsg-buffer.c:817,1
    - Dst: msgbuf_drain
      Src: /src/tmux/compat/imsg-buffer.c:821,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 2
    argNames:
    - fd
    - msgbuf
    argTypes:
    - int
    - struct msgbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 824
    functionName: msgbuf_write
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 1
    functionsReached:
    - close
    - CMSG_FIRSTHDR
    - TAILQ_FOREACH
    - ibuf_data
    - memset
    - sendmsg
    - CMSG_DATA
    - CMSG_SPACE
    - CMSG_LEN
    - msgbuf_drain
    - ibuf_size
    linkageType: ''
    returnType: int
    signature: int msgbuf_write(int fd, struct msgbuf *msgbuf)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_from_buffer
      Src: /src/tmux/compat/imsg-buffer.c:832,1
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg-buffer.c:836,1
    - Dst: ibuf_from_buffer
      Src: /src/tmux/compat/imsg-buffer.c:839,1
    - Dst: ibuf_data
      Src: /src/tmux/compat/imsg-buffer.c:839,1
    - Dst: struct msgbuf*::readhdr
      Src: /src/tmux/compat/imsg-buffer.c:841,1
    - Dst: ibuf_left
      Src: /src/tmux/compat/imsg-buffer.c:846,1
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg-buffer.c:846,1
    - Dst: ibuf_left
      Src: /src/tmux/compat/imsg-buffer.c:847,1
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg-buffer.c:849,1
    - Dst: ibuf_get_ibuf
      Src: /src/tmux/compat/imsg-buffer.c:852,1
    - Dst: ibuf_add_ibuf
      Src: /src/tmux/compat/imsg-buffer.c:853,1
    - Dst: ibuf_left
      Src: /src/tmux/compat/imsg-buffer.c:856,1
    - Dst: ibufq_push
      Src: /src/tmux/compat/imsg-buffer.c:857,1
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg-buffer.c:860,1
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg-buffer.c:862,1
    - Dst: memmove
      Src: /src/tmux/compat/imsg-buffer.c:863,1
    - Dst: ibuf_data
      Src: /src/tmux/compat/imsg-buffer.c:863,1
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg-buffer.c:863,1
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg-buffer.c:864,1
    - Dst: close
      Src: /src/tmux/compat/imsg-buffer.c:867,1
    - Dst: close
      Src: /src/tmux/compat/imsg-buffer.c:873,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 2
    argNames:
    - msgbuf
    - fd
    argTypes:
    - struct msgbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 826
    functionDepth: 3
    functionLinenumber: 826
    functionLinenumberEnd: 875
    functionName: ibuf_read_process
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_from_buffer
    - ibufq_push
    - close
    - ibuf_left
    - ibuf_get_ibuf
    - ibuf_add_ibuf
    - ibuf_data
    - struct msgbuf*::readhdr
    - memmove
    - ibuf_size
    linkageType: ''
    returnType: int
    signature: int ibuf_read_process(struct msgbuf *msgbuf, int fd)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: readv
      Src: /src/tmux/compat/imsg-buffer.c:892,1
    - Dst: ibuf_read_process
      Src: /src/tmux/compat/imsg-buffer.c:905,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - fd
    - msgbuf
    argTypes:
    - int
    - struct msgbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 877
    functionDepth: 4
    functionLinenumber: 877
    functionLinenumberEnd: 906
    functionName: ibuf_read
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibuf_read_process
    - readv
    linkageType: ''
    returnType: int
    signature: int ibuf_read(int fd, struct msgbuf *msgbuf)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/tmux/compat/imsg-buffer.c:915,1
    - Dst: memset
      Src: /src/tmux/compat/imsg-buffer.c:926,1
    - Dst: memset
      Src: /src/tmux/compat/imsg-buffer.c:927,1
    - Dst: recvmsg
      Src: /src/tmux/compat/imsg-buffer.c:937,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/tmux/compat/imsg-buffer.c:957,1
    - Dst: CMSG_NXTHDR
      Src: /src/tmux/compat/imsg-buffer.c:958,1
    - Dst: CMSG_DATA
      Src: /src/tmux/compat/imsg-buffer.c:969,1
    - Dst: CMSG_DATA
      Src: /src/tmux/compat/imsg-buffer.c:971,1
    - Dst: close
      Src: /src/tmux/compat/imsg-buffer.c:975,1
    - Dst: ibuf_read_process
      Src: /src/tmux/compat/imsg-buffer.c:982,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - fd
    - msgbuf
    argTypes:
    - int
    - struct msgbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 908
    functionDepth: 4
    functionLinenumber: 908
    functionLinenumberEnd: 983
    functionName: msgbuf_read
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 1
    functionsReached:
    - close
    - CMSG_FIRSTHDR
    - ibuf_read_process
    - recvmsg
    - memset
    - CMSG_DATA
    - CMSG_SPACE
    - CMSG_NXTHDR
    linkageType: ''
    returnType: int
    signature: int msgbuf_read(int fd, struct msgbuf *msgbuf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/compat/imsg-buffer.c:990,1
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg-buffer.c:991,1
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg-buffer.c:992,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/compat/imsg-buffer.c:993,1
    - Dst: ibuf_free
      Src: /src/tmux/compat/imsg-buffer.c:995,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - msgbuf
    - n
    argTypes:
    - struct msgbuf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 985
    functionDepth: 2
    functionLinenumber: 985
    functionLinenumberEnd: 1001
    functionName: msgbuf_drain
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 2
    functionsReached:
    - TAILQ_REMOVE
    - TAILQ_FIRST
    - ibuf_free
    - ibuf_size
    linkageType: ''
    returnType: void
    signature: void msgbuf_drain(struct msgbuf *msgbuf, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_INIT
      Src: /src/tmux/compat/imsg-buffer.c:1006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bufq
    argTypes:
    - struct ibufqueue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 1003
    functionDepth: 0
    functionLinenumber: 1003
    functionLinenumberEnd: 1008
    functionName: ibufq_init
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 1
    functionsReached:
    - TAILQ_INIT
    linkageType: ''
    returnType: void
    signature: void ibufq_init(struct ibufqueue *bufq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/tmux/compat/imsg-buffer.c:1015,1
    - Dst: ibufq_init
      Src: /src/tmux/compat/imsg-buffer.c:1017,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1010
    functionDepth: 1
    functionLinenumber: 1010
    functionLinenumberEnd: 1019
    functionName: ibufq_new
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - ibufq_init
    - calloc
    linkageType: ''
    returnType: struct ibufqueue
    signature: 'struct ibufqueue *

      ibufq_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ibufq_flush
      Src: /src/tmux/compat/imsg-buffer.c:1026,1
    - Dst: free
      Src: /src/tmux/compat/imsg-buffer.c:1027,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bufq
    argTypes:
    - struct ibufqueue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1021
    functionDepth: 1
    functionLinenumber: 1021
    functionLinenumberEnd: 1028
    functionName: ibufq_free
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 0
    functionsReached:
    - free
    - ibufq_flush
    linkageType: ''
    returnType: void
    signature: void ibufq_free(struct ibufqueue *bufq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/compat/imsg-buffer.c:1035,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/compat/imsg-buffer.c:1037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bufq
    argTypes:
    - struct ibufqueue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1030
    functionDepth: 0
    functionLinenumber: 1030
    functionLinenumberEnd: 1040
    functionName: ibufq_pop
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 1
    functionsReached:
    - TAILQ_FIRST
    - TAILQ_REMOVE
    linkageType: ''
    returnType: struct ibuf
    signature: 'struct ibuf *

      ibufq_pop(struct ibufqueue *bufq)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/tmux/compat/imsg-buffer.c:1047,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/tmux/compat/imsg-buffer.c:1048,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bufq
    - buf
    argTypes:
    - struct ibufqueue*
    - struct ibuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1042
    functionDepth: 0
    functionLinenumber: 1042
    functionLinenumberEnd: 1050
    functionName: ibufq_push
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 2
    functionsReached:
    - abort
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: void
    signature: void ibufq_push(struct ibufqueue *bufq, struct ibuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bufq
    argTypes:
    - struct ibufqueue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1052
    functionDepth: 0
    functionLinenumber: 1052
    functionLinenumberEnd: 1056
    functionName: ibufq_queuelen
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ibufq_queuelen(struct ibufqueue *bufq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_CONCAT
      Src: /src/tmux/compat/imsg-buffer.c:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - struct ibufqueue*
    - struct ibufqueue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1058
    functionDepth: 1
    functionLinenumber: 1058
    functionLinenumberEnd: 1064
    functionName: ibufq_concat
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 1
    functionsReached:
    - TAILQ_CONCAT
    linkageType: ''
    returnType: void
    signature: void ibufq_concat(struct ibufqueue *to, struct ibufqueue *from)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/tmux/compat/imsg-buffer.c:1071,1
    - Dst: TAILQ_REMOVE
      Src: /src/tmux/compat/imsg-buffer.c:1072,1
    - Dst: ibuf_free
      Src: /src/tmux/compat/imsg-buffer.c:1073,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bufq
    argTypes:
    - struct ibufqueue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1066
    functionDepth: 2
    functionLinenumber: 1066
    functionLinenumberEnd: 1076
    functionName: ibufq_flush
    functionSourceFile: /src/tmux/compat/imsg-buffer.c
    functionUses: 2
    functionsReached:
    - TAILQ_FIRST
    - ibuf_free
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void ibufq_flush(struct ibufqueue *bufq)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/tmux/compat/recallocarray.c:39,1
    - Dst: getpagesize
      Src: /src/tmux/compat/recallocarray.c:62,1
    - Dst: memset
      Src: /src/tmux/compat/recallocarray.c:63,1
    - Dst: malloc
      Src: /src/tmux/compat/recallocarray.c:68,1
    - Dst: memcpy
      Src: /src/tmux/compat/recallocarray.c:73,1
    - Dst: memset
      Src: /src/tmux/compat/recallocarray.c:74,1
    - Dst: memcpy
      Src: /src/tmux/compat/recallocarray.c:76,1
    - Dst: explicit_bzero
      Src: /src/tmux/compat/recallocarray.c:78,1
    - Dst: free
      Src: /src/tmux/compat/recallocarray.c:79,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 4
    argNames:
    - ptr
    - oldnmemb
    - newnmemb
    - size
    argTypes:
    - void*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 82
    functionName: recallocarray
    functionSourceFile: /src/tmux/compat/recallocarray.c
    functionUses: 7
    functionsReached:
    - getpagesize
    - calloc
    - memset
    - free
    - memcpy
    - malloc
    - explicit_bzero
    linkageType: ''
    returnType: void
    signature: 'void *

      recallocarray(void *ptr, size_t oldnmemb, size_t newnmemb, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: getptmfd
    functionSourceFile: /src/tmux/compat/fdforkpty.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getptmfd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: forkpty
      Src: /src/tmux/compat/fdforkpty.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ptmfd
    - master
    - name
    - tio
    - ws
    argTypes:
    - __unused
    - int*
    - char*
    - struct termios*
    - struct winsize*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: fdforkpty
    functionSourceFile: /src/tmux/compat/fdforkpty.c
    functionUses: 2
    functionsReached:
    - forkpty
    linkageType: ''
    returnType: pid_t
    signature: "pid_t fdforkpty(__unused int ptmfd, int *master, char *name, struct
      termios *tio,\n    struct winsize *ws)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/tmux/compat/ntohll.c:28,1
    - Dst: ntohl
      Src: /src/tmux/compat/ntohll.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: ntohll
    functionSourceFile: /src/tmux/compat/ntohll.c
    functionUses: 0
    functionsReached:
    - ntohl
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ntohll(uint64_t v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/tmux/compat/reallocarray.c:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - optr
    - nmemb
    - size
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: reallocarray
    functionSourceFile: /src/tmux/compat/reallocarray.c
    functionUses: 67
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: 'void *

      reallocarray(void *optr, size_t nmemb, size_t size)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/tmux/compat/forkpty-haiku.c:36,1
    - Dst: grantpt
      Src: /src/tmux/compat/forkpty-haiku.c:38,1
    - Dst: unlockpt
      Src: /src/tmux/compat/forkpty-haiku.c:40,1
    - Dst: ptsname
      Src: /src/tmux/compat/forkpty-haiku.c:43,1
    - Dst: strlcpy
      Src: /src/tmux/compat/forkpty-haiku.c:46,1
    - Dst: open
      Src: /src/tmux/compat/forkpty-haiku.c:47,1
    - Dst: fork
      Src: /src/tmux/compat/forkpty-haiku.c:50,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-haiku.c:54,1
    - Dst: setsid
      Src: /src/tmux/compat/forkpty-haiku.c:56,1
    - Dst: ioctl
      Src: /src/tmux/compat/forkpty-haiku.c:57,1
    - Dst: fatal
      Src: /src/tmux/compat/forkpty-haiku.c:58,1
    - Dst: tcsetattr
      Src: /src/tmux/compat/forkpty-haiku.c:60,1
    - Dst: fatal
      Src: /src/tmux/compat/forkpty-haiku.c:61,1
    - Dst: ioctl
      Src: /src/tmux/compat/forkpty-haiku.c:62,1
    - Dst: fatal
      Src: /src/tmux/compat/forkpty-haiku.c:63,1
    - Dst: dup2
      Src: /src/tmux/compat/forkpty-haiku.c:65,1
    - Dst: dup2
      Src: /src/tmux/compat/forkpty-haiku.c:66,1
    - Dst: dup2
      Src: /src/tmux/compat/forkpty-haiku.c:67,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-haiku.c:69,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-haiku.c:73,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-haiku.c:78,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-haiku.c:80,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 4
    argNames:
    - master
    - name
    - tio
    - ws
    argTypes:
    - int*
    - char*
    - struct termios*
    - struct winsize*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 82
    functionName: forkpty
    functionSourceFile: /src/tmux/compat/forkpty-haiku.c
    functionUses: 3
    functionsReached:
    - grantpt
    - close
    - ptsname
    - fatal
    - open
    - strlcpy
    - tcsetattr
    - setsid
    - dup2
    - fork
    - unlockpt
    - ioctl
    linkageType: ''
    returnType: pid_t
    signature: pid_t forkpty(int *master, char *name, struct termios *tio, struct
      winsize *ws)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - dst
    - src
    - siz
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 53
    functionName: strlcpy
    functionSourceFile: /src/tmux/compat/strlcpy.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t strlcpy(char *dst, const char *src, size_t siz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dirent
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: NAMLEN
    functionSourceFile: /src/tmux/compat/closefrom.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NAMLEN(dirent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dirent
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: NAMLEN
    functionSourceFile: /src/tmux/compat/closefrom.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NAMLEN(dirent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/tmux/compat/closefrom.c:76,1
    - Dst: getdtablesize
      Src: /src/tmux/compat/closefrom.c:78,1
    - Dst: close
      Src: /src/tmux/compat/closefrom.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - lowfd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 85
    functionName: closefrom_fallback
    functionSourceFile: /src/tmux/compat/closefrom.c
    functionUses: 0
    functionsReached:
    - close
    - sysconf
    - getdtablesize
    linkageType: ''
    returnType: void
    signature: void closefrom_fallback(int lowfd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/tmux/compat/closefrom.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lowfd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: closefrom
    functionSourceFile: /src/tmux/compat/closefrom.c
    functionUses: 4
    functionsReached:
    - fcntl
    linkageType: ''
    returnType: void
    signature: void closefrom(int lowfd)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/tmux/compat/closefrom.c:99,1
    - Dst: proc_pidinfo
      Src: /src/tmux/compat/closefrom.c:102,1
    - Dst: malloc
      Src: /src/tmux/compat/closefrom.c:107,1
    - Dst: proc_pidinfo
      Src: /src/tmux/compat/closefrom.c:109,1
    - Dst: close
      Src: /src/tmux/compat/closefrom.c:114,1
    - Dst: free
      Src: /src/tmux/compat/closefrom.c:116,1
    - Dst: free
      Src: /src/tmux/compat/closefrom.c:119,1
    - Dst: closefrom_fallback
      Src: /src/tmux/compat/closefrom.c:120,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 1
    argNames:
    - lowfd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 122
    functionName: closefrom
    functionSourceFile: /src/tmux/compat/closefrom.c
    functionUses: 4
    functionsReached:
    - close
    - free
    - malloc
    - getpid
    - proc_pidinfo
    - closefrom_fallback
    linkageType: ''
    returnType: void
    signature: void closefrom(int lowfd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/tmux/compat/closefrom.c:134,1
    - Dst: getpid
      Src: /src/tmux/compat/closefrom.c:134,1
    - Dst: opendir
      Src: /src/tmux/compat/closefrom.c:135,1
    - Dst: readdir
      Src: /src/tmux/compat/closefrom.c:136,1
    - Dst: strtol
      Src: /src/tmux/compat/closefrom.c:137,1
    - Dst: dirfd
      Src: /src/tmux/compat/closefrom.c:139,1
    - Dst: close
      Src: /src/tmux/compat/closefrom.c:140,1
    - Dst: closedir
      Src: /src/tmux/compat/closefrom.c:142,1
    - Dst: closefrom_fallback
      Src: /src/tmux/compat/closefrom.c:146,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 1
    argNames:
    - lowfd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 147
    functionName: closefrom
    functionSourceFile: /src/tmux/compat/closefrom.c
    functionUses: 4
    functionsReached:
    - close
    - dirfd
    - readdir
    - opendir
    - closedir
    - getpid
    - strtol
    - snprintf
    - closefrom_fallback
    linkageType: ''
    returnType: void
    signature: void closefrom(int lowfd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: closefrom_fallback
      Src: /src/tmux/compat/closefrom.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lowfd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: closefrom
    functionSourceFile: /src/tmux/compat/closefrom.c
    functionUses: 4
    functionsReached:
    - closefrom_fallback
    linkageType: ''
    returnType: void
    signature: void closefrom(int lowfd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/tmux/compat/strcasestr.c:51,1
    - Dst: strlen
      Src: /src/tmux/compat/strcasestr.c:52,1
    - Dst: tolower
      Src: /src/tmux/compat/strcasestr.c:57,1
    - Dst: strncasecmp
      Src: /src/tmux/compat/strcasestr.c:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - s
    - find
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 62
    functionName: strcasestr
    functionSourceFile: /src/tmux/compat/strcasestr.c
    functionUses: 5
    functionsReached:
    - strlen
    - tolower
    - strncasecmp
    linkageType: ''
    returnType: char
    signature: 'char *

      strcasestr(const char *s, const char *find)'
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - stringp
    - delim
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 73
    functionName: strsep
    functionSourceFile: /src/tmux/compat/strsep.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      strsep(char **stringp, const char *delim)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tv
    - ','
    - ts
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: TIMEVAL_TO_TIMESPEC
    functionSourceFile: /src/tmux/compat/clock_gettime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIMEVAL_TO_TIMESPEC(tv, ts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/tmux/compat/clock_gettime.c:34,1
    - Dst: TIMEVAL_TO_TIMESPEC
      Src: /src/tmux/compat/clock_gettime.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - clock
    - ts
    argTypes:
    - __unused
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: clock_gettime
    functionSourceFile: /src/tmux/compat/clock_gettime.c
    functionUses: 2
    functionsReached:
    - gettimeofday
    - TIMEVAL_TO_TIMESPEC
    linkageType: ''
    returnType: int
    signature: int clock_gettime(__unused int clock, struct timespec *ts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/tmux/compat/freezero.c:28,1
    - Dst: free
      Src: /src/tmux/compat/freezero.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: freezero
    functionSourceFile: /src/tmux/compat/freezero.c
    functionUses: 1
    functionsReached:
    - memset
    - free
    linkageType: ''
    returnType: void
    signature: void freezero(void *ptr, size_t size)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/tmux/compat/forkpty-hpux.c:37,1
    - Dst: grantpt
      Src: /src/tmux/compat/forkpty-hpux.c:39,1
    - Dst: unlockpt
      Src: /src/tmux/compat/forkpty-hpux.c:41,1
    - Dst: ptsname
      Src: /src/tmux/compat/forkpty-hpux.c:44,1
    - Dst: strlcpy
      Src: /src/tmux/compat/forkpty-hpux.c:47,1
    - Dst: open
      Src: /src/tmux/compat/forkpty-hpux.c:48,1
    - Dst: fork
      Src: /src/tmux/compat/forkpty-hpux.c:51,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-hpux.c:55,1
    - Dst: setsid
      Src: /src/tmux/compat/forkpty-hpux.c:57,1
    - Dst: ioctl
      Src: /src/tmux/compat/forkpty-hpux.c:59,1
    - Dst: fatal
      Src: /src/tmux/compat/forkpty-hpux.c:60,1
    - Dst: ioctl
      Src: /src/tmux/compat/forkpty-hpux.c:63,1
    - Dst: fatal
      Src: /src/tmux/compat/forkpty-hpux.c:64,1
    - Dst: ioctl
      Src: /src/tmux/compat/forkpty-hpux.c:65,1
    - Dst: fatal
      Src: /src/tmux/compat/forkpty-hpux.c:66,1
    - Dst: tcsetattr
      Src: /src/tmux/compat/forkpty-hpux.c:68,1
    - Dst: fatal
      Src: /src/tmux/compat/forkpty-hpux.c:69,1
    - Dst: ioctl
      Src: /src/tmux/compat/forkpty-hpux.c:70,1
    - Dst: fatal
      Src: /src/tmux/compat/forkpty-hpux.c:71,1
    - Dst: dup2
      Src: /src/tmux/compat/forkpty-hpux.c:73,1
    - Dst: dup2
      Src: /src/tmux/compat/forkpty-hpux.c:74,1
    - Dst: dup2
      Src: /src/tmux/compat/forkpty-hpux.c:75,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-hpux.c:77,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-hpux.c:81,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-hpux.c:86,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-hpux.c:88,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 50
    argCount: 4
    argNames:
    - master
    - name
    - tio
    - ws
    argTypes:
    - int*
    - char*
    - struct termios*
    - struct winsize*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 90
    functionName: forkpty
    functionSourceFile: /src/tmux/compat/forkpty-hpux.c
    functionUses: 3
    functionsReached:
    - grantpt
    - close
    - ptsname
    - fatal
    - open
    - strlcpy
    - tcsetattr
    - setsid
    - dup2
    - fork
    - unlockpt
    - ioctl
    linkageType: ''
    returnType: pid_t
    signature: pid_t forkpty(int *master, char *name, struct termios *tio, struct
      winsize *ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/tmux/compat/htonll.c:28,1
    - Dst: htonl
      Src: /src/tmux/compat/htonll.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: htonll
    functionSourceFile: /src/tmux/compat/htonll.c
    functionUses: 0
    functionsReached:
    - htonl
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t htonll(uint64_t v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: msgbuf_new_reader
      Src: /src/tmux/compat/imsg.c:41,1
    - Dst: getpid
      Src: /src/tmux/compat/imsg.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - imsgbuf
    - fd
    argTypes:
    - struct imsgbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 50
    functionName: imsgbuf_init
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 1
    functionsReached:
    - getpid
    - msgbuf_new_reader
    linkageType: ''
    returnType: int
    signature: int imsgbuf_init(struct imsgbuf *imsgbuf, int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - imsgbuf
    argTypes:
    - struct imsgbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: imsgbuf_allow_fdpass
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void imsgbuf_allow_fdpass(struct imsgbuf *imsgbuf)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - imsgbuf
    - max
    argTypes:
    - struct imsgbuf*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 72
    functionName: imsgbuf_set_maxsize
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int imsgbuf_set_maxsize(struct imsgbuf *imsgbuf, uint32_t max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: msgbuf_read
      Src: /src/tmux/compat/imsg.c:78,1
    - Dst: ibuf_read
      Src: /src/tmux/compat/imsg.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - imsgbuf
    argTypes:
    - struct imsgbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 5
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: imsgbuf_read
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 1
    functionsReached:
    - ibuf_read
    - msgbuf_read
    linkageType: ''
    returnType: int
    signature: int imsgbuf_read(struct imsgbuf *imsgbuf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: msgbuf_write
      Src: /src/tmux/compat/imsg.c:87,1
    - Dst: ibuf_write
      Src: /src/tmux/compat/imsg.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - imsgbuf
    argTypes:
    - struct imsgbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: imsgbuf_write
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 1
    functionsReached:
    - msgbuf_write
    - ibuf_write
    linkageType: ''
    returnType: int
    signature: int imsgbuf_write(struct imsgbuf *imsgbuf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: imsgbuf_queuelen
      Src: /src/tmux/compat/imsg.c:95,1
    - Dst: imsgbuf_write
      Src: /src/tmux/compat/imsg.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - imsgbuf
    argTypes:
    - struct imsgbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: imsgbuf_flush
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 2
    functionsReached:
    - imsgbuf_write
    - imsgbuf_queuelen
    linkageType: ''
    returnType: int
    signature: int imsgbuf_flush(struct imsgbuf *imsgbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msgbuf_free
      Src: /src/tmux/compat/imsg.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - imsgbuf
    argTypes:
    - struct imsgbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: imsgbuf_clear
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 1
    functionsReached:
    - msgbuf_free
    linkageType: ''
    returnType: void
    signature: void imsgbuf_clear(struct imsgbuf *imsgbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msgbuf_queuelen
      Src: /src/tmux/compat/imsg.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - imsgbuf
    argTypes:
    - struct imsgbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: imsgbuf_queuelen
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 3
    functionsReached:
    - msgbuf_queuelen
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t imsgbuf_queuelen(struct imsgbuf *imsgbuf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: msgbuf_get
      Src: /src/tmux/compat/imsg.c:121,1
    - Dst: ibuf_get
      Src: /src/tmux/compat/imsg.c:124,1
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg.c:127,1
    - Dst: ibuf_data
      Src: /src/tmux/compat/imsg.c:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - imsgbuf
    - imsg
    argTypes:
    - struct imsgbuf*
    - struct imsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 136
    functionName: imsgbuf_get
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 0
    functionsReached:
    - ibuf_data
    - msgbuf_get
    - ibuf_size
    - ibuf_get
    linkageType: ''
    returnType: int
    signature: int imsgbuf_get(struct imsgbuf *imsgbuf, struct imsg *imsg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: imsgbuf_get
      Src: /src/tmux/compat/imsg.c:143,1
    - Dst: imsg_get_len
      Src: /src/tmux/compat/imsg.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - imsgbuf
    - imsg
    argTypes:
    - struct imsgbuf*
    - struct imsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: imsg_get
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 1
    functionsReached:
    - imsgbuf_get
    - imsg_get_len
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t imsg_get(struct imsgbuf *imsgbuf, struct imsg *imsg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ibufq_pop
      Src: /src/tmux/compat/imsg.c:154,1
    - Dst: ibuf_get
      Src: /src/tmux/compat/imsg.c:157,1
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg.c:160,1
    - Dst: ibuf_data
      Src: /src/tmux/compat/imsg.c:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - bufq
    - imsg
    argTypes:
    - struct ibufqueue*
    - struct imsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 169
    functionName: imsg_ibufq_pop
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 0
    functionsReached:
    - ibuf_data
    - ibufq_pop
    - ibuf_size
    - ibuf_get
    linkageType: ''
    returnType: int
    signature: int imsg_ibufq_pop(struct ibufqueue *bufq, struct imsg *imsg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_rewind
      Src: /src/tmux/compat/imsg.c:174,1
    - Dst: ibufq_push
      Src: /src/tmux/compat/imsg.c:175,1
    - Dst: memset
      Src: /src/tmux/compat/imsg.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bufq
    - imsg
    argTypes:
    - struct ibufqueue*
    - struct imsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: imsg_ibufq_push
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 0
    functionsReached:
    - ibufq_push
    - memset
    - ibuf_rewind
    linkageType: ''
    returnType: void
    signature: void imsg_ibufq_push(struct ibufqueue *bufq, struct imsg *imsg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg.c:182,1
    - Dst: ibuf_get_ibuf
      Src: /src/tmux/compat/imsg.c:186,1
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - imsg
    - ibuf
    argTypes:
    - struct imsg*
    - struct ibuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: imsg_get_ibuf
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 0
    functionsReached:
    - ibuf_size
    - ibuf_get_ibuf
    linkageType: ''
    returnType: int
    signature: int imsg_get_ibuf(struct imsg *imsg, struct ibuf *ibuf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg.c:196,1
    - Dst: ibuf_get
      Src: /src/tmux/compat/imsg.c:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - imsg
    - data
    - len
    argTypes:
    - struct imsg*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 201
    functionName: imsg_get_data
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 0
    functionsReached:
    - ibuf_size
    - ibuf_get
    linkageType: ''
    returnType: int
    signature: int imsg_get_data(struct imsg *imsg, void *data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_get
      Src: /src/tmux/compat/imsg.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - imsg
    - data
    - len
    argTypes:
    - struct imsg*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: imsg_get_buf
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 0
    functionsReached:
    - ibuf_get
    linkageType: ''
    returnType: int
    signature: int imsg_get_buf(struct imsg *imsg, void *data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_get_strbuf
      Src: /src/tmux/compat/imsg.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - imsg
    - str
    - len
    argTypes:
    - struct imsg*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: imsg_get_strbuf
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 0
    functionsReached:
    - ibuf_get_strbuf
    linkageType: ''
    returnType: int
    signature: int imsg_get_strbuf(struct imsg *imsg, char *str, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_fd_get
      Src: /src/tmux/compat/imsg.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - imsg
    argTypes:
    - struct imsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: imsg_get_fd
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 1
    functionsReached:
    - ibuf_fd_get
    linkageType: ''
    returnType: int
    signature: int imsg_get_fd(struct imsg *imsg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - imsg
    argTypes:
    - struct imsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 225
    functionName: imsg_get_id
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t imsg_get_id(struct imsg *imsg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - imsg
    argTypes:
    - struct imsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: imsg_get_len
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 1
    functionsReached:
    - ibuf_size
    linkageType: ''
    returnType: size_t
    signature: size_t imsg_get_len(struct imsg *imsg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - imsg
    argTypes:
    - struct imsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: imsg_get_pid
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pid_t
    signature: pid_t imsg_get_pid(struct imsg *imsg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - imsg
    argTypes:
    - struct imsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: imsg_get_type
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t imsg_get_type(struct imsg *imsg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: imsg_create
      Src: /src/tmux/compat/imsg.c:251,1
    - Dst: ibuf_add
      Src: /src/tmux/compat/imsg.c:254,1
    - Dst: ibuf_fd_set
      Src: /src/tmux/compat/imsg.c:257,1
    - Dst: imsg_close
      Src: /src/tmux/compat/imsg.c:258,1
    - Dst: ibuf_free
      Src: /src/tmux/compat/imsg.c:263,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 7
    argNames:
    - imsgbuf
    - type
    - id
    - pid
    - fd
    - data
    - datalen
    argTypes:
    - struct imsgbuf*
    - uint32_t
    - uint32_t
    - pid_t
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 265
    functionName: imsg_compose
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 1
    functionsReached:
    - ibuf_add
    - imsg_close
    - ibuf_fd_set
    - ibuf_free
    - imsg_create
    linkageType: ''
    returnType: int
    signature: "int imsg_compose(struct imsgbuf *imsgbuf, uint32_t type, uint32_t
      id, pid_t pid,\n    int fd, const void *data, size_t datalen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: imsg_create
      Src: /src/tmux/compat/imsg.c:278,1
    - Dst: ibuf_add
      Src: /src/tmux/compat/imsg.c:282,1
    - Dst: ibuf_fd_set
      Src: /src/tmux/compat/imsg.c:285,1
    - Dst: imsg_close
      Src: /src/tmux/compat/imsg.c:286,1
    - Dst: ibuf_free
      Src: /src/tmux/compat/imsg.c:291,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 7
    argNames:
    - imsgbuf
    - type
    - id
    - pid
    - fd
    - iov
    - iovcnt
    argTypes:
    - struct imsgbuf*
    - uint32_t
    - uint32_t
    - pid_t
    - int
    - struct iovec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 293
    functionName: imsg_composev
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 0
    functionsReached:
    - ibuf_add
    - imsg_close
    - ibuf_fd_set
    - ibuf_free
    - imsg_create
    linkageType: ''
    returnType: int
    signature: "int imsg_composev(struct imsgbuf *imsgbuf, uint32_t type, uint32_t
      id, pid_t pid,\n    int fd, const struct iovec *iov, int iovcnt)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg.c:306,1
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg.c:312,1
    - Dst: ibuf_open
      Src: /src/tmux/compat/imsg.c:317,1
    - Dst: ibuf_add
      Src: /src/tmux/compat/imsg.c:319,1
    - Dst: ibuf_close
      Src: /src/tmux/compat/imsg.c:322,1
    - Dst: ibuf_close
      Src: /src/tmux/compat/imsg.c:323,1
    - Dst: ibuf_free
      Src: /src/tmux/compat/imsg.c:327,1
    - Dst: ibuf_free
      Src: /src/tmux/compat/imsg.c:328,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - imsgbuf
    - type
    - id
    - pid
    - buf
    argTypes:
    - struct imsgbuf*
    - uint32_t
    - uint32_t
    - pid_t
    - struct ibuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 330
    functionName: imsg_compose_ibuf
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 0
    functionsReached:
    - ibuf_add
    - ibuf_free
    - ibuf_close
    - ibuf_open
    - ibuf_size
    linkageType: ''
    returnType: int
    signature: "int imsg_compose_ibuf(struct imsgbuf *imsgbuf, uint32_t type, uint32_t
      id,\n    pid_t pid, struct ibuf *buf)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_rewind
      Src: /src/tmux/compat/imsg.c:341,1
    - Dst: ibuf_skip
      Src: /src/tmux/compat/imsg.c:342,1
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg.c:343,1
    - Dst: imsg_create
      Src: /src/tmux/compat/imsg.c:345,1
    - Dst: ibuf_add_ibuf
      Src: /src/tmux/compat/imsg.c:350,1
    - Dst: ibuf_free
      Src: /src/tmux/compat/imsg.c:351,1
    - Dst: imsg_close
      Src: /src/tmux/compat/imsg.c:356,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - imsgbuf
    - msg
    argTypes:
    - struct imsgbuf*
    - struct imsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 335
    functionDepth: 3
    functionLinenumber: 335
    functionLinenumberEnd: 358
    functionName: imsg_forward
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 0
    functionsReached:
    - ibuf_skip
    - imsg_close
    - ibuf_free
    - imsg_create
    - ibuf_add_ibuf
    - ibuf_size
    - ibuf_rewind
    linkageType: ''
    returnType: int
    signature: int imsg_forward(struct imsgbuf *imsgbuf, struct imsg *msg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_dynamic
      Src: /src/tmux/compat/imsg.c:378,1
    - Dst: ibuf_add
      Src: /src/tmux/compat/imsg.c:380,1
    - Dst: ibuf_free
      Src: /src/tmux/compat/imsg.c:386,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 5
    argNames:
    - imsgbuf
    - type
    - id
    - pid
    - datalen
    argTypes:
    - struct imsgbuf*
    - uint32_t
    - uint32_t
    - pid_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 388
    functionName: imsg_create
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 3
    functionsReached:
    - ibuf_add
    - ibuf_free
    - ibuf_dynamic
    linkageType: ''
    returnType: struct ibuf
    signature: "struct ibuf *\nimsg_create(struct imsgbuf *imsgbuf, uint32_t type,
      uint32_t id, pid_t pid,\n    size_t datalen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_add
      Src: /src/tmux/compat/imsg.c:394,1
    - Dst: ibuf_free
      Src: /src/tmux/compat/imsg.c:395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - msg
    - data
    - datalen
    argTypes:
    - struct ibuf*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 399
    functionName: imsg_add
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 0
    functionsReached:
    - ibuf_add
    - ibuf_free
    linkageType: ''
    returnType: int
    signature: int imsg_add(struct ibuf *msg, const void *data, size_t datalen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_size
      Src: /src/tmux/compat/imsg.c:406,1
    - Dst: ibuf_fd_avail
      Src: /src/tmux/compat/imsg.c:407,1
    - Dst: ibuf_set_h32
      Src: /src/tmux/compat/imsg.c:409,1
    - Dst: ibuf_close
      Src: /src/tmux/compat/imsg.c:410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - imsgbuf
    - msg
    argTypes:
    - struct imsgbuf*
    - struct ibuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 401
    functionDepth: 4
    functionLinenumber: 401
    functionLinenumberEnd: 411
    functionName: imsg_close
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 3
    functionsReached:
    - ibuf_close
    - ibuf_fd_avail
    - ibuf_size
    - ibuf_set_h32
    linkageType: ''
    returnType: void
    signature: void imsg_close(struct imsgbuf *imsgbuf, struct ibuf *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_free
      Src: /src/tmux/compat/imsg.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - imsg
    argTypes:
    - struct imsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 417
    functionName: imsg_free
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 1
    functionsReached:
    - ibuf_free
    linkageType: ''
    returnType: void
    signature: void imsg_free(struct imsg *imsg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_set_maxsize
      Src: /src/tmux/compat/imsg.c:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - msg
    - max
    argTypes:
    - struct ibuf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 427
    functionName: imsg_set_maxsize
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 0
    functionsReached:
    - ibuf_set_maxsize
    linkageType: ''
    returnType: int
    signature: int imsg_set_maxsize(struct ibuf *msg, size_t max)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ibuf_get
      Src: /src/tmux/compat/imsg.c:437,1
    - Dst: ibuf_open
      Src: /src/tmux/compat/imsg.c:446,1
    - Dst: ibuf_fd_set
      Src: /src/tmux/compat/imsg.c:449,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - buf
    - arg
    - fd
    argTypes:
    - struct ibuf*
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 429
    functionDepth: 2
    functionLinenumber: 429
    functionLinenumberEnd: 454
    functionName: imsg_parse_hdr
    functionSourceFile: /src/tmux/compat/imsg.c
    functionUses: 0
    functionsReached:
    - ibuf_fd_set
    - ibuf_open
    - ibuf_get
    linkageType: ''
    returnType: struct ibuf
    signature: 'struct ibuf *

      imsg_parse_hdr(struct ibuf *buf, void *arg, int *fd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/tmux/compat/daemon-darwin.c:70,1
    - Dst: bootstrap_get_root
      Src: /src/tmux/compat/daemon-darwin.c:71,1
    - Dst: bootstrap_look_up_per_user
      Src: /src/tmux/compat/daemon-darwin.c:72,1
    - Dst: task_set_bootstrap_port
      Src: /src/tmux/compat/daemon-darwin.c:73,1
    - Dst: mach_task_self
      Src: /src/tmux/compat/daemon-darwin.c:73,1
    - Dst: mach_port_deallocate
      Src: /src/tmux/compat/daemon-darwin.c:74,1
    - Dst: mach_task_self
      Src: /src/tmux/compat/daemon-darwin.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 76
    functionName: daemon_darwin
    functionSourceFile: /src/tmux/compat/daemon-darwin.c
    functionUses: 0
    functionsReached:
    - bootstrap_get_root
    - bootstrap_look_up_per_user
    - mach_port_deallocate
    - getuid
    - task_set_bootstrap_port
    - mach_task_self
    linkageType: ''
    returnType: void
    signature: void daemon_darwin(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: daemon_darwin
    functionSourceFile: /src/tmux/compat/daemon-darwin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void daemon_darwin(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strtoll
      Src: /src/tmux/compat/strtonum.c:52,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 4
    argNames:
    - numstr
    - minval
    - maxval
    - errstrp
    argTypes:
    - char*
    - long long
    - long long
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 67
    functionName: strtonum
    functionSourceFile: /src/tmux/compat/strtonum.c
    functionUses: 30
    functionsReached:
    - strtoll
    linkageType: ''
    returnType: long long
    signature: "long long strtonum(const char *numstr, long long minval, long long
      maxval,\n    const char **errstrp)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/tmux/compat/fgetln.c:41,1
    - Dst: getc
      Src: /src/tmux/compat/fgetln.c:45,1
    - Dst: reallocarray
      Src: /src/tmux/compat/fgetln.c:48,1
    - Dst: free
      Src: /src/tmux/compat/fgetln.c:50,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - fp
    - len
    argTypes:
    - FILE*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 61
    functionName: fgetln
    functionSourceFile: /src/tmux/compat/fgetln.c
    functionUses: 1
    functionsReached:
    - getc
    - reallocarray
    - calloc
    - free
    linkageType: ''
    returnType: char
    signature: 'char *

      fgetln(FILE *fp, size_t *len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/tmux/compat/err.c:33,1
    - Dst: getprogname
      Src: /src/tmux/compat/err.c:33,1
    - Dst: va_start
      Src: /src/tmux/compat/err.c:35,1
    - Dst: vfprintf
      Src: /src/tmux/compat/err.c:37,1
    - Dst: fprintf
      Src: /src/tmux/compat/err.c:38,1
    - Dst: va_end
      Src: /src/tmux/compat/err.c:40,1
    - Dst: fprintf
      Src: /src/tmux/compat/err.c:42,1
    - Dst: strerror
      Src: /src/tmux/compat/err.c:42,1
    - Dst: exit
      Src: /src/tmux/compat/err.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - eval
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 44
    functionName: err
    functionSourceFile: /src/tmux/compat/err.c
    functionUses: 1
    functionsReached:
    - exit
    - getprogname
    - strerror
    - va_end
    - va_start
    - fprintf
    - vfprintf
    linkageType: ''
    returnType: void
    signature: void err(int eval, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/tmux/compat/err.c:51,1
    - Dst: getprogname
      Src: /src/tmux/compat/err.c:51,1
    - Dst: va_start
      Src: /src/tmux/compat/err.c:53,1
    - Dst: vfprintf
      Src: /src/tmux/compat/err.c:55,1
    - Dst: va_end
      Src: /src/tmux/compat/err.c:56,1
    - Dst: putc
      Src: /src/tmux/compat/err.c:58,1
    - Dst: exit
      Src: /src/tmux/compat/err.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - eval
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 60
    functionName: errx
    functionSourceFile: /src/tmux/compat/err.c
    functionUses: 1
    functionsReached:
    - exit
    - getprogname
    - putc
    - va_end
    - va_start
    - fprintf
    - vfprintf
    linkageType: ''
    returnType: void
    signature: void errx(int eval, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/tmux/compat/err.c:68,1
    - Dst: getprogname
      Src: /src/tmux/compat/err.c:68,1
    - Dst: va_start
      Src: /src/tmux/compat/err.c:70,1
    - Dst: vfprintf
      Src: /src/tmux/compat/err.c:72,1
    - Dst: fprintf
      Src: /src/tmux/compat/err.c:73,1
    - Dst: va_end
      Src: /src/tmux/compat/err.c:75,1
    - Dst: fprintf
      Src: /src/tmux/compat/err.c:77,1
    - Dst: strerror
      Src: /src/tmux/compat/err.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 78
    functionName: warn
    functionSourceFile: /src/tmux/compat/err.c
    functionUses: 0
    functionsReached:
    - getprogname
    - strerror
    - va_end
    - va_start
    - fprintf
    - vfprintf
    linkageType: ''
    returnType: void
    signature: void warn(const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/tmux/compat/err.c:85,1
    - Dst: getprogname
      Src: /src/tmux/compat/err.c:85,1
    - Dst: va_start
      Src: /src/tmux/compat/err.c:87,1
    - Dst: vfprintf
      Src: /src/tmux/compat/err.c:89,1
    - Dst: va_end
      Src: /src/tmux/compat/err.c:90,1
    - Dst: putc
      Src: /src/tmux/compat/err.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 93
    functionName: warnx
    functionSourceFile: /src/tmux/compat/err.c
    functionUses: 0
    functionsReached:
    - getprogname
    - putc
    - va_end
    - va_start
    - fprintf
    - vfprintf
    linkageType: ''
    returnType: void
    signature: void warnx(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sd_listen_fds
      Src: /src/tmux/compat/systemd.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: systemd_activated
    functionSourceFile: /src/tmux/compat/systemd.c
    functionUses: 1
    functionsReached:
    - sd_listen_fds
    linkageType: ''
    returnType: int
    signature: int systemd_activated(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sd_listen_fds
      Src: /src/tmux/compat/systemd.c:52,1
    - Dst: sd_is_socket_unix
      Src: /src/tmux/compat/systemd.c:60,1
    - Dst: getsockname
      Src: /src/tmux/compat/systemd.c:64,1
    - Dst: xstrdup
      Src: /src/tmux/compat/systemd.c:66,1
    - Dst: server_create_socket
      Src: /src/tmux/compat/systemd.c:70,1
    - Dst: xasprintf
      Src: /src/tmux/compat/systemd.c:74,1
    - Dst: strerror
      Src: /src/tmux/compat/systemd.c:74,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - flags
    - cause
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 76
    functionName: systemd_create_socket
    functionSourceFile: /src/tmux/compat/systemd.c
    functionUses: 1
    functionsReached:
    - xasprintf
    - getsockname
    - sd_is_socket_unix
    - strerror
    - server_create_socket
    - sd_listen_fds
    - xstrdup
    linkageType: ''
    returnType: int
    signature: int systemd_create_socket(int flags, char **cause)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sd_bus_message_read
      Src: /src/tmux/compat/systemd.c:96,1
    - Dst: strcmp
      Src: /src/tmux/compat/systemd.c:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - m
    - userdata
    - sd_bus_error *ret_error
    argTypes:
    - sd_bus_message*
    - void*
    - __unused
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 104
    functionName: job_removed_handler
    functionSourceFile: /src/tmux/compat/systemd.c
    functionUses: 0
    functionsReached:
    - sd_bus_message_read
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int job_removed_handler(sd_bus_message *m, void *userdata,\n    __unused
      sd_bus_error *ret_error)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/tmux/compat/systemd.c:121,1
    - Dst: sd_bus_default_user
      Src: /src/tmux/compat/systemd.c:124,1
    - Dst: xasprintf
      Src: /src/tmux/compat/systemd.c:126,1
    - Dst: strerror
      Src: /src/tmux/compat/systemd.c:127,1
    - Dst: sd_bus_match_signal
      Src: /src/tmux/compat/systemd.c:132,1
    - Dst: xasprintf
      Src: /src/tmux/compat/systemd.c:140,1
    - Dst: strerror
      Src: /src/tmux/compat/systemd.c:141,1
    - Dst: sd_bus_message_new_method_call
      Src: /src/tmux/compat/systemd.c:146,1
    - Dst: xasprintf
      Src: /src/tmux/compat/systemd.c:152,1
    - Dst: strerror
      Src: /src/tmux/compat/systemd.c:153,1
    - Dst: sd_id128_randomize
      Src: /src/tmux/compat/systemd.c:158,1
    - Dst: xasprintf
      Src: /src/tmux/compat/systemd.c:160,1
    - Dst: strerror
      Src: /src/tmux/compat/systemd.c:160,1
    - Dst: xasprintf
      Src: /src/tmux/compat/systemd.c:163,1
    - Dst: SD_ID128_FORMAT_VAL
      Src: /src/tmux/compat/systemd.c:164,1
    - Dst: sd_bus_message_append
      Src: /src/tmux/compat/systemd.c:165,1
    - Dst: free
      Src: /src/tmux/compat/systemd.c:166,1
    - Dst: xasprintf
      Src: /src/tmux/compat/systemd.c:168,1
    - Dst: strerror
      Src: /src/tmux/compat/systemd.c:169,1
    - Dst: sd_bus_message_append
      Src: /src/tmux/compat/systemd.c:174,1
    - Dst: xasprintf
      Src: /src/tmux/compat/systemd.c:176,1
    - Dst: strerror
      Src: /src/tmux/compat/systemd.c:177,1
    - Dst: sd_bus_message_open_container
      Src: /src/tmux/compat/systemd.c:182,1
    - Dst: xasprintf
      Src: /src/tmux/compat/systemd.c:184,1
    - Dst: strerror
      Src: /src/tmux/compat/systemd.c:185,1
    - Dst: getpid
      Src: /src/tmux/compat/systemd.c:189,1
    - Dst: getppid
      Src: /src/tmux/compat/systemd.c:190,1
    - Dst: xasprintf
      Src: /src/tmux/compat/systemd.c:191,1
    - Dst: sd_bus_message_append
      Src: /src/tmux/compat/systemd.c:193,1
    - Dst: free
      Src: /src/tmux/compat/systemd.c:194,1
    - Dst: xasprintf
      Src: /src/tmux/compat/systemd.c:196,1
    - Dst: strerror
      Src: /src/tmux/compat/systemd.c:197,1
    - Dst: sd_bus_message_append
      Src: /src/tmux/compat/systemd.c:205,1
    - Dst: xasprintf
      Src: /src/tmux/compat/systemd.c:207,1
    - Dst: strerror
      Src: /src/tmux/compat/systemd.c:208,1
    - Dst: sd_pid_get_user_slice
      Src: /src/tmux/compat/systemd.c:216,1
    - Dst: xstrdup
      Src: /src/tmux/compat/systemd.c:218,1
    - Dst: sd_bus_message_append
      Src: /src/tmux/compat/systemd.c:220,1
    - Dst: free
      Src: /src/tmux/compat/systemd.c:221,1
    - Dst: xasprintf
      Src: /src/tmux/compat/systemd.c:223,1
    - Dst: strerror
      Src: /src/tmux/compat/systemd.c:224,1
    - Dst: sd_bus_message_append
      Src: /src/tmux/compat/systemd.c:229,1
    - Dst: xasprintf
      Src: /src/tmux/compat/systemd.c:231,1
    - Dst: strerror
      Src: /src/tmux/compat/systemd.c:232,1
    - Dst: sd_bus_message_append
      Src: /src/tmux/compat/systemd.c:237,1
    - Dst: xasprintf
      Src: /src/tmux/compat/systemd.c:240,1
    - Dst: strerror
      Src: /src/tmux/compat/systemd.c:241,1
    - Dst: sd_pid_get_user_unit
      Src: /src/tmux/compat/systemd.c:250,1
    - Dst: sd_pid_get_unit
      Src: /src/tmux/compat/systemd.c:251,1
    - Dst: sd_bus_message_append
      Src: /src/tmux/compat/systemd.c:252,1
    - Dst: sd_bus_message_append
      Src: /src/tmux/compat/systemd.c:254,1
    - Dst: free
      Src: /src/tmux/compat/systemd.c:257,1
    - Dst: xasprintf
      Src: /src/tmux/compat/systemd.c:259,1
    - Dst: strerror
      Src: /src/tmux/compat/systemd.c:260,1
    - Dst: sd_bus_message_close_container
      Src: /src/tmux/compat/systemd.c:266,1
    - Dst: xasprintf
      Src: /src/tmux/compat/systemd.c:268,1
    - Dst: strerror
      Src: /src/tmux/compat/systemd.c:269,1
    - Dst: sd_bus_message_append
      Src: /src/tmux/compat/systemd.c:274,1
    - Dst: xasprintf
      Src: /src/tmux/compat/systemd.c:276,1
    - Dst: strerror
      Src: /src/tmux/compat/systemd.c:277,1
    - Dst: sd_bus_call
      Src: /src/tmux/compat/systemd.c:282,1
    - Dst: xasprintf
      Src: /src/tmux/compat/systemd.c:286,1
    - Dst: xasprintf
      Src: /src/tmux/compat/systemd.c:289,1
    - Dst: strerror
      Src: /src/tmux/compat/systemd.c:290,1
    - Dst: sd_bus_message_read
      Src: /src/tmux/compat/systemd.c:296,1
    - Dst: xasprintf
      Src: /src/tmux/compat/systemd.c:298,1
    - Dst: strerror
      Src: /src/tmux/compat/systemd.c:299,1
    - Dst: sd_bus_process
      Src: /src/tmux/compat/systemd.c:305,1
    - Dst: xasprintf
      Src: /src/tmux/compat/systemd.c:307,1
    - Dst: strerror
      Src: /src/tmux/compat/systemd.c:309,1
    - Dst: gettimeofday
      Src: /src/tmux/compat/systemd.c:320,1
    - Dst: xasprintf
      Src: /src/tmux/compat/systemd.c:325,1
    - Dst: sd_bus_wait
      Src: /src/tmux/compat/systemd.c:330,1
    - Dst: xasprintf
      Src: /src/tmux/compat/systemd.c:332,1
    - Dst: strerror
      Src: /src/tmux/compat/systemd.c:334,1
    - Dst: sd_bus_error_free
      Src: /src/tmux/compat/systemd.c:340,1
    - Dst: sd_bus_message_unref
      Src: /src/tmux/compat/systemd.c:341,1
    - Dst: sd_bus_message_unref
      Src: /src/tmux/compat/systemd.c:342,1
    - Dst: sd_bus_slot_unref
      Src: /src/tmux/compat/systemd.c:343,1
    - Dst: sd_bus_unref
      Src: /src/tmux/compat/systemd.c:344,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 156
    argCount: 1
    argNames:
    - cause
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 347
    functionName: systemd_move_to_new_cgroup
    functionSourceFile: /src/tmux/compat/systemd.c
    functionUses: 1
    functionsReached:
    - sd_bus_message_unref
    - sd_bus_message_close_container
    - sd_bus_error_free
    - sd_id128_randomize
    - getpid
    - getppid
    - sd_bus_match_signal
    - sd_bus_unref
    - sd_bus_message_append
    - sd_bus_slot_unref
    - strerror
    - sd_bus_process
    - xstrdup
    - SD_ID128_FORMAT_VAL
    - sd_bus_message_open_container
    - sd_pid_get_user_slice
    - sd_bus_wait
    - sd_pid_get_user_unit
    - sd_bus_message_read
    - gettimeofday
    - sd_bus_call
    - sd_bus_message_new_method_call
    - xasprintf
    - sd_bus_default_user
    - sd_pid_get_unit
    - free
    linkageType: ''
    returnType: int
    signature: int systemd_move_to_new_cgroup(char **cause)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: isoctal
    functionSourceFile: /src/tmux/compat/vis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isoctal(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 52
    functionName: isvisible
    functionSourceFile: /src/tmux/compat/vis.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isvisible(c,flag)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: isvisible
      Src: /src/tmux/compat/vis.c:59,1
    - Dst: isoctal
      Src: /src/tmux/compat/vis.c:105,1
    - Dst: iscntrl
      Src: /src/tmux/compat/vis.c:126,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 88
    argCount: 4
    argNames:
    - dst
    - c
    - flag
    - nextc
    argTypes:
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 139
    functionName: vis
    functionSourceFile: /src/tmux/compat/vis.c
    functionUses: 12
    functionsReached:
    - iscntrl
    - isvisible
    - isoctal
    linkageType: ''
    returnType: char
    signature: 'char *

      vis(char *dst, int c, int flag, int nextc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vis
      Src: /src/tmux/compat/vis.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dst
    - src
    - flag
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 164
    functionName: strvis
    functionSourceFile: /src/tmux/compat/vis.c
    functionUses: 4
    functionsReached:
    - vis
    linkageType: ''
    returnType: int
    signature: int strvis(char *dst, const char *src, int flag)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: isvisible
      Src: /src/tmux/compat/vis.c:175,1
    - Dst: vis
      Src: /src/tmux/compat/vis.c:189,1
    - Dst: memcpy
      Src: /src/tmux/compat/vis.c:191,1
    - Dst: vis
      Src: /src/tmux/compat/vis.c:204,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 4
    argNames:
    - dst
    - src
    - siz
    - flag
    argTypes:
    - char*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 207
    functionName: strnvis
    functionSourceFile: /src/tmux/compat/vis.c
    functionUses: 1
    functionsReached:
    - isvisible
    - memcpy
    - vis
    linkageType: ''
    returnType: int
    signature: int strnvis(char *dst, const char *src, size_t siz, int flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/tmux/compat/vis.c:215,1
    - Dst: strlen
      Src: /src/tmux/compat/vis.c:215,1
    - Dst: strvis
      Src: /src/tmux/compat/vis.c:218,1
    - Dst: realloc
      Src: /src/tmux/compat/vis.c:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - outp
    - src
    - flag
    argTypes:
    - char**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 226
    functionName: stravis
    functionSourceFile: /src/tmux/compat/vis.c
    functionUses: 5
    functionsReached:
    - strlen
    - realloc
    - calloc
    - strvis
    linkageType: ''
    returnType: int
    signature: int stravis(char **outp, const char *src, int flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vis
      Src: /src/tmux/compat/vis.c:236,1
    - Dst: vis
      Src: /src/tmux/compat/vis.c:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - dst
    - src
    - len
    - flag
    argTypes:
    - char*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 242
    functionName: strvisx
    functionSourceFile: /src/tmux/compat/vis.c
    functionUses: 0
    functionsReached:
    - vis
    linkageType: ''
    returnType: int
    signature: int strvisx(char *dst, const char *src, size_t len, int flag)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 4
    argNames:
    - src
    - srclength
    - target
    - targsize
    argTypes:
    - unsigned char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 178
    functionName: b64_ntop
    functionSourceFile: /src/tmux/compat/base64.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int b64_ntop(unsigned char const *src, size_t srclength, char *target,\n
      \   size_t targsize)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/tmux/compat/base64.c:197,1
    - Dst: strchr
      Src: /src/tmux/compat/base64.c:203,1
    - Dst: isspace
      Src: /src/tmux/compat/base64.c:271,1
    - Dst: isspace
      Src: /src/tmux/compat/base64.c:286,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 84
    argCount: 3
    argNames:
    - src
    - target
    - targsize
    argTypes:
    - char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 309
    functionName: b64_pton
    functionSourceFile: /src/tmux/compat/base64.c
    functionUses: 2
    functionsReached:
    - isspace
    - strchr
    linkageType: ''
    returnType: int
    signature: int b64_pton(char const *src, unsigned char *target, size_t targsize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/tmux/compat/strlcat.c:46,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - dst
    - src
    - siz
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 57
    functionName: strlcat
    functionSourceFile: /src/tmux/compat/strlcat.c
    functionUses: 25
    functionsReached:
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t strlcat(char *dst, const char *src, size_t siz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/tmux/compat/asprintf.c:33,1
    - Dst: vasprintf
      Src: /src/tmux/compat/asprintf.c:34,1
    - Dst: va_end
      Src: /src/tmux/compat/asprintf.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ret
    - fmt
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 38
    functionName: asprintf
    functionSourceFile: /src/tmux/compat/asprintf.c
    functionUses: 134
    functionsReached:
    - va_end
    - va_start
    - vasprintf
    linkageType: ''
    returnType: int
    signature: int asprintf(char **ret, const char *fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/tmux/compat/asprintf.c:46,1
    - Dst: vsnprintf
      Src: /src/tmux/compat/asprintf.c:48,1
    - Dst: xmalloc
      Src: /src/tmux/compat/asprintf.c:51,1
    - Dst: vsnprintf
      Src: /src/tmux/compat/asprintf.c:52,1
    - Dst: free
      Src: /src/tmux/compat/asprintf.c:53,1
    - Dst: va_end
      Src: /src/tmux/compat/asprintf.c:56,1
    - Dst: va_end
      Src: /src/tmux/compat/asprintf.c:61,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - ret
    - fmt
    - ap
    argTypes:
    - char**
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 64
    functionName: vasprintf
    functionSourceFile: /src/tmux/compat/asprintf.c
    functionUses: 26
    functionsReached:
    - va_copy
    - xmalloc
    - free
    - va_end
    - vsnprintf
    linkageType: ''
    returnType: int
    signature: int vasprintf(char **ret, const char *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: isoctal
    functionSourceFile: /src/tmux/compat/unvis.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isoctal(c)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: isoctal
      Src: /src/tmux/compat/unvis.c:170,1
    - Dst: isoctal
      Src: /src/tmux/compat/unvis.c:186,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 124
    argCount: 4
    argNames:
    - cp
    - c
    - astate
    - flag
    argTypes:
    - char*
    - char
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 202
    functionName: unvis
    functionSourceFile: /src/tmux/compat/unvis.c
    functionUses: 1
    functionsReached:
    - isoctal
    linkageType: ''
    returnType: int
    signature: int unvis(char *cp, char c, int *astate, int flag)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unvis
      Src: /src/tmux/compat/unvis.c:220,1
    - Dst: unvis
      Src: /src/tmux/compat/unvis.c:235,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 239
    functionName: strunvis
    functionSourceFile: /src/tmux/compat/unvis.c
    functionUses: 1
    functionsReached:
    - unvis
    linkageType: ''
    returnType: int
    signature: int strunvis(char *dst, const char *src)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: unvis
      Src: /src/tmux/compat/unvis.c:252,1
    - Dst: unvis
      Src: /src/tmux/compat/unvis.c:272,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 3
    argNames:
    - dst
    - src
    - sz
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 280
    functionName: strnunvis
    functionSourceFile: /src/tmux/compat/unvis.c
    functionUses: 0
    functionsReached:
    - unvis
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t strnunvis(char *dst, const char *src, size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - str
    - maxlen
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: strnlen
    functionSourceFile: /src/tmux/compat/strnlen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t strnlen(const char *str, size_t maxlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/tmux/compat/explicit_bzero.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 15
    functionName: explicit_bzero
    functionSourceFile: /src/tmux/compat/explicit_bzero.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void explicit_bzero(void *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: getprogname
    functionSourceFile: /src/tmux/compat/getprogname.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      getprogname(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: getprogname
    functionSourceFile: /src/tmux/compat/getprogname.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      getprogname(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: getprogname
    functionSourceFile: /src/tmux/compat/getprogname.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      getprogname(void)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/tmux/compat/forkpty-sunos.c:39,1
    - Dst: grantpt
      Src: /src/tmux/compat/forkpty-sunos.c:41,1
    - Dst: unlockpt
      Src: /src/tmux/compat/forkpty-sunos.c:43,1
    - Dst: ptsname
      Src: /src/tmux/compat/forkpty-sunos.c:46,1
    - Dst: strlcpy
      Src: /src/tmux/compat/forkpty-sunos.c:49,1
    - Dst: open
      Src: /src/tmux/compat/forkpty-sunos.c:50,1
    - Dst: fork
      Src: /src/tmux/compat/forkpty-sunos.c:53,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-sunos.c:57,1
    - Dst: setsid
      Src: /src/tmux/compat/forkpty-sunos.c:59,1
    - Dst: ioctl
      Src: /src/tmux/compat/forkpty-sunos.c:61,1
    - Dst: fatal
      Src: /src/tmux/compat/forkpty-sunos.c:62,1
    - Dst: ioctl
      Src: /src/tmux/compat/forkpty-sunos.c:65,1
    - Dst: fatal
      Src: /src/tmux/compat/forkpty-sunos.c:66,1
    - Dst: ioctl
      Src: /src/tmux/compat/forkpty-sunos.c:67,1
    - Dst: fatal
      Src: /src/tmux/compat/forkpty-sunos.c:68,1
    - Dst: tcsetattr
      Src: /src/tmux/compat/forkpty-sunos.c:70,1
    - Dst: fatal
      Src: /src/tmux/compat/forkpty-sunos.c:71,1
    - Dst: ioctl
      Src: /src/tmux/compat/forkpty-sunos.c:72,1
    - Dst: fatal
      Src: /src/tmux/compat/forkpty-sunos.c:73,1
    - Dst: dup2
      Src: /src/tmux/compat/forkpty-sunos.c:75,1
    - Dst: dup2
      Src: /src/tmux/compat/forkpty-sunos.c:76,1
    - Dst: dup2
      Src: /src/tmux/compat/forkpty-sunos.c:77,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-sunos.c:79,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-sunos.c:83,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-sunos.c:88,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-sunos.c:90,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 50
    argCount: 4
    argNames:
    - master
    - name
    - tio
    - ws
    argTypes:
    - int*
    - char*
    - struct termios*
    - struct winsize*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 92
    functionName: forkpty
    functionSourceFile: /src/tmux/compat/forkpty-sunos.c
    functionUses: 3
    functionsReached:
    - grantpt
    - close
    - ptsname
    - fatal
    - open
    - strlcpy
    - tcsetattr
    - setsid
    - dup2
    - fork
    - unlockpt
    - ioctl
    linkageType: ''
    returnType: pid_t
    signature: pid_t forkpty(int *master, char *name, struct termios *tio, struct
      winsize *ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 176
    functionName: gcd
    functionSourceFile: /src/tmux/compat/getopt_long.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gcd(int a, int b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gcd
      Src: /src/tmux/compat/getopt_long.c:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - panonopt_start
    - panonopt_end
    - opt_end
    - nargv
    argTypes:
    - int
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 213
    functionName: permute_args
    functionSourceFile: /src/tmux/compat/getopt_long.c
    functionUses: 0
    functionsReached:
    - gcd
    linkageType: ''
    returnType: void
    signature: "void permute_args(int panonopt_start, int panonopt_end, int opt_end,\n\tchar
      * const *nargv)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/tmux/compat/getopt_long.c:233,1
    - Dst: strlen
      Src: /src/tmux/compat/getopt_long.c:238,1
    - Dst: strncmp
      Src: /src/tmux/compat/getopt_long.c:242,1
    - Dst: strlen
      Src: /src/tmux/compat/getopt_long.c:246,1
    - Dst: warnx
      Src: /src/tmux/compat/getopt_long.c:263,1
    - Dst: warnx
      Src: /src/tmux/compat/getopt_long.c:273,1
    - Dst: warnx
      Src: /src/tmux/compat/getopt_long.c:303,1
    - Dst: warnx
      Src: /src/tmux/compat/getopt_long.c:321,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 68
    argCount: 5
    argNames:
    - nargv
    - options
    - long_options
    - idx
    - short_too
    argTypes:
    - char**
    - char*
    - struct option*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 332
    functionName: parse_long_options
    functionSourceFile: /src/tmux/compat/getopt_long.c
    functionUses: 0
    functionsReached:
    - strlen
    - strncmp
    - warnx
    - strchr
    linkageType: ''
    returnType: int
    signature: "int parse_long_options(char * const *nargv, const char *options,\n\tconst
      struct option *long_options, int *idx, int short_too)"
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/tmux/compat/getopt_long.c:361,1
    - Dst: permute_args
      Src: /src/tmux/compat/getopt_long.c:379,1
    - Dst: strchr
      Src: /src/tmux/compat/getopt_long.c:394,1
    - Dst: permute_args
      Src: /src/tmux/compat/getopt_long.c:415,1
    - Dst: permute_args
      Src: /src/tmux/compat/getopt_long.c:439,1
    - Dst: strchr
      Src: /src/tmux/compat/getopt_long.c:459,1
    - Dst: parse_long_options
      Src: /src/tmux/compat/getopt_long.c:462,1
    - Dst: strchr
      Src: /src/tmux/compat/getopt_long.c:472,1
    - Dst: warnx
      Src: /src/tmux/compat/getopt_long.c:483,1
    - Dst: warnx
      Src: /src/tmux/compat/getopt_long.c:494,1
    - Dst: parse_long_options
      Src: /src/tmux/compat/getopt_long.c:499,1
    - Dst: warnx
      Src: /src/tmux/compat/getopt_long.c:515,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 123
    argCount: 6
    argNames:
    - nargc
    - nargv
    - options
    - long_options
    - idx
    - flags
    argTypes:
    - int
    - char**
    - char*
    - struct option*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 338
    functionDepth: 3
    functionLinenumber: 338
    functionLinenumberEnd: 526
    functionName: getopt_internal
    functionSourceFile: /src/tmux/compat/getopt_long.c
    functionUses: 0
    functionsReached:
    - permute_args
    - parse_long_options
    - strchr
    - warnx
    - getenv
    linkageType: ''
    returnType: int
    signature: "int getopt_internal(int nargc, char * const *nargv, const char *options,\n\tconst
      struct option *long_options, int *idx, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getopt_internal
      Src: /src/tmux/compat/getopt_long.c:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - nargc
    - nargv
    - options
    argTypes:
    - int
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 534
    functionDepth: 4
    functionLinenumber: 534
    functionLinenumberEnd: 547
    functionName: getopt
    functionSourceFile: /src/tmux/compat/getopt_long.c
    functionUses: 1
    functionsReached:
    - getopt_internal
    linkageType: ''
    returnType: int
    signature: int getopt(int nargc, char * const *nargv, const char *options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getopt_internal
      Src: /src/tmux/compat/getopt_long.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - nargc
    - nargv
    - options
    - long_options
    - idx
    argTypes:
    - int
    - char**
    - char*
    - struct option*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 554
    functionDepth: 4
    functionLinenumber: 554
    functionLinenumberEnd: 561
    functionName: getopt_long
    functionSourceFile: /src/tmux/compat/getopt_long.c
    functionUses: 0
    functionsReached:
    - getopt_internal
    linkageType: ''
    returnType: int
    signature: "int getopt_long(int nargc, char * const *nargv, const char *options,\n
      \   const struct option *long_options, int *idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getopt_internal
      Src: /src/tmux/compat/getopt_long.c:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - nargc
    - nargv
    - options
    - long_options
    - idx
    argTypes:
    - int
    - char**
    - char*
    - struct option*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 567
    functionDepth: 4
    functionLinenumber: 567
    functionLinenumberEnd: 574
    functionName: getopt_long_only
    functionSourceFile: /src/tmux/compat/getopt_long.c
    functionUses: 0
    functionsReached:
    - getopt_internal
    linkageType: ''
    returnType: int
    signature: "int getopt_long_only(int nargc, char * const *nargv, const char *options,\n
      \   const struct option *long_options, int *idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: _Q_INVALIDATE
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Q_INVALIDATE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: SLIST_HEAD_INITIALIZER
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_HEAD_INITIALIZER(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: SLIST_FIRST
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_FIRST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: SLIST_END
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_END(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: SLIST_EMPTY
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: SLIST_NEXT
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_NEXT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: SLIST_FOREACH
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_FOREACH(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - ','
    - tvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: SLIST_FOREACH_SAFE
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_FOREACH_SAFE(var, head, field, tvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: SLIST_INIT
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_INIT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - slistelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: SLIST_INSERT_AFTER
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_INSERT_AFTER(slistelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: SLIST_INSERT_HEAD
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_INSERT_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: SLIST_REMOVE_AFTER
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_REMOVE_AFTER(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: SLIST_REMOVE_HEAD
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_REMOVE_HEAD(head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 160
    functionName: SLIST_REMOVE
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_REMOVE(head, elm, type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: LIST_HEAD_INITIALIZER
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_HEAD_INITIALIZER(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 174
    functionName: LIST_ENTRY
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: LIST_FIRST
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_FIRST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: LIST_END
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_END(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: LIST_EMPTY
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: LIST_NEXT
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_NEXT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 190
    functionName: LIST_FOREACH
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_FOREACH(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - ','
    - tvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: LIST_FOREACH_SAFE
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_FOREACH_SAFE(var, head, field, tvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: LIST_INIT
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_INIT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 210
    functionName: LIST_INSERT_AFTER
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_INSERT_AFTER(listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 217
    functionName: LIST_INSERT_BEFORE
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_INSERT_BEFORE(listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 224
    functionName: LIST_INSERT_HEAD
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_INSERT_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 233
    functionName: LIST_REMOVE
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_REMOVE(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elm
    - ','
    - elm2
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 243
    functionName: LIST_REPLACE
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_REPLACE(elm, elm2, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 249
    functionName: SIMPLEQ_HEAD
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_HEAD(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: SIMPLEQ_HEAD_INITIALIZER
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_HEAD_INITIALIZER(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 265
    functionName: SIMPLEQ_FIRST
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_FIRST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    functionName: SIMPLEQ_END
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_END(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 267
    functionName: SIMPLEQ_EMPTY
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 268
    functionName: SIMPLEQ_NEXT
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_NEXT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: SIMPLEQ_FOREACH
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_FOREACH(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - ','
    - tvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 278
    functionName: SIMPLEQ_FOREACH_SAFE
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_FOREACH_SAFE(var, head, field, tvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 286
    functionName: SIMPLEQ_INIT
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_INIT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 292
    functionName: SIMPLEQ_INSERT_HEAD
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_INSERT_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 298
    functionName: SIMPLEQ_INSERT_TAIL
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_INSERT_TAIL(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 304
    functionName: SIMPLEQ_INSERT_AFTER
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_INSERT_AFTER(head, listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 309
    functionName: SIMPLEQ_REMOVE_HEAD
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_REMOVE_HEAD(head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 315
    functionName: SIMPLEQ_REMOVE_AFTER
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_REMOVE_AFTER(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - head1
    - ','
    - head2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 323
    functionName: SIMPLEQ_CONCAT
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_CONCAT(head1, head2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 329
    functionName: XSIMPLEQ_HEAD
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XSIMPLEQ_HEAD(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - head
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 344
    functionName: XSIMPLEQ_XOR
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XSIMPLEQ_XOR(head, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 345
    functionName: XSIMPLEQ_FIRST
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XSIMPLEQ_FIRST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 346
    functionName: XSIMPLEQ_END
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XSIMPLEQ_END(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 347
    functionName: XSIMPLEQ_EMPTY
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XSIMPLEQ_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 348
    functionName: XSIMPLEQ_NEXT
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XSIMPLEQ_NEXT(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 354
    functionName: XSIMPLEQ_FOREACH
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XSIMPLEQ_FOREACH(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - ','
    - tvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 359
    functionName: XSIMPLEQ_FOREACH_SAFE
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XSIMPLEQ_FOREACH_SAFE(var, head, field, tvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 368
    functionName: XSIMPLEQ_INIT
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XSIMPLEQ_INIT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 375
    functionName: XSIMPLEQ_INSERT_HEAD
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XSIMPLEQ_INSERT_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 381
    functionName: XSIMPLEQ_INSERT_TAIL
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XSIMPLEQ_INSERT_TAIL(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 388
    functionName: XSIMPLEQ_INSERT_AFTER
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XSIMPLEQ_INSERT_AFTER(head, listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 394
    functionName: XSIMPLEQ_REMOVE_HEAD
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XSIMPLEQ_REMOVE_HEAD(head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 402
    functionName: XSIMPLEQ_REMOVE_AFTER
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XSIMPLEQ_REMOVE_AFTER(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 409
    functionName: TAILQ_HEAD
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_HEAD(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 415
    functionName: TAILQ_HEAD_INITIALIZER
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_HEAD_INITIALIZER(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 418
    functionName: TAILQ_ENTRY
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 426
    functionName: TAILQ_FIRST
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 86
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_FIRST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 427
    functionName: TAILQ_END
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_END(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 428
    functionName: TAILQ_NEXT
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_NEXT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - head
    - ','
    - headname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 430
    functionName: TAILQ_LAST
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_LAST(head, headname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elm
    - ','
    - headname
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 433
    functionName: TAILQ_PREV
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_PREV(elm, headname, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 435
    functionName: TAILQ_EMPTY
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 44
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 440
    functionName: TAILQ_FOREACH
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 164
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_FOREACH(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - ','
    - tvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 446
    functionName: TAILQ_FOREACH_SAFE
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_FOREACH_SAFE(var, head, field, tvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - headname
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 452
    functionName: TAILQ_FOREACH_REVERSE
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_FOREACH_REVERSE(var, head, headname, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - headname
    - ','
    - field
    - ','
    - tvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 458
    functionName: TAILQ_FOREACH_REVERSE_SAFE
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 466
    functionName: TAILQ_INIT
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_INIT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 476
    functionName: TAILQ_INSERT_HEAD
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_INSERT_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 483
    functionName: TAILQ_INSERT_TAIL
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 41
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_INSERT_TAIL(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 493
    functionName: TAILQ_INSERT_AFTER
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_INSERT_AFTER(head, listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 500
    functionName: TAILQ_INSERT_BEFORE
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_INSERT_BEFORE(listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 511
    functionName: TAILQ_REMOVE
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 56
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_REMOVE(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - elm2
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 523
    functionName: TAILQ_REPLACE
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_REPLACE(head, elm, elm2, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head1
    - ','
    - head2
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 532
    functionName: TAILQ_CONCAT
    functionSourceFile: /src/tmux/compat/queue.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_CONCAT(head1, head2, field)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utf8proc_category
      Src: /src/tmux/compat/utf8proc.c:28,1
    - Dst: utf8proc_charwidth
      Src: /src/tmux/compat/utf8proc.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - wc
    argTypes:
    - wchar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 37
    functionName: utf8proc_wcwidth
    functionSourceFile: /src/tmux/compat/utf8proc.c
    functionUses: 1
    functionsReached:
    - utf8proc_charwidth
    - utf8proc_category
    linkageType: ''
    returnType: int
    signature: int utf8proc_wcwidth(wchar_t wc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: utf8proc_iterate
      Src: /src/tmux/compat/utf8proc.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - pwc
    - s
    - n
    argTypes:
    - wchar_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 55
    functionName: utf8proc_mbtowc
    functionSourceFile: /src/tmux/compat/utf8proc.c
    functionUses: 0
    functionsReached:
    - utf8proc_iterate
    linkageType: ''
    returnType: int
    signature: int utf8proc_mbtowc(wchar_t *pwc, const char *s, size_t n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: utf8proc_codepoint_valid
      Src: /src/tmux/compat/utf8proc.c:63,1
    - Dst: utf8proc_encode_char
      Src: /src/tmux/compat/utf8proc.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - s
    - wc
    argTypes:
    - char*
    - wchar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: utf8proc_wctomb
    functionSourceFile: /src/tmux/compat/utf8proc.c
    functionUses: 1
    functionsReached:
    - utf8proc_encode_char
    - utf8proc_codepoint_valid
    linkageType: ''
    returnType: int
    signature: int utf8proc_wctomb(char *s, wchar_t wc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strnlen
      Src: /src/tmux/compat/strndup.c:33,1
    - Dst: malloc
      Src: /src/tmux/compat/strndup.c:34,1
    - Dst: memcpy
      Src: /src/tmux/compat/strndup.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - str
    - maxlen
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: strndup
    functionSourceFile: /src/tmux/compat/strndup.c
    functionUses: 12
    functionsReached:
    - strnlen
    - memcpy
    - malloc
    linkageType: ''
    returnType: char
    signature: 'char *

      strndup(const char *str, size_t maxlen)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/tmux/compat/setenv.c:30,1
    - Dst: putenv
      Src: /src/tmux/compat/setenv.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - name
    - value
    - overwrite
    argTypes:
    - char*
    - char*
    - __unused
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: setenv
    functionSourceFile: /src/tmux/compat/setenv.c
    functionUses: 8
    functionsReached:
    - xasprintf
    - putenv
    linkageType: ''
    returnType: int
    signature: int setenv(const char *name, const char *value, __unused int overwrite)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/tmux/compat/setenv.c:40,1
    - Dst: strncmp
      Src: /src/tmux/compat/setenv.c:42,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 49
    functionName: unsetenv
    functionSourceFile: /src/tmux/compat/setenv.c
    functionUses: 4
    functionsReached:
    - strlen
    - strncmp
    linkageType: ''
    returnType: int
    signature: int unsetenv(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tio
    argTypes:
    - struct termios*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: cfmakeraw
    functionSourceFile: /src/tmux/compat/cfmakeraw.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cfmakeraw(struct termios *tio)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/tmux/compat/getpeereid.c:36,1
    - Dst: getpeerucred
      Src: /src/tmux/compat/getpeereid.c:44,1
    - Dst: ucred_geteuid
      Src: /src/tmux/compat/getpeereid.c:46,1
    - Dst: ucred_getrgid
      Src: /src/tmux/compat/getpeereid.c:48,1
    - Dst: ucred_free
      Src: /src/tmux/compat/getpeereid.c:50,1
    - Dst: geteuid
      Src: /src/tmux/compat/getpeereid.c:53,1
    - Dst: getegid
      Src: /src/tmux/compat/getpeereid.c:54,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - s
    - uid
    - gid
    argTypes:
    - int
    - uid_t*
    - gid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 57
    functionName: getpeereid
    functionSourceFile: /src/tmux/compat/getpeereid.c
    functionUses: 1
    functionsReached:
    - ucred_getrgid
    - getegid
    - getpeerucred
    - ucred_geteuid
    - getsockopt
    - geteuid
    - ucred_free
    linkageType: ''
    returnType: int
    signature: int getpeereid(int s, uid_t *uid, gid_t *gid)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/tmux/compat/forkpty-aix.c:39,1
    - Dst: open
      Src: /src/tmux/compat/forkpty-aix.c:42,1
    - Dst: ttyname
      Src: /src/tmux/compat/forkpty-aix.c:45,1
    - Dst: strlcpy
      Src: /src/tmux/compat/forkpty-aix.c:49,1
    - Dst: open
      Src: /src/tmux/compat/forkpty-aix.c:51,1
    - Dst: fork
      Src: /src/tmux/compat/forkpty-aix.c:54,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-aix.c:58,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-aix.c:60,1
    - Dst: read
      Src: /src/tmux/compat/forkpty-aix.c:61,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-aix.c:65,1
    - Dst: open
      Src: /src/tmux/compat/forkpty-aix.c:67,1
    - Dst: ioctl
      Src: /src/tmux/compat/forkpty-aix.c:69,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-aix.c:70,1
    - Dst: setsid
      Src: /src/tmux/compat/forkpty-aix.c:73,1
    - Dst: fatal
      Src: /src/tmux/compat/forkpty-aix.c:74,1
    - Dst: open
      Src: /src/tmux/compat/forkpty-aix.c:76,1
    - Dst: fatalx
      Src: /src/tmux/compat/forkpty-aix.c:78,1
    - Dst: open
      Src: /src/tmux/compat/forkpty-aix.c:80,1
    - Dst: fatal
      Src: /src/tmux/compat/forkpty-aix.c:82,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-aix.c:83,1
    - Dst: open
      Src: /src/tmux/compat/forkpty-aix.c:85,1
    - Dst: fatal
      Src: /src/tmux/compat/forkpty-aix.c:87,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-aix.c:88,1
    - Dst: tcsetattr
      Src: /src/tmux/compat/forkpty-aix.c:90,1
    - Dst: fatal
      Src: /src/tmux/compat/forkpty-aix.c:91,1
    - Dst: ioctl
      Src: /src/tmux/compat/forkpty-aix.c:92,1
    - Dst: fatal
      Src: /src/tmux/compat/forkpty-aix.c:93,1
    - Dst: dup2
      Src: /src/tmux/compat/forkpty-aix.c:95,1
    - Dst: dup2
      Src: /src/tmux/compat/forkpty-aix.c:96,1
    - Dst: dup2
      Src: /src/tmux/compat/forkpty-aix.c:97,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-aix.c:99,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-aix.c:104,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-aix.c:106,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-aix.c:107,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-aix.c:112,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-aix.c:114,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-aix.c:116,1
    - Dst: close
      Src: /src/tmux/compat/forkpty-aix.c:117,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 68
    argCount: 4
    argNames:
    - master
    - name
    - tio
    - ws
    argTypes:
    - int*
    - __unused*
    - struct termios*
    - struct winsize*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 119
    functionName: forkpty
    functionSourceFile: /src/tmux/compat/forkpty-aix.c
    functionUses: 3
    functionsReached:
    - close
    - ttyname
    - fatal
    - fatalx
    - open
    - strlcpy
    - tcsetattr
    - setsid
    - read
    - dup2
    - fork
    - pipe
    - ioctl
    linkageType: ''
    returnType: pid_t
    signature: "pid_t forkpty(int *master, __unused char *name, struct termios *tio,\n
      \   struct winsize *ws)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/tmux/compat/getdtablecount.c:35,1
    - Dst: proc_pidinfo
      Src: /src/tmux/compat/getdtablecount.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 41
    functionName: getdtablecount
    functionSourceFile: /src/tmux/compat/getdtablecount.c
    functionUses: 0
    functionsReached:
    - proc_pidinfo
    - getpid
    linkageType: ''
    returnType: int
    signature: int getdtablecount(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/tmux/compat/getdtablecount.c:50,1
    - Dst: getpid
      Src: /src/tmux/compat/getdtablecount.c:50,1
    - Dst: fatal
      Src: /src/tmux/compat/getdtablecount.c:51,1
    - Dst: glob
      Src: /src/tmux/compat/getdtablecount.c:52,1
    - Dst: globfree
      Src: /src/tmux/compat/getdtablecount.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: getdtablecount
    functionSourceFile: /src/tmux/compat/getdtablecount.c
    functionUses: 0
    functionsReached:
    - globfree
    - fatal
    - getpid
    - glob
    - snprintf
    linkageType: ''
    returnType: int
    signature: int getdtablecount(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: getdtablecount
    functionSourceFile: /src/tmux/compat/getdtablecount.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getdtablecount(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/tmux/compat/getline.c:53,1
    - Dst: fgetc
      Src: /src/tmux/compat/getline.c:59,1
    - Dst: feof
      Src: /src/tmux/compat/getline.c:61,1
    - Dst: realloc
      Src: /src/tmux/compat/getline.c:79,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 4
    argNames:
    - buf
    - bufsiz
    - delimiter
    - fp
    argTypes:
    - char**
    - size_t*
    - int
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 87
    functionName: getdelim
    functionSourceFile: /src/tmux/compat/getline.c
    functionUses: 0
    functionsReached:
    - fgetc
    - malloc
    - feof
    - realloc
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t getdelim(char **buf, size_t *bufsiz, int delimiter, FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getdelim
      Src: /src/tmux/compat/getline.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - bufsiz
    - fp
    argTypes:
    - char**
    - size_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: getline
    functionSourceFile: /src/tmux/compat/getline.c
    functionUses: 1
    functionsReached:
    - getdelim
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t getline(char **buf, size_t *bufsiz, FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - root
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: SPLAY_INITIALIZER
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_INITIALIZER(root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - root
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: SPLAY_INIT
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_INIT(root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: SPLAY_ENTRY
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: SPLAY_LEFT
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_LEFT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: SPLAY_RIGHT
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_RIGHT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: SPLAY_ROOT
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_ROOT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: SPLAY_EMPTY
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: SPLAY_ROTATE_RIGHT
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_ROTATE_RIGHT(head, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: SPLAY_ROTATE_LEFT
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_ROTATE_LEFT(head, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: SPLAY_LINKLEFT
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_LINKLEFT(head, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: SPLAY_LINKRIGHT
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_LINKRIGHT(head, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - head
    - ','
    - node
    - ','
    - left
    - ','
    - right
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: SPLAY_ASSEMBLE
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_ASSEMBLE(head, node, left, right, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: SPLAY_PROTOTYPE
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_PROTOTYPE(name, type, field, cmp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SPLAY_EMPTY
      Src: /src/tmux/compat/tree.h:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 130
    functionName: _SPLAY_FIND
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached:
    - SPLAY_EMPTY
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\\\nname##_SPLAY_FIND(struct name *head,
      struct type *elm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SPLAY_RIGHT
      Src: /src/tmux/compat/tree.h:136,1
    - Dst: SPLAY_RIGHT
      Src: /src/tmux/compat/tree.h:137,1
    - Dst: SPLAY_LEFT
      Src: /src/tmux/compat/tree.h:138,1
    - Dst: SPLAY_LEFT
      Src: /src/tmux/compat/tree.h:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 144
    functionName: _SPLAY_NEXT
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached:
    - SPLAY_RIGHT
    - SPLAY_LEFT
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\\\nname##_SPLAY_NEXT(struct name *head,
      struct type *elm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SPLAY_ROOT
      Src: /src/tmux/compat/tree.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - head
    - val
    argTypes:
    - struct name*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: _SPLAY_MIN_MAX
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached:
    - SPLAY_ROOT
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\\\nname##_SPLAY_MIN_MAX(struct name *head,
      int val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 239
    functionName: SPLAY_GENERATE
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_GENERATE(name, type, field, cmp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SPLAY_LEFT
      Src: /src/tmux/compat/tree.h:244,1
    - Dst: SPLAY_RIGHT
      Src: /src/tmux/compat/tree.h:244,1
    - Dst: SPLAY_LEFT
      Src: /src/tmux/compat/tree.h:249,1
    - Dst: SPLAY_ROTATE_RIGHT
      Src: /src/tmux/compat/tree.h:253,1
    - Dst: SPLAY_LEFT
      Src: /src/tmux/compat/tree.h:254,1
    - Dst: SPLAY_LINKLEFT
      Src: /src/tmux/compat/tree.h:257,1
    - Dst: SPLAY_RIGHT
      Src: /src/tmux/compat/tree.h:259,1
    - Dst: SPLAY_ROTATE_LEFT
      Src: /src/tmux/compat/tree.h:263,1
    - Dst: SPLAY_RIGHT
      Src: /src/tmux/compat/tree.h:264,1
    - Dst: SPLAY_LINKRIGHT
      Src: /src/tmux/compat/tree.h:267,1
    - Dst: SPLAY_ASSEMBLE
      Src: /src/tmux/compat/tree.h:270,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 2
    argNames:
    - head
    - __comp
    argTypes:
    - struct name*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 271
    functionName: _SPLAY_MINMAX
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached:
    - SPLAY_LINKLEFT
    - SPLAY_ROTATE_RIGHT
    - SPLAY_LEFT
    - SPLAY_ROTATE_LEFT
    - SPLAY_LINKRIGHT
    - SPLAY_RIGHT
    - SPLAY_ASSEMBLE
    linkageType: ''
    returnType: void
    signature: void _SPLAY_MINMAX(struct name *head, int __comp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 277
    functionName: SPLAY_INSERT
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_INSERT(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 278
    functionName: SPLAY_REMOVE
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_REMOVE(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 279
    functionName: SPLAY_FIND
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_FIND(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 280
    functionName: SPLAY_NEXT
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_NEXT(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 282
    functionName: SPLAY_MIN
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_MIN(name, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 284
    functionName: SPLAY_MAX
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_MAX(name, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - name
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: SPLAY_FOREACH
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_FOREACH(x, name, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - root
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 298
    functionName: RB_INITIALIZER
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_INITIALIZER(root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - root
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: RB_INIT
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_INIT(root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 307
    functionName: RB_ENTRY
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: RB_LEFT
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_LEFT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 315
    functionName: RB_RIGHT
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_RIGHT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 316
    functionName: RB_PARENT
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_PARENT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 317
    functionName: RB_COLOR
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_COLOR(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 318
    functionName: RB_ROOT
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_ROOT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 319
    functionName: RB_EMPTY
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elm
    - ','
    - parent
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 325
    functionName: RB_SET
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_SET(elm, parent, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - black
    - ','
    - red
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: RB_SET_BLACKRED
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_SET_BLACKRED(black, red, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 333
    functionName: RB_AUGMENT
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_AUGMENT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 354
    functionName: RB_ROTATE_LEFT
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_ROTATE_LEFT(head, elm, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 374
    functionName: RB_ROTATE_RIGHT
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_ROTATE_RIGHT(head, elm, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 378
    functionName: RB_PROTOTYPE
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_PROTOTYPE(name, type, field, cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 380
    functionName: RB_PROTOTYPE_STATIC
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_PROTOTYPE_STATIC(name, type, field, cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - cmp
    - ','
    - attr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 392
    functionName: RB_PROTOTYPE_INTERNAL
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_PROTOTYPE_INTERNAL(name, type, field, cmp, attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 397
    functionName: RB_GENERATE
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_GENERATE(name, type, field, cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 399
    functionName: RB_GENERATE_STATIC
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_GENERATE_STATIC(name, type, field, cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - cmp
    - ','
    - attr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 587
    functionName: RB_GENERATE_INTERNAL
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_GENERATE_INTERNAL(name, type, field, cmp, attr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RB_ROOT
      Src: /src/tmux/compat/tree.h:594,1
    - Dst: RB_LEFT
      Src: /src/tmux/compat/tree.h:599,1
    - Dst: RB_RIGHT
      Src: /src/tmux/compat/tree.h:601,1
    - Dst: RB_SET
      Src: /src/tmux/compat/tree.h:605,1
    - Dst: RB_LEFT
      Src: /src/tmux/compat/tree.h:608,1
    - Dst: RB_RIGHT
      Src: /src/tmux/compat/tree.h:610,1
    - Dst: RB_AUGMENT
      Src: /src/tmux/compat/tree.h:611,1
    - Dst: RB_ROOT
      Src: /src/tmux/compat/tree.h:613,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 616
    functionName: _RB_INSERT
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached:
    - RB_RIGHT
    - RB_AUGMENT
    - RB_ROOT
    - RB_SET
    - RB_LEFT
    linkageType: ''
    returnType: attr
    signature: "attr *\t\t\t\t\t\t\t\\\nname##_RB_INSERT(struct name *head, struct
      type *elm)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RB_ROOT
      Src: /src/tmux/compat/tree.h:622,1
    - Dst: cmp
      Src: /src/tmux/compat/tree.h:625,1
    - Dst: RB_LEFT
      Src: /src/tmux/compat/tree.h:627,1
    - Dst: RB_RIGHT
      Src: /src/tmux/compat/tree.h:629,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 634
    functionName: _RB_FIND
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached:
    - RB_RIGHT
    - RB_ROOT
    - cmp
    - RB_LEFT
    linkageType: ''
    returnType: attr
    signature: "attr *\t\t\t\t\t\t\t\\\nname##_RB_FIND(struct name *head, struct type
      *elm)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RB_ROOT
      Src: /src/tmux/compat/tree.h:640,1
    - Dst: cmp
      Src: /src/tmux/compat/tree.h:644,1
    - Dst: RB_LEFT
      Src: /src/tmux/compat/tree.h:647,1
    - Dst: RB_RIGHT
      Src: /src/tmux/compat/tree.h:650,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 655
    functionName: _RB_NFIND
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached:
    - RB_RIGHT
    - RB_ROOT
    - cmp
    - RB_LEFT
    linkageType: ''
    returnType: attr
    signature: "attr *\t\t\t\t\t\t\t\\\nname##_RB_NFIND(struct name *head, struct
      type *elm)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RB_RIGHT
      Src: /src/tmux/compat/tree.h:661,1
    - Dst: RB_RIGHT
      Src: /src/tmux/compat/tree.h:662,1
    - Dst: RB_LEFT
      Src: /src/tmux/compat/tree.h:663,1
    - Dst: RB_LEFT
      Src: /src/tmux/compat/tree.h:664,1
    - Dst: RB_PARENT
      Src: /src/tmux/compat/tree.h:666,1
    - Dst: RB_LEFT
      Src: /src/tmux/compat/tree.h:667,1
    - Dst: RB_PARENT
      Src: /src/tmux/compat/tree.h:667,1
    - Dst: RB_PARENT
      Src: /src/tmux/compat/tree.h:668,1
    - Dst: RB_PARENT
      Src: /src/tmux/compat/tree.h:670,1
    - Dst: RB_RIGHT
      Src: /src/tmux/compat/tree.h:671,1
    - Dst: RB_PARENT
      Src: /src/tmux/compat/tree.h:671,1
    - Dst: RB_PARENT
      Src: /src/tmux/compat/tree.h:672,1
    - Dst: RB_PARENT
      Src: /src/tmux/compat/tree.h:673,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - elm
    argTypes:
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 677
    functionName: _RB_NEXT
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached:
    - RB_RIGHT
    - RB_PARENT
    - RB_LEFT
    linkageType: ''
    returnType: attr
    signature: "attr *\t\t\t\t\t\t\t\\\nname##_RB_NEXT(struct type *elm)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RB_LEFT
      Src: /src/tmux/compat/tree.h:683,1
    - Dst: RB_LEFT
      Src: /src/tmux/compat/tree.h:684,1
    - Dst: RB_RIGHT
      Src: /src/tmux/compat/tree.h:685,1
    - Dst: RB_RIGHT
      Src: /src/tmux/compat/tree.h:686,1
    - Dst: RB_PARENT
      Src: /src/tmux/compat/tree.h:688,1
    - Dst: RB_RIGHT
      Src: /src/tmux/compat/tree.h:689,1
    - Dst: RB_PARENT
      Src: /src/tmux/compat/tree.h:689,1
    - Dst: RB_PARENT
      Src: /src/tmux/compat/tree.h:690,1
    - Dst: RB_PARENT
      Src: /src/tmux/compat/tree.h:692,1
    - Dst: RB_LEFT
      Src: /src/tmux/compat/tree.h:693,1
    - Dst: RB_PARENT
      Src: /src/tmux/compat/tree.h:693,1
    - Dst: RB_PARENT
      Src: /src/tmux/compat/tree.h:694,1
    - Dst: RB_PARENT
      Src: /src/tmux/compat/tree.h:695,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - elm
    argTypes:
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 699
    functionName: _RB_PREV
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached:
    - RB_RIGHT
    - RB_PARENT
    - RB_LEFT
    linkageType: ''
    returnType: attr
    signature: "attr *\t\t\t\t\t\t\t\\\nname##_RB_PREV(struct type *elm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_ROOT
      Src: /src/tmux/compat/tree.h:704,1
    - Dst: RB_LEFT
      Src: /src/tmux/compat/tree.h:709,1
    - Dst: RB_RIGHT
      Src: /src/tmux/compat/tree.h:711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - head
    - val
    argTypes:
    - struct name*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 714
    functionName: _RB_MINMAX
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached:
    - RB_RIGHT
    - RB_ROOT
    - RB_LEFT
    linkageType: ''
    returnType: attr
    signature: "attr *\t\t\t\t\t\t\t\\\nname##_RB_MINMAX(struct name *head, int val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 720
    functionName: RB_INSERT
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_INSERT(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 721
    functionName: RB_REMOVE
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_REMOVE(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 722
    functionName: RB_FIND
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_FIND(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 723
    functionName: RB_NFIND
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_NFIND(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 724
    functionName: RB_NEXT
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_NEXT(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 725
    functionName: RB_PREV
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_PREV(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 726
    functionName: RB_MIN
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_MIN(name, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 727
    functionName: RB_MAX
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_MAX(name, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - name
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 732
    functionName: RB_FOREACH
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 63
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_FOREACH(x, name, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - name
    - ','
    - head
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 737
    functionName: RB_FOREACH_SAFE
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_FOREACH_SAFE(x, name, head, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - name
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 742
    functionName: RB_FOREACH_REVERSE
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_FOREACH_REVERSE(x, name, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - name
    - ','
    - head
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 747
    functionName: RB_FOREACH_REVERSE_SAFE
    functionSourceFile: /src/tmux/compat/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_FOREACH_REVERSE_SAFE(x, name, head, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/tmux/compat/getdtablesize.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: getdtablesize
    functionSourceFile: /src/tmux/compat/getdtablesize.c
    functionUses: 1
    functionsReached:
    - sysconf
    linkageType: ''
    returnType: int
    signature: int getdtablesize(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/tmux/compat/memmem.c:55,1
    - Dst: memcmp
      Src: /src/tmux/compat/memmem.c:61,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 4
    argNames:
    - l
    - l_len
    - s
    - s_len
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 65
    functionName: memmem
    functionSourceFile: /src/tmux/compat/memmem.c
    functionUses: 0
    functionsReached:
    - memchr
    - memcmp
    linkageType: ''
    returnType: void
    signature: 'void *

      memmem(const void *l, size_t l_len, const void *s, size_t s_len)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/tmux/compat/daemon.c:48,1
    - Dst: _exit
      Src: /src/tmux/compat/daemon.c:54,1
    - Dst: setsid
      Src: /src/tmux/compat/daemon.c:57,1
    - Dst: chdir
      Src: /src/tmux/compat/daemon.c:61,1
    - Dst: open
      Src: /src/tmux/compat/daemon.c:63,1
    - Dst: dup2
      Src: /src/tmux/compat/daemon.c:64,1
    - Dst: dup2
      Src: /src/tmux/compat/daemon.c:65,1
    - Dst: dup2
      Src: /src/tmux/compat/daemon.c:66,1
    - Dst: close
      Src: /src/tmux/compat/daemon.c:68,1
    - Dst: daemon_darwin
      Src: /src/tmux/compat/daemon.c:72,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - nochdir
    - noclose
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 75
    functionName: daemon
    functionSourceFile: /src/tmux/compat/daemon.c
    functionUses: 2
    functionsReached:
    - close
    - chdir
    - open
    - daemon_darwin
    - setsid
    - dup2
    - _exit
    - fork
    linkageType: ''
    returnType: int
    signature: int daemon(int nochdir, int noclose)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: _bit_byte
    functionSourceFile: /src/tmux/compat/bitstring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _bit_byte(bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: _bit_mask
    functionSourceFile: /src/tmux/compat/bitstring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _bit_mask(bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nbits
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: bitstr_size
    functionSourceFile: /src/tmux/compat/bitstring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bitstr_size(nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nbits
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: bit_alloc
    functionSourceFile: /src/tmux/compat/bitstring.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bit_alloc(nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - nbits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: bit_decl
    functionSourceFile: /src/tmux/compat/bitstring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bit_decl(name, nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: bit_test
    functionSourceFile: /src/tmux/compat/bitstring.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bit_test(name, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: bit_set
    functionSourceFile: /src/tmux/compat/bitstring.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bit_set(name, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: bit_clear
    functionSourceFile: /src/tmux/compat/bitstring.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bit_clear(name, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - start
    - ','
    - stop
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: bit_nclear
    functionSourceFile: /src/tmux/compat/bitstring.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bit_nclear(name, start, stop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - start
    - ','
    - stop
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: bit_nset
    functionSourceFile: /src/tmux/compat/bitstring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bit_nset(name, start, stop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - nbits
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 115
    functionName: bit_ffc
    functionSourceFile: /src/tmux/compat/bitstring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bit_ffc(name, nbits, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - nbits
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 127
    functionName: bit_ffs
    functionSourceFile: /src/tmux/compat/bitstring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bit_ffs(name, nbits, value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/tmux/compat/setproctitle.c:36,1
    - Dst: vsnprintf
      Src: /src/tmux/compat/setproctitle.c:37,1
    - Dst: va_end
      Src: /src/tmux/compat/setproctitle.c:38,1
    - Dst: snprintf
      Src: /src/tmux/compat/setproctitle.c:40,1
    - Dst: getprogname
      Src: /src/tmux/compat/setproctitle.c:40,1
    - Dst: strrchr
      Src: /src/tmux/compat/setproctitle.c:42,1
    - Dst: prctl
      Src: /src/tmux/compat/setproctitle.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 47
    functionName: setproctitle
    functionSourceFile: /src/tmux/compat/setproctitle.c
    functionUses: 1
    functionsReached:
    - strrchr
    - prctl
    - getprogname
    - va_end
    - va_start
    - snprintf
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: void setproctitle(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - __unused*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: setproctitle
    functionSourceFile: /src/tmux/compat/setproctitle.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setproctitle(__unused const char *fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/tmux/fuzz/style-fuzzer.c:43,1
    - Dst: memcpy
      Src: /src/tmux/fuzz/style-fuzzer.c:46,1
    - Dst: memset
      Src: /src/tmux/fuzz/style-fuzzer.c:49,1
    - Dst: style_set
      Src: /src/tmux/fuzz/style-fuzzer.c:50,1
    - Dst: style_parse
      Src: /src/tmux/fuzz/style-fuzzer.c:52,1
    - Dst: free
      Src: /src/tmux/fuzz/style-fuzzer.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - u_char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 32
    functionDepth: 4
    functionLinenumber: 32
    functionLinenumberEnd: 56
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/tmux/fuzz/style-fuzzer.c
    functionUses: 0
    functionsReached:
    - style_set
    - memset
    - free
    - memcpy
    - malloc
    - style_parse
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const u_char *data, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: environ_create
      Src: /src/tmux/fuzz/style-fuzzer.c:63,1
    - Dst: options_create
      Src: /src/tmux/fuzz/style-fuzzer.c:64,1
    - Dst: options_create
      Src: /src/tmux/fuzz/style-fuzzer.c:65,1
    - Dst: options_create
      Src: /src/tmux/fuzz/style-fuzzer.c:66,1
    - Dst: options_default
      Src: /src/tmux/fuzz/style-fuzzer.c:69,1
    - Dst: options_default
      Src: /src/tmux/fuzz/style-fuzzer.c:71,1
    - Dst: options_default
      Src: /src/tmux/fuzz/style-fuzzer.c:73,1
    - Dst: osdep_event_init
      Src: /src/tmux/fuzz/style-fuzzer.c:75,1
    - Dst: xstrdup
      Src: /src/tmux/fuzz/style-fuzzer.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - __unused*
    - __unused***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 79
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/tmux/fuzz/style-fuzzer.c
    functionUses: 0
    functionsReached:
    - osdep_event_init
    - options_default
    - options_create
    - xstrdup
    - environ_create
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(__unused int *argc, __unused char ***argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: window_create
      Src: /src/tmux/fuzz/input-fuzzer.c:44,1
    - Dst: window_add_pane
      Src: /src/tmux/fuzz/input-fuzzer.c:45,1
    - Dst: bufferevent_pair_new
      Src: /src/tmux/fuzz/input-fuzzer.c:46,1
    - Dst: input_init
      Src: /src/tmux/fuzz/input-fuzzer.c:47,1
    - Dst: window_add_ref
      Src: /src/tmux/fuzz/input-fuzzer.c:48,1
    - Dst: open
      Src: /src/tmux/fuzz/input-fuzzer.c:50,1
    - Dst: errx
      Src: /src/tmux/fuzz/input-fuzzer.c:52,1
    - Dst: bufferevent_new
      Src: /src/tmux/fuzz/input-fuzzer.c:53,1
    - Dst: input_parse_buffer
      Src: /src/tmux/fuzz/input-fuzzer.c:55,1
    - Dst: cmdq_next
      Src: /src/tmux/fuzz/input-fuzzer.c:56,1
    - Dst: event_base_loop
      Src: /src/tmux/fuzz/input-fuzzer.c:58,1
    - Dst: errx
      Src: /src/tmux/fuzz/input-fuzzer.c:60,1
    - Dst: assert
      Src: /src/tmux/fuzz/input-fuzzer.c:62,1
    - Dst: window_remove_ref
      Src: /src/tmux/fuzz/input-fuzzer.c:63,1
    - Dst: bufferevent_free
      Src: /src/tmux/fuzz/input-fuzzer.c:65,1
    - Dst: bufferevent_free
      Src: /src/tmux/fuzz/input-fuzzer.c:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - u_char*
    - size_t
    assertStmts:
    - condition: (w->references == 1)
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/tmux/fuzz/input-fuzzer.c
    constantsTouched: []
    func_position:
      end: 69
      start: 29
    functionDepth: 10
    functionLinenumber: 29
    functionLinenumberEnd: 69
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/tmux/fuzz/input-fuzzer.c
    functionUses: 0
    functionsReached:
    - bufferevent_pair_new
    - bufferevent_new
    - input_init
    - open
    - input_parse_buffer
    - window_remove_ref
    - window_add_ref
    - bufferevent_free
    - window_create
    - errx
    - window_add_pane
    - cmdq_next
    - event_base_loop
    - assert
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const u_char *data, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: environ_create
      Src: /src/tmux/fuzz/input-fuzzer.c:76,1
    - Dst: options_create
      Src: /src/tmux/fuzz/input-fuzzer.c:77,1
    - Dst: options_create
      Src: /src/tmux/fuzz/input-fuzzer.c:78,1
    - Dst: options_create
      Src: /src/tmux/fuzz/input-fuzzer.c:79,1
    - Dst: options_default
      Src: /src/tmux/fuzz/input-fuzzer.c:82,1
    - Dst: options_default
      Src: /src/tmux/fuzz/input-fuzzer.c:84,1
    - Dst: options_default
      Src: /src/tmux/fuzz/input-fuzzer.c:86,1
    - Dst: osdep_event_init
      Src: /src/tmux/fuzz/input-fuzzer.c:88,1
    - Dst: options_set_number
      Src: /src/tmux/fuzz/input-fuzzer.c:90,1
    - Dst: options_set_number
      Src: /src/tmux/fuzz/input-fuzzer.c:91,1
    - Dst: options_set_number
      Src: /src/tmux/fuzz/input-fuzzer.c:92,1
    - Dst: xstrdup
      Src: /src/tmux/fuzz/input-fuzzer.c:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - __unused*
    - __unused***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 71
    functionDepth: 5
    functionLinenumber: 71
    functionLinenumberEnd: 96
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/tmux/fuzz/input-fuzzer.c
    functionUses: 0
    functionsReached:
    - osdep_event_init
    - options_default
    - options_set_number
    - options_create
    - xstrdup
    - environ_create
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(__unused int *argc, __unused char ***argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/tmux/fuzz/format-fuzzer.c:43,1
    - Dst: memcpy
      Src: /src/tmux/fuzz/format-fuzzer.c:46,1
    - Dst: format_create
      Src: /src/tmux/fuzz/format-fuzzer.c:49,1
    - Dst: format_add
      Src: /src/tmux/fuzz/format-fuzzer.c:50,1
    - Dst: format_add
      Src: /src/tmux/fuzz/format-fuzzer.c:51,1
    - Dst: format_add
      Src: /src/tmux/fuzz/format-fuzzer.c:52,1
    - Dst: format_add
      Src: /src/tmux/fuzz/format-fuzzer.c:53,1
    - Dst: format_add
      Src: /src/tmux/fuzz/format-fuzzer.c:54,1
    - Dst: format_add
      Src: /src/tmux/fuzz/format-fuzzer.c:55,1
    - Dst: format_add
      Src: /src/tmux/fuzz/format-fuzzer.c:56,1
    - Dst: format_add
      Src: /src/tmux/fuzz/format-fuzzer.c:57,1
    - Dst: format_expand
      Src: /src/tmux/fuzz/format-fuzzer.c:59,1
    - Dst: free
      Src: /src/tmux/fuzz/format-fuzzer.c:60,1
    - Dst: format_free
      Src: /src/tmux/fuzz/format-fuzzer.c:61,1
    - Dst: free
      Src: /src/tmux/fuzz/format-fuzzer.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - u_char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 33
    functionDepth: 10
    functionLinenumber: 33
    functionLinenumberEnd: 65
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/tmux/fuzz/format-fuzzer.c
    functionUses: 0
    functionsReached:
    - format_free
    - free
    - format_create
    - memcpy
    - malloc
    - format_add
    - format_expand
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const u_char *data, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: environ_create
      Src: /src/tmux/fuzz/format-fuzzer.c:72,1
    - Dst: options_create
      Src: /src/tmux/fuzz/format-fuzzer.c:73,1
    - Dst: options_create
      Src: /src/tmux/fuzz/format-fuzzer.c:74,1
    - Dst: options_create
      Src: /src/tmux/fuzz/format-fuzzer.c:75,1
    - Dst: options_default
      Src: /src/tmux/fuzz/format-fuzzer.c:78,1
    - Dst: options_default
      Src: /src/tmux/fuzz/format-fuzzer.c:80,1
    - Dst: options_default
      Src: /src/tmux/fuzz/format-fuzzer.c:82,1
    - Dst: osdep_event_init
      Src: /src/tmux/fuzz/format-fuzzer.c:84,1
    - Dst: xstrdup
      Src: /src/tmux/fuzz/format-fuzzer.c:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - __unused*
    - __unused***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 88
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/tmux/fuzz/format-fuzzer.c
    functionUses: 0
    functionsReached:
    - osdep_event_init
    - options_default
    - options_create
    - xstrdup
    - environ_create
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(__unused int *argc, __unused char ***argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/tmux/fuzz/cmd-parse-fuzzer.c:44,1
    - Dst: cmd_parse_from_buffer
      Src: /src/tmux/fuzz/cmd-parse-fuzzer.c:47,1
    - Dst: cmd_list_free
      Src: /src/tmux/fuzz/cmd-parse-fuzzer.c:50,1
    - Dst: free
      Src: /src/tmux/fuzz/cmd-parse-fuzzer.c:53,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - u_char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 60
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/tmux/fuzz/cmd-parse-fuzzer.c
    functionUses: 0
    functionsReached:
    - cmd_parse_from_buffer
    - memset
    - cmd_list_free
    - free
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const u_char *data, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: environ_create
      Src: /src/tmux/fuzz/cmd-parse-fuzzer.c:67,1
    - Dst: options_create
      Src: /src/tmux/fuzz/cmd-parse-fuzzer.c:68,1
    - Dst: options_create
      Src: /src/tmux/fuzz/cmd-parse-fuzzer.c:69,1
    - Dst: options_create
      Src: /src/tmux/fuzz/cmd-parse-fuzzer.c:70,1
    - Dst: options_default
      Src: /src/tmux/fuzz/cmd-parse-fuzzer.c:73,1
    - Dst: options_default
      Src: /src/tmux/fuzz/cmd-parse-fuzzer.c:75,1
    - Dst: options_default
      Src: /src/tmux/fuzz/cmd-parse-fuzzer.c:77,1
    - Dst: osdep_event_init
      Src: /src/tmux/fuzz/cmd-parse-fuzzer.c:79,1
    - Dst: xstrdup
      Src: /src/tmux/fuzz/cmd-parse-fuzzer.c:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - __unused*
    - __unused***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 83
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/tmux/fuzz/cmd-parse-fuzzer.c
    functionUses: 0
    functionsReached:
    - osdep_event_init
    - options_default
    - options_create
    - xstrdup
    - environ_create
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(__unused int *argc, __unused char ***argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 194
    functionName: EVENT_DEBUG_MODE_IS_ON
    functionSourceFile: /src/libevent/event-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_DEBUG_MODE_IS_ON()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 196
    functionName: EVENT_DEBUG_MODE_IS_ON
    functionSourceFile: /src/libevent/event-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_DEBUG_MODE_IS_ON()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 422
    functionName: LIST_END
    functionSourceFile: /src/libevent/event-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_END(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 426
    functionName: TAILQ_FIRST
    functionSourceFile: /src/libevent/event-internal.h
    functionUses: 86
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_FIRST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 429
    functionName: TAILQ_END
    functionSourceFile: /src/libevent/event-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_END(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 432
    functionName: TAILQ_NEXT
    functionSourceFile: /src/libevent/event-internal.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_NEXT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 439
    functionName: TAILQ_FOREACH
    functionSourceFile: /src/libevent/event-internal.h
    functionUses: 164
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_FOREACH(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 448
    functionName: TAILQ_INSERT_BEFORE
    functionSourceFile: /src/libevent/event-internal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_INSERT_BEFORE(listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 452
    functionName: N_ACTIVE_CALLBACKS
    functionSourceFile: /src/libevent/event-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: N_ACTIVE_CALLBACKS(base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/watch.c:32,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/watch.c:39,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/watch.c:40,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/watch.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - base
    - callback
    - arg
    - type
    argTypes:
    - struct event_base*
    - union evwatch_cb
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 43
    functionName: evwatch_new
    functionSourceFile: /src/libevent/watch.c
    functionUses: 0
    functionsReached:
    - EVBASE_ACQUIRE_LOCK
    - EVBASE_RELEASE_LOCK
    - mm_malloc
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: struct evwatch
    signature: 'struct evwatch *

      evwatch_new(struct event_base *base, union evwatch_cb callback, void *arg, unsigned
      type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evwatch_new
      Src: /src/libevent/watch.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - base
    - callback
    - arg
    argTypes:
    - struct event_base*
    - evwatch_prepare_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: evwatch_prepare_new
    functionSourceFile: /src/libevent/watch.c
    functionUses: 0
    functionsReached:
    - evwatch_new
    linkageType: ''
    returnType: struct evwatch
    signature: 'struct evwatch *

      evwatch_prepare_new(struct event_base *base, evwatch_prepare_cb callback, void
      *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evwatch_new
      Src: /src/libevent/watch.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - base
    - callback
    - arg
    argTypes:
    - struct event_base*
    - evwatch_check_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: evwatch_check_new
    functionSourceFile: /src/libevent/watch.c
    functionUses: 0
    functionsReached:
    - evwatch_new
    linkageType: ''
    returnType: struct evwatch
    signature: 'struct evwatch *

      evwatch_check_new(struct event_base *base, evwatch_check_cb callback, void *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - watcher
    argTypes:
    - struct evwatch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: evwatch_base
    functionSourceFile: /src/libevent/watch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      evwatch_base(struct evwatch *watcher)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/watch.c:68,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/watch.c:69,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/watch.c:70,1
    - Dst: mm_free
      Src: /src/libevent/watch.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - watcher
    argTypes:
    - struct evwatch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: evwatch_free
    functionSourceFile: /src/libevent/watch.c
    functionUses: 0
    functionsReached:
    - mm_free
    - EVBASE_ACQUIRE_LOCK
    - EVBASE_RELEASE_LOCK
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void evwatch_free(struct evwatch *watcher)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - info
    - timeout
    argTypes:
    - struct evwatch_prepare_cb_info*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: evwatch_prepare_get_timeout
    functionSourceFile: /src/libevent/watch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evwatch_prepare_get_timeout(const struct evwatch_prepare_cb_info
      *info, struct timeval *timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: mm_malloc
    functionSourceFile: /src/libevent/mm-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mm_malloc(sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - count
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: mm_calloc
    functionSourceFile: /src/libevent/mm-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mm_calloc(count, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: mm_strdup
    functionSourceFile: /src/libevent/mm-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mm_strdup(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: mm_realloc
    functionSourceFile: /src/libevent/mm-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mm_realloc(p, sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: mm_free
    functionSourceFile: /src/libevent/mm-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mm_free(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: mm_malloc
    functionSourceFile: /src/libevent/mm-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mm_malloc(sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: mm_calloc
    functionSourceFile: /src/libevent/mm-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mm_calloc(n, sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: mm_strdup
    functionSourceFile: /src/libevent/mm-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mm_strdup(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: mm_realloc
    functionSourceFile: /src/libevent/mm-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mm_realloc(p, sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: mm_free
    functionSourceFile: /src/libevent/mm-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mm_free(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: member_size
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: member_size(type, member)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: evutil_snprintf
      Src: /src/libevent/http.c:139,1
    - Dst: ntohs
      Src: /src/libevent/http.c:140,1
    - Dst: strlcpy
      Src: /src/libevent/http.c:141,1
    - Dst: strlcpy
      Src: /src/libevent/http.c:147,1
    - Dst: inet_ntoa
      Src: /src/libevent/http.c:147,1
    - Dst: gethostbyaddr
      Src: /src/libevent/http.c:154,1
    - Dst: strlcpy
      Src: /src/libevent/http.c:159,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 7
    argNames:
    - sa
    - salen
    - host
    - hostlen
    - serv
    - servlen
    - flags
    argTypes:
    - struct sockaddr*
    - size_t
    - char*
    - size_t
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 166
    functionName: fake_getnameinfo
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - ntohs
    - inet_ntoa
    - strlcpy
    - gethostbyaddr
    - evutil_snprintf
    linkageType: ''
    returnType: int
    signature: "int fake_getnameinfo(const struct sockaddr *sa, size_t salen, char
      *host,\n\tsize_t hostlen, char *serv, size_t servlen, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - req
    - ','
    - major_v
    - ','
    - minor_v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: REQ_VERSION_BEFORE
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQ_VERSION_BEFORE(req, major_v, minor_v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - req
    - ','
    - major_v
    - ','
    - minor_v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: REQ_VERSION_ATLEAST
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQ_VERSION_ATLEAST(req, major_v, minor_v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: MIN
    functionSourceFile: /src/libevent/http.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(a,b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:232,1
    - Dst: strlen
      Src: /src/libevent/http.c:232,1
    - Dst: strstr
      Src: /src/libevent/http.c:236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - s
    - del
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 243
    functionName: strsep
    functionSourceFile: /src/libevent/http.c
    functionUses: 11
    functionsReached:
    - EVUTIL_ASSERT
    - strlen
    - strstr
    linkageType: ''
    returnType: char
    signature: 'char *

      strsep(char **s, const char *del)'
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - ch
    - escaped
    argTypes:
    - char
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 270
    functionName: html_replace
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t html_replace(const char ch, const char **escaped)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/http.c:289,1
    - Dst: html_replace
      Src: /src/libevent/http.c:292,1
    - Dst: event_warn
      Src: /src/libevent/http.c:294,1
    - Dst: mm_malloc
      Src: /src/libevent/http.c:302,1
    - Dst: event_warn
      Src: /src/libevent/http.c:304,1
    - Dst: html_replace
      Src: /src/libevent/http.c:310,1
    - Dst: memcpy
      Src: /src/libevent/http.c:311,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - html
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 318
    functionName: evhttp_htmlescape
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - event_warn
    - mm_malloc
    - memcpy
    - strlen
    - html_replace
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_htmlescape(const char *html)'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: struct evhttp_connection*::ext_method_cmp
      Src: /src/libevent/http.c:398,1
    - Dst: event_debug
      Src: /src/libevent/http.c:401,1
    - Dst: event_debug
      Src: /src/libevent/http.c:413,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 71
    argCount: 3
    argNames:
    - evcon
    - type
    - flags
    argTypes:
    - struct evhttp_connection*
    - enum evhttp_cmd_type
    - ev_uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 419
    functionName: evhttp_method_
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - struct evhttp_connection*::ext_method_cmp
    - event_debug
    linkageType: ''
    returnType: char
    signature: "char *\nevhttp_method_(struct evhttp_connection *evcon,\n              enum
      evhttp_cmd_type type, ev_uint16_t *flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 435
    functionName: evhttp_response_needs_body
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evhttp_response_needs_body(struct evhttp_request *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_debug
      Src: /src/libevent/http.c:445,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/http.c:454,1
    - Dst: bufferevent_enable
      Src: /src/libevent/http.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - evcon
    - arg
    argTypes:
    - struct evhttp_connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 461
    functionName: evhttp_write_buffer
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - bufferevent_setcb
    - event_debug
    - bufferevent_enable
    linkageType: ''
    returnType: void
    signature: "void evhttp_write_buffer(struct evhttp_connection *evcon,\n    void
      (*cb)(struct evhttp_connection *, void *), void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_disable
      Src: /src/libevent/http.c:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - evcon
    - arg
    argTypes:
    - struct evhttp_connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: evhttp_send_continue_done
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void evhttp_send_continue_done(struct evhttp_connection *evcon, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_enable
      Src: /src/libevent/http.c:473,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/http.c:474,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/http.c:474,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/http.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - evcon
    - req
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 484
    functionName: evhttp_send_continue
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_printf
    - bufferevent_enable
    - bufferevent_get_output
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: "void evhttp_send_continue(struct evhttp_connection *evcon,\n\t\t\tstruct
      evhttp_request *req)"
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 503
    functionName: evhttp_connected
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evhttp_connected(struct evhttp_connection *evcon)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_method_
      Src: /src/libevent/http.c:518,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/http.c:522,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/http.c:522,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:529,1
    - Dst: evhttp_find_header
      Src: /src/libevent/http.c:531,1
    - Dst: evutil_snprintf
      Src: /src/libevent/http.c:533,1
    - Dst: EV_SIZE_ARG
      Src: /src/libevent/http.c:534,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:534,1
    - Dst: evhttp_add_header
      Src: /src/libevent/http.c:535,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - evcon
    - req
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 509
    functionDepth: 2
    functionLinenumber: 509
    functionLinenumberEnd: 537
    functionName: evhttp_make_header_request
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - EV_SIZE_ARG
    - bufferevent_get_output
    - evhttp_add_header
    - evbuffer_add_printf
    - evbuffer_get_length
    - evutil_snprintf
    - evhttp_method_
    - evhttp_find_header
    linkageType: ''
    returnType: void
    signature: "void evhttp_make_header_request(struct evhttp_connection *evcon,\n
      \   struct evhttp_request *req)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_find_header
      Src: /src/libevent/http.c:545,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/http.c:546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - flags
    - headers
    argTypes:
    - int
    - struct evkeyvalq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 547
    functionName: evhttp_is_connection_close
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_find_header
    - evutil_ascii_strcasecmp
    linkageType: ''
    returnType: int
    signature: int evhttp_is_connection_close(int flags, struct evkeyvalq* headers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_is_connection_close
      Src: /src/libevent/http.c:556,1
    - Dst: evhttp_is_connection_close
      Src: /src/libevent/http.c:557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 558
    functionName: evhttp_is_request_connection_close
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_is_connection_close
    linkageType: ''
    returnType: int
    signature: int evhttp_is_request_connection_close(struct evhttp_request *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_find_header
      Src: /src/libevent/http.c:564,1
    - Dst: evutil_ascii_strncasecmp
      Src: /src/libevent/http.c:566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - headers
    argTypes:
    - struct evkeyvalq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 567
    functionName: evhttp_is_connection_keepalive
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evutil_ascii_strncasecmp
    - evhttp_find_header
    linkageType: ''
    returnType: int
    signature: int evhttp_is_connection_keepalive(struct evkeyvalq* headers)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_find_header
      Src: /src/libevent/http.c:573,1
    - Dst: evutil_date_rfc1123
      Src: /src/libevent/http.c:575,1
    - Dst: evhttp_add_header
      Src: /src/libevent/http.c:576,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - headers
    argTypes:
    - struct evkeyvalq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 579
    functionName: evhttp_maybe_add_date_header
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evutil_date_rfc1123
    - evhttp_find_header
    - evhttp_add_header
    linkageType: ''
    returnType: void
    signature: void evhttp_maybe_add_date_header(struct evkeyvalq *headers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_find_header
      Src: /src/libevent/http.c:587,1
    - Dst: evhttp_find_header
      Src: /src/libevent/http.c:588,1
    - Dst: evutil_snprintf
      Src: /src/libevent/http.c:590,1
    - Dst: EV_SIZE_ARG
      Src: /src/libevent/http.c:591,1
    - Dst: evhttp_add_header
      Src: /src/libevent/http.c:592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - headers
    - content_length
    argTypes:
    - struct evkeyvalq*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 594
    functionName: evhttp_maybe_add_content_length_header
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evutil_snprintf
    - evhttp_find_header
    - evhttp_add_header
    - EV_SIZE_ARG
    linkageType: ''
    returnType: void
    signature: "void evhttp_maybe_add_content_length_header(struct evkeyvalq *headers,\n
      \   size_t content_length)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_is_connection_keepalive
      Src: /src/libevent/http.c:604,1
    - Dst: evhttp_response_needs_body
      Src: /src/libevent/http.c:605,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/http.c:607,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/http.c:607,1
    - Dst: evhttp_maybe_add_date_header
      Src: /src/libevent/http.c:614,1
    - Dst: evhttp_add_header
      Src: /src/libevent/http.c:621,1
    - Dst: evhttp_maybe_add_content_length_header
      Src: /src/libevent/http.c:630,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:632,1
    - Dst: evhttp_find_header
      Src: /src/libevent/http.c:638,1
    - Dst: evhttp_add_header
      Src: /src/libevent/http.c:641,1
    - Dst: evhttp_is_connection_close
      Src: /src/libevent/http.c:648,1
    - Dst: evhttp_remove_header
      Src: /src/libevent/http.c:649,1
    - Dst: evhttp_add_header
      Src: /src/libevent/http.c:650,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 2
    argNames:
    - evcon
    - req
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 600
    functionDepth: 2
    functionLinenumber: 600
    functionLinenumberEnd: 652
    functionName: evhttp_make_header_response
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_maybe_add_content_length_header
    - bufferevent_get_output
    - evhttp_add_header
    - evhttp_is_connection_keepalive
    - evbuffer_add_printf
    - evhttp_remove_header
    - evbuffer_get_length
    - evhttp_is_connection_close
    - evhttp_response_needs_body
    - evhttp_find_header
    - evhttp_maybe_add_date_header
    linkageType: ''
    returnType: void
    signature: "void evhttp_make_header_response(struct evhttp_connection *evcon,\n
      \   struct evhttp_request *req)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: REQ_VERSION_ATLEAST
      Src: /src/libevent/http.c:660,1
    - Dst: evhttp_find_header
      Src: /src/libevent/http.c:663,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/http.c:667,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - req
    - input
    argTypes:
    - struct evhttp_request*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 668
    functionName: evhttp_have_expect
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - REQ_VERSION_ATLEAST
    - evhttp_find_header
    - evutil_ascii_strcasecmp
    linkageType: ''
    returnType: enum expect
    signature: enum expect evhttp_have_expect(struct evhttp_request *req, int input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_output
      Src: /src/libevent/http.c:678,1
    - Dst: evhttp_make_header_request
      Src: /src/libevent/http.c:685,1
    - Dst: evhttp_make_header_response
      Src: /src/libevent/http.c:687,1
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/http.c:690,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/http.c:691,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:694,1
    - Dst: evhttp_have_expect
      Src: /src/libevent/http.c:696,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:697,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/http.c:702,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - evcon
    - req
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 674
    functionDepth: 3
    functionLinenumber: 674
    functionLinenumberEnd: 704
    functionName: evhttp_make_header
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_output
    - evbuffer_add
    - evhttp_have_expect
    - TAILQ_FOREACH
    - evhttp_make_header_response
    - evhttp_make_header_request
    - evbuffer_add_printf
    - evbuffer_add_buffer
    - evbuffer_get_length
    linkageType: ''
    returnType: void
    signature: void evhttp_make_header(struct evhttp_connection *evcon, struct evhttp_request
      *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - evcon
    - new_max_headers_size
    argTypes:
    - struct evhttp_connection*
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 714
    functionName: evhttp_connection_set_max_headers_size
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_max_headers_size(struct evhttp_connection
      *evcon,\n    ev_ssize_t new_max_headers_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - evcon
    - new_max_body_size
    argTypes:
    - struct evhttp_connection*
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 723
    functionName: evhttp_connection_set_max_body_size
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_max_body_size(struct evhttp_connection*
      evcon,\n    ev_ssize_t new_max_body_size)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:750,1
    - Dst: mm_free
      Src: /src/libevent/http.c:764,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/http.c:768,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - req
    - error
    argTypes:
    - struct evhttp_request*
    - enum evhttp_request_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 780
    functionName: evhttp_connection_incoming_fail
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - mm_free
    - evhttp_uri_free
    - TAILQ_REMOVE
    linkageType: ''
    returnType: int
    signature: "int evhttp_connection_incoming_fail(struct evhttp_request *req,\n
      \   enum evhttp_request_error error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_free
      Src: /src/libevent/http.c:788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 784
    functionDepth: 1
    functionLinenumber: 784
    functionLinenumberEnd: 789
    functionName: evhttp_request_free_auto
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_free
    linkageType: ''
    returnType: void
    signature: void evhttp_request_free_auto(struct evhttp_request *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:794,1
    - Dst: evhttp_request_free_auto
      Src: /src/libevent/http.c:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - evcon
    - req
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 791
    functionDepth: 2
    functionLinenumber: 791
    functionLinenumberEnd: 796
    functionName: evhttp_request_free_
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_free_auto
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void evhttp_request_free_(struct evhttp_connection *evcon, struct evhttp_request
      *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evutil_timerclear
      Src: /src/libevent/http.c:810,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - tv
    - timeout
    - def
    argTypes:
    - struct timeval*
    - struct timeval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 812
    functionName: evhttp_set_timeout_tv_
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evutil_timerclear
    linkageType: ''
    returnType: void
    signature: void evhttp_set_timeout_tv_(struct timeval *tv, const struct timeval
      *timeout, int def)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evutil_timerclear
      Src: /src/libevent/http.c:821,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - tv
    - timeout
    - def
    argTypes:
    - struct timeval*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 828
    functionName: evhttp_set_timeout_
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evutil_timerclear
    linkageType: ''
    returnType: void
    signature: void evhttp_set_timeout_(struct timeval *tv, int timeout, int def)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/http.c:838,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:839,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:844,1
    - Dst: bufferevent_disable
      Src: /src/libevent/http.c:846,1
    - Dst: evhttp_connection_incoming_fail
      Src: /src/libevent/http.c:860,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:861,1
    - Dst: error_cb
      Src: /src/libevent/http.c:863,1
    - Dst: evhttp_request_free_
      Src: /src/libevent/http.c:881,1
    - Dst: evhttp_connection_reset_
      Src: /src/libevent/http.c:884,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:887,1
    - Dst: evhttp_connection_connect_
      Src: /src/libevent/http.c:888,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:892,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/http.c:899,1
    - Dst: error_cb
      Src: /src/libevent/http.c:903,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - evcon
    - error
    argTypes:
    - struct evhttp_connection*
    - enum evhttp_request_error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 834
    functionDepth: 3
    functionLinenumber: 834
    functionLinenumberEnd: 906
    functionName: evhttp_connection_fail_
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_connection_connect_
    - evhttp_connection_incoming_fail
    - evhttp_connection_free
    - EVUTIL_ASSERT
    - EVUTIL_SET_SOCKET_ERROR
    - TAILQ_FIRST
    - evhttp_connection_reset_
    - EVUTIL_SOCKET_ERROR
    - evhttp_request_free_
    - error_cb
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_fail_(struct evhttp_connection *evcon,\n    enum
      evhttp_request_error error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - bufev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 918
    functionName: evhttp_write_cb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evhttp_write_cb(struct bufferevent *bufev, void *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:930,1
    - Dst: evhttp_is_request_connection_close
      Src: /src/libevent/http.c:936,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:937,1
    - Dst: evhttp_connection_reset_
      Src: /src/libevent/http.c:944,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:946,1
    - Dst: evhttp_connected
      Src: /src/libevent/http.c:951,1
    - Dst: evhttp_connection_connect_
      Src: /src/libevent/http.c:952,1
    - Dst: evhttp_request_dispatch
      Src: /src/libevent/http.c:954,1
    - Dst: evhttp_connection_start_detectclose
      Src: /src/libevent/http.c:960,1
    - Dst: evhttp_request_free_auto
      Src: /src/libevent/http.c:981,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:990,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:991,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 927
    functionDepth: 3
    functionLinenumber: 927
    functionLinenumberEnd: 993
    functionName: evhttp_connection_done
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_connected
    - evhttp_request_dispatch
    - evhttp_connection_connect_
    - evhttp_connection_start_detectclose
    - evhttp_request_free_auto
    - evhttp_connection_free
    - evhttp_connection_reset_
    - TAILQ_FIRST
    - evhttp_is_request_connection_close
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void evhttp_connection_done(struct evhttp_connection *evcon)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:1019,1
    - Dst: evbuffer_readln
      Src: /src/libevent/http.c:1032,1
    - Dst: strlen
      Src: /src/libevent/http.c:1038,1
    - Dst: mm_free
      Src: /src/libevent/http.c:1041,1
    - Dst: isspace
      Src: /src/libevent/http.c:1045,1
    - Dst: mm_free
      Src: /src/libevent/http.c:1050,1
    - Dst: evutil_strtoll
      Src: /src/libevent/http.c:1053,1
    - Dst: mm_free
      Src: /src/libevent/http.c:1057,1
    - Dst: event_debug
      Src: /src/libevent/http.c:1070,1
    - Dst: evbuffer_remove_buffer
      Src: /src/libevent/http.c:1094,1
    - Dst: evbuffer_drain
      Src: /src/libevent/http.c:1099,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:1100,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 62
    argCount: 2
    argNames:
    - req
    - buf
    argTypes:
    - struct evhttp_request*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1009
    functionDepth: 1
    functionLinenumber: 1009
    functionLinenumberEnd: 1109
    functionName: evhttp_handle_chunked_read
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - mm_free
    - evbuffer_remove_buffer
    - evbuffer_readln
    - isspace
    - evbuffer_get_length
    - strlen
    - event_debug
    - evutil_strtoll
    - evbuffer_drain
    linkageType: ''
    returnType: enum message_read_status
    signature: enum message_read_status evhttp_handle_chunked_read(struct evhttp_request
      *req, struct evbuffer *buf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/http.c:1114,1
    - Dst: evhttp_parse_headers_
      Src: /src/libevent/http.c:1116,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:1119,1
    - Dst: bufferevent_disable
      Src: /src/libevent/http.c:1122,1
    - Dst: evhttp_connection_done
      Src: /src/libevent/http.c:1123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - evcon
    - req
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1111
    functionDepth: 4
    functionLinenumber: 1111
    functionLinenumberEnd: 1130
    functionName: evhttp_read_trailer
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_connection_done
    - bufferevent_get_input
    - evhttp_connection_fail_
    - evhttp_parse_headers_
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void evhttp_read_trailer(struct evhttp_connection *evcon, struct evhttp_request
      *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/http.c:1136,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:1138,1
    - Dst: event_debug
      Src: /src/libevent/http.c:1144,1
    - Dst: EV_I64_ARG
      Src: /src/libevent/http.c:1145,1
    - Dst: evbuffer_drain
      Src: /src/libevent/http.c:1147,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:1149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - evcon
    - req
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1132
    functionDepth: 4
    functionLinenumber: 1132
    functionLinenumberEnd: 1150
    functionName: evhttp_lingering_close
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - EV_I64_ARG
    - bufferevent_get_input
    - evhttp_connection_fail_
    - evbuffer_get_length
    - event_debug
    - evbuffer_drain
    linkageType: ''
    returnType: void
    signature: "void evhttp_lingering_close(struct evhttp_connection *evcon,\n\tstruct
      evhttp_request *req)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_lingering_close
      Src: /src/libevent/http.c:1156,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:1158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - evcon
    - req
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1151
    functionDepth: 5
    functionLinenumber: 1151
    functionLinenumberEnd: 1159
    functionName: evhttp_lingering_fail
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_lingering_close
    - evhttp_connection_fail_
    linkageType: ''
    returnType: void
    signature: "void evhttp_lingering_fail(struct evhttp_connection *evcon,\n\tstruct
      evhttp_request *req)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/http.c:1164,1
    - Dst: evhttp_handle_chunked_read
      Src: /src/libevent/http.c:1167,1
    - Dst: evhttp_read_trailer
      Src: /src/libevent/http.c:1171,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:1175,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:1179,1
    - Dst: evhttp_request_free_auto
      Src: /src/libevent/http.c:1184,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:1192,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:1193,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:1197,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/http.c:1198,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:1199,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:1203,1
    - Dst: evbuffer_remove_buffer
      Src: /src/libevent/http.c:1209,1
    - Dst: evhttp_lingering_fail
      Src: /src/libevent/http.c:1218,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:1222,1
    - Dst: evbuffer_drain
      Src: /src/libevent/http.c:1226,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:1227,1
    - Dst: evhttp_request_free_auto
      Src: /src/libevent/http.c:1229,1
    - Dst: bufferevent_disable
      Src: /src/libevent/http.c:1235,1
    - Dst: evhttp_connection_done
      Src: /src/libevent/http.c:1237,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 2
    argNames:
    - evcon
    - req
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1161
    functionDepth: 6
    functionLinenumber: 1161
    functionLinenumberEnd: 1240
    functionName: evhttp_read_body
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_connection_done
    - evbuffer_remove_buffer
    - evhttp_request_free_auto
    - bufferevent_get_input
    - evhttp_read_trailer
    - evhttp_connection_fail_
    - evbuffer_add_buffer
    - evbuffer_get_length
    - evhttp_handle_chunked_read
    - evhttp_lingering_fail
    - evbuffer_drain
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void evhttp_read_body(struct evhttp_connection *evcon, struct evhttp_request
      *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - evcon
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1242
    functionDepth: 0
    functionLinenumber: 1242
    functionLinenumberEnd: 1244
    functionName: get_deferred_queue
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_deferred_queue(evcon)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:1253,1
    - Dst: event_deferred_cb_cancel_
      Src: /src/libevent/http.c:1256,1
    - Dst: get_deferred_queue
      Src: /src/libevent/http.c:1256,1
    - Dst: evhttp_read_firstline
      Src: /src/libevent/http.c:1261,1
    - Dst: evhttp_read_header
      Src: /src/libevent/http.c:1266,1
    - Dst: evhttp_read_body
      Src: /src/libevent/http.c:1271,1
    - Dst: evhttp_read_trailer
      Src: /src/libevent/http.c:1276,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/http.c:1284,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:1285,1
    - Dst: event_debug
      Src: /src/libevent/http.c:1286,1
    - Dst: EV_SIZE_ARG
      Src: /src/libevent/http.c:1289,1
    - Dst: evhttp_connection_reset_
      Src: /src/libevent/http.c:1292,1
    - Dst: event_errx
      Src: /src/libevent/http.c:1299,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - bufev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1249
    functionDepth: 7
    functionLinenumber: 1249
    functionLinenumberEnd: 1302
    functionName: evhttp_read_cb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_read_header
    - event_deferred_cb_cancel_
    - EV_SIZE_ARG
    - get_deferred_queue
    - bufferevent_get_input
    - evhttp_read_firstline
    - event_errx
    - TAILQ_FIRST
    - evhttp_read_trailer
    - evhttp_connection_reset_
    - evbuffer_get_length
    - event_debug
    - evhttp_read_body
    linkageType: ''
    returnType: void
    signature: void evhttp_read_cb(struct bufferevent *bufev, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - cb
    - data
    argTypes:
    - struct event_callback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1304
    functionDepth: 0
    functionLinenumber: 1304
    functionLinenumberEnd: 1311
    functionName: evhttp_deferred_read_cb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evhttp_deferred_read_cb(struct event_callback *cb, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:1317,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/http.c:1318,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:1319,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:1321,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:1325,1
    - Dst: evhttp_start_read_
      Src: /src/libevent/http.c:1331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - evcon
    - arg
    argTypes:
    - struct evhttp_connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1313
    functionDepth: 1
    functionLinenumber: 1313
    functionLinenumberEnd: 1332
    functionName: evhttp_write_connectioncb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_output
    - EVUTIL_ASSERT
    - TAILQ_FIRST
    - evhttp_start_read_
    - evbuffer_get_length
    linkageType: ''
    returnType: void
    signature: void evhttp_write_connectioncb(struct evhttp_connection *evcon, void
      *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_connected
      Src: /src/libevent/http.c:1344,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:1352,1
    - Dst: evhttp_request_free_
      Src: /src/libevent/http.c:1353,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:1358,1
    - Dst: event_initialized
      Src: /src/libevent/http.c:1362,1
    - Dst: event_del
      Src: /src/libevent/http.c:1363,1
    - Dst: event_debug_unassign
      Src: /src/libevent/http.c:1364,1
    - Dst: event_deferred_cb_cancel_
      Src: /src/libevent/http.c:1367,1
    - Dst: get_deferred_queue
      Src: /src/libevent/http.c:1367,1
    - Dst: bufferevent_free
      Src: /src/libevent/http.c:1371,1
    - Dst: mm_free
      Src: /src/libevent/http.c:1375,1
    - Dst: mm_free
      Src: /src/libevent/http.c:1378,1
    - Dst: mm_free
      Src: /src/libevent/http.c:1382,1
    - Dst: mm_free
      Src: /src/libevent/http.c:1385,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1338
    functionDepth: 3
    functionLinenumber: 1338
    functionLinenumberEnd: 1386
    functionName: evhttp_connection_free
    functionSourceFile: /src/libevent/http.c
    functionUses: 2
    functionsReached:
    - evhttp_connected
    - event_deferred_cb_cancel_
    - mm_free
    - event_del
    - event_debug_unassign
    - get_deferred_queue
    - TAILQ_FIRST
    - bufferevent_free
    - evhttp_request_free_
    - event_initialized
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void evhttp_connection_free(struct evhttp_connection *evcon)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1388
    functionDepth: 0
    functionLinenumber: 1388
    functionLinenumberEnd: 1391
    functionName: evhttp_connection_free_on_completion
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evhttp_connection_free_on_completion(struct evhttp_connection
      *evcon)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:1397,1
    - Dst: mm_free
      Src: /src/libevent/http.c:1399,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:1400,1
    - Dst: event_warn
      Src: /src/libevent/http.c:1401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - evcon
    - address
    argTypes:
    - struct evhttp_connection*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1393
    functionDepth: 1
    functionLinenumber: 1393
    functionLinenumberEnd: 1402
    functionName: evhttp_connection_set_local_address
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - mm_free
    - event_warn
    - mm_strdup
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_local_address(struct evhttp_connection
      *evcon,\n    const char *address)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:1408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - evcon
    - port
    argTypes:
    - struct evhttp_connection*
    - ev_uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1404
    functionDepth: 1
    functionLinenumber: 1404
    functionLinenumberEnd: 1410
    functionName: evhttp_connection_set_local_port
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_local_port(struct evhttp_connection *evcon,\n
      \   ev_uint16_t port)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:1415,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:1421,1
    - Dst: evhttp_connection_stop_detectclose
      Src: /src/libevent/http.c:1424,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:1427,1
    - Dst: evhttp_make_header
      Src: /src/libevent/http.c:1432,1
    - Dst: evhttp_write_buffer
      Src: /src/libevent/http.c:1434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1412
    functionDepth: 4
    functionLinenumber: 1412
    functionLinenumberEnd: 1435
    functionName: evhttp_request_dispatch
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - evhttp_write_buffer
    - evhttp_connection_stop_detectclose
    - EVUTIL_ASSERT
    - TAILQ_FIRST
    - evhttp_make_header
    linkageType: ''
    returnType: void
    signature: void evhttp_request_dispatch(struct evhttp_connection* evcon)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_disable_hard_
      Src: /src/libevent/http.c:1461,1
    - Dst: evhttp_connected
      Src: /src/libevent/http.c:1464,1
    - Dst: bufferevent_replacefd
      Src: /src/libevent/http.c:1468,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:1469,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/http.c:1472,1
    - Dst: evbuffer_drain
      Src: /src/libevent/http.c:1473,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:1474,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/http.c:1475,1
    - Dst: evbuffer_drain
      Src: /src/libevent/http.c:1476,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:1477,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1444
    functionDepth: 1
    functionLinenumber: 1444
    functionLinenumberEnd: 1478
    functionName: evhttp_connection_reset_hard_
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_connected
    - bufferevent_get_output
    - bufferevent_disable_hard_
    - bufferevent_get_input
    - EVUTIL_ASSERT
    - bufferevent_replacefd
    - evbuffer_drain
    linkageType: ''
    returnType: void
    signature: void evhttp_connection_reset_hard_(struct evhttp_connection *evcon)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_setcb
      Src: /src/libevent/http.c:1491,1
    - Dst: evhttp_connection_reset_hard_
      Src: /src/libevent/http.c:1494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - evcon
    - hard
    argTypes:
    - struct evhttp_connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1488
    functionDepth: 2
    functionLinenumber: 1488
    functionLinenumberEnd: 1499
    functionName: evhttp_connection_reset_
    functionSourceFile: /src/libevent/http.c
    functionUses: 3
    functionsReached:
    - bufferevent_setcb
    - evhttp_connection_reset_hard_
    linkageType: ''
    returnType: void
    signature: void evhttp_connection_reset_(struct evhttp_connection *evcon, int
      hard)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_enable
      Src: /src/libevent/http.c:1505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1501
    functionDepth: 1
    functionLinenumber: 1501
    functionLinenumberEnd: 1506
    functionName: evhttp_connection_start_detectclose
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - bufferevent_enable
    linkageType: ''
    returnType: void
    signature: void evhttp_connection_start_detectclose(struct evhttp_connection *evcon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_disable
      Src: /src/libevent/http.c:1512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1508
    functionDepth: 1
    functionLinenumber: 1508
    functionLinenumberEnd: 1513
    functionName: evhttp_connection_stop_detectclose
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void evhttp_connection_stop_detectclose(struct evhttp_connection *evcon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_connection_connect_
      Src: /src/libevent/http.c:1521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1515
    functionDepth: 1
    functionLinenumber: 1515
    functionLinenumberEnd: 1522
    functionName: evhttp_connection_retry
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_connection_connect_
    linkageType: ''
    returnType: void
    signature: void evhttp_connection_retry(evutil_socket_t fd, short what, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:1528,1
    - Dst: evhttp_connection_reset_
      Src: /src/libevent/http.c:1530,1
    - Dst: evtimer_assign
      Src: /src/libevent/http.c:1535,1
    - Dst: event_add
      Src: /src/libevent/http.c:1549,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/http.c:1560,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:1561,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:1562,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:1563,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/http.c:1564,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:1568,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:1569,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:1570,1
    - Dst: struct evhttp_request*::cb
      Src: /src/libevent/http.c:1574,1
    - Dst: evhttp_request_free_auto
      Src: /src/libevent/http.c:1575,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:1578,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:1580,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1524
    functionDepth: 4
    functionLinenumber: 1524
    functionLinenumberEnd: 1583
    functionName: evhttp_connection_cb_cleanup
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evtimer_assign
    - evhttp_request_free_auto
    - evhttp_connection_free
    - EVUTIL_ASSERT
    - evhttp_connection_reset_
    - TAILQ_FIRST
    - event_add
    - struct evhttp_request*::cb
    - TAILQ_INIT
    - TAILQ_INSERT_TAIL
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void evhttp_connection_cb_cleanup(struct evhttp_connection *evcon)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:1594,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/http.c:1600,1
    - Dst: evbuffer_unfreeze
      Src: /src/libevent/http.c:1601,1
    - Dst: evbuffer_drain
      Src: /src/libevent/http.c:1602,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:1602,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/http.c:1603,1
    - Dst: evhttp_start_read_
      Src: /src/libevent/http.c:1605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - evcon
    - req
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1585
    functionDepth: 4
    functionLinenumber: 1585
    functionLinenumberEnd: 1607
    functionName: evhttp_connection_read_on_write_error
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evbuffer_unfreeze
    - bufferevent_get_output
    - evbuffer_freeze
    - evhttp_connection_fail_
    - evhttp_start_read_
    - evbuffer_get_length
    - evbuffer_drain
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_read_on_write_error(struct evhttp_connection
      *evcon,\n    struct evhttp_request *req)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:1613,1
    - Dst: event_debug
      Src: /src/libevent/http.c:1618,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/http.c:1621,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/http.c:1621,1
    - Dst: evhttp_connection_cb_cleanup
      Src: /src/libevent/http.c:1622,1
    - Dst: evhttp_connection_done
      Src: /src/libevent/http.c:1631,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:1651,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:1656,1
    - Dst: evhttp_connection_reset_
      Src: /src/libevent/http.c:1657,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:1664,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:1667,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:1673,1
    - Dst: evhttp_connection_read_on_write_error
      Src: /src/libevent/http.c:1677,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:1683,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/http.c:1683,1
    - Dst: event_deferred_cb_schedule_
      Src: /src/libevent/http.c:1684,1
    - Dst: get_deferred_queue
      Src: /src/libevent/http.c:1684,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:1689,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:1692,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 3
    argNames:
    - bufev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1609
    functionDepth: 5
    functionLinenumber: 1609
    functionLinenumberEnd: 1694
    functionName: evhttp_error_cb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_connection_done
    - event_deferred_cb_schedule_
    - bufferevent_get_input
    - evhttp_connection_cb_cleanup
    - EVUTIL_ASSERT
    - evhttp_connection_free
    - get_deferred_queue
    - TAILQ_FIRST
    - evhttp_connection_reset_
    - evhttp_connection_fail_
    - evbuffer_get_length
    - event_debug
    - evhttp_connection_read_on_write_error
    - EV_SOCK_ARG
    - bufferevent_getfd
    linkageType: ''
    returnType: void
    signature: void evhttp_error_cb(struct bufferevent *bufev, short what, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_error_cb
      Src: /src/libevent/http.c:1713,1
    - Dst: event_debug
      Src: /src/libevent/http.c:1718,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/http.c:1720,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/http.c:1720,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/http.c:1727,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/http.c:1733,1
    - Dst: evhttp_request_dispatch
      Src: /src/libevent/http.c:1737,1
    - Dst: evhttp_connection_cb_cleanup
      Src: /src/libevent/http.c:1741,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - bufev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1699
    functionDepth: 6
    functionLinenumber: 1699
    functionLinenumberEnd: 1742
    functionName: evhttp_connection_cb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_dispatch
    - evhttp_connection_cb_cleanup
    - bufferevent_set_timeouts
    - bufferevent_setcb
    - evhttp_error_cb
    - event_debug
    - EV_SOCK_ARG
    - bufferevent_getfd
    linkageType: ''
    returnType: void
    signature: void evhttp_connection_cb(struct bufferevent *bufev, short what, void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1748
    functionDepth: 0
    functionLinenumber: 1748
    functionLinenumberEnd: 1755
    functionName: evhttp_valid_response_code
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evhttp_valid_response_code(int code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/libevent/http.c:1762,1
    - Dst: event_debug
      Src: /src/libevent/http.c:1764,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - version
    - req
    argTypes:
    - char*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1757
    functionDepth: 1
    functionLinenumber: 1757
    functionLinenumberEnd: 1771
    functionName: evhttp_parse_http_version
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - event_debug
    - sscanf
    linkageType: ''
    returnType: int
    signature: int evhttp_parse_http_version(const char *version, struct evhttp_request
      *req)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strsep
      Src: /src/libevent/http.c:1782,1
    - Dst: strsep
      Src: /src/libevent/http.c:1785,1
    - Dst: evhttp_parse_http_version
      Src: /src/libevent/http.c:1789,1
    - Dst: atoi
      Src: /src/libevent/http.c:1792,1
    - Dst: evhttp_valid_response_code
      Src: /src/libevent/http.c:1793,1
    - Dst: event_debug
      Src: /src/libevent/http.c:1794,1
    - Dst: mm_free
      Src: /src/libevent/http.c:1800,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:1801,1
    - Dst: event_warn
      Src: /src/libevent/http.c:1802,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - req
    - line
    argTypes:
    - struct evhttp_request*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1775
    functionDepth: 2
    functionLinenumber: 1775
    functionLinenumberEnd: 1807
    functionName: evhttp_parse_response_line
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - mm_free
    - evhttp_valid_response_code
    - event_warn
    - mm_strdup
    - strsep
    - evhttp_parse_http_version
    - event_debug
    - atoi
    linkageType: ''
    returnType: int
    signature: int evhttp_parse_response_line(struct evhttp_request *req, char *line)
  - BBCount: 59
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/http.c:1826,1
    - Dst: strsep
      Src: /src/libevent/http.c:1830,1
    - Dst: strrchr
      Src: /src/libevent/http.c:1834,1
    - Dst: struct evhttp_request*::evcon::ext_method_cmp
      Src: /src/libevent/http.c:2015,1
    - Dst: strcmp
      Src: /src/libevent/http.c:2019,1
    - Dst: event_warn
      Src: /src/libevent/http.c:2020,1
    - Dst: event_warn
      Src: /src/libevent/http.c:2025,1
    - Dst: event_debug
      Src: /src/libevent/http.c:2034,1
    - Dst: evhttp_parse_http_version
      Src: /src/libevent/http.c:2042,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:2045,1
    - Dst: event_debug
      Src: /src/libevent/http.c:2046,1
    - Dst: evhttp_uri_parse_authority
      Src: /src/libevent/http.c:2051,1
    - Dst: evhttp_uri_parse_with_flags
      Src: /src/libevent/http.c:2055,1
    CyclomaticComplexity: 121
    EdgeCount: 121
    ICount: 175
    argCount: 3
    argNames:
    - req
    - line
    - len
    argTypes:
    - struct evhttp_request*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 1811
    functionDepth: 2
    functionLinenumber: 1811
    functionLinenumberEnd: 2062
    functionName: evhttp_parse_request_line
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - strrchr
    - struct evhttp_request*::evcon::ext_method_cmp
    - event_warn
    - mm_strdup
    - strcmp
    - evhttp_uri_parse_authority
    - strsep
    - evhttp_parse_http_version
    - evhttp_uri_parse_with_flags
    - strlen
    - event_debug
    linkageType: ''
    returnType: int
    signature: int evhttp_parse_request_line(struct evhttp_request *req, char *line,
      size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/http.c:2070,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - headers
    - key
    argTypes:
    - struct evkeyvalq*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2075
      start: 2064
    functionDepth: 1
    functionLinenumber: 2064
    functionLinenumberEnd: 2075
    functionName: evhttp_find_header
    functionSourceFile: /src/libevent/http.c
    functionUses: 7
    functionsReached:
    - evutil_ascii_strcasecmp
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_find_header(const struct evkeyvalq *headers, const char *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/http.c:2070,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2072
      start: 2069
    functionDepth: 1
    functionLinenumber: 2069
    functionLinenumberEnd: 2072
    functionName: TAILQ_FOREACH
    functionSourceFile: /src/libevent/http.c
    functionUses: 165
    functionsReached:
    - evutil_ascii_strcasecmp
    linkageType: ''
    returnType: void
    signature: void TAILQ_FOREACH(header, headers, next)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:2082,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:2084,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:2085,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2086,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2087,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2088,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - headers
    argTypes:
    - struct evkeyvalq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2090
      start: 2077
    functionDepth: 1
    functionLinenumber: 2077
    functionLinenumberEnd: 2090
    functionName: evhttp_clear_headers
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - mm_free
    - TAILQ_FIRST
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void evhttp_clear_headers(struct evkeyvalq *headers)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/http.c:2103,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:2111,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2112,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2113,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - headers
    - key
    argTypes:
    - struct evkeyvalq*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2117
      start: 2097
    functionDepth: 1
    functionLinenumber: 2097
    functionLinenumberEnd: 2117
    functionName: evhttp_remove_header
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - evutil_ascii_strcasecmp
    - mm_free
    - TAILQ_REMOVE
    linkageType: ''
    returnType: int
    signature: int evhttp_remove_header(struct evkeyvalq *headers, const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/http.c:2103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2105
      start: 2102
    functionDepth: 1
    functionLinenumber: 2102
    functionLinenumberEnd: 2105
    functionName: TAILQ_FOREACH
    functionSourceFile: /src/libevent/http.c
    functionUses: 165
    functionsReached:
    - evutil_ascii_strcasecmp
    linkageType: ''
    returnType: void
    signature: void TAILQ_FOREACH(header, headers, next)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strpbrk
      Src: /src/libevent/http.c:2124,1
    - Dst: strspn
      Src: /src/libevent/http.c:2126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2119
    functionDepth: 0
    functionLinenumber: 2119
    functionLinenumberEnd: 2132
    functionName: evhttp_header_is_valid_value
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - strspn
    - strpbrk
    linkageType: ''
    returnType: int
    signature: int evhttp_header_is_valid_value(const char *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_debug
      Src: /src/libevent/http.c:2138,1
    - Dst: strchr
      Src: /src/libevent/http.c:2145,1
    - Dst: strchr
      Src: /src/libevent/http.c:2145,1
    - Dst: event_debug
      Src: /src/libevent/http.c:2147,1
    - Dst: evhttp_header_is_valid_value
      Src: /src/libevent/http.c:2151,1
    - Dst: event_debug
      Src: /src/libevent/http.c:2152,1
    - Dst: evhttp_add_header_internal
      Src: /src/libevent/http.c:2156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - headers
    - key
    - value
    argTypes:
    - struct evkeyvalq*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2157
      start: 2134
    functionDepth: 1
    functionLinenumber: 2134
    functionLinenumberEnd: 2157
    functionName: evhttp_add_header
    functionSourceFile: /src/libevent/http.c
    functionUses: 4
    functionsReached:
    - evhttp_add_header_internal
    - event_debug
    - evhttp_header_is_valid_value
    - strchr
    linkageType: ''
    returnType: int
    signature: "int evhttp_add_header(struct evkeyvalq *headers,\n    const char *key,
      const char *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/http.c:2163,1
    - Dst: event_warn
      Src: /src/libevent/http.c:2165,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:2168,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2169,1
    - Dst: event_warn
      Src: /src/libevent/http.c:2170,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:2173,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2174,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2175,1
    - Dst: event_warn
      Src: /src/libevent/http.c:2176,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/http.c:2180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - headers
    - key
    - value
    argTypes:
    - struct evkeyvalq*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2183
      start: 2159
    functionDepth: 1
    functionLinenumber: 2159
    functionLinenumberEnd: 2183
    functionName: evhttp_add_header_internal
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - mm_free
    - mm_calloc
    - event_warn
    - mm_strdup
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: int
    signature: "int evhttp_add_header_internal(struct evkeyvalq *headers,\n    const
      char *key, const char *value)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_readln
      Src: /src/libevent/http.c:2203,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:2206,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2213,1
    - Dst: evhttp_parse_request_line
      Src: /src/libevent/http.c:2221,1
    - Dst: evhttp_parse_response_line
      Src: /src/libevent/http.c:2225,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2232,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - req
    - buffer
    argTypes:
    - struct evhttp_request*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2234
      start: 2195
    functionDepth: 3
    functionLinenumber: 2195
    functionLinenumberEnd: 2234
    functionName: evhttp_parse_firstline_
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - mm_free
    - evhttp_parse_response_line
    - evhttp_parse_request_line
    - evbuffer_readln
    - evbuffer_get_length
    linkageType: ''
    returnType: enum message_read_status
    signature: enum message_read_status evhttp_parse_firstline_(struct evhttp_request
      *req, struct evbuffer *buffer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_LAST
      Src: /src/libevent/http.c:2239,1
    - Dst: strlen
      Src: /src/libevent/http.c:2246,1
    - Dst: evutil_rtrim_lws_
      Src: /src/libevent/http.c:2251,1
    - Dst: strlen
      Src: /src/libevent/http.c:2253,1
    - Dst: mm_realloc
      Src: /src/libevent/http.c:2255,1
    - Dst: memcpy
      Src: /src/libevent/http.c:2260,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - headers
    - line
    argTypes:
    - struct evkeyvalq*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2264
      start: 2236
    functionDepth: 1
    functionLinenumber: 2236
    functionLinenumberEnd: 2264
    functionName: evhttp_append_to_last_header
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - mm_realloc
    - memcpy
    - evutil_rtrim_lws_
    - strlen
    - TAILQ_LAST
    linkageType: ''
    returnType: int
    signature: int evhttp_append_to_last_header(struct evkeyvalq *headers, char *line)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_readln
      Src: /src/libevent/http.c:2275,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2289,1
    - Dst: evhttp_append_to_last_header
      Src: /src/libevent/http.c:2295,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2297,1
    - Dst: strsep
      Src: /src/libevent/http.c:2303,1
    - Dst: strspn
      Src: /src/libevent/http.c:2307,1
    - Dst: evutil_rtrim_lws_
      Src: /src/libevent/http.c:2308,1
    - Dst: evhttp_add_header
      Src: /src/libevent/http.c:2310,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2313,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:2318,1
    - Dst: mm_free
      Src: /src/libevent/http.c:2325,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 2
    argNames:
    - req
    - buffer
    argTypes:
    - struct evhttp_request*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2327
      start: 2266
    functionDepth: 2
    functionLinenumber: 2266
    functionLinenumberEnd: 2327
    functionName: evhttp_parse_headers_
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - evhttp_append_to_last_header
    - mm_free
    - evhttp_add_header
    - evbuffer_readln
    - strsep
    - evbuffer_get_length
    - evutil_rtrim_lws_
    - strspn
    linkageType: ''
    returnType: enum message_read_status
    signature: enum message_read_status evhttp_parse_headers_(struct evhttp_request
      *req, struct evbuffer* buffer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_find_header
      Src: /src/libevent/http.c:2336,1
    - Dst: evhttp_find_header
      Src: /src/libevent/http.c:2337,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/http.c:2342,1
    - Dst: evutil_strtoll
      Src: /src/libevent/http.c:2348,1
    - Dst: event_debug
      Src: /src/libevent/http.c:2350,1
    - Dst: event_debug
      Src: /src/libevent/http.c:2357,1
    - Dst: EV_I64_ARG
      Src: /src/libevent/http.c:2358,1
    - Dst: EV_SIZE_ARG
      Src: /src/libevent/http.c:2359,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:2359,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/http.c:2359,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2362
      start: 2329
    functionDepth: 2
    functionLinenumber: 2329
    functionLinenumberEnd: 2362
    functionName: evhttp_get_body_length
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - EV_SIZE_ARG
    - evutil_strtoll
    - EV_I64_ARG
    - evutil_ascii_strcasecmp
    - bufferevent_get_input
    - evbuffer_get_length
    - event_debug
    - evhttp_find_header
    linkageType: ''
    returnType: int
    signature: int evhttp_get_body_length(struct evhttp_request *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_method_
      Src: /src/libevent/http.c:2369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - evcon
    - type
    argTypes:
    - struct evhttp_connection*
    - enum evhttp_cmd_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2371
      start: 2364
    functionDepth: 2
    functionLinenumber: 2364
    functionLinenumberEnd: 2371
    functionName: evhttp_method_may_have_body_
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_method_
    linkageType: ''
    returnType: int
    signature: int evhttp_method_may_have_body_(struct evhttp_connection *evcon, enum
      evhttp_cmd_type type)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_method_may_have_body_
      Src: /src/libevent/http.c:2380,1
    - Dst: evhttp_connection_done
      Src: /src/libevent/http.c:2381,1
    - Dst: evhttp_find_header
      Src: /src/libevent/http.c:2385,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/http.c:2386,1
    - Dst: evhttp_get_body_length
      Src: /src/libevent/http.c:2390,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:2391,1
    - Dst: evhttp_connection_done
      Src: /src/libevent/http.c:2397,1
    - Dst: evhttp_have_expect
      Src: /src/libevent/http.c:2403,1
    - Dst: evhttp_lingering_fail
      Src: /src/libevent/http.c:2415,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:2419,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/http.c:2419,1
    - Dst: evhttp_send_continue
      Src: /src/libevent/http.c:2420,1
    - Dst: evhttp_send_error
      Src: /src/libevent/http.c:2423,1
    - Dst: evhttp_read_body
      Src: /src/libevent/http.c:2428,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 2
    argNames:
    - evcon
    - req
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2430
      start: 2373
    functionDepth: 7
    functionLinenumber: 2373
    functionLinenumberEnd: 2430
    functionName: evhttp_get_body
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_connection_done
    - evutil_ascii_strcasecmp
    - evhttp_have_expect
    - evhttp_get_body_length
    - evhttp_method_may_have_body_
    - bufferevent_get_input
    - evhttp_connection_fail_
    - evhttp_send_error
    - evhttp_send_continue
    - evbuffer_get_length
    - evhttp_lingering_fail
    - evhttp_find_header
    - evhttp_read_body
    linkageType: ''
    returnType: void
    signature: void evhttp_get_body(struct evhttp_connection *evcon, struct evhttp_request
      *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_parse_firstline_
      Src: /src/libevent/http.c:2438,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/http.c:2438,1
    - Dst: event_debug
      Src: /src/libevent/http.c:2441,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/http.c:2442,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/http.c:2442,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:2443,1
    - Dst: evhttp_read_header
      Src: /src/libevent/http.c:2451,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - evcon
    - req
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2452
      start: 2432
    functionDepth: 4
    functionLinenumber: 2432
    functionLinenumberEnd: 2452
    functionName: evhttp_read_firstline
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - evhttp_read_header
    - bufferevent_get_input
    - evhttp_connection_fail_
    - evhttp_parse_firstline_
    - event_debug
    - EV_SOCK_ARG
    - bufferevent_getfd
    linkageType: ''
    returnType: void
    signature: "void evhttp_read_firstline(struct evhttp_connection *evcon,\n\t\t
      \     struct evhttp_request *req)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_getfd
      Src: /src/libevent/http.c:2459,1
    - Dst: evhttp_parse_headers_
      Src: /src/libevent/http.c:2461,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/http.c:2461,1
    - Dst: event_debug
      Src: /src/libevent/http.c:2464,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/http.c:2465,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:2466,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:2476,1
    - Dst: event_debug
      Src: /src/libevent/http.c:2484,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/http.c:2485,1
    - Dst: evhttp_get_body
      Src: /src/libevent/http.c:2486,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/http.c:2493,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/http.c:2494,1
    - Dst: evhttp_start_write_
      Src: /src/libevent/http.c:2495,1
    - Dst: evhttp_response_needs_body
      Src: /src/libevent/http.c:2498,1
    - Dst: event_debug
      Src: /src/libevent/http.c:2499,1
    - Dst: evhttp_connection_done
      Src: /src/libevent/http.c:2501,1
    - Dst: event_debug
      Src: /src/libevent/http.c:2503,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/http.c:2505,1
    - Dst: evhttp_get_body
      Src: /src/libevent/http.c:2506,1
    - Dst: event_warnx
      Src: /src/libevent/http.c:2513,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/http.c:2514,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:2515,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 2
    argNames:
    - evcon
    - req
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2519
      start: 2454
    functionDepth: 8
    functionLinenumber: 2454
    functionLinenumberEnd: 2519
    functionName: evhttp_read_header
    functionSourceFile: /src/libevent/http.c
    functionUses: 2
    functionsReached:
    - evhttp_connection_done
    - bufferevent_get_output
    - bufferevent_get_input
    - evhttp_start_write_
    - evhttp_connection_fail_
    - event_warnx
    - evbuffer_add_buffer
    - evhttp_get_body
    - event_debug
    - evhttp_response_needs_body
    - evhttp_parse_headers_
    - EV_SOCK_ARG
    - bufferevent_getfd
    linkageType: ''
    returnType: void
    signature: "void evhttp_read_header(struct evhttp_connection *evcon,\n\t\t   struct
      evhttp_request *req)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/http.c:2534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - address
    - port
    argTypes:
    - char*
    - ev_uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2535
      start: 2531
    functionDepth: 1
    functionLinenumber: 2531
    functionLinenumberEnd: 2535
    functionName: evhttp_connection_new
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_connection_base_new
    linkageType: ''
    returnType: struct evhttp_connection
    signature: 'struct evhttp_connection *

      evhttp_connection_new(const char *address, ev_uint16_t port)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - evcon
    - bev
    argTypes:
    - struct evhttp_connection*
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2547
      start: 2541
    functionDepth: 0
    functionLinenumber: 2541
    functionLinenumberEnd: 2547
    functionName: evhttp_connection_set_existing_
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evhttp_connection_set_existing_(struct evhttp_connection *evcon,
      struct bufferevent* bev)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/http.c:2554,1
    - Dst: event_warn
      Src: /src/libevent/http.c:2555,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/http.c:2570,1
    - Dst: event_warn
      Src: /src/libevent/http.c:2571,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/http.c:2576,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/http.c:2580,1
    - Dst: bufferevent_get_base
      Src: /src/libevent/http.c:2584,1
    - Dst: bufferevent_base_set
      Src: /src/libevent/http.c:2585,1
    - Dst: event_deferred_cb_init_
      Src: /src/libevent/http.c:2588,1
    - Dst: bufferevent_get_priority
      Src: /src/libevent/http.c:2590,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:2599,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - base
    - bev
    argTypes:
    - struct event_base*
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2601
      start: 2549
    functionDepth: 4
    functionLinenumber: 2549
    functionLinenumberEnd: 2601
    functionName: evhttp_connection_new_
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - bufferevent_socket_new
    - bufferevent_get_base
    - evhttp_connection_free
    - mm_calloc
    - bufferevent_get_priority
    - event_warn
    - bufferevent_setcb
    - event_deferred_cb_init_
    - bufferevent_base_set
    - TAILQ_INIT
    linkageType: ''
    returnType: struct evhttp_connection
    signature: 'struct evhttp_connection *

      evhttp_connection_new_(struct event_base *base, struct bufferevent* bev)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_connection_new_
      Src: /src/libevent/http.c:2610,1
    - Dst: evhttp_connection_set_existing_
      Src: /src/libevent/http.c:2615,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:2628,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - base
    - dnsbase
    - bev
    argTypes:
    - struct event_base*
    - struct evdns_base*
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2630
      start: 2603
    functionDepth: 5
    functionLinenumber: 2603
    functionLinenumberEnd: 2630
    functionName: evhttp_connection_base_bufferevent_reuse_new
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_connection_set_existing_
    - evhttp_connection_new_
    - evhttp_connection_free
    linkageType: ''
    returnType: struct evhttp_connection
    signature: 'struct evhttp_connection *

      evhttp_connection_base_bufferevent_reuse_new(struct event_base *base, struct
      evdns_base *dnsbase, struct bufferevent* bev)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/http.c:2638,1
    - Dst: member_size
      Src: /src/libevent/http.c:2638,1
    - Dst: event_warn
      Src: /src/libevent/http.c:2639,1
    - Dst: evhttp_connection_new_
      Src: /src/libevent/http.c:2643,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:2647,1
    - Dst: event_warn
      Src: /src/libevent/http.c:2648,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:2657,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - base
    - bev
    - unixsocket
    argTypes:
    - struct event_base*
    - struct bufferevent*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2659
      start: 2633
    functionDepth: 5
    functionLinenumber: 2633
    functionLinenumberEnd: 2659
    functionName: evhttp_connection_base_bufferevent_unix_new
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_connection_free
    - event_warn
    - mm_strdup
    - member_size
    - strlen
    - evhttp_connection_new_
    linkageType: ''
    returnType: struct evhttp_connection
    signature: 'struct evhttp_connection *

      evhttp_connection_base_bufferevent_unix_new(struct event_base *base, struct
      bufferevent* bev, const char *unixsocket)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: event_debug
      Src: /src/libevent/http.c:2668,1
    - Dst: evhttp_connection_new_
      Src: /src/libevent/http.c:2670,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:2674,1
    - Dst: event_warn
      Src: /src/libevent/http.c:2675,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:2684,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - base
    - dnsbase
    - bev
    - address
    - port
    argTypes:
    - struct event_base*
    - struct evdns_base*
    - struct bufferevent*
    - char*
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2686
      start: 2662
    functionDepth: 5
    functionLinenumber: 2662
    functionLinenumberEnd: 2686
    functionName: evhttp_connection_base_bufferevent_new
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_connection_free
    - event_warn
    - mm_strdup
    - event_debug
    - evhttp_connection_new_
    linkageType: ''
    returnType: struct evhttp_connection
    signature: "struct evhttp_connection *\nevhttp_connection_base_bufferevent_new(struct
      event_base *base, struct evdns_base *dnsbase, struct bufferevent* bev,\n    const
      char *address, unsigned short port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2692
      start: 2689
    functionDepth: 0
    functionLinenumber: 2689
    functionLinenumberEnd: 2692
    functionName: evhttp_connection_get_bufferevent
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct bufferevent
    signature: struct bufferevent * evhttp_connection_get_bufferevent(struct evhttp_connection
      *evcon)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2698
      start: 2694
    functionDepth: 0
    functionLinenumber: 2694
    functionLinenumberEnd: 2698
    functionName: evhttp_connection_get_server
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evhttp
    signature: 'struct evhttp *

      evhttp_connection_get_server(struct evhttp_connection *evcon)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_connection_base_bufferevent_new
      Src: /src/libevent/http.c:2704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - base
    - dnsbase
    - address
    - port
    argTypes:
    - struct event_base*
    - struct evdns_base*
    - char*
    - ev_uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2705
      start: 2700
    functionDepth: 6
    functionLinenumber: 2700
    functionLinenumberEnd: 2705
    functionName: evhttp_connection_base_new
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - evhttp_connection_base_bufferevent_new
    linkageType: ''
    returnType: struct evhttp_connection
    signature: "struct evhttp_connection *\nevhttp_connection_base_new(struct event_base
      *base, struct evdns_base *dnsbase,\n    const char *address, ev_uint16_t port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - evcon
    - family
    argTypes:
    - struct evhttp_connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2711
      start: 2707
    functionDepth: 0
    functionLinenumber: 2707
    functionLinenumberEnd: 2711
    functionName: evhttp_connection_set_family
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_family(struct evhttp_connection *evcon,\n\tint
      family)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - evcon
    - flags
    argTypes:
    - struct evhttp_connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2727
      start: 2713
    functionDepth: 0
    functionLinenumber: 2713
    functionLinenumberEnd: 2727
    functionName: evhttp_connection_set_flags
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int evhttp_connection_set_flags(struct evhttp_connection *evcon,\n\tint
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - evcon
    - cmp
    argTypes:
    - struct evhttp_connection*
    - evhttp_ext_method_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2734
      start: 2729
    functionDepth: 0
    functionLinenumber: 2729
    functionLinenumberEnd: 2734
    functionName: evhttp_connection_set_ext_method_cmp
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_ext_method_cmp(struct evhttp_connection
      *evcon,\n\tevhttp_ext_method_cb cmp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:2740,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:2741,1
    - Dst: bufferevent_base_set
      Src: /src/libevent/http.c:2743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - evcon
    - base
    argTypes:
    - struct evhttp_connection*
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2744
      start: 2736
    functionDepth: 1
    functionLinenumber: 2736
    functionLinenumberEnd: 2744
    functionName: evhttp_connection_set_base
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - bufferevent_base_set
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_base(struct evhttp_connection *evcon,\n
      \   struct event_base *base)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_set_timeout_
      Src: /src/libevent/http.c:2755,1
    - Dst: evhttp_set_timeout_
      Src: /src/libevent/http.c:2756,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/http.c:2757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - evcon
    - timeout
    argTypes:
    - struct evhttp_connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2759
      start: 2746
    functionDepth: 2
    functionLinenumber: 2746
    functionLinenumberEnd: 2759
    functionName: evhttp_connection_set_timeout
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_set_timeout_
    - bufferevent_set_timeouts
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_timeout(struct evhttp_connection *evcon,\n
      \   int timeout)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_set_timeout_tv_
      Src: /src/libevent/http.c:2769,1
    - Dst: evhttp_set_timeout_tv_
      Src: /src/libevent/http.c:2770,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/http.c:2771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - evcon
    - tv
    argTypes:
    - struct evhttp_connection*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2773
      start: 2760
    functionDepth: 2
    functionLinenumber: 2760
    functionLinenumberEnd: 2773
    functionName: evhttp_connection_set_timeout_tv
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_set_timeout_tv_
    - bufferevent_set_timeouts
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_timeout_tv(struct evhttp_connection *evcon,\n
      \   const struct timeval* tv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_set_timeout_tv_
      Src: /src/libevent/http.c:2778,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/http.c:2780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - evcon
    - tv
    argTypes:
    - struct evhttp_connection*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2782
      start: 2774
    functionDepth: 2
    functionLinenumber: 2774
    functionLinenumberEnd: 2782
    functionName: evhttp_connection_set_connect_timeout_tv
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_set_timeout_tv_
    - bufferevent_set_timeouts
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_connect_timeout_tv(struct evhttp_connection
      *evcon,\n    const struct timeval *tv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_set_timeout_tv_
      Src: /src/libevent/http.c:2787,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/http.c:2789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - evcon
    - tv
    argTypes:
    - struct evhttp_connection*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2791
      start: 2783
    functionDepth: 2
    functionLinenumber: 2783
    functionLinenumberEnd: 2791
    functionName: evhttp_connection_set_read_timeout_tv
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_set_timeout_tv_
    - bufferevent_set_timeouts
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_read_timeout_tv(struct evhttp_connection
      *evcon,\n    const struct timeval *tv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_set_timeout_tv_
      Src: /src/libevent/http.c:2796,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/http.c:2798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - evcon
    - tv
    argTypes:
    - struct evhttp_connection*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2800
      start: 2792
    functionDepth: 2
    functionLinenumber: 2792
    functionLinenumberEnd: 2800
    functionName: evhttp_connection_set_write_timeout_tv
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_set_timeout_tv_
    - bufferevent_set_timeouts
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_write_timeout_tv(struct evhttp_connection
      *evcon,\n    const struct timeval *tv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_timerclear
      Src: /src/libevent/http.c:2809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - evcon
    - tv
    argTypes:
    - struct evhttp_connection*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2812
      start: 2802
    functionDepth: 1
    functionLinenumber: 2802
    functionLinenumberEnd: 2812
    functionName: evhttp_connection_set_initial_retry_tv
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evutil_timerclear
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_initial_retry_tv(struct evhttp_connection
      *evcon,\n    const struct timeval *tv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - evcon
    - retry_max
    argTypes:
    - struct evhttp_connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2819
      start: 2814
    functionDepth: 0
    functionLinenumber: 2814
    functionLinenumberEnd: 2819
    functionName: evhttp_connection_set_retries
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_retries(struct evhttp_connection *evcon,\n
      \   int retry_max)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - evcon
    - cbarg
    argTypes:
    - struct evhttp_connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2827
      start: 2821
    functionDepth: 0
    functionLinenumber: 2821
    functionLinenumberEnd: 2827
    functionName: evhttp_connection_set_closecb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_set_closecb(struct evhttp_connection *evcon,\n
      \   void (*cb)(struct evhttp_connection *, void *), void *cbarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - evcon
    - address
    - port
    argTypes:
    - struct evhttp_connection*
    - char**
    - ev_uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2835
      start: 2829
    functionDepth: 0
    functionLinenumber: 2829
    functionLinenumberEnd: 2835
    functionName: evhttp_connection_get_peer
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_connection_get_peer(struct evhttp_connection *evcon,\n
      \   const char **address, ev_uint16_t *port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_socket_get_conn_address_
      Src: /src/libevent/http.c:2840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2841
      start: 2837
    functionDepth: 1
    functionLinenumber: 2837
    functionLinenumberEnd: 2841
    functionName: evhttp_connection_get_addr
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - bufferevent_socket_get_conn_address_
    linkageType: ''
    returnType: struct sockaddr
    signature: 'struct sockaddr *

      evhttp_connection_get_addr(struct evhttp_connection *evcon)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_connection_get_addr
      Src: /src/libevent/http.c:2848,1
    - Dst: evhttp_connection_reset_
      Src: /src/libevent/http.c:2863,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:2865,1
    - Dst: bind_socket
      Src: /src/libevent/http.c:2869,1
    - Dst: event_debug
      Src: /src/libevent/http.c:2872,1
    - Dst: bufferevent_replacefd
      Src: /src/libevent/http.c:2877,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/http.c:2882,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/http.c:2887,1
    - Dst: bufferevent_enable
      Src: /src/libevent/http.c:2890,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/http.c:2902,1
    - Dst: strcpy
      Src: /src/libevent/http.c:2908,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/http.c:2909,1
    - Dst: bufferevent_socket_connect_hostname
      Src: /src/libevent/http.c:2913,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2915
      start: 2843
    functionDepth: 3
    functionLinenumber: 2843
    functionLinenumberEnd: 2915
    functionName: evhttp_connection_connect_
    functionSourceFile: /src/libevent/http.c
    functionUses: 3
    functionsReached:
    - EVUTIL_ASSERT
    - evhttp_connection_get_addr
    - bufferevent_socket_connect_hostname
    - evhttp_connection_reset_
    - bufferevent_replacefd
    - bufferevent_set_timeouts
    - bufferevent_setcb
    - bufferevent_enable
    - strcpy
    - bind_socket
    - event_debug
    - bufferevent_socket_connect
    linkageType: ''
    returnType: int
    signature: int evhttp_connection_connect_(struct evhttp_connection *evcon)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/http.c:2947,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:2948,1
    - Dst: event_warn
      Src: /src/libevent/http.c:2949,1
    - Dst: evhttp_request_free_auto
      Src: /src/libevent/http.c:2950,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:2960,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:2962,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/http.c:2964,1
    - Dst: evhttp_connected
      Src: /src/libevent/http.c:2971,1
    - Dst: evhttp_connection_connect_
      Src: /src/libevent/http.c:2972,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:2978,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:2988,1
    - Dst: evhttp_request_dispatch
      Src: /src/libevent/http.c:2989,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - evcon
    - req
    - type
    - uri
    argTypes:
    - struct evhttp_connection*
    - struct evhttp_request*
    - enum evhttp_cmd_type
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2992
      start: 2938
    functionDepth: 5
    functionLinenumber: 2938
    functionLinenumberEnd: 2992
    functionName: evhttp_make_request
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_connected
    - evhttp_request_dispatch
    - mm_free
    - evhttp_request_free_auto
    - evhttp_connection_connect_
    - EVUTIL_ASSERT
    - event_warn
    - TAILQ_FIRST
    - mm_strdup
    - TAILQ_INSERT_TAIL
    - TAILQ_REMOVE
    linkageType: ''
    returnType: int
    signature: "int evhttp_make_request(struct evhttp_connection *evcon,\n    struct
      evhttp_request *req,\n    enum evhttp_cmd_type type, const char *uri)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:3000,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/http.c:3004,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:3013,1
    - Dst: evhttp_request_free_auto
      Src: /src/libevent/http.c:3017,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3018
      start: 2994
    functionDepth: 4
    functionLinenumber: 2994
    functionLinenumberEnd: 3018
    functionName: evhttp_cancel_request
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - evhttp_request_free_auto
    - evhttp_connection_fail_
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void evhttp_cancel_request(struct evhttp_request *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_disable
      Src: /src/libevent/http.c:3028,1
    - Dst: bufferevent_enable
      Src: /src/libevent/http.c:3029,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/http.c:3033,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:3041,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/http.c:3041,1
    - Dst: event_deferred_cb_schedule_
      Src: /src/libevent/http.c:3042,1
    - Dst: get_deferred_queue
      Src: /src/libevent/http.c:3042,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3045
      start: 3025
    functionDepth: 1
    functionLinenumber: 3025
    functionLinenumberEnd: 3045
    functionName: evhttp_start_read_
    functionSourceFile: /src/libevent/http.c
    functionUses: 2
    functionsReached:
    - event_deferred_cb_schedule_
    - bufferevent_get_input
    - get_deferred_queue
    - bufferevent_setcb
    - evbuffer_get_length
    - bufferevent_enable
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void evhttp_start_read_(struct evhttp_connection *evcon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_disable
      Src: /src/libevent/http.c:3050,1
    - Dst: bufferevent_enable
      Src: /src/libevent/http.c:3051,1
    - Dst: evhttp_write_buffer
      Src: /src/libevent/http.c:3054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3055
      start: 3047
    functionDepth: 2
    functionLinenumber: 3047
    functionLinenumberEnd: 3055
    functionName: evhttp_start_write_
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - evhttp_write_buffer
    - bufferevent_enable
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void evhttp_start_write_(struct evhttp_connection *evcon)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:3061,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:3062,1
    - Dst: struct evhttp_request*::on_complete_cb
      Src: /src/libevent/http.c:3065,1
    - Dst: REQ_VERSION_BEFORE
      Src: /src/libevent/http.c:3069,1
    - Dst: evhttp_is_connection_keepalive
      Src: /src/libevent/http.c:3070,1
    - Dst: evhttp_is_request_connection_close
      Src: /src/libevent/http.c:3071,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:3073,1
    - Dst: evhttp_request_free
      Src: /src/libevent/http.c:3074,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:3077,1
    - Dst: evhttp_associate_new_request_with_connection
      Src: /src/libevent/http.c:3082,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:3083,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - evcon
    - arg
    argTypes:
    - struct evhttp_connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3085
      start: 3057
    functionDepth: 4
    functionLinenumber: 3057
    functionLinenumberEnd: 3085
    functionName: evhttp_send_done
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_connection_free
    - EVUTIL_ASSERT
    - TAILQ_FIRST
    - evhttp_is_connection_keepalive
    - struct evhttp_request*::on_complete_cb
    - evhttp_request_free
    - evhttp_is_request_connection_close
    - evhttp_associate_new_request_with_connection
    - REQ_VERSION_BEFORE
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void evhttp_send_done(struct evhttp_connection *evcon, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/http.c:3099,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:3104,1
    - Dst: evhttp_response_code_
      Src: /src/libevent/http.c:3108,1
    - Dst: evhttp_response_phrase_internal
      Src: /src/libevent/http.c:3114,1
    - Dst: evbuffer_drain
      Src: /src/libevent/http.c:3116,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:3116,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/http.c:3117,1
    - Dst: evhttp_send_page_
      Src: /src/libevent/http.c:3122,1
    - Dst: evbuffer_free
      Src: /src/libevent/http.c:3124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - req
    - error
    - reason
    argTypes:
    - struct evhttp_request*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3126
      start: 3090
    functionDepth: 4
    functionLinenumber: 3090
    functionLinenumberEnd: 3126
    functionName: evhttp_send_error
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - evhttp_response_code_
    - evhttp_response_phrase_internal
    - evhttp_connection_free
    - evbuffer_free
    - evbuffer_add_printf
    - evhttp_send_page_
    - evbuffer_get_length
    - evbuffer_new
    - evbuffer_drain
    linkageType: ''
    returnType: void
    signature: void evhttp_send_error(struct evhttp_request *req, int error, const
      char *reason)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_htmlescape
      Src: /src/libevent/http.c:3137,1
    - Dst: strlen
      Src: /src/libevent/http.c:3140,1
    - Dst: strlen
      Src: /src/libevent/http.c:3140,1
    - Dst: mm_malloc
      Src: /src/libevent/http.c:3141,1
    - Dst: evutil_snprintf
      Src: /src/libevent/http.c:3145,1
    - Dst: evhttp_send_error
      Src: /src/libevent/http.c:3147,1
    - Dst: mm_free
      Src: /src/libevent/http.c:3150,1
    - Dst: mm_free
      Src: /src/libevent/http.c:3152,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - req
    - url
    argTypes:
    - struct evhttp_request*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3154
      start: 3127
    functionDepth: 5
    functionLinenumber: 3127
    functionLinenumberEnd: 3154
    functionName: evhttp_send_notfound
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - mm_free
    - mm_malloc
    - evhttp_send_error
    - evhttp_htmlescape
    - strlen
    - evutil_snprintf
    linkageType: ''
    returnType: void
    signature: void evhttp_send_notfound(struct evhttp_request *req, const char *url)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_free
      Src: /src/libevent/http.c:3165,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:3169,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:3169,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/http.c:3176,1
    - Dst: evhttp_make_header
      Src: /src/libevent/http.c:3179,1
    - Dst: evhttp_write_buffer
      Src: /src/libevent/http.c:3181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - req
    - databuf
    argTypes:
    - struct evhttp_request*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3182
      start: 3159
    functionDepth: 4
    functionLinenumber: 3159
    functionLinenumberEnd: 3182
    functionName: evhttp_send
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_write_buffer
    - EVUTIL_ASSERT
    - TAILQ_FIRST
    - evhttp_request_free
    - evbuffer_add_buffer
    - evhttp_make_header
    linkageType: ''
    returnType: void
    signature: void evhttp_send(struct evhttp_request *req, struct evbuffer *databuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_response_code_
      Src: /src/libevent/http.c:3188,1
    - Dst: evhttp_send
      Src: /src/libevent/http.c:3190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - req
    - code
    - reason
    - databuf
    argTypes:
    - struct evhttp_request*
    - int
    - char*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3191
      start: 3184
    functionDepth: 5
    functionLinenumber: 3184
    functionLinenumberEnd: 3191
    functionName: evhttp_send_reply
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_send
    - evhttp_response_code_
    linkageType: ''
    returnType: void
    signature: "void evhttp_send_reply(struct evhttp_request *req, int code, const
      char *reason,\n    struct evbuffer *databuf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_response_code_
      Src: /src/libevent/http.c:3197,1
    - Dst: evhttp_find_header
      Src: /src/libevent/http.c:3202,1
    - Dst: REQ_VERSION_ATLEAST
      Src: /src/libevent/http.c:3203,1
    - Dst: evhttp_response_needs_body
      Src: /src/libevent/http.c:3204,1
    - Dst: evhttp_add_header
      Src: /src/libevent/http.c:3210,1
    - Dst: evhttp_make_header
      Src: /src/libevent/http.c:3216,1
    - Dst: evhttp_write_buffer
      Src: /src/libevent/http.c:3217,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - req
    - code
    - reason
    argTypes:
    - struct evhttp_request*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3218
      start: 3193
    functionDepth: 4
    functionLinenumber: 3193
    functionLinenumberEnd: 3218
    functionName: evhttp_send_reply_start
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_write_buffer
    - evhttp_response_code_
    - evhttp_response_needs_body
    - evhttp_add_header
    - REQ_VERSION_ATLEAST
    - evhttp_find_header
    - evhttp_make_header
    linkageType: ''
    returnType: void
    signature: "void evhttp_send_reply_start(struct evhttp_request *req, int code,\n
      \   const char *reason)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_output
      Src: /src/libevent/http.c:3230,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:3232,1
    - Dst: evhttp_response_needs_body
      Src: /src/libevent/http.c:3234,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/http.c:3237,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:3238,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/http.c:3240,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:3242,1
    - Dst: evhttp_write_buffer
      Src: /src/libevent/http.c:3244,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - req
    - databuf
    - arg
    argTypes:
    - struct evhttp_request*
    - struct evbuffer*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3245
      start: 3220
    functionDepth: 2
    functionLinenumber: 3220
    functionLinenumberEnd: 3245
    functionName: evhttp_send_reply_chunk_with_cb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_write_buffer
    - bufferevent_get_output
    - evbuffer_add
    - evbuffer_add_printf
    - evbuffer_add_buffer
    - evbuffer_get_length
    - evhttp_response_needs_body
    linkageType: ''
    returnType: void
    signature: "void evhttp_send_reply_chunk_with_cb(struct evhttp_request *req, struct
      evbuffer *databuf,\n    void (*cb)(struct evhttp_connection *, void *), void
      *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_response_code_
      Src: /src/libevent/http.c:3253,1
    - Dst: evhttp_make_header
      Src: /src/libevent/http.c:3258,1
    - Dst: evhttp_write_buffer
      Src: /src/libevent/http.c:3259,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:3261,1
    - Dst: evhttp_request_free
      Src: /src/libevent/http.c:3267,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:3268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3270
      start: 3247
    functionDepth: 4
    functionLinenumber: 3247
    functionLinenumberEnd: 3270
    functionName: evhttp_start_ws_
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_write_buffer
    - evhttp_response_code_
    - evhttp_make_header
    - evhttp_connection_free
    - evhttp_request_free
    - TAILQ_REMOVE
    linkageType: ''
    returnType: struct bufferevent
    signature: 'struct bufferevent *

      evhttp_start_ws_(struct evhttp_request *req)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_send_reply_chunk_with_cb
      Src: /src/libevent/http.c:3275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - req
    - databuf
    argTypes:
    - struct evhttp_request*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3276
      start: 3272
    functionDepth: 3
    functionLinenumber: 3272
    functionLinenumberEnd: 3276
    functionName: evhttp_send_reply_chunk
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_send_reply_chunk_with_cb
    linkageType: ''
    returnType: void
    signature: void evhttp_send_reply_chunk(struct evhttp_request *req, struct evbuffer
      *databuf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_free
      Src: /src/libevent/http.c:3284,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/http.c:3288,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:3294,1
    - Dst: evhttp_write_buffer
      Src: /src/libevent/http.c:3295,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:3297,1
    - Dst: evhttp_send_done
      Src: /src/libevent/http.c:3299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3305
      start: 3277
    functionDepth: 5
    functionLinenumber: 3277
    functionLinenumberEnd: 3305
    functionName: evhttp_send_reply_end
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_write_buffer
    - bufferevent_get_output
    - evbuffer_add
    - evhttp_send_done
    - evhttp_request_free
    - evbuffer_get_length
    linkageType: ''
    returnType: void
    signature: void evhttp_send_reply_end(struct evhttp_request *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3370
      start: 3369
    functionDepth: 0
    functionLinenumber: 3369
    functionLinenumberEnd: 3370
    functionName: MEMBERSOF
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMBERSOF(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEMBERSOF
      Src: /src/libevent/http.c:3387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3395
      start: 3380
    functionDepth: 1
    functionLinenumber: 3380
    functionLinenumberEnd: 3395
    functionName: evhttp_response_phrase_internal
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - MEMBERSOF
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_response_phrase_internal(int code)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/http.c:3403,1
    - Dst: evhttp_response_phrase_internal
      Src: /src/libevent/http.c:3405,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:3406,1
    - Dst: event_warn
      Src: /src/libevent/http.c:3408,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - req
    - code
    - reason
    argTypes:
    - struct evhttp_request*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3411
      start: 3397
    functionDepth: 2
    functionLinenumber: 3397
    functionLinenumberEnd: 3411
    functionName: evhttp_response_code_
    functionSourceFile: /src/libevent/http.c
    functionUses: 4
    functionsReached:
    - event_warn
    - mm_free
    - evhttp_response_phrase_internal
    - mm_strdup
    linkageType: ''
    returnType: void
    signature: void evhttp_response_code_(struct evhttp_request *req, int code, const
      char *reason)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_response_code_
      Src: /src/libevent/http.c:3422,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/http.c:3424,1
    - Dst: evhttp_add_header
      Src: /src/libevent/http.c:3425,1
    - Dst: evhttp_add_header
      Src: /src/libevent/http.c:3426,1
    - Dst: evhttp_send
      Src: /src/libevent/http.c:3428,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - req
    - databuf
    argTypes:
    - struct evhttp_request*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3429
      start: 3413
    functionDepth: 5
    functionLinenumber: 3413
    functionLinenumberEnd: 3429
    functionName: evhttp_send_page_
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - evhttp_add_header
    - evhttp_send
    - evhttp_response_code_
    - evhttp_clear_headers
    linkageType: ''
    returnType: void
    signature: void evhttp_send_page_(struct evhttp_request *req, struct evbuffer
      *databuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3456
      start: 3454
    functionDepth: 0
    functionLinenumber: 3454
    functionLinenumberEnd: 3456
    functionName: CHAR_IS_UNRESERVED
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHAR_IS_UNRESERVED(c)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/http.c:3464,1
    - Dst: strlen
      Src: /src/libevent/http.c:3479,1
    - Dst: CHAR_IS_UNRESERVED
      Src: /src/libevent/http.c:3494,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:3495,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:3497,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/http.c:3499,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:3503,1
    - Dst: mm_malloc
      Src: /src/libevent/http.c:3504,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:3504,1
    - Dst: evbuffer_remove
      Src: /src/libevent/http.c:3507,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:3507,1
    - Dst: evbuffer_free
      Src: /src/libevent/http.c:3511,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 3
    argNames:
    - uri
    - len
    - space_as_plus
    argTypes:
    - char*
    - ev_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3513
      start: 3461
    functionDepth: 1
    functionLinenumber: 3461
    functionLinenumberEnd: 3513
    functionName: evhttp_uriencode
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    - evbuffer_free
    - mm_malloc
    - evbuffer_remove
    - evbuffer_add_printf
    - evbuffer_get_length
    - strlen
    - CHAR_IS_UNRESERVED
    - evbuffer_new
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_uriencode(const char *uri, ev_ssize_t len, int space_as_plus)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_uriencode
      Src: /src/libevent/http.c:3518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3519
      start: 3515
    functionDepth: 2
    functionLinenumber: 3515
    functionLinenumberEnd: 3519
    functionName: evhttp_encode_uri
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_uriencode
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_encode_uri(const char *str)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ISXDIGIT_
      Src: /src/libevent/http.c:3544,1
    - Dst: EVUTIL_ISXDIGIT_
      Src: /src/libevent/http.c:3544,1
    - Dst: strtol
      Src: /src/libevent/http.c:3549,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 4
    argNames:
    - uri
    - length
    - ret
    - decode_plus_ctl
    argTypes:
    - char*
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3557
      start: 3527
    functionDepth: 0
    functionLinenumber: 3527
    functionLinenumberEnd: 3557
    functionName: evhttp_decode_uri_internal
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ISXDIGIT_
    - strtol
    linkageType: ''
    returnType: int
    signature: "int evhttp_decode_uri_internal(\n\tconst char *uri, size_t length,
      char *ret, int decode_plus_ctl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/http.c:3565,1
    - Dst: strlen
      Src: /src/libevent/http.c:3565,1
    - Dst: event_warn
      Src: /src/libevent/http.c:3566,1
    - Dst: strlen
      Src: /src/libevent/http.c:3567,1
    - Dst: evhttp_decode_uri_internal
      Src: /src/libevent/http.c:3571,1
    - Dst: strlen
      Src: /src/libevent/http.c:3571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - uri
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3575
      start: 3560
    functionDepth: 1
    functionLinenumber: 3560
    functionLinenumberEnd: 3575
    functionName: evhttp_decode_uri
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - strlen
    - evhttp_decode_uri_internal
    - event_warn
    - mm_malloc
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_decode_uri(const char *uri)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/http.c:3583,1
    - Dst: strlen
      Src: /src/libevent/http.c:3583,1
    - Dst: event_warn
      Src: /src/libevent/http.c:3584,1
    - Dst: strlen
      Src: /src/libevent/http.c:3585,1
    - Dst: evhttp_decode_uri_internal
      Src: /src/libevent/http.c:3589,1
    - Dst: strlen
      Src: /src/libevent/http.c:3589,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:3593,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - uri
    - decode_plus
    - size_out
    argTypes:
    - char*
    - int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3598
      start: 3577
    functionDepth: 1
    functionLinenumber: 3577
    functionLinenumberEnd: 3598
    functionName: evhttp_uridecode
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_decode_uri_internal
    - EVUTIL_ASSERT
    - event_warn
    - mm_malloc
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_uridecode(const char *uri, int decode_plus, size_t *size_out)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_INIT
      Src: /src/libevent/http.c:3615,1
    - Dst: evhttp_uri_parse
      Src: /src/libevent/http.c:3618,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/http.c:3621,1
    - Dst: strlen
      Src: /src/libevent/http.c:3627,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:3632,1
    - Dst: event_warn
      Src: /src/libevent/http.c:3633,1
    - Dst: strsep
      Src: /src/libevent/http.c:3642,1
    - Dst: strsep
      Src: /src/libevent/http.c:3643,1
    - Dst: mm_malloc
      Src: /src/libevent/http.c:3654,1
    - Dst: strlen
      Src: /src/libevent/http.c:3654,1
    - Dst: event_warn
      Src: /src/libevent/http.c:3655,1
    - Dst: evhttp_decode_uri_internal
      Src: /src/libevent/http.c:3658,1
    - Dst: strlen
      Src: /src/libevent/http.c:3658,1
    - Dst: event_debug
      Src: /src/libevent/http.c:3660,1
    - Dst: evhttp_remove_header
      Src: /src/libevent/http.c:3662,1
    - Dst: evhttp_add_header_internal
      Src: /src/libevent/http.c:3663,1
    - Dst: mm_free
      Src: /src/libevent/http.c:3664,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/http.c:3672,1
    - Dst: mm_free
      Src: /src/libevent/http.c:3675,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/http.c:3677,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 4
    argNames:
    - str
    - headers
    - is_whole_uri
    - flags
    argTypes:
    - char*
    - struct evkeyvalq*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3679
      start: 3605
    functionDepth: 2
    functionLinenumber: 3605
    functionLinenumberEnd: 3679
    functionName: evhttp_parse_query_impl
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_decode_uri_internal
    - mm_free
    - evhttp_clear_headers
    - evhttp_add_header_internal
    - evhttp_uri_parse
    - evhttp_uri_get_query
    - event_warn
    - mm_malloc
    - mm_strdup
    - evhttp_uri_free
    - strsep
    - evhttp_remove_header
    - strlen
    - event_debug
    - TAILQ_INIT
    linkageType: ''
    returnType: int
    signature: "int evhttp_parse_query_impl(const char *str, struct evkeyvalq *headers,\n
      \   int is_whole_uri, unsigned flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_parse_query_impl
      Src: /src/libevent/http.c:3684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - uri
    - headers
    argTypes:
    - char*
    - struct evkeyvalq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3685
      start: 3681
    functionDepth: 3
    functionLinenumber: 3681
    functionLinenumberEnd: 3685
    functionName: evhttp_parse_query
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_parse_query_impl
    linkageType: ''
    returnType: int
    signature: int evhttp_parse_query(const char *uri, struct evkeyvalq *headers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_parse_query_impl
      Src: /src/libevent/http.c:3689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - uri
    - headers
    argTypes:
    - char*
    - struct evkeyvalq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3690
      start: 3686
    functionDepth: 3
    functionLinenumber: 3686
    functionLinenumberEnd: 3690
    functionName: evhttp_parse_query_str
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_parse_query_impl
    linkageType: ''
    returnType: int
    signature: int evhttp_parse_query_str(const char *uri, struct evkeyvalq *headers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_parse_query_impl
      Src: /src/libevent/http.c:3694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - uri
    - headers
    - flags
    argTypes:
    - char*
    - struct evkeyvalq*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3695
      start: 3691
    functionDepth: 3
    functionLinenumber: 3691
    functionLinenumberEnd: 3695
    functionName: evhttp_parse_query_str_flags
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_parse_query_impl
    linkageType: ''
    returnType: int
    signature: int evhttp_parse_query_str_flags(const char *uri, struct evkeyvalq
      *headers, unsigned flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/http.c:3706,1
    - Dst: strlen
      Src: /src/libevent/http.c:3707,1
    - Dst: mm_malloc
      Src: /src/libevent/http.c:3708,1
    - Dst: evhttp_decode_uri_internal
      Src: /src/libevent/http.c:3710,1
    - Dst: strcmp
      Src: /src/libevent/http.c:3714,1
    - Dst: mm_free
      Src: /src/libevent/http.c:3715,1
    - Dst: mm_free
      Src: /src/libevent/http.c:3720,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - callbacks
    - req
    argTypes:
    - struct httpcbq*
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3722
      start: 3697
    functionDepth: 1
    functionLinenumber: 3697
    functionLinenumberEnd: 3722
    functionName: evhttp_dispatch_callback
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_decode_uri_internal
    - mm_free
    - mm_malloc
    - strcmp
    - evhttp_uri_get_path
    - strlen
    linkageType: ''
    returnType: struct evhttp_cb
    signature: 'struct evhttp_cb *

      evhttp_dispatch_callback(struct httpcbq *callbacks, struct evhttp_request *req)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libevent/http.c:3714,1
    - Dst: mm_free
      Src: /src/libevent/http.c:3715,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3718
      start: 3713
    functionDepth: 1
    functionLinenumber: 3713
    functionLinenumberEnd: 3718
    functionName: TAILQ_FOREACH
    functionSourceFile: /src/libevent/http.c
    functionUses: 165
    functionsReached:
    - mm_free
    - strcmp
    linkageType: ''
    returnType: void
    signature: void TAILQ_FOREACH(cb, callbacks, next)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: prefix_suffix_match
      Src: /src/libevent/http.c:3737,1
    - Dst: EVUTIL_TOLOWER_
      Src: /src/libevent/http.c:3746,1
    - Dst: EVUTIL_TOLOWER_
      Src: /src/libevent/http.c:3746,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - pattern
    - name
    - ignorecase
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3753
      start: 3725
    functionDepth: 1
    functionLinenumber: 3725
    functionLinenumberEnd: 3753
    functionName: prefix_suffix_match
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - prefix_suffix_match
    - EVUTIL_TOLOWER_
    linkageType: ''
    returnType: int
    signature: int prefix_suffix_match(const char *pattern, const char *name, int
      ignorecase)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/http.c:3768,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/http.c:3770,1
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/http.c:3779,1
    - Dst: evhttp_find_alias
      Src: /src/libevent/http.c:3780,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - http
    - outhttp
    - hostname
    argTypes:
    - struct evhttp*
    - struct evhttp**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3785
      start: 3761
    functionDepth: 1
    functionLinenumber: 3761
    functionLinenumberEnd: 3785
    functionName: evhttp_find_alias
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - evutil_ascii_strcasecmp
    - evhttp_find_alias
    - TAILQ_FOREACH
    linkageType: ''
    returnType: int
    signature: "int evhttp_find_alias(struct evhttp *http, struct evhttp **outhttp,\n\t\t
      \ const char *hostname)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_find_alias
      Src: /src/libevent/http.c:3806,1
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/http.c:3811,1
    - Dst: prefix_suffix_match
      Src: /src/libevent/http.c:3812,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - http
    - outhttp
    - hostname
    argTypes:
    - struct evhttp*
    - struct evhttp**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3825
      start: 3798
    functionDepth: 2
    functionLinenumber: 3798
    functionLinenumberEnd: 3825
    functionName: evhttp_find_vhost
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - prefix_suffix_match
    - TAILQ_FOREACH
    - evhttp_find_alias
    linkageType: ''
    returnType: int
    signature: "int evhttp_find_vhost(struct evhttp *http, struct evhttp **outhttp,\n\t\t
      \ const char *hostname)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_disable
      Src: /src/libevent/http.c:3837,1
    - Dst: evhttp_send_error
      Src: /src/libevent/http.c:3840,1
    - Dst: event_debug
      Src: /src/libevent/http.c:3845,1
    - Dst: evhttp_send_error
      Src: /src/libevent/http.c:3847,1
    - Dst: evhttp_request_get_host
      Src: /src/libevent/http.c:3852,1
    - Dst: evhttp_find_vhost
      Src: /src/libevent/http.c:3854,1
    - Dst: evhttp_dispatch_callback
      Src: /src/libevent/http.c:3857,1
    - Dst: evhttp_send_notfound
      Src: /src/libevent/http.c:3867,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3868
      start: 3827
    functionDepth: 6
    functionLinenumber: 3827
    functionLinenumberEnd: 3868
    functionName: evhttp_handle_request
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_send_notfound
    - evhttp_find_vhost
    - evhttp_send_error
    - evhttp_request_get_host
    - evhttp_dispatch_callback
    - event_debug
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void evhttp_handle_request(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct evhttp_bound_socket*::bevcb
      Src: /src/libevent/http.c:3880,1
    - Dst: evhttp_get_request
      Src: /src/libevent/http.c:3882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - listener
    - nfd
    - peer_sa
    - peer_socklen
    - arg
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3883
      start: 3871
    functionDepth: 1
    functionLinenumber: 3871
    functionLinenumberEnd: 3883
    functionName: accept_socket_cb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_get_request
    - struct evhttp_bound_socket*::bevcb
    linkageType: ''
    returnType: void
    signature: void accept_socket_cb(struct evconnlistener *listener, evutil_socket_t
      nfd, struct sockaddr *peer_sa, int peer_socklen, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_bind_socket_with_handle
      Src: /src/libevent/http.c:3889,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - http
    - address
    - port
    argTypes:
    - struct evhttp*
    - char*
    - ev_uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3893
      start: 3885
    functionDepth: 1
    functionLinenumber: 3885
    functionLinenumberEnd: 3893
    functionName: evhttp_bind_socket
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_bind_socket_with_handle
    linkageType: ''
    returnType: int
    signature: int evhttp_bind_socket(struct evhttp *http, const char *address, ev_uint16_t
      port)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bind_socket
      Src: /src/libevent/http.c:3902,1
    - Dst: listen
      Src: /src/libevent/http.c:3905,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/http.c:3906,1
    - Dst: event_sock_warn
      Src: /src/libevent/http.c:3907,1
    - Dst: evutil_closesocket
      Src: /src/libevent/http.c:3908,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/http.c:3909,1
    - Dst: evhttp_accept_socket_with_handle
      Src: /src/libevent/http.c:3913,1
    - Dst: event_debug
      Src: /src/libevent/http.c:3916,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - http
    - address
    - port
    argTypes:
    - struct evhttp*
    - char*
    - ev_uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3922
      start: 3895
    functionDepth: 1
    functionLinenumber: 3895
    functionLinenumberEnd: 3922
    functionName: evhttp_bind_socket_with_handle
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - evhttp_accept_socket_with_handle
    - EVUTIL_SET_SOCKET_ERROR
    - evutil_closesocket
    - listen
    - EVUTIL_SOCKET_ERROR
    - bind_socket
    - event_debug
    - event_sock_warn
    linkageType: ''
    returnType: struct evhttp_bound_socket
    signature: 'struct evhttp_bound_socket *

      evhttp_bind_socket_with_handle(struct evhttp *http, const char *address, ev_uint16_t
      port)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_accept_socket_with_handle
      Src: /src/libevent/http.c:3928,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - http
    - fd
    argTypes:
    - struct evhttp*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3932
      start: 3924
    functionDepth: 1
    functionLinenumber: 3924
    functionLinenumberEnd: 3932
    functionName: evhttp_accept_socket
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_accept_socket_with_handle
    linkageType: ''
    returnType: int
    signature: int evhttp_accept_socket(struct evhttp *http, evutil_socket_t fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/http.c:3941,1
    - Dst: function
      Src: /src/libevent/http.c:3942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - http
    - function
    - argument
    argTypes:
    - struct evhttp*
    - evhttp_bound_socket_foreach_fn*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3943
      start: 3934
    functionDepth: 0
    functionLinenumber: 3934
    functionLinenumberEnd: 3943
    functionName: evhttp_foreach_bound_socket
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - function
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: "void evhttp_foreach_bound_socket(struct evhttp *http,\n                            evhttp_bound_socket_foreach_fn
      *function,\n                            void *argument)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evconnlistener_new
      Src: /src/libevent/http.c:3953,1
    - Dst: evhttp_bind_listener
      Src: /src/libevent/http.c:3960,1
    - Dst: evconnlistener_free
      Src: /src/libevent/http.c:3962,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - http
    - fd
    argTypes:
    - struct evhttp*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3966
      start: 3945
    functionDepth: 1
    functionLinenumber: 3945
    functionLinenumberEnd: 3966
    functionName: evhttp_accept_socket_with_handle
    functionSourceFile: /src/libevent/http.c
    functionUses: 2
    functionsReached:
    - evhttp_bind_listener
    - evconnlistener_new
    - evconnlistener_free
    linkageType: ''
    returnType: struct evhttp_bound_socket
    signature: 'struct evhttp_bound_socket *

      evhttp_accept_socket_with_handle(struct evhttp *http, evutil_socket_t fd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/http.c:3973,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/http.c:3980,1
    - Dst: evconnlistener_set_cb
      Src: /src/libevent/http.c:3982,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - http
    - listener
    argTypes:
    - struct evhttp*
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3984
      start: 3968
    functionDepth: 1
    functionLinenumber: 3968
    functionLinenumberEnd: 3984
    functionName: evhttp_bind_listener
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - mm_malloc
    - TAILQ_INSERT_TAIL
    - evconnlistener_set_cb
    linkageType: ''
    returnType: struct evhttp_bound_socket
    signature: 'struct evhttp_bound_socket *

      evhttp_bind_listener(struct evhttp *http, struct evconnlistener *listener)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/http.c:3989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bound
    argTypes:
    - struct evhttp_bound_socket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3990
      start: 3986
    functionDepth: 1
    functionLinenumber: 3986
    functionLinenumberEnd: 3990
    functionName: evhttp_bound_socket_get_fd
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evconnlistener_get_fd
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t evhttp_bound_socket_get_fd(struct evhttp_bound_socket
      *bound)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bound
    argTypes:
    - struct evhttp_bound_socket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3996
      start: 3992
    functionDepth: 0
    functionLinenumber: 3992
    functionLinenumberEnd: 3996
    functionName: evhttp_bound_socket_get_listener
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evconnlistener
    signature: 'struct evconnlistener *

      evhttp_bound_socket_get_listener(struct evhttp_bound_socket *bound)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bound
    - (*cb)(struct event_base *, void *)
    - cbarg
    argTypes:
    - struct evhttp_bound_socket*
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4004
      start: 3998
    functionDepth: 0
    functionLinenumber: 3998
    functionLinenumberEnd: 4004
    functionName: evhttp_bound_set_bevcb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_bound_set_bevcb(struct evhttp_bound_socket *bound,\n    struct
      bufferevent* (*cb)(struct event_base *, void *), void *cbarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:4009,1
    - Dst: evconnlistener_free
      Src: /src/libevent/http.c:4010,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - http
    - bound
    argTypes:
    - struct evhttp*
    - struct evhttp_bound_socket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4012
      start: 4006
    functionDepth: 1
    functionLinenumber: 4006
    functionLinenumberEnd: 4012
    functionName: evhttp_del_accept_socket
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evconnlistener_free
    - mm_free
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void evhttp_del_accept_socket(struct evhttp *http, struct evhttp_bound_socket
      *bound)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/http.c:4019,1
    - Dst: event_warn
      Src: /src/libevent/http.c:4020,1
    - Dst: evutil_timerclear
      Src: /src/libevent/http.c:4024,1
    - Dst: evutil_timerclear
      Src: /src/libevent/http.c:4025,1
    - Dst: evhttp_set_max_headers_size
      Src: /src/libevent/http.c:4027,1
    - Dst: evhttp_set_max_body_size
      Src: /src/libevent/http.c:4028,1
    - Dst: evhttp_set_default_content_type
      Src: /src/libevent/http.c:4029,1
    - Dst: evhttp_set_allowed_methods
      Src: /src/libevent/http.c:4030,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/http.c:4037,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/http.c:4038,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/http.c:4039,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/http.c:4040,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/http.c:4041,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/http.c:4042,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4045
      start: 4014
    functionDepth: 1
    functionLinenumber: 4014
    functionLinenumberEnd: 4045
    functionName: evhttp_new_object
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_set_allowed_methods
    - evutil_timerclear
    - mm_calloc
    - event_warn
    - evhttp_set_default_content_type
    - evhttp_set_max_body_size
    - TAILQ_INIT
    - evhttp_set_max_headers_size
    linkageType: ''
    returnType: struct evhttp
    signature: 'struct evhttp *

      evhttp_new_object(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_new_object
      Src: /src/libevent/http.c:4052,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4058
      start: 4047
    functionDepth: 2
    functionLinenumber: 4047
    functionLinenumberEnd: 4058
    functionName: evhttp_new
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_new_object
    linkageType: ''
    returnType: struct evhttp
    signature: 'struct evhttp *

      evhttp_new(struct event_base *base)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_new_object
      Src: /src/libevent/http.c:4069,1
    - Dst: evhttp_bind_socket
      Src: /src/libevent/http.c:4072,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4073,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - address
    - port
    argTypes:
    - char*
    - ev_uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4078
      start: 4064
    functionDepth: 2
    functionLinenumber: 4064
    functionLinenumberEnd: 4078
    functionName: evhttp_start
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_new_object
    - evhttp_bind_socket
    - mm_free
    linkageType: ''
    returnType: struct evhttp
    signature: 'struct evhttp *

      evhttp_start(const char *address, ev_uint16_t port)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:4091,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:4092,1
    - Dst: evconnlistener_free
      Src: /src/libevent/http.c:4094,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4096,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:4099,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:4101,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:4104,1
    - Dst: evws_connection_free
      Src: /src/libevent/http.c:4105,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:4108,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:4109,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4110,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4111,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:4114,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:4115,1
    - Dst: evhttp_free
      Src: /src/libevent/http.c:4117,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4121,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:4123,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:4124,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4125,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4126,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4129,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - http
    argTypes:
    - struct evhttp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4130
      start: 4080
    functionDepth: 4
    functionLinenumber: 4080
    functionLinenumberEnd: 4130
    functionName: evhttp_free
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - mm_free
    - evhttp_connection_free
    - evhttp_free
    - TAILQ_FIRST
    - evws_connection_free
    - evconnlistener_free
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void evhttp_free(struct evhttp* http)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/http.c:4138,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:4141,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/http.c:4145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - http
    - pattern
    - vhost
    argTypes:
    - struct evhttp*
    - char*
    - struct evhttp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4148
      start: 4132
    functionDepth: 1
    functionLinenumber: 4132
    functionLinenumberEnd: 4148
    functionName: evhttp_add_virtual_host
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - TAILQ_INSERT_TAIL
    - TAILQ_FIRST
    - mm_strdup
    linkageType: ''
    returnType: int
    signature: "int evhttp_add_virtual_host(struct evhttp* http, const char *pattern,\n
      \   struct evhttp* vhost)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:4156,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - http
    - vhost
    argTypes:
    - struct evhttp*
    - struct evhttp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4162
      start: 4150
    functionDepth: 1
    functionLinenumber: 4150
    functionLinenumberEnd: 4162
    functionName: evhttp_remove_virtual_host
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - mm_free
    - TAILQ_REMOVE
    linkageType: ''
    returnType: int
    signature: int evhttp_remove_virtual_host(struct evhttp* http, struct evhttp*
      vhost)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/http.c:4169,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:4173,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4175,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/http.c:4179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - http
    - alias
    argTypes:
    - struct evhttp*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4182
      start: 4164
    functionDepth: 1
    functionLinenumber: 4164
    functionLinenumberEnd: 4182
    functionName: evhttp_add_server_alias
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - mm_free
    - TAILQ_INSERT_TAIL
    - mm_strdup
    linkageType: ''
    returnType: int
    signature: int evhttp_add_server_alias(struct evhttp *http, const char *alias)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/http.c:4189,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/http.c:4190,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:4191,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4192,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - http
    - alias
    argTypes:
    - struct evhttp*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4199
      start: 4184
    functionDepth: 1
    functionLinenumber: 4184
    functionLinenumberEnd: 4199
    functionName: evhttp_remove_server_alias
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - TAILQ_REMOVE
    - evutil_ascii_strcasecmp
    - mm_free
    - TAILQ_FOREACH
    linkageType: ''
    returnType: int
    signature: int evhttp_remove_server_alias(struct evhttp *http, const char *alias)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_set_timeout_
      Src: /src/libevent/http.c:4204,1
    - Dst: evhttp_set_timeout_
      Src: /src/libevent/http.c:4205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - http
    - timeout
    argTypes:
    - struct evhttp*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4206
      start: 4201
    functionDepth: 2
    functionLinenumber: 4201
    functionLinenumberEnd: 4206
    functionName: evhttp_set_timeout
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_set_timeout_
    linkageType: ''
    returnType: void
    signature: void evhttp_set_timeout(struct evhttp* http, int timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_set_timeout_tv_
      Src: /src/libevent/http.c:4210,1
    - Dst: evhttp_set_timeout_tv_
      Src: /src/libevent/http.c:4211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - http
    - tv
    argTypes:
    - struct evhttp*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4212
      start: 4207
    functionDepth: 2
    functionLinenumber: 4207
    functionLinenumberEnd: 4212
    functionName: evhttp_set_timeout_tv
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_set_timeout_tv_
    linkageType: ''
    returnType: void
    signature: void evhttp_set_timeout_tv(struct evhttp* http, const struct timeval*
      tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_set_timeout_tv_
      Src: /src/libevent/http.c:4216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - http
    - tv
    argTypes:
    - struct evhttp*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4217
      start: 4213
    functionDepth: 2
    functionLinenumber: 4213
    functionLinenumberEnd: 4217
    functionName: evhttp_set_read_timeout_tv
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_set_timeout_tv_
    linkageType: ''
    returnType: void
    signature: void evhttp_set_read_timeout_tv(struct evhttp* http, const struct timeval*
      tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_set_timeout_tv_
      Src: /src/libevent/http.c:4221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - http
    - tv
    argTypes:
    - struct evhttp*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4222
      start: 4218
    functionDepth: 2
    functionLinenumber: 4218
    functionLinenumberEnd: 4222
    functionName: evhttp_set_write_timeout_tv
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evhttp_set_timeout_tv_
    linkageType: ''
    returnType: void
    signature: void evhttp_set_write_timeout_tv(struct evhttp* http, const struct
      timeval* tv)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - http
    - flags
    argTypes:
    - struct evhttp*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4236
      start: 4224
    functionDepth: 0
    functionLinenumber: 4224
    functionLinenumberEnd: 4236
    functionName: evhttp_set_flags
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evhttp_set_flags(struct evhttp *http, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - http
    - max_headers_size
    argTypes:
    - struct evhttp*
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4245
      start: 4238
    functionDepth: 0
    functionLinenumber: 4238
    functionLinenumberEnd: 4245
    functionName: evhttp_set_max_headers_size
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evhttp_set_max_headers_size(struct evhttp* http, ev_ssize_t max_headers_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - http
    - max_body_size
    argTypes:
    - struct evhttp*
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4254
      start: 4247
    functionDepth: 0
    functionLinenumber: 4247
    functionLinenumberEnd: 4254
    functionName: evhttp_set_max_body_size
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evhttp_set_max_body_size(struct evhttp* http, ev_ssize_t max_body_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - http
    - max_connections
    argTypes:
    - struct evhttp*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4263
      start: 4256
    functionDepth: 0
    functionLinenumber: 4256
    functionLinenumberEnd: 4263
    functionName: evhttp_set_max_connections
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evhttp_set_max_connections(struct evhttp* http, int max_connections)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - http
    argTypes:
    - struct evhttp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4269
      start: 4265
    functionDepth: 0
    functionLinenumber: 4265
    functionLinenumberEnd: 4269
    functionName: evhttp_get_connection_count
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evhttp_get_connection_count(struct evhttp* http)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - http
    - content_type
    argTypes:
    - struct evhttp*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4275
      start: 4271
    functionDepth: 0
    functionLinenumber: 4271
    functionLinenumberEnd: 4275
    functionName: evhttp_set_default_content_type
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_set_default_content_type(struct evhttp *http,\n\tconst
      char *content_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - http
    - methods
    argTypes:
    - struct evhttp*
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4281
      start: 4277
    functionDepth: 0
    functionLinenumber: 4277
    functionLinenumberEnd: 4281
    functionName: evhttp_set_allowed_methods
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evhttp_set_allowed_methods(struct evhttp* http, ev_uint32_t methods)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - http
    - cmp
    argTypes:
    - struct evhttp*
    - evhttp_ext_method_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4287
      start: 4283
    functionDepth: 0
    functionLinenumber: 4283
    functionLinenumberEnd: 4287
    functionName: evhttp_set_ext_method_cmp
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evhttp_set_ext_method_cmp(struct evhttp *http, evhttp_ext_method_cb
      cmp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/http.c:4295,1
    - Dst: strcmp
      Src: /src/libevent/http.c:4296,1
    - Dst: mm_calloc
      Src: /src/libevent/http.c:4300,1
    - Dst: event_warn
      Src: /src/libevent/http.c:4301,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:4305,1
    - Dst: event_warn
      Src: /src/libevent/http.c:4307,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4308,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/http.c:4314,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - http
    - uri
    - cbarg
    argTypes:
    - struct evhttp*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4317
      start: 4289
    functionDepth: 1
    functionLinenumber: 4289
    functionLinenumberEnd: 4317
    functionName: evhttp_set_cb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - mm_free
    - TAILQ_FOREACH
    - mm_calloc
    - event_warn
    - mm_strdup
    - strcmp
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: int
    signature: "int evhttp_set_cb(struct evhttp *http, const char *uri,\n    void
      (*cb)(struct evhttp_request *, void *), void *cbarg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/http.c:4324,1
    - Dst: strcmp
      Src: /src/libevent/http.c:4325,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/http.c:4331,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4332,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4333,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - http
    - uri
    argTypes:
    - struct evhttp*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4336
      start: 4319
    functionDepth: 1
    functionLinenumber: 4319
    functionLinenumberEnd: 4336
    functionName: evhttp_del_cb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - TAILQ_REMOVE
    - strcmp
    - mm_free
    - TAILQ_FOREACH
    linkageType: ''
    returnType: int
    signature: int evhttp_del_cb(struct evhttp *http, const char *uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - http
    - cbarg
    argTypes:
    - struct evhttp*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4344
      start: 4338
    functionDepth: 0
    functionLinenumber: 4338
    functionLinenumberEnd: 4344
    functionName: evhttp_set_gencb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_set_gencb(struct evhttp *http,\n    void (*cb)(struct
      evhttp_request *, void *), void *cbarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - http
    - (*cb)(struct event_base *, void *)
    - cbarg
    argTypes:
    - struct evhttp*
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4352
      start: 4346
    functionDepth: 0
    functionLinenumber: 4346
    functionLinenumberEnd: 4352
    functionName: evhttp_set_bevcb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_set_bevcb(struct evhttp *http,\n    struct bufferevent*
      (*cb)(struct event_base *, void *), void *cbarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - http
    - cbarg
    argTypes:
    - struct evhttp*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4360
      start: 4354
    functionDepth: 0
    functionLinenumber: 4354
    functionLinenumberEnd: 4360
    functionName: evhttp_set_newreqcb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_set_newreqcb(struct evhttp *http,\n    int (*cb)(struct
      evhttp_request *, void *), void *cbarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - http
    - cbarg
    argTypes:
    - struct evhttp*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4368
      start: 4361
    functionDepth: 0
    functionLinenumber: 4361
    functionLinenumberEnd: 4368
    functionName: evhttp_set_errorcb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_set_errorcb(struct evhttp *http,\n    int (*cb)(struct
      evhttp_request *, struct evbuffer *, int, const char *, void *),\n    void *cbarg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/http.c:4380,1
    - Dst: event_warn
      Src: /src/libevent/http.c:4381,1
    - Dst: mm_calloc
      Src: /src/libevent/http.c:4389,1
    - Dst: event_warn
      Src: /src/libevent/http.c:4391,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/http.c:4394,1
    - Dst: mm_calloc
      Src: /src/libevent/http.c:4396,1
    - Dst: event_warn
      Src: /src/libevent/http.c:4398,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/http.c:4401,1
    - Dst: evbuffer_new
      Src: /src/libevent/http.c:4403,1
    - Dst: event_warn
      Src: /src/libevent/http.c:4404,1
    - Dst: evbuffer_new
      Src: /src/libevent/http.c:4408,1
    - Dst: event_warn
      Src: /src/libevent/http.c:4409,1
    - Dst: evhttp_request_free
      Src: /src/libevent/http.c:4420,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4422
      start: 4374
    functionDepth: 1
    functionLinenumber: 4374
    functionLinenumberEnd: 4422
    functionName: evhttp_request_new
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - event_warn
    - TAILQ_INIT
    - evhttp_request_free
    - evbuffer_new
    linkageType: ''
    returnType: struct evhttp_request
    signature: 'struct evhttp_request *

      evhttp_request_new(void (*cb)(struct evhttp_request *, void *), void *arg)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/http.c:4433,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4435,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/http.c:4437,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4439,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4441,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/http.c:4443,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4444,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/http.c:4446,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4447,1
    - Dst: evbuffer_free
      Src: /src/libevent/http.c:4450,1
    - Dst: evbuffer_free
      Src: /src/libevent/http.c:4453,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4455,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4456
      start: 4424
    functionDepth: 2
    functionLinenumber: 4424
    functionLinenumberEnd: 4456
    functionName: evhttp_request_free
    functionSourceFile: /src/libevent/http.c
    functionUses: 6
    functionsReached:
    - evbuffer_free
    - mm_free
    - evhttp_clear_headers
    - evhttp_uri_free
    linkageType: ''
    returnType: void
    signature: void evhttp_request_free(struct evhttp_request *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4462
      start: 4458
    functionDepth: 0
    functionLinenumber: 4458
    functionLinenumberEnd: 4462
    functionName: evhttp_request_own
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evhttp_request_own(struct evhttp_request *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4468
      start: 4464
    functionDepth: 0
    functionLinenumber: 4464
    functionLinenumberEnd: 4468
    functionName: evhttp_request_is_owned
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evhttp_request_is_owned(struct evhttp_request *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4474
      start: 4470
    functionDepth: 0
    functionLinenumber: 4470
    functionLinenumberEnd: 4474
    functionName: evhttp_request_get_connection
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evhttp_connection
    signature: 'struct evhttp_connection *

      evhttp_request_get_connection(struct evhttp_request *req)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4480
      start: 4476
    functionDepth: 0
    functionLinenumber: 4476
    functionLinenumberEnd: 4480
    functionName: evhttp_connection_get_base
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      evhttp_connection_get_base(struct evhttp_connection *conn)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4487
      start: 4482
    functionDepth: 0
    functionLinenumber: 4482
    functionLinenumberEnd: 4487
    functionName: evhttp_request_set_chunked_cb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_request_set_chunked_cb(struct evhttp_request *req,\n    void
      (*cb)(struct evhttp_request *, void *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4494
      start: 4489
    functionDepth: 0
    functionLinenumber: 4489
    functionLinenumberEnd: 4494
    functionName: evhttp_request_set_header_cb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_request_set_header_cb(struct evhttp_request *req,\n    int
      (*cb)(struct evhttp_request *, void *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4501
      start: 4496
    functionDepth: 0
    functionLinenumber: 4496
    functionLinenumberEnd: 4501
    functionName: evhttp_request_set_error_cb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_request_set_error_cb(struct evhttp_request *req,\n    void
      (*cb)(enum evhttp_request_error, void *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - req
    - cb_arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4509
      start: 4503
    functionDepth: 0
    functionLinenumber: 4503
    functionLinenumberEnd: 4509
    functionName: evhttp_request_set_on_complete_cb
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evhttp_request_set_on_complete_cb(struct evhttp_request *req,\n
      \   void (*cb)(struct evhttp_request *, void *), void *cb_arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_debug
      Src: /src/libevent/http.c:4518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4520
      start: 4515
    functionDepth: 1
    functionLinenumber: 4515
    functionLinenumberEnd: 4520
    functionName: evhttp_request_get_uri
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - event_debug
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_request_get_uri(const struct evhttp_request *req)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_debug
      Src: /src/libevent/http.c:4525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4528
      start: 4522
    functionDepth: 1
    functionLinenumber: 4522
    functionLinenumberEnd: 4528
    functionName: evhttp_request_get_evhttp_uri
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - event_debug
    linkageType: ''
    returnType: struct evhttp_uri
    signature: 'struct evhttp_uri *

      evhttp_request_get_evhttp_uri(const struct evhttp_request *req)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/http.c:4539,1
    - Dst: evhttp_find_header
      Src: /src/libevent/http.c:4544,1
    - Dst: strlen
      Src: /src/libevent/http.c:4548,1
    - Dst: EVUTIL_ISDIGIT_
      Src: /src/libevent/http.c:4549,1
    - Dst: mm_malloc
      Src: /src/libevent/http.c:4553,1
    - Dst: event_warn
      Src: /src/libevent/http.c:4555,1
    - Dst: memcpy
      Src: /src/libevent/http.c:4558,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4566
      start: 4530
    functionDepth: 2
    functionLinenumber: 4530
    functionLinenumberEnd: 4566
    functionName: evhttp_request_get_host
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - evhttp_uri_get_host
    - event_warn
    - mm_malloc
    - memcpy
    - EVUTIL_ISDIGIT_
    - strlen
    - evhttp_find_header
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_request_get_host(struct evhttp_request *req)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4571
      start: 4568
    functionDepth: 0
    functionLinenumber: 4568
    functionLinenumberEnd: 4571
    functionName: evhttp_request_get_command
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum evhttp_cmd_type
    signature: enum evhttp_cmd_type evhttp_request_get_command(const struct evhttp_request
      *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4577
      start: 4573
    functionDepth: 0
    functionLinenumber: 4573
    functionLinenumberEnd: 4577
    functionName: evhttp_request_get_response_code
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evhttp_request_get_response_code(const struct evhttp_request *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4583
      start: 4579
    functionDepth: 0
    functionLinenumber: 4579
    functionLinenumberEnd: 4583
    functionName: evhttp_request_get_response_code_line
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_request_get_response_code_line(const struct evhttp_request *req)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4589
      start: 4586
    functionDepth: 0
    functionLinenumber: 4586
    functionLinenumberEnd: 4589
    functionName: evhttp_request_get_input_headers
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evkeyvalq
    signature: struct evkeyvalq *evhttp_request_get_input_headers(struct evhttp_request
      *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4595
      start: 4592
    functionDepth: 0
    functionLinenumber: 4592
    functionLinenumberEnd: 4595
    functionName: evhttp_request_get_output_headers
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evkeyvalq
    signature: struct evkeyvalq *evhttp_request_get_output_headers(struct evhttp_request
      *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4601
      start: 4598
    functionDepth: 0
    functionLinenumber: 4598
    functionLinenumberEnd: 4601
    functionName: evhttp_request_get_input_buffer
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evbuffer
    signature: struct evbuffer *evhttp_request_get_input_buffer(struct evhttp_request
      *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evhttp_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4607
      start: 4604
    functionDepth: 0
    functionLinenumber: 4604
    functionLinenumberEnd: 4607
    functionName: evhttp_request_get_output_buffer
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evbuffer
    signature: struct evbuffer *evhttp_request_get_output_buffer(struct evhttp_request
      *req)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: event_debug
      Src: /src/libevent/http.c:4634,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/http.c:4635,1
    - Dst: evhttp_connection_base_bufferevent_unix_new
      Src: /src/libevent/http.c:4642,1
    - Dst: name_from_addr
      Src: /src/libevent/http.c:4650,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4652,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4653,1
    - Dst: event_debug
      Src: /src/libevent/http.c:4657,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/http.c:4658,1
    - Dst: evhttp_connection_base_bufferevent_new
      Src: /src/libevent/http.c:4664,1
    - Dst: atoi
      Src: /src/libevent/http.c:4665,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4666,1
    - Dst: mm_free
      Src: /src/libevent/http.c:4667,1
    - Dst: bufferevent_replacefd
      Src: /src/libevent/http.c:4680,1
    - Dst: bufferevent_enable
      Src: /src/libevent/http.c:4682,1
    - Dst: bufferevent_disable
      Src: /src/libevent/http.c:4684,1
    - Dst: bufferevent_socket_set_conn_address_
      Src: /src/libevent/http.c:4686,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:4691,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 5
    argNames:
    - http
    - fd
    - sa
    - salen
    - bev
    argTypes:
    - struct evhttp*
    - evutil_socket_t
    - struct sockaddr*
    - ev_socklen_t
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4693
      start: 4615
    functionDepth: 6
    functionLinenumber: 4615
    functionLinenumberEnd: 4693
    functionName: evhttp_get_request_connection
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - mm_free
    - evhttp_connection_free
    - bufferevent_replacefd
    - evhttp_connection_base_bufferevent_new
    - bufferevent_disable
    - evhttp_connection_base_bufferevent_unix_new
    - bufferevent_enable
    - name_from_addr
    - event_debug
    - bufferevent_socket_set_conn_address_
    - EV_SOCK_ARG
    - atoi
    linkageType: ''
    returnType: struct evhttp_connection
    signature: "struct evhttp_connection *\nevhttp_get_request_connection(\n\tstruct
      evhttp* http,\n\tevutil_socket_t fd, struct sockaddr *sa, ev_socklen_t salen,\n\tstruct
      bufferevent* bev)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_new
      Src: /src/libevent/http.c:4700,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:4704,1
    - Dst: event_warn
      Src: /src/libevent/http.c:4705,1
    - Dst: evhttp_request_free
      Src: /src/libevent/http.c:4706,1
    - Dst: struct evhttp*::newreqcb
      Src: /src/libevent/http.c:4723,1
    - Dst: evhttp_request_free
      Src: /src/libevent/http.c:4724,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/http.c:4728,1
    - Dst: evhttp_start_read_
      Src: /src/libevent/http.c:4730,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - evcon
    argTypes:
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4733
      start: 4695
    functionDepth: 3
    functionLinenumber: 4695
    functionLinenumberEnd: 4733
    functionName: evhttp_associate_new_request_with_connection
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - struct evhttp*::newreqcb
    - event_warn
    - mm_strdup
    - evhttp_request_new
    - evhttp_start_read_
    - evhttp_request_free
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: int
    signature: int evhttp_associate_new_request_with_connection(struct evhttp_connection
      *evcon)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_get_request_connection
      Src: /src/libevent/http.c:4742,1
    - Dst: event_sock_warn
      Src: /src/libevent/http.c:4744,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/http.c:4745,1
    - Dst: evutil_closesocket
      Src: /src/libevent/http.c:4746,1
    - Dst: evutil_timerisset
      Src: /src/libevent/http.c:4751,1
    - Dst: evhttp_connection_set_read_timeout_tv
      Src: /src/libevent/http.c:4752,1
    - Dst: evutil_timerisset
      Src: /src/libevent/http.c:4753,1
    - Dst: evhttp_connection_set_write_timeout_tv
      Src: /src/libevent/http.c:4754,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/http.c:4762,1
    - Dst: evhttp_request_new
      Src: /src/libevent/http.c:4769,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:4770,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/http.c:4779,1
    - Dst: bufferevent_enable
      Src: /src/libevent/http.c:4783,1
    - Dst: evhttp_send_error
      Src: /src/libevent/http.c:4784,1
    - Dst: evhttp_associate_new_request_with_connection
      Src: /src/libevent/http.c:4786,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/http.c:4787,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 5
    argNames:
    - http
    - fd
    - sa
    - salen
    - bev
    argTypes:
    - struct evhttp*
    - evutil_socket_t
    - struct sockaddr*
    - ev_socklen_t
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4788
      start: 4735
    functionDepth: 7
    functionLinenumber: 4735
    functionLinenumberEnd: 4788
    functionName: evhttp_get_request
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - evhttp_associate_new_request_with_connection
    - evutil_timerisset
    - evutil_closesocket
    - evhttp_connection_free
    - evhttp_request_new
    - evhttp_send_error
    - evhttp_get_request_connection
    - evhttp_connection_set_write_timeout_tv
    - bufferevent_enable
    - EV_SOCK_ARG
    - evhttp_connection_set_read_timeout_tv
    - event_sock_warn
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: void
    signature: "void evhttp_get_request(struct evhttp *http, evutil_socket_t fd,\n
      \   struct sockaddr *sa, ev_socklen_t salen,\n    struct bufferevent *bev)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getnameinfo
      Src: /src/libevent/http.c:4805,1
    - Dst: event_err
      Src: /src/libevent/http.c:4813,1
    - Dst: event_errx
      Src: /src/libevent/http.c:4816,1
    - Dst: gai_strerror
      Src: /src/libevent/http.c:4816,1
    - Dst: fake_getnameinfo
      Src: /src/libevent/http.c:4820,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:4827,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:4828,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - sa
    - salen
    - phost
    - pport
    argTypes:
    - struct sockaddr*
    - ev_socklen_t
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4829
      start: 4796
    functionDepth: 2
    functionLinenumber: 4796
    functionLinenumberEnd: 4829
    functionName: name_from_addr
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - gai_strerror
    - event_errx
    - fake_getnameinfo
    - mm_strdup
    - event_err
    - getnameinfo
    linkageType: ''
    returnType: void
    signature: "void name_from_addr(struct sockaddr *sa, ev_socklen_t salen,\n    char
      **phost, char **pport)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evutil_socket_
      Src: /src/libevent/http.c:4841,1
    - Dst: event_sock_warn
      Src: /src/libevent/http.c:4844,1
    - Dst: evutil_set_tcp_keepalive
      Src: /src/libevent/http.c:4849,1
    - Dst: evutil_make_listen_socket_reuseable
      Src: /src/libevent/http.c:4852,1
    - Dst: bind
      Src: /src/libevent/http.c:4857,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/http.c:4865,1
    - Dst: evutil_closesocket
      Src: /src/libevent/http.c:4866,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/http.c:4867,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - ai
    - reuse
    argTypes:
    - struct evutil_addrinfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4869
      start: 4832
    functionDepth: 1
    functionLinenumber: 4832
    functionLinenumberEnd: 4869
    functionName: create_bind_socket_nonblock
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evutil_set_tcp_keepalive
    - EVUTIL_SET_SOCKET_ERROR
    - evutil_socket_
    - evutil_closesocket
    - EVUTIL_SOCKET_ERROR
    - bind
    - event_sock_warn
    - evutil_make_listen_socket_reuseable
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t create_bind_socket_nonblock(struct evutil_addrinfo
      *ai, int reuse)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/http.c:4880,1
    - Dst: evutil_snprintf
      Src: /src/libevent/http.c:4886,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/http.c:4887,1
    - Dst: event_warn
      Src: /src/libevent/http.c:4890,1
    - Dst: event_warnx
      Src: /src/libevent/http.c:4892,1
    - Dst: evutil_gai_strerror
      Src: /src/libevent/http.c:4893,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - address
    - port
    argTypes:
    - char*
    - ev_uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4898
      start: 4871
    functionDepth: 1
    functionLinenumber: 4871
    functionLinenumberEnd: 4898
    functionName: make_addrinfo
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evutil_getaddrinfo
    - event_warn
    - memset
    - evutil_gai_strerror
    - evutil_snprintf
    - event_warnx
    linkageType: ''
    returnType: struct evutil_addrinfo
    signature: 'struct evutil_addrinfo *

      make_addrinfo(const char *address, ev_uint16_t port)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_bind_socket_nonblock
      Src: /src/libevent/http.c:4908,1
    - Dst: make_addrinfo
      Src: /src/libevent/http.c:4910,1
    - Dst: create_bind_socket_nonblock
      Src: /src/libevent/http.c:4915,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/http.c:4917,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - address
    - port
    - reuse
    argTypes:
    - char*
    - ev_uint16_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4920
      start: 4900
    functionDepth: 2
    functionLinenumber: 4900
    functionLinenumberEnd: 4920
    functionName: bind_socket
    functionSourceFile: /src/libevent/http.c
    functionUses: 3
    functionsReached:
    - evutil_freeaddrinfo
    - make_addrinfo
    - create_bind_socket_nonblock
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t bind_socket(const char *address, ev_uint16_t port,
      int reuse)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/http.c:4939,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4943
      start: 4936
    functionDepth: 1
    functionLinenumber: 4936
    functionLinenumberEnd: 4943
    functionName: evhttp_uri_new
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    linkageType: ''
    returnType: struct evhttp_uri
    signature: 'struct evhttp_uri *

      evhttp_uri_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - uri
    - flags
    argTypes:
    - struct evhttp_uri*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4949
      start: 4945
    functionDepth: 0
    functionLinenumber: 4945
    functionLinenumberEnd: 4949
    functionName: evhttp_uri_set_flags
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evhttp_uri_set_flags(struct evhttp_uri *uri, unsigned flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:4958,1
    - Dst: EVUTIL_ISALPHA_
      Src: /src/libevent/http.c:4961,1
    - Dst: EVUTIL_ISALNUM_
      Src: /src/libevent/http.c:4964,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - s
    - eos
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4969
      start: 4954
    functionDepth: 1
    functionLinenumber: 4954
    functionLinenumberEnd: 4969
    functionName: scheme_ok
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - EVUTIL_ISALNUM_
    - EVUTIL_ISALPHA_
    linkageType: ''
    returnType: int
    signature: int scheme_ok(const char *s, const char *eos)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHAR_IS_UNRESERVED
      Src: /src/libevent/http.c:4978,1
    - Dst: strchr
      Src: /src/libevent/http.c:4979,1
    - Dst: EVUTIL_ISXDIGIT_
      Src: /src/libevent/http.c:4983,1
    - Dst: EVUTIL_ISXDIGIT_
      Src: /src/libevent/http.c:4984,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 2
    argNames:
    - s
    - eos
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4990
      start: 4974
    functionDepth: 1
    functionLinenumber: 4974
    functionLinenumberEnd: 4990
    functionName: userinfo_ok
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ISXDIGIT_
    - CHAR_IS_UNRESERVED
    - strchr
    linkageType: ''
    returnType: int
    signature: int userinfo_ok(const char *s, const char *eos)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHAR_IS_UNRESERVED
      Src: /src/libevent/http.c:4996,1
    - Dst: strchr
      Src: /src/libevent/http.c:4997,1
    - Dst: EVUTIL_ISXDIGIT_
      Src: /src/libevent/http.c:5000,1
    - Dst: EVUTIL_ISXDIGIT_
      Src: /src/libevent/http.c:5001,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - s
    - eos
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5007
      start: 4992
    functionDepth: 1
    functionLinenumber: 4992
    functionLinenumberEnd: 5007
    functionName: regname_ok
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ISXDIGIT_
    - CHAR_IS_UNRESERVED
    - strchr
    linkageType: ''
    returnType: int
    signature: int regname_ok(const char *s, const char *eos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ISDIGIT_
      Src: /src/libevent/http.c:5014,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - s
    - eos
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5024
      start: 5009
    functionDepth: 0
    functionLinenumber: 5009
    functionLinenumberEnd: 5024
    functionName: parse_port
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ISDIGIT_
    linkageType: ''
    returnType: int
    signature: int parse_port(const char *s, const char *eos)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ISXDIGIT_
      Src: /src/libevent/http.c:5038,1
    - Dst: EVUTIL_ISXDIGIT_
      Src: /src/libevent/http.c:5041,1
    - Dst: CHAR_IS_UNRESERVED
      Src: /src/libevent/http.c:5050,1
    - Dst: strchr
      Src: /src/libevent/http.c:5051,1
    - Dst: memcpy
      Src: /src/libevent/http.c:5065,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/http.c:5067,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 2
    argNames:
    - s
    - eos
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5069
      start: 5027
    functionDepth: 1
    functionLinenumber: 5027
    functionLinenumberEnd: 5069
    functionName: bracket_addr_ok
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - strchr
    - evutil_inet_pton
    - memcpy
    - EVUTIL_ISXDIGIT_
    - CHAR_IS_UNRESERVED
    linkageType: ''
    returnType: int
    signature: int bracket_addr_ok(const char *s, const char *eos)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:5077,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:5079,1
    - Dst: event_warn
      Src: /src/libevent/http.c:5081,1
    - Dst: strchr
      Src: /src/libevent/http.c:5089,1
    - Dst: userinfo_ok
      Src: /src/libevent/http.c:5091,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:5094,1
    - Dst: event_warn
      Src: /src/libevent/http.c:5096,1
    - Dst: strncmp
      Src: /src/libevent/http.c:5104,1
    - Dst: strchr
      Src: /src/libevent/http.c:5105,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:5108,1
    - Dst: EVUTIL_ISDIGIT_
      Src: /src/libevent/http.c:5117,1
    - Dst: parse_port
      Src: /src/libevent/http.c:5123,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:5129,1
    - Dst: bracket_addr_ok
      Src: /src/libevent/http.c:5133,1
    - Dst: regname_ok
      Src: /src/libevent/http.c:5139,1
    - Dst: mm_malloc
      Src: /src/libevent/http.c:5143,1
    - Dst: event_warn
      Src: /src/libevent/http.c:5145,1
    - Dst: memcpy
      Src: /src/libevent/http.c:5149,1
    - Dst: memcpy
      Src: /src/libevent/http.c:5152,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 65
    argCount: 4
    argNames:
    - uri
    - s
    - eos
    - flags
    argTypes:
    - struct evhttp_uri*
    - char*
    - char*
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5157
      start: 5071
    functionDepth: 2
    functionLinenumber: 5071
    functionLinenumberEnd: 5157
    functionName: parse_authority
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - userinfo_ok
    - EVUTIL_ASSERT
    - strncmp
    - event_warn
    - mm_malloc
    - mm_strdup
    - strchr
    - parse_port
    - bracket_addr_ok
    - memcpy
    - regname_ok
    - EVUTIL_ISDIGIT_
    linkageType: ''
    returnType: int
    signature: int parse_authority(struct evhttp_uri *uri, char *s, char *eos, unsigned
      *flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - cp
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5168
      start: 5159
    functionDepth: 0
    functionLinenumber: 5159
    functionLinenumberEnd: 5168
    functionName: end_of_authority
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      end_of_authority(char *cp)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/http.c:5199,1
    - Dst: CHAR_IS_UNRESERVED
      Src: /src/libevent/http.c:5206,1
    - Dst: strchr
      Src: /src/libevent/http.c:5207,1
    - Dst: EVUTIL_ISXDIGIT_
      Src: /src/libevent/http.c:5210,1
    - Dst: EVUTIL_ISXDIGIT_
      Src: /src/libevent/http.c:5211,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 28
    argCount: 3
    argNames:
    - cp
    - part
    - flags
    argTypes:
    - char*
    - enum uri_part
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5219
      start: 5180
    functionDepth: 1
    functionLinenumber: 5180
    functionLinenumberEnd: 5219
    functionName: end_of_path
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - strlen
    - EVUTIL_ISXDIGIT_
    - CHAR_IS_UNRESERVED
    - strchr
    linkageType: ''
    returnType: char
    signature: 'char *

      end_of_path(char *cp, enum uri_part part, unsigned flags)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - cp
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5232
      start: 5221
    functionDepth: 0
    functionLinenumber: 5221
    functionLinenumberEnd: 5232
    functionName: path_matches_noscheme
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int path_matches_noscheme(const char *cp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_uri_parse_with_flags
      Src: /src/libevent/http.c:5237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - source_uri
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5238
      start: 5234
    functionDepth: 1
    functionLinenumber: 5234
    functionLinenumberEnd: 5238
    functionName: evhttp_uri_parse
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - evhttp_uri_parse_with_flags
    linkageType: ''
    returnType: struct evhttp_uri
    signature: 'struct evhttp_uri *

      evhttp_uri_parse(const char *source_uri)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/http.c:5247,1
    - Dst: event_warn
      Src: /src/libevent/http.c:5249,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:5255,1
    - Dst: event_warn
      Src: /src/libevent/http.c:5257,1
    - Dst: strchr
      Src: /src/libevent/http.c:5273,1
    - Dst: scheme_ok
      Src: /src/libevent/http.c:5274,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:5276,1
    - Dst: event_warn
      Src: /src/libevent/http.c:5278,1
    - Dst: end_of_authority
      Src: /src/libevent/http.c:5289,1
    - Dst: parse_authority
      Src: /src/libevent/http.c:5290,1
    - Dst: end_of_path
      Src: /src/libevent/http.c:5299,1
    - Dst: end_of_path
      Src: /src/libevent/http.c:5306,1
    - Dst: end_of_path
      Src: /src/libevent/http.c:5313,1
    - Dst: path_matches_noscheme
      Src: /src/libevent/http.c:5332,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/http.c:5335,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:5336,1
    - Dst: event_warn
      Src: /src/libevent/http.c:5338,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:5343,1
    - Dst: event_warn
      Src: /src/libevent/http.c:5345,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:5350,1
    - Dst: event_warn
      Src: /src/libevent/http.c:5352,1
    - Dst: mm_free
      Src: /src/libevent/http.c:5357,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/http.c:5362,1
    - Dst: mm_free
      Src: /src/libevent/http.c:5364,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 96
    argCount: 2
    argNames:
    - source_uri
    - flags
    argTypes:
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5366
      start: 5240
    functionDepth: 3
    functionLinenumber: 5240
    functionLinenumberEnd: 5366
    functionName: evhttp_uri_parse_with_flags
    functionSourceFile: /src/libevent/http.c
    functionUses: 2
    functionsReached:
    - end_of_authority
    - mm_free
    - parse_authority
    - path_matches_noscheme
    - EVUTIL_ASSERT
    - scheme_ok
    - mm_calloc
    - event_warn
    - mm_strdup
    - strchr
    - evhttp_uri_free
    - end_of_path
    linkageType: ''
    returnType: struct evhttp_uri
    signature: 'struct evhttp_uri *

      evhttp_uri_parse_with_flags(const char *source_uri, unsigned flags)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/http.c:5371,1
    - Dst: event_warn
      Src: /src/libevent/http.c:5375,1
    - Dst: end_of_authority
      Src: /src/libevent/http.c:5381,1
    - Dst: parse_authority
      Src: /src/libevent/http.c:5382,1
    - Dst: mm_strdup
      Src: /src/libevent/http.c:5385,1
    - Dst: event_warn
      Src: /src/libevent/http.c:5387,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/http.c:5394,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - source_uri
    - flags
    argTypes:
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5396
      start: 5368
    functionDepth: 3
    functionLinenumber: 5368
    functionLinenumberEnd: 5396
    functionName: evhttp_uri_parse_authority
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached:
    - end_of_authority
    - parse_authority
    - mm_calloc
    - event_warn
    - mm_strdup
    - evhttp_uri_free
    linkageType: ''
    returnType: struct evhttp_uri
    signature: 'struct evhttp_uri *

      evhttp_uri_parse_authority(char *source_uri, unsigned flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: URI_FREE_STR_
      Src: /src/libevent/http.c:5406,1
    - Dst: URI_FREE_STR_
      Src: /src/libevent/http.c:5407,1
    - Dst: URI_FREE_STR_
      Src: /src/libevent/http.c:5408,1
    - Dst: URI_FREE_STR_
      Src: /src/libevent/http.c:5410,1
    - Dst: URI_FREE_STR_
      Src: /src/libevent/http.c:5412,1
    - Dst: URI_FREE_STR_
      Src: /src/libevent/http.c:5413,1
    - Dst: URI_FREE_STR_
      Src: /src/libevent/http.c:5414,1
    - Dst: mm_free
      Src: /src/libevent/http.c:5416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - uri
    argTypes:
    - struct evhttp_uri*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5418
      start: 5398
    functionDepth: 1
    functionLinenumber: 5398
    functionLinenumberEnd: 5418
    functionName: evhttp_uri_free
    functionSourceFile: /src/libevent/http.c
    functionUses: 5
    functionsReached:
    - mm_free
    - URI_FREE_STR_
    linkageType: ''
    returnType: void
    signature: void evhttp_uri_free(struct evhttp_uri *uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5405
      start: 5401
    functionDepth: 0
    functionLinenumber: 5401
    functionLinenumberEnd: 5405
    functionName: URI_FREE_STR_
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: URI_FREE_STR_(f)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/http.c:5432,1
    - Dst: URI_ADD_
      Src: /src/libevent/http.c:5437,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:5438,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:5442,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/http.c:5444,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/http.c:5445,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:5450,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/http.c:5452,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:5454,1
    - Dst: URI_ADD_
      Src: /src/libevent/http.c:5455,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:5456,1
    - Dst: URI_ADD_
      Src: /src/libevent/http.c:5458,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/http.c:5461,1
    - Dst: URI_ADD_
      Src: /src/libevent/http.c:5468,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:5471,1
    - Dst: URI_ADD_
      Src: /src/libevent/http.c:5472,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:5476,1
    - Dst: URI_ADD_
      Src: /src/libevent/http.c:5477,1
    - Dst: evbuffer_add
      Src: /src/libevent/http.c:5480,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/http.c:5482,1
    - Dst: evbuffer_free
      Src: /src/libevent/http.c:5486,1
    - Dst: evbuffer_remove
      Src: /src/libevent/http.c:5489,1
    - Dst: evbuffer_free
      Src: /src/libevent/http.c:5493,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 3
    argNames:
    - uri
    - buf
    - limit
    argTypes:
    - struct evhttp_uri*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5497
      start: 5420
    functionDepth: 1
    functionLinenumber: 5420
    functionLinenumberEnd: 5497
    functionName: evhttp_uri_join
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    - evbuffer_free
    - evbuffer_remove
    - evbuffer_add_printf
    - URI_ADD_
    - evbuffer_get_length
    - evbuffer_new
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_uri_join(const struct evhttp_uri *uri, char *buf, size_t limit)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5428
      start: 5427
    functionDepth: 0
    functionLinenumber: 5427
    functionLinenumberEnd: 5428
    functionName: URI_ADD_
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: URI_ADD_(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uri
    argTypes:
    - struct evhttp_uri*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5503
      start: 5499
    functionDepth: 0
    functionLinenumber: 5499
    functionLinenumberEnd: 5503
    functionName: evhttp_uri_get_scheme
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_uri_get_scheme(const struct evhttp_uri *uri)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uri
    argTypes:
    - struct evhttp_uri*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5508
      start: 5504
    functionDepth: 0
    functionLinenumber: 5504
    functionLinenumberEnd: 5508
    functionName: evhttp_uri_get_userinfo
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_uri_get_userinfo(const struct evhttp_uri *uri)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uri
    argTypes:
    - struct evhttp_uri*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5513
      start: 5509
    functionDepth: 0
    functionLinenumber: 5509
    functionLinenumberEnd: 5513
    functionName: evhttp_uri_get_host
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_uri_get_host(const struct evhttp_uri *uri)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uri
    argTypes:
    - struct evhttp_uri*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5519
      start: 5515
    functionDepth: 0
    functionLinenumber: 5515
    functionLinenumberEnd: 5519
    functionName: evhttp_uri_get_unixsocket
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_uri_get_unixsocket(const struct evhttp_uri *uri)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uri
    argTypes:
    - struct evhttp_uri*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5525
      start: 5521
    functionDepth: 0
    functionLinenumber: 5521
    functionLinenumberEnd: 5525
    functionName: evhttp_uri_get_port
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evhttp_uri_get_port(const struct evhttp_uri *uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uri
    argTypes:
    - struct evhttp_uri*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5530
      start: 5526
    functionDepth: 0
    functionLinenumber: 5526
    functionLinenumberEnd: 5530
    functionName: evhttp_uri_get_path
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_uri_get_path(const struct evhttp_uri *uri)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uri
    argTypes:
    - struct evhttp_uri*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5535
      start: 5531
    functionDepth: 0
    functionLinenumber: 5531
    functionLinenumberEnd: 5535
    functionName: evhttp_uri_get_query
    functionSourceFile: /src/libevent/http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_uri_get_query(const struct evhttp_uri *uri)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uri
    argTypes:
    - struct evhttp_uri*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5540
      start: 5536
    functionDepth: 0
    functionLinenumber: 5536
    functionLinenumberEnd: 5540
    functionName: evhttp_uri_get_fragment
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      evhttp_uri_get_fragment(const struct evhttp_uri *uri)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5554
      start: 5542
    functionDepth: 0
    functionLinenumber: 5542
    functionLinenumberEnd: 5554
    functionName: URI_SET_STR_
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: URI_SET_STR_(f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: scheme_ok
      Src: /src/libevent/http.c:5558,1
    - Dst: strlen
      Src: /src/libevent/http.c:5558,1
    - Dst: URI_SET_STR_
      Src: /src/libevent/http.c:5561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - uri
    - scheme
    argTypes:
    - struct evhttp_uri*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5563
      start: 5555
    functionDepth: 2
    functionLinenumber: 5555
    functionLinenumberEnd: 5563
    functionName: evhttp_uri_set_scheme
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - strlen
    - scheme_ok
    - URI_SET_STR_
    linkageType: ''
    returnType: int
    signature: int evhttp_uri_set_scheme(struct evhttp_uri *uri, const char *scheme)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: userinfo_ok
      Src: /src/libevent/http.c:5567,1
    - Dst: strlen
      Src: /src/libevent/http.c:5567,1
    - Dst: URI_SET_STR_
      Src: /src/libevent/http.c:5569,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - uri
    - userinfo
    argTypes:
    - struct evhttp_uri*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5571
      start: 5564
    functionDepth: 2
    functionLinenumber: 5564
    functionLinenumberEnd: 5571
    functionName: evhttp_uri_set_userinfo
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - strlen
    - URI_SET_STR_
    - userinfo_ok
    linkageType: ''
    returnType: int
    signature: int evhttp_uri_set_userinfo(struct evhttp_uri *uri, const char *userinfo)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/http.c:5578,1
    - Dst: bracket_addr_ok
      Src: /src/libevent/http.c:5581,1
    - Dst: regname_ok
      Src: /src/libevent/http.c:5584,1
    - Dst: mm_realloc
      Src: /src/libevent/http.c:5593,1
    - Dst: free
      Src: /src/libevent/http.c:5595,1
    - Dst: memcpy
      Src: /src/libevent/http.c:5598,1
    - Dst: URI_SET_STR_
      Src: /src/libevent/http.c:5604,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - uri
    - host
    argTypes:
    - struct evhttp_uri*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5609
      start: 5572
    functionDepth: 2
    functionLinenumber: 5572
    functionLinenumberEnd: 5609
    functionName: evhttp_uri_set_host
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - URI_SET_STR_
    - mm_realloc
    - bracket_addr_ok
    - free
    - memcpy
    - regname_ok
    - strlen
    linkageType: ''
    returnType: int
    signature: int evhttp_uri_set_host(struct evhttp_uri *uri, const char *host)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: URI_SET_STR_
      Src: /src/libevent/http.c:5614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - uri
    - unixsocket
    argTypes:
    - struct evhttp_uri*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5616
      start: 5611
    functionDepth: 1
    functionLinenumber: 5611
    functionLinenumberEnd: 5616
    functionName: evhttp_uri_set_unixsocket
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - URI_SET_STR_
    linkageType: ''
    returnType: int
    signature: int evhttp_uri_set_unixsocket(struct evhttp_uri *uri, const char *unixsocket)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - uri
    - port
    argTypes:
    - struct evhttp_uri*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5625
      start: 5618
    functionDepth: 0
    functionLinenumber: 5618
    functionLinenumberEnd: 5625
    functionName: evhttp_uri_set_port
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evhttp_uri_set_port(struct evhttp_uri *uri, int port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - cp
    - ','
    - p
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5628
      start: 5626
    functionDepth: 0
    functionLinenumber: 5626
    functionLinenumberEnd: 5628
    functionName: end_of_cpath
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: end_of_cpath(cp,p,f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end_of_cpath
      Src: /src/libevent/http.c:5632,1
    - Dst: strlen
      Src: /src/libevent/http.c:5632,1
    - Dst: URI_SET_STR_
      Src: /src/libevent/http.c:5635,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - uri
    - path
    argTypes:
    - struct evhttp_uri*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5637
      start: 5629
    functionDepth: 1
    functionLinenumber: 5629
    functionLinenumberEnd: 5637
    functionName: evhttp_uri_set_path
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - strlen
    - URI_SET_STR_
    - end_of_cpath
    linkageType: ''
    returnType: int
    signature: int evhttp_uri_set_path(struct evhttp_uri *uri, const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end_of_cpath
      Src: /src/libevent/http.c:5641,1
    - Dst: strlen
      Src: /src/libevent/http.c:5641,1
    - Dst: URI_SET_STR_
      Src: /src/libevent/http.c:5643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - uri
    - query
    argTypes:
    - struct evhttp_uri*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5645
      start: 5638
    functionDepth: 1
    functionLinenumber: 5638
    functionLinenumberEnd: 5645
    functionName: evhttp_uri_set_query
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - strlen
    - URI_SET_STR_
    - end_of_cpath
    linkageType: ''
    returnType: int
    signature: int evhttp_uri_set_query(struct evhttp_uri *uri, const char *query)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end_of_cpath
      Src: /src/libevent/http.c:5649,1
    - Dst: strlen
      Src: /src/libevent/http.c:5649,1
    - Dst: URI_SET_STR_
      Src: /src/libevent/http.c:5651,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - uri
    - fragment
    argTypes:
    - struct evhttp_uri*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5653
      start: 5646
    functionDepth: 1
    functionLinenumber: 5646
    functionLinenumberEnd: 5653
    functionName: evhttp_uri_set_fragment
    functionSourceFile: /src/libevent/http.c
    functionUses: 0
    functionsReached:
    - strlen
    - URI_SET_STR_
    - end_of_cpath
    linkageType: ''
    returnType: int
    signature: int evhttp_uri_set_fragment(struct evhttp_uri *uri, const char *fragment)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/libevent/evutil.c:148,1
    - Dst: open
      Src: /src/libevent/evutil.c:153,1
    - Dst: fcntl
      Src: /src/libevent/evutil.c:158,1
    - Dst: close
      Src: /src/libevent/evutil.c:159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - pathname
    - flags
    - mode
    argTypes:
    - char*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 165
    functionName: evutil_open_closeonexec_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - fcntl
    - close
    - open
    linkageType: ''
    returnType: int
    signature: int evutil_open_closeonexec_(const char *pathname, int flags, unsigned
      mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fstat
      Src: /src/libevent/evutil.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: evutil_fd_filesize
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - fstat
    linkageType: ''
    returnType: ev_off_t
    signature: ev_off_t evutil_fd_filesize(evutil_socket_t fd)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evutil.c:196,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evutil.c:197,1
    - Dst: evutil_open_closeonexec_
      Src: /src/libevent/evutil.c:206,1
    - Dst: evutil_fd_filesize
      Src: /src/libevent/evutil.c:209,1
    - Dst: close
      Src: /src/libevent/evutil.c:211,1
    - Dst: mm_malloc
      Src: /src/libevent/evutil.c:214,1
    - Dst: close
      Src: /src/libevent/evutil.c:216,1
    - Dst: read
      Src: /src/libevent/evutil.c:225,1
    - Dst: N_TO_READ
      Src: /src/libevent/evutil.c:225,1
    - Dst: close
      Src: /src/libevent/evutil.c:230,1
    - Dst: mm_free
      Src: /src/libevent/evutil.c:232,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 4
    argNames:
    - filename
    - content_out
    - len_out
    - is_binary
    argTypes:
    - char*
    - char**
    - size_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 240
    functionName: evutil_read_file_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - close
    - mm_free
    - evutil_fd_filesize
    - evutil_open_closeonexec_
    - EVUTIL_ASSERT
    - mm_malloc
    - read
    - N_TO_READ
    linkageType: ''
    returnType: int
    signature: "int evutil_read_file_(const char *filename, char **content_out, size_t
      *len_out,\n    int is_binary)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 222
    functionName: N_TO_READ
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: N_TO_READ(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 224
    functionName: N_TO_READ
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: N_TO_READ(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_secure_rng_get_bytes
      Src: /src/libevent/evutil.c:255,1
    - Dst: GetTempPathW
      Src: /src/libevent/evutil.c:261,1
    - Dst: GetLongPathNameW
      Src: /src/libevent/evutil.c:262,1
    - Dst: GetTempFileNameW
      Src: /src/libevent/evutil.c:263,1
    - Dst: event_warnx
      Src: /src/libevent/evutil.c:264,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/evutil.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - tmpfile
    argTypes:
    - WCHAR[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 268
    functionName: create_tmpfile
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_secure_rng_get_bytes
    - GetTempFileNameW
    - GetTempPathW
    - EVUTIL_SOCKET_ERROR
    - GetLongPathNameW
    - event_warnx
    linkageType: ''
    returnType: int
    signature: int create_tmpfile(WCHAR tmpfile[MAX_PATH])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/libevent/evutil.c:282,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 290
    functionName: evutil_check_working_afunix_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - socket
    - evutil_closesocket
    linkageType: ''
    returnType: int
    signature: int evutil_check_working_afunix_()
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/evutil.c:312,1
    - Dst: ERR
      Src: /src/libevent/evutil.c:312,1
    - Dst: socket
      Src: /src/libevent/evutil.c:316,1
    - Dst: memset
      Src: /src/libevent/evutil.c:319,1
    - Dst: create_tmpfile
      Src: /src/libevent/evutil.c:321,1
    - Dst: DeleteFileW
      Src: /src/libevent/evutil.c:324,1
    - Dst: WideCharToMultiByte
      Src: /src/libevent/evutil.c:327,1
    - Dst: strlcpy
      Src: /src/libevent/evutil.c:331,1
    - Dst: event_warnx
      Src: /src/libevent/evutil.c:333,1
    - Dst: bind
      Src: /src/libevent/evutil.c:337,1
    - Dst: listen
      Src: /src/libevent/evutil.c:340,1
    - Dst: socket
      Src: /src/libevent/evutil.c:343,1
    - Dst: memset
      Src: /src/libevent/evutil.c:347,1
    - Dst: getsockname
      Src: /src/libevent/evutil.c:351,1
    - Dst: connect
      Src: /src/libevent/evutil.c:354,1
    - Dst: accept
      Src: /src/libevent/evutil.c:359,1
    - Dst: getsockname
      Src: /src/libevent/evutil.c:366,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/evutil.c:371,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:374,1
    - Dst: ERR
      Src: /src/libevent/evutil.c:381,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/evutil.c:384,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:386,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:388,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:390,1
    - Dst: DeleteFileW
      Src: /src/libevent/evutil.c:392,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/evutil.c:394,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 74
    argCount: 4
    argNames:
    - family
    - type
    - protocol
    - fd
    argTypes:
    - int
    - int
    - int
    - evutil_socket_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 397
    functionName: evutil_win_socketpair_afunix
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_ascii_strcasecmp
    - EVUTIL_SET_SOCKET_ERROR
    - getsockname
    - connect
    - create_tmpfile
    - evutil_closesocket
    - accept
    - listen
    - strlcpy
    - DeleteFileW
    - memset
    - socket
    - WideCharToMultiByte
    - ERR
    - bind
    - EVUTIL_SOCKET_ERROR
    - event_warnx
    linkageType: ''
    returnType: int
    signature: "int evutil_win_socketpair_afunix(int family, int type, int protocol,\n
      \   evutil_socket_t fd[2])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 299
    functionName: ERR
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR(e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/evutil.c:407,1
    - Dst: evutil_check_working_afunix_
      Src: /src/libevent/evutil.c:410,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/evutil.c:417,1
    - Dst: evutil_win_socketpair_afunix
      Src: /src/libevent/evutil.c:426,1
    - Dst: evutil_ersatz_socketpair_
      Src: /src/libevent/evutil.c:429,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - family
    - type
    - protocol
    - fd
    argTypes:
    - int
    - int
    - int
    - evutil_socket_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 430
    functionName: evutil_win_socketpair
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_win_socketpair_afunix
    - evutil_check_working_afunix_
    - evutil_ersatz_socketpair_
    - EVUTIL_SET_SOCKET_ERROR
    linkageType: ''
    returnType: int
    signature: "int evutil_win_socketpair(int family, int type, int protocol,\n    evutil_socket_t
      fd[2])"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ioctlsocket
      Src: /src/libevent/evutil.c:439,1
    - Dst: event_sock_warn
      Src: /src/libevent/evutil.c:440,1
    - Dst: fcntl
      Src: /src/libevent/evutil.c:447,1
    - Dst: event_warn
      Src: /src/libevent/evutil.c:448,1
    - Dst: fcntl
      Src: /src/libevent/evutil.c:452,1
    - Dst: event_warn
      Src: /src/libevent/evutil.c:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 460
    functionName: evutil_make_socket_nonblocking
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - fcntl
    - ioctlsocket
    - event_warn
    - event_sock_warn
    linkageType: ''
    returnType: int
    signature: int evutil_make_socket_nonblocking(evutil_socket_t fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/evutil.c:470,1
    - Dst: fcntl
      Src: /src/libevent/evutil.c:472,1
    - Dst: event_warn
      Src: /src/libevent/evutil.c:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 466
    functionDepth: 2
    functionLinenumber: 466
    functionLinenumberEnd: 478
    functionName: evutil_fast_socket_nonblocking
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - fcntl
    - evutil_make_socket_nonblocking
    - event_warn
    linkageType: ''
    returnType: int
    signature: int evutil_fast_socket_nonblocking(evutil_socket_t fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/libevent/evutil.c:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - sock
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 493
    functionName: evutil_make_listen_socket_reuseable
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 1
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int evutil_make_listen_socket_reuseable(evutil_socket_t sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/libevent/evutil.c:503,1
    - Dst: setsockopt
      Src: /src/libevent/evutil.c:526,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 4
    argCount: 1
    argNames:
    - sock
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 540
    functionName: evutil_make_listen_socket_reuseable_port
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int evutil_make_listen_socket_reuseable_port(evutil_socket_t sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/libevent/evutil.c:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sock
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 551
    functionName: evutil_make_listen_socket_ipv6only
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int evutil_make_listen_socket_ipv6only(evutil_socket_t sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/libevent/evutil.c:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sock
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 562
    functionName: evutil_make_listen_socket_not_ipv6only
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int evutil_make_listen_socket_not_ipv6only(evutil_socket_t sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/libevent/evutil.c:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - sock
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 576
    functionName: evutil_make_tcp_listen_socket_deferred
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int evutil_make_tcp_listen_socket_deferred(evutil_socket_t sock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/libevent/evutil.c:583,1
    - Dst: event_warn
      Src: /src/libevent/evutil.c:584,1
    - Dst: fcntl
      Src: /src/libevent/evutil.c:588,1
    - Dst: event_warn
      Src: /src/libevent/evutil.c:589,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 595
    functionName: evutil_make_socket_closeonexec
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - fcntl
    - event_warn
    linkageType: ''
    returnType: int
    signature: int evutil_make_socket_closeonexec(evutil_socket_t fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/libevent/evutil.c:605,1
    - Dst: event_warn
      Src: /src/libevent/evutil.c:606,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 611
    functionName: evutil_fast_socket_closeonexec
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - fcntl
    - event_warn
    linkageType: ''
    returnType: int
    signature: int evutil_fast_socket_closeonexec(evutil_socket_t fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libevent/evutil.c:617,1
    - Dst: closesocket
      Src: /src/libevent/evutil.c:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sock
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 621
    functionName: evutil_closesocket
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 5
    functionsReached:
    - close
    - closesocket
    linkageType: ''
    returnType: int
    signature: int evutil_closesocket(evutil_socket_t sock)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strtoll
      Src: /src/libevent/evutil.c:627,1
    - Dst: strtol
      Src: /src/libevent/evutil.c:629,1
    - Dst: _atoi64
      Src: /src/libevent/evutil.c:636,1
    - Dst: isspace
      Src: /src/libevent/evutil.c:637,1
    - Dst: isdigit
      Src: /src/libevent/evutil.c:641,1
    - Dst: _strtoi64
      Src: /src/libevent/evutil.c:647,1
    - Dst: sscanf
      Src: /src/libevent/evutil.c:654,1
    - Dst: sscanf
      Src: /src/libevent/evutil.c:657,1
    - Dst: EVUTIL_ISSPACE_
      Src: /src/libevent/evutil.c:664,1
    - Dst: EVUTIL_ISDIGIT_
      Src: /src/libevent/evutil.c:669,1
    - Dst: EVUTIL_ISXDIGIT_
      Src: /src/libevent/evutil.c:672,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 3
    argNames:
    - s
    - endptr
    - base
    argTypes:
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 681
    functionName: evutil_strtoll
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 2
    functionsReached:
    - _atoi64
    - EVUTIL_ISSPACE_
    - _strtoi64
    - strtoll
    - EVUTIL_ISDIGIT_
    - isdigit
    - isspace
    - sscanf
    - strtol
    - EVUTIL_ISXDIGIT_
    linkageType: ''
    returnType: ev_int64_t
    signature: ev_int64_t evutil_strtoll(const char *s, char **endptr, int base)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WSAGetLastError
      Src: /src/libevent/evutil.c:688,1
    - Dst: getsockopt
      Src: /src/libevent/evutil.c:690,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - sock
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 697
    functionName: evutil_socket_geterror
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - getsockopt
    linkageType: ''
    returnType: int
    signature: int evutil_socket_geterror(evutil_socket_t sock)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/libevent/evutil.c:708,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/evutil.c:711,1
    - Dst: connect
      Src: /src/libevent/evutil.c:716,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/evutil.c:717,1
    - Dst: EVUTIL_ERR_CONNECT_RETRIABLE
      Src: /src/libevent/evutil.c:718,1
    - Dst: EVUTIL_ERR_CONNECT_REFUSED
      Src: /src/libevent/evutil.c:720,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:729,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - fd_ptr
    - sa
    - socklen
    argTypes:
    - evutil_socket_t*
    - struct sockaddr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 702
    functionDepth: 2
    functionLinenumber: 702
    functionLinenumberEnd: 733
    functionName: evutil_socket_connect_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ERR_CONNECT_RETRIABLE
    - connect
    - evutil_closesocket
    - socket
    - EVUTIL_ERR_CONNECT_REFUSED
    - evutil_socket_geterror
    - evutil_make_socket_nonblocking
    linkageType: ''
    returnType: int
    signature: int evutil_socket_connect_(evutil_socket_t *fd_ptr, const struct sockaddr
      *sa, int socklen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/libevent/evutil.c:745,1
    - Dst: EVUTIL_ERR_CONNECT_RETRIABLE
      Src: /src/libevent/evutil.c:749,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/evutil.c:751,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 756
    functionName: evutil_socket_finished_connecting_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ERR_CONNECT_RETRIABLE
    - getsockopt
    - EVUTIL_SET_SOCKET_ERROR
    linkageType: ''
    returnType: int
    signature: int evutil_socket_finished_connecting_(evutil_socket_t fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 776
    functionName: evutil_v4addr_is_localhost
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evutil_v4addr_is_localhost(ev_uint32_t addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 781
    functionName: evutil_v4addr_is_linklocal
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evutil_v4addr_is_linklocal(ev_uint32_t addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 786
    functionName: evutil_v4addr_is_classd
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evutil_v4addr_is_classd(ev_uint32_t addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/libevent/evutil.c:791,1
    - Dst: evutil_v4addr_is_localhost
      Src: /src/libevent/evutil.c:793,1
    - Dst: evutil_v4addr_is_linklocal
      Src: /src/libevent/evutil.c:794,1
    - Dst: evutil_v4addr_is_classd
      Src: /src/libevent/evutil.c:795,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - struct in_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 796
    functionName: evutil_v4addr_is_local_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_v4addr_is_localhost
    - evutil_v4addr_is_linklocal
    - ntohl
    - evutil_v4addr_is_classd
    linkageType: ''
    returnType: int
    signature: int evutil_v4addr_is_local_(const struct in_addr *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/libevent/evutil.c:805,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 810
    functionName: evutil_v6addr_is_local_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int evutil_v6addr_is_local_(const struct in6_addr *in)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evutil_v4addr_is_local_
      Src: /src/libevent/evutil.c:817,1
    - Dst: event_debug
      Src: /src/libevent/evutil.c:818,1
    - Dst: evutil_v6addr_is_local_
      Src: /src/libevent/evutil.c:823,1
    - Dst: event_debug
      Src: /src/libevent/evutil.c:824,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - sa
    argTypes:
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 812
    functionDepth: 2
    functionLinenumber: 812
    functionLinenumberEnd: 828
    functionName: evutil_found_ifaddr
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_v4addr_is_local_
    - event_debug
    - evutil_v6addr_is_local_
    linkageType: ''
    returnType: void
    signature: void evutil_found_ifaddr(const struct sockaddr *sa)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: getifaddrs
      Src: /src/libevent/evutil.c:843,1
    - Dst: event_warn
      Src: /src/libevent/evutil.c:844,1
    - Dst: evutil_found_ifaddr
      Src: /src/libevent/evutil.c:851,1
    - Dst: freeifaddrs
      Src: /src/libevent/evutil.c:854,1
    - Dst: evutil_load_windows_system_library_
      Src: /src/libevent/evutil.c:861,1
    - Dst: TEXT
      Src: /src/libevent/evutil.c:861,1
    - Dst: GetProcAddress
      Src: /src/libevent/evutil.c:874,1
    - Dst: mm_malloc
      Src: /src/libevent/evutil.c:879,1
    - Dst: fn
      Src: /src/libevent/evutil.c:882,1
    - Dst: mm_free
      Src: /src/libevent/evutil.c:885,1
    - Dst: mm_malloc
      Src: /src/libevent/evutil.c:886,1
    - Dst: fn
      Src: /src/libevent/evutil.c:889,1
    - Dst: evutil_found_ifaddr
      Src: /src/libevent/evutil.c:899,1
    - Dst: FreeLibrary
      Src: /src/libevent/evutil.c:906,1
    - Dst: mm_free
      Src: /src/libevent/evutil.c:908,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 835
    functionDepth: 3
    functionLinenumber: 835
    functionLinenumberEnd: 913
    functionName: evutil_check_ifaddrs
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - FreeLibrary
    - GetProcAddress
    - mm_free
    - fn
    - evutil_load_windows_system_library_
    - event_warn
    - evutil_found_ifaddr
    - mm_malloc
    - TEXT
    - getifaddrs
    - freeifaddrs
    linkageType: ''
    returnType: int
    signature: int evutil_check_ifaddrs(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evutil_check_ifaddrs
      Src: /src/libevent/evutil.c:932,1
    - Dst: memset
      Src: /src/libevent/evutil.c:942,1
    - Dst: htons
      Src: /src/libevent/evutil.c:944,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/evutil.c:945,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evutil.c:946,1
    - Dst: memset
      Src: /src/libevent/evutil.c:948,1
    - Dst: htons
      Src: /src/libevent/evutil.c:950,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/evutil.c:951,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evutil.c:952,1
    - Dst: memset
      Src: /src/libevent/evutil.c:954,1
    - Dst: memset
      Src: /src/libevent/evutil.c:955,1
    - Dst: socket
      Src: /src/libevent/evutil.c:958,1
    - Dst: connect
      Src: /src/libevent/evutil.c:959,1
    - Dst: getsockname
      Src: /src/libevent/evutil.c:960,1
    - Dst: evutil_found_ifaddr
      Src: /src/libevent/evutil.c:962,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:965,1
    - Dst: socket
      Src: /src/libevent/evutil.c:967,1
    - Dst: connect
      Src: /src/libevent/evutil.c:968,1
    - Dst: getsockname
      Src: /src/libevent/evutil.c:969,1
    - Dst: evutil_found_ifaddr
      Src: /src/libevent/evutil.c:971,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:975,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 917
    functionDepth: 4
    functionLinenumber: 917
    functionLinenumberEnd: 978
    functionName: evutil_check_interfaces
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - connect
    - EVUTIL_ASSERT
    - getsockname
    - evutil_closesocket
    - evutil_found_ifaddr
    - memset
    - evutil_inet_pton
    - evutil_check_ifaddrs
    - htons
    - socket
    linkageType: ''
    returnType: int
    signature: int evutil_check_interfaces(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evutil.c:996,1
    - Dst: memcpy
      Src: /src/libevent/evutil.c:1002,1
    - Dst: evutil_new_addrinfo_
      Src: /src/libevent/evutil.c:1004,1
    - Dst: evutil_new_addrinfo_
      Src: /src/libevent/evutil.c:1008,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/evutil.c:1010,1
    - Dst: mm_calloc
      Src: /src/libevent/evutil.c:1018,1
    - Dst: memcpy
      Src: /src/libevent/evutil.c:1023,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - sa
    - socklen
    - hints
    argTypes:
    - struct sockaddr*
    - ev_socklen_t
    - struct evutil_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 991
    functionDepth: 1
    functionLinenumber: 991
    functionLinenumberEnd: 1031
    functionName: evutil_new_addrinfo_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 1
    functionsReached:
    - EVUTIL_ASSERT
    - evutil_freeaddrinfo
    - mm_calloc
    - evutil_new_addrinfo_
    - memcpy
    linkageType: ''
    returnType: struct evutil_addrinfo
    signature: "struct evutil_addrinfo *\nevutil_new_addrinfo_(struct sockaddr *sa,
      ev_socklen_t socklen,\n    const struct evutil_addrinfo *hints)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - first
    - append
    argTypes:
    - struct evutil_addrinfo*
    - struct evutil_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1036
    functionDepth: 0
    functionLinenumber: 1036
    functionLinenumberEnd: 1048
    functionName: evutil_addrinfo_append_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evutil_addrinfo
    signature: "struct evutil_addrinfo *\nevutil_addrinfo_append_(struct evutil_addrinfo
      *first,\n    struct evutil_addrinfo *append)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/libevent/evutil.c:1055,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - servname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1050
    functionDepth: 0
    functionLinenumber: 1050
    functionLinenumberEnd: 1060
    functionName: parse_numeric_servname
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - strtol
    linkageType: ''
    returnType: int
    signature: int parse_numeric_servname(const char *servname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_numeric_servname
      Src: /src/libevent/evutil.c:1069,1
    - Dst: getservbyname
      Src: /src/libevent/evutil.c:1074,1
    - Dst: ntohs
      Src: /src/libevent/evutil.c:1076,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - servname
    - protocol
    - hints
    argTypes:
    - char*
    - char*
    - struct evutil_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1065
    functionDepth: 1
    functionLinenumber: 1065
    functionLinenumberEnd: 1081
    functionName: evutil_parse_servname
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - getservbyname
    - parse_numeric_servname
    - ntohs
    linkageType: ''
    returnType: int
    signature: "int evutil_parse_servname(const char *servname, const char *protocol,\n
      \   const struct evutil_addrinfo *hints)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getprotobynumber
      Src: /src/libevent/evutil.c:1102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - proto
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1085
    functionDepth: 0
    functionLinenumber: 1085
    functionLinenumberEnd: 1109
    functionName: evutil_unparse_protoname
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - getprotobynumber
    linkageType: ''
    returnType: char
    signature: 'char *

      evutil_unparse_protoname(int proto)'
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 1
    argNames:
    - hints
    argTypes:
    - struct evutil_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1111
    functionDepth: 0
    functionLinenumber: 1111
    functionLinenumberEnd: 1133
    functionName: evutil_getaddrinfo_infer_protocols
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evutil_getaddrinfo_infer_protocols(struct evutil_addrinfo *hints)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: evutil_getaddrinfo_infer_protocols
      Src: /src/libevent/evutil.c:1168,1
    - Dst: evutil_unparse_protoname
      Src: /src/libevent/evutil.c:1171,1
    - Dst: evutil_parse_servname
      Src: /src/libevent/evutil.c:1175,1
    - Dst: memset
      Src: /src/libevent/evutil.c:1187,1
    - Dst: htons
      Src: /src/libevent/evutil.c:1189,1
    - Dst: evutil_new_addrinfo_
      Src: /src/libevent/evutil.c:1196,1
    - Dst: memset
      Src: /src/libevent/evutil.c:1204,1
    - Dst: htons
      Src: /src/libevent/evutil.c:1206,1
    - Dst: htonl
      Src: /src/libevent/evutil.c:1211,1
    - Dst: evutil_new_addrinfo_
      Src: /src/libevent/evutil.c:1213,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/evutil.c:1217,1
    - Dst: evutil_addrinfo_append_
      Src: /src/libevent/evutil.c:1221,1
    - Dst: memset
      Src: /src/libevent/evutil.c:1230,1
    - Dst: evutil_inet_pton_scope
      Src: /src/libevent/evutil.c:1231,1
    - Dst: htons
      Src: /src/libevent/evutil.c:1235,1
    - Dst: evutil_new_addrinfo_
      Src: /src/libevent/evutil.c:1237,1
    - Dst: memset
      Src: /src/libevent/evutil.c:1248,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/evutil.c:1249,1
    - Dst: htons
      Src: /src/libevent/evutil.c:1252,1
    - Dst: evutil_new_addrinfo_
      Src: /src/libevent/evutil.c:1253,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 72
    argCount: 5
    argNames:
    - nodename
    - servname
    - hints
    - res
    - portnum
    argTypes:
    - char*
    - char*
    - struct evutil_addrinfo*
    - struct evutil_addrinfo**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1152
    functionDepth: 2
    functionLinenumber: 1152
    functionLinenumberEnd: 1270
    functionName: evutil_getaddrinfo_common_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_freeaddrinfo
    - evutil_new_addrinfo_
    - evutil_inet_pton_scope
    - evutil_unparse_protoname
    - memset
    - evutil_getaddrinfo_infer_protocols
    - evutil_inet_pton
    - htons
    - evutil_addrinfo_append_
    - evutil_parse_servname
    - htonl
    linkageType: ''
    returnType: int
    signature: "int evutil_getaddrinfo_common_(const char *nodename, const char *servname,\n
      \   struct evutil_addrinfo *hints, struct evutil_addrinfo **res, int *portnum)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/evutil.c:1345,1
    - Dst: htons
      Src: /src/libevent/evutil.c:1347,1
    - Dst: event_warnx
      Src: /src/libevent/evutil.c:1352,1
    - Dst: memset
      Src: /src/libevent/evutil.c:1356,1
    - Dst: htons
      Src: /src/libevent/evutil.c:1358,1
    - Dst: event_warnx
      Src: /src/libevent/evutil.c:1363,1
    - Dst: memcpy
      Src: /src/libevent/evutil.c:1370,1
    - Dst: evutil_new_addrinfo_
      Src: /src/libevent/evutil.c:1371,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/evutil.c:1373,1
    - Dst: evutil_addrinfo_append_
      Src: /src/libevent/evutil.c:1376,1
    - Dst: mm_strdup
      Src: /src/libevent/evutil.c:1380,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/evutil.c:1382,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 3
    argNames:
    - ent
    - port
    - hints
    argTypes:
    - struct hostent*
    - int
    - struct evutil_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1332
    functionDepth: 2
    functionLinenumber: 1332
    functionLinenumberEnd: 1388
    functionName: addrinfo_from_hostent
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_freeaddrinfo
    - evutil_new_addrinfo_
    - mm_strdup
    - memset
    - memcpy
    - htons
    - event_warnx
    - evutil_addrinfo_append_
    linkageType: ''
    returnType: struct evutil_addrinfo
    signature: "struct evutil_addrinfo *\naddrinfo_from_hostent(const struct hostent
      *ent,\n    int port, const struct evutil_addrinfo *hints)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evutil_check_interfaces
      Src: /src/libevent/evutil.c:1402,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - hints
    argTypes:
    - struct evutil_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1395
    functionDepth: 5
    functionLinenumber: 1395
    functionLinenumberEnd: 1408
    functionName: evutil_adjust_hints_for_addrconfig_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_check_interfaces
    linkageType: ''
    returnType: void
    signature: void evutil_adjust_hints_for_addrconfig_(struct evutil_addrinfo *hints)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ai
    argTypes:
    - struct evutil_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1434
    functionDepth: 0
    functionLinenumber: 1434
    functionLinenumberEnd: 1442
    functionName: ai_find_protocol
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evutil_addrinfo
    signature: struct evutil_addrinfo *ai_find_protocol(struct evutil_addrinfo *ai)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_for_getaddrinfo_hacks
      Src: /src/libevent/evutil.c:1484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1480
    functionDepth: 0
    functionLinenumber: 1480
    functionLinenumberEnd: 1486
    functionName: need_numeric_port_hack
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - test_for_getaddrinfo_hacks
    linkageType: ''
    returnType: int
    signature: int need_numeric_port_hack(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_for_getaddrinfo_hacks
      Src: /src/libevent/evutil.c:1492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1488
    functionDepth: 0
    functionLinenumber: 1488
    functionLinenumberEnd: 1494
    functionName: need_socktype_protocol_hack
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - test_for_getaddrinfo_hacks
    linkageType: ''
    returnType: int
    signature: int need_socktype_protocol_hack(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/libevent/evutil.c:1505,1
    - Dst: htons
      Src: /src/libevent/evutil.c:1508,1
    - Dst: freeaddrinfo
      Src: /src/libevent/evutil.c:1515,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - port
    - ai
    argTypes:
    - int
    - struct evutil_addrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1496
    functionDepth: 0
    functionLinenumber: 1496
    functionLinenumberEnd: 1518
    functionName: apply_numeric_port_hack
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - freeaddrinfo
    - htons
    linkageType: ''
    returnType: void
    signature: void apply_numeric_port_hack(int port, struct evutil_addrinfo **ai)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evutil_getaddrinfo_infer_protocols
      Src: /src/libevent/evutil.c:1525,1
    - Dst: mm_malloc
      Src: /src/libevent/evutil.c:1528,1
    - Dst: memcpy
      Src: /src/libevent/evutil.c:1531,1
    - Dst: mm_strdup
      Src: /src/libevent/evutil.c:1538,1
    - Dst: mm_free
      Src: /src/libevent/evutil.c:1540,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - ai
    argTypes:
    - struct evutil_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1549
      start: 1520
    functionDepth: 1
    functionLinenumber: 1520
    functionLinenumberEnd: 1549
    functionName: apply_socktype_protocol_hack
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - mm_free
    - mm_malloc
    - mm_strdup
    - evutil_getaddrinfo_infer_protocols
    - memcpy
    linkageType: ''
    returnType: int
    signature: int apply_socktype_protocol_hack(struct evutil_addrinfo *ai)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libevent/evutil.c:1561,1
    - Dst: memset
      Src: /src/libevent/evutil.c:1563,1
    - Dst: evutil_adjust_hints_for_addrconfig_
      Src: /src/libevent/evutil.c:1571,1
    - Dst: parse_numeric_servname
      Src: /src/libevent/evutil.c:1578,1
    - Dst: evutil_getaddrinfo_common_
      Src: /src/libevent/evutil.c:1597,1
    - Dst: need_numeric_port_hack
      Src: /src/libevent/evutil.c:1609,1
    - Dst: parse_numeric_servname
      Src: /src/libevent/evutil.c:1610,1
    - Dst: evutil_getaddrinfo_common_
      Src: /src/libevent/evutil.c:1613,1
    - Dst: need_socktype_protocol_hack
      Src: /src/libevent/evutil.c:1618,1
    - Dst: evutil_getaddrinfo_infer_protocols
      Src: /src/libevent/evutil.c:1619,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evutil.c:1629,1
    - Dst: getaddrinfo
      Src: /src/libevent/evutil.c:1634,1
    - Dst: apply_numeric_port_hack
      Src: /src/libevent/evutil.c:1636,1
    - Dst: need_socktype_protocol_hack
      Src: /src/libevent/evutil.c:1638,1
    - Dst: apply_socktype_protocol_hack
      Src: /src/libevent/evutil.c:1639,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/evutil.c:1640,1
    - Dst: memcpy
      Src: /src/libevent/evutil.c:1652,1
    - Dst: memset
      Src: /src/libevent/evutil.c:1654,1
    - Dst: evutil_adjust_hints_for_addrconfig_
      Src: /src/libevent/evutil.c:1658,1
    - Dst: evutil_getaddrinfo_common_
      Src: /src/libevent/evutil.c:1660,1
    - Dst: gethostbyname_r
      Src: /src/libevent/evutil.c:1674,1
    - Dst: gethostbyname_r
      Src: /src/libevent/evutil.c:1679,1
    - Dst: memset
      Src: /src/libevent/evutil.c:1684,1
    - Dst: gethostbyname_r
      Src: /src/libevent/evutil.c:1685,1
    - Dst: gethostbyname
      Src: /src/libevent/evutil.c:1690,1
    - Dst: WSAGetLastError
      Src: /src/libevent/evutil.c:1692,1
    - Dst: addrinfo_from_hostent
      Src: /src/libevent/evutil.c:1734,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 86
    argCount: 4
    argNames:
    - nodename
    - servname
    - hints_in
    - res
    argTypes:
    - char*
    - char*
    - struct evutil_addrinfo*
    - struct evutil_addrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1552
    functionDepth: 6
    functionLinenumber: 1552
    functionLinenumberEnd: 1741
    functionName: evutil_getaddrinfo
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 1
    functionsReached:
    - apply_numeric_port_hack
    - WSAGetLastError
    - gethostbyname
    - evutil_adjust_hints_for_addrconfig_
    - EVUTIL_ASSERT
    - apply_socktype_protocol_hack
    - evutil_freeaddrinfo
    - parse_numeric_servname
    - getaddrinfo
    - need_socktype_protocol_hack
    - memset
    - evutil_getaddrinfo_infer_protocols
    - memcpy
    - need_numeric_port_hack
    - addrinfo_from_hostent
    - evutil_getaddrinfo_common_
    - gethostbyname_r
    linkageType: ''
    returnType: int
    signature: "int evutil_getaddrinfo(const char *nodename, const char *servname,\n
      \   const struct evutil_addrinfo *hints_in, struct evutil_addrinfo **res)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/evutil.c:1758,1
    - Dst: mm_free
      Src: /src/libevent/evutil.c:1759,1
    - Dst: freeaddrinfo
      Src: /src/libevent/evutil.c:1772,1
    - Dst: mm_free
      Src: /src/libevent/evutil.c:1777,1
    - Dst: mm_free
      Src: /src/libevent/evutil.c:1778,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - ai
    argTypes:
    - struct evutil_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1782
      start: 1743
    functionDepth: 1
    functionLinenumber: 1743
    functionLinenumberEnd: 1782
    functionName: evutil_freeaddrinfo
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 5
    functionsReached:
    - freeaddrinfo
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evutil_freeaddrinfo(struct evutil_addrinfo *ai)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/evutil.c:1791,1
    - Dst: memcpy
      Src: /src/libevent/evutil.c:1792,1
    - Dst: mm_strdup
      Src: /src/libevent/evutil.c:1794,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ai
    argTypes:
    - struct evutil_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1784
    functionDepth: 1
    functionLinenumber: 1784
    functionLinenumberEnd: 1805
    functionName: evutil_dup_addrinfo_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - memcpy
    - mm_strdup
    linkageType: ''
    returnType: struct evutil_addrinfo
    signature: 'struct evutil_addrinfo *

      evutil_dup_addrinfo_(struct evutil_addrinfo *ai)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - fn
    argTypes:
    - evdns_getaddrinfo_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1815
      start: 1810
    functionDepth: 0
    functionLinenumber: 1810
    functionLinenumberEnd: 1815
    functionName: evutil_set_evdns_getaddrinfo_fn_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evutil_set_evdns_getaddrinfo_fn_(evdns_getaddrinfo_fn fn)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - fn
    argTypes:
    - evdns_getaddrinfo_cancel_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1821
      start: 1816
    functionDepth: 0
    functionLinenumber: 1816
    functionLinenumberEnd: 1821
    functionName: evutil_set_evdns_getaddrinfo_cancel_fn_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evutil_set_evdns_getaddrinfo_cancel_fn_(evdns_getaddrinfo_cancel_fn
      fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1825
    functionDepth: 0
    functionLinenumber: 1825
    functionLinenumberEnd: 1829
    functionName: evutil_set_resolvconf_filename_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evutil_set_resolvconf_filename_(const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1838
      start: 1831
    functionDepth: 0
    functionLinenumber: 1831
    functionLinenumberEnd: 1838
    functionName: evutil_resolvconf_filename_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      evutil_resolvconf_filename_(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_getaddrinfo_impl
      Src: /src/libevent/evutil.c:1851,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/evutil.c:1856,1
    - Dst: cb
      Src: /src/libevent/evutil.c:1857,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - dns_base
    - nodename
    - servname
    - hints_in
    - arg
    argTypes:
    - struct evdns_base*
    - char*
    - char*
    - struct evutil_addrinfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1860
      start: 1844
    functionDepth: 7
    functionLinenumber: 1844
    functionLinenumberEnd: 1860
    functionName: evutil_getaddrinfo_async_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_getaddrinfo
    - cb
    - evdns_getaddrinfo_impl
    linkageType: ''
    returnType: struct evdns_getaddrinfo_request
    signature: "struct evdns_getaddrinfo_request *evutil_getaddrinfo_async_(\n    struct
      evdns_base *dns_base,\n    const char *nodename, const char *servname,\n    const
      struct evutil_addrinfo *hints_in,\n    void (*cb)(int, struct evutil_addrinfo
      *, void *), void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_getaddrinfo_cancel_impl
      Src: /src/libevent/evutil.c:1865,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct evdns_getaddrinfo_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1862
    functionDepth: 0
    functionLinenumber: 1862
    functionLinenumberEnd: 1867
    functionName: evutil_getaddrinfo_cancel_async_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evdns_getaddrinfo_cancel_impl
    linkageType: ''
    returnType: void
    signature: void evutil_getaddrinfo_cancel_async_(struct evdns_getaddrinfo_request
      *data)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: gai_strerrorA
      Src: /src/libevent/evutil.c:1905,1
    - Dst: gai_strerror
      Src: /src/libevent/evutil.c:1907,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1869
    functionDepth: 0
    functionLinenumber: 1869
    functionLinenumberEnd: 1912
    functionName: evutil_gai_strerror
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 1
    functionsReached:
    - gai_strerrorA
    - gai_strerror
    linkageType: ''
    returnType: char
    signature: 'char *

      evutil_gai_strerror(int err)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/evutil.c:1920,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1925
      start: 1916
    functionDepth: 0
    functionLinenumber: 1916
    functionLinenumberEnd: 1925
    functionName: chomp
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: void
    signature: void chomp (char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct cached_sock_errs_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1954
      start: 1943
    functionDepth: 0
    functionLinenumber: 1943
    functionLinenumberEnd: 1954
    functionName: hash_cached_sock_errs
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned hash_cached_sock_errs(const struct cached_sock_errs_entry
      *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct cached_sock_errs_entry*
    - struct cached_sock_errs_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1961
      start: 1956
    functionDepth: 0
    functionLinenumber: 1956
    functionLinenumberEnd: 1961
    functionName: eq_cached_sock_errs
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int eq_cached_sock_errs(const struct cached_sock_errs_entry *a,\n\t\t
      \   const struct cached_sock_errs_entry *b)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/evutil.c:1993,1
    - Dst: HT_FIND
      Src: /src/libevent/evutil.c:1996,1
    - Dst: FormatMessageA
      Src: /src/libevent/evutil.c:2002,1
    - Dst: chomp
      Src: /src/libevent/evutil.c:2006,1
    - Dst: LocalAlloc
      Src: /src/libevent/evutil.c:2010,1
    - Dst: evutil_snprintf
      Src: /src/libevent/evutil.c:2015,1
    - Dst: mm_malloc
      Src: /src/libevent/evutil.c:2019,1
    - Dst: LocalFree
      Src: /src/libevent/evutil.c:2022,1
    - Dst: HT_INSERT
      Src: /src/libevent/evutil.c:2029,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/evutil.c:2032,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 1
    argNames:
    - errcode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2035
      start: 1967
    functionDepth: 1
    functionLinenumber: 1967
    functionLinenumberEnd: 2035
    functionName: evutil_socket_error_to_string
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - HT_INSERT
    - chomp
    - EVLOCK_UNLOCK
    - HT_FIND
    - FormatMessageA
    - LocalFree
    - mm_malloc
    - LocalAlloc
    - evutil_snprintf
    - EVLOCK_LOCK
    linkageType: ''
    returnType: void
    signature: void evutil_socket_error_to_string(int errcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVTHREAD_SETUP_GLOBAL_LOCK
      Src: /src/libevent/evutil.c:2041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - enable_locks
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2043
      start: 2038
    functionDepth: 1
    functionLinenumber: 2038
    functionLinenumberEnd: 2043
    functionName: evutil_global_setup_locks_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - EVTHREAD_SETUP_GLOBAL_LOCK
    linkageType: ''
    returnType: int
    signature: int evutil_global_setup_locks_(const int enable_locks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HT_START
      Src: /src/libevent/evutil.c:2051,1
    - Dst: HT_NEXT_RMV
      Src: /src/libevent/evutil.c:2054,1
    - Dst: LocalFree
      Src: /src/libevent/evutil.c:2057,1
    - Dst: mm_free
      Src: /src/libevent/evutil.c:2058,1
    - Dst: HT_CLEAR
      Src: /src/libevent/evutil.c:2061,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/evutil.c:2065,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2069
      start: 2046
    functionDepth: 1
    functionLinenumber: 2046
    functionLinenumberEnd: 2069
    functionName: evutil_free_sock_err_globals
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - mm_free
    - HT_NEXT_RMV
    - LocalFree
    - HT_START
    - EVTHREAD_FREE_LOCK
    - HT_CLEAR
    linkageType: ''
    returnType: void
    signature: void evutil_free_sock_err_globals(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enable_locks
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2078
      start: 2074
    functionDepth: 0
    functionLinenumber: 2074
    functionLinenumberEnd: 2078
    functionName: evutil_global_setup_locks_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evutil_global_setup_locks_(const int enable_locks)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2084
      start: 2081
    functionDepth: 0
    functionLinenumber: 2081
    functionLinenumberEnd: 2084
    functionName: evutil_free_sock_err_globals
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evutil_free_sock_err_globals(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libevent/evutil.c:2093,1
    - Dst: evutil_vsnprintf
      Src: /src/libevent/evutil.c:2094,1
    - Dst: va_end
      Src: /src/libevent/evutil.c:2095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - buflen
    - format
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2097
      start: 2088
    functionDepth: 1
    functionLinenumber: 2088
    functionLinenumberEnd: 2097
    functionName: evutil_snprintf
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 6
    functionsReached:
    - evutil_vsnprintf
    - va_end
    - va_start
    linkageType: ''
    returnType: int
    signature: int evutil_snprintf(char *buf, size_t buflen, const char *format, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _vsnprintf
      Src: /src/libevent/evutil.c:2106,1
    - Dst: _vscprintf
      Src: /src/libevent/evutil.c:2108,1
    - Dst: _xpg5_vsnprintf
      Src: /src/libevent/evutil.c:2115,1
    - Dst: vsnprintf
      Src: /src/libevent/evutil.c:2117,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - buf
    - buflen
    - format
    - ap
    argTypes:
    - char*
    - size_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2124
      start: 2099
    functionDepth: 0
    functionLinenumber: 2099
    functionLinenumberEnd: 2124
    functionName: evutil_vsnprintf
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 1
    functionsReached:
    - vsnprintf
    - _vscprintf
    - _xpg5_vsnprintf
    - _vsnprintf
    linkageType: ''
    returnType: int
    signature: int evutil_vsnprintf(char *buf, size_t buflen, const char *format,
      va_list ap)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/libevent/evutil.c:2133,1
    - Dst: ntohl
      Src: /src/libevent/evutil.c:2137,1
    - Dst: evutil_snprintf
      Src: /src/libevent/evutil.c:2139,1
    - Dst: evutil_snprintf
      Src: /src/libevent/evutil.c:2164,1
    - Dst: evutil_snprintf
      Src: /src/libevent/evutil.c:2168,1
    - Dst: strlen
      Src: /src/libevent/evutil.c:2172,1
    - Dst: strlcpy
      Src: /src/libevent/evutil.c:2174,1
    - Dst: evutil_snprintf
      Src: /src/libevent/evutil.c:2206,1
    - Dst: strlen
      Src: /src/libevent/evutil.c:2208,1
    - Dst: strlen
      Src: /src/libevent/evutil.c:2214,1
    - Dst: strlcpy
      Src: /src/libevent/evutil.c:2216,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 66
    argCount: 4
    argNames:
    - af
    - src
    - dst
    - len
    argTypes:
    - int
    - void*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2129
    functionDepth: 2
    functionLinenumber: 2129
    functionLinenumberEnd: 2223
    functionName: evutil_inet_ntop
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - inet_ntop
    - ntohl
    - strlcpy
    - strlen
    - evutil_snprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      evutil_inet_ntop(int af, const void *src, char *dst, size_t len)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evutil_inet_pton
      Src: /src/libevent/evutil.c:2237,1
    - Dst: strchr
      Src: /src/libevent/evutil.c:2239,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/evutil.c:2243,1
    - Dst: if_nametoindex
      Src: /src/libevent/evutil.c:2245,1
    - Dst: strtoul
      Src: /src/libevent/evutil.c:2247,1
    - Dst: mm_strdup
      Src: /src/libevent/evutil.c:2252,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/evutil.c:2256,1
    - Dst: mm_free
      Src: /src/libevent/evutil.c:2257,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - af
    - src
    - dst
    - indexp
    argTypes:
    - int
    - char*
    - void*
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2259
      start: 2225
    functionDepth: 1
    functionLinenumber: 2225
    functionLinenumberEnd: 2259
    functionName: evutil_inet_pton_scope
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 1
    functionsReached:
    - strtoul
    - mm_free
    - mm_strdup
    - strchr
    - evutil_inet_pton
    - if_nametoindex
    linkageType: ''
    returnType: int
    signature: int evutil_inet_pton_scope(int af, const char *src, void *dst, unsigned
      *indexp)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: inet_pton
      Src: /src/libevent/evutil.c:2265,1
    - Dst: sscanf
      Src: /src/libevent/evutil.c:2271,1
    - Dst: htonl
      Src: /src/libevent/evutil.c:2277,1
    - Dst: strchr
      Src: /src/libevent/evutil.c:2284,1
    - Dst: strlen
      Src: /src/libevent/evutil.c:2289,1
    - Dst: EVUTIL_ISDIGIT_
      Src: /src/libevent/evutil.c:2293,1
    - Dst: sscanf
      Src: /src/libevent/evutil.c:2299,1
    - Dst: EVUTIL_ISXDIGIT_
      Src: /src/libevent/evutil.c:2318,1
    - Dst: strtol
      Src: /src/libevent/evutil.c:2320,1
    - Dst: memmove
      Src: /src/libevent/evutil.c:2356,1
    - Dst: memset
      Src: /src/libevent/evutil.c:2358,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 77
    argCount: 3
    argNames:
    - af
    - src
    - dst
    argTypes:
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2371
      start: 2261
    functionDepth: 0
    functionLinenumber: 2261
    functionLinenumberEnd: 2371
    functionName: evutil_inet_pton
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 4
    functionsReached:
    - memmove
    - strchr
    - inet_pton
    - strtol
    - memset
    - sscanf
    - EVUTIL_ISDIGIT_
    - strlen
    - EVUTIL_ISXDIGIT_
    - htonl
    linkageType: ''
    returnType: int
    signature: int evutil_inet_pton(int af, const char *src, void *dst)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/libevent/evutil.c:2389,1
    - Dst: strchr
      Src: /src/libevent/evutil.c:2392,1
    - Dst: memcpy
      Src: /src/libevent/evutil.c:2399,1
    - Dst: strchr
      Src: /src/libevent/evutil.c:2407,1
    - Dst: memcpy
      Src: /src/libevent/evutil.c:2416,1
    - Dst: atoi
      Src: /src/libevent/evutil.c:2429,1
    - Dst: memset
      Src: /src/libevent/evutil.c:2441,1
    - Dst: htons
      Src: /src/libevent/evutil.c:2446,1
    - Dst: evutil_inet_pton_scope
      Src: /src/libevent/evutil.c:2447,1
    - Dst: memcpy
      Src: /src/libevent/evutil.c:2454,1
    - Dst: memset
      Src: /src/libevent/evutil.c:2462,1
    - Dst: htons
      Src: /src/libevent/evutil.c:2467,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/evutil.c:2468,1
    - Dst: memcpy
      Src: /src/libevent/evutil.c:2472,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 74
    argCount: 3
    argNames:
    - ip_as_string
    - out
    - outlen
    argTypes:
    - char*
    - struct sockaddr*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2476
      start: 2373
    functionDepth: 2
    functionLinenumber: 2373
    functionLinenumberEnd: 2476
    functionName: evutil_parse_sockaddr_port
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - strchr
    - memset
    - evutil_inet_pton
    - htons
    - memcpy
    - evutil_inet_pton_scope
    - atoi
    linkageType: ''
    returnType: int
    signature: int evutil_parse_sockaddr_port(const char *ip_as_string, struct sockaddr
      *out, int *outlen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evutil_inet_ntop
      Src: /src/libevent/evutil.c:2486,1
    - Dst: ntohs
      Src: /src/libevent/evutil.c:2487,1
    - Dst: evutil_snprintf
      Src: /src/libevent/evutil.c:2489,1
    - Dst: evutil_inet_ntop
      Src: /src/libevent/evutil.c:2494,1
    - Dst: ntohs
      Src: /src/libevent/evutil.c:2495,1
    - Dst: evutil_snprintf
      Src: /src/libevent/evutil.c:2497,1
    - Dst: evutil_snprintf
      Src: /src/libevent/evutil.c:2502,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - sa
    - out
    - outlen
    argTypes:
    - struct sockaddr*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2505
      start: 2478
    functionDepth: 3
    functionLinenumber: 2478
    functionLinenumberEnd: 2505
    functionName: evutil_format_sockaddr_port_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_snprintf
    - ntohs
    - evutil_inet_ntop
    linkageType: ''
    returnType: char
    signature: 'char *

      evutil_format_sockaddr_port_(const struct sockaddr *sa, char *out, size_t outlen)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/libevent/evutil.c:2534,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - sa1
    - sa2
    - include_port
    argTypes:
    - struct sockaddr*
    - struct sockaddr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2544
      start: 2507
    functionDepth: 0
    functionLinenumber: 2507
    functionLinenumberEnd: 2544
    functionName: evutil_sockaddr_cmp
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int evutil_sockaddr_cmp(const struct sockaddr *sa1, const struct sockaddr
      *sa2,\n    int include_port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2607
      start: 2602
    functionDepth: 0
    functionLinenumber: 2602
    functionLinenumberEnd: 2607
    functionName: IMPL_CTYPE_FN
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPL_CTYPE_FN(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2619
      start: 2616
    functionDepth: 0
    functionLinenumber: 2616
    functionLinenumberEnd: 2619
    functionName: EVUTIL_TOLOWER_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char EVUTIL_TOLOWER_(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2623
      start: 2620
    functionDepth: 0
    functionLinenumber: 2620
    functionLinenumberEnd: 2623
    functionName: EVUTIL_TOUPPER_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char EVUTIL_TOUPPER_(char c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_TOLOWER_
      Src: /src/libevent/evutil.c:2629,1
    - Dst: EVUTIL_TOLOWER_
      Src: /src/libevent/evutil.c:2630,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2638
      start: 2624
    functionDepth: 1
    functionLinenumber: 2624
    functionLinenumberEnd: 2638
    functionName: evutil_ascii_strcasecmp
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 11
    functionsReached:
    - EVUTIL_TOLOWER_
    linkageType: ''
    returnType: int
    signature: int evutil_ascii_strcasecmp(const char *s1, const char *s2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_TOLOWER_
      Src: /src/libevent/evutil.c:2643,1
    - Dst: EVUTIL_TOLOWER_
      Src: /src/libevent/evutil.c:2644,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2653
      start: 2639
    functionDepth: 1
    functionLinenumber: 2639
    functionLinenumberEnd: 2653
    functionName: evutil_ascii_strncasecmp
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 1
    functionsReached:
    - EVUTIL_TOLOWER_
    linkageType: ''
    returnType: int
    signature: int evutil_ascii_strncasecmp(const char *s1, const char *s2, size_t
      n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_TOLOWER_
      Src: /src/libevent/evutil.c:2661,1
    - Dst: strlen
      Src: /src/libevent/evutil.c:2662,1
    - Dst: EVUTIL_TOLOWER_
      Src: /src/libevent/evutil.c:2667,1
    - Dst: evutil_ascii_strncasecmp
      Src: /src/libevent/evutil.c:2668,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - s
    - find
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2672
      start: 2655
    functionDepth: 2
    functionLinenumber: 2655
    functionLinenumberEnd: 2672
    functionName: evutil_ascii_strcasestr
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - strlen
    - evutil_ascii_strncasecmp
    - EVUTIL_TOLOWER_
    linkageType: ''
    returnType: char
    signature: char * evutil_ascii_strcasestr(const char* s, const char *find)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/libevent/evutil.c:2682,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2693
      start: 2674
    functionDepth: 0
    functionLinenumber: 2674
    functionLinenumberEnd: 2693
    functionName: evutil_rtrim_lws_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 2
    functionsReached:
    - strchr
    linkageType: ''
    returnType: void
    signature: void evutil_rtrim_lws_(char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: issetugid
      Src: /src/libevent/evutil.c:2699,1
    - Dst: getauxval
      Src: /src/libevent/evutil.c:2701,1
    - Dst: getuid
      Src: /src/libevent/evutil.c:2705,1
    - Dst: geteuid
      Src: /src/libevent/evutil.c:2705,1
    - Dst: getgid
      Src: /src/libevent/evutil.c:2709,1
    - Dst: getegid
      Src: /src/libevent/evutil.c:2709,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2714
      start: 2695
    functionDepth: 0
    functionLinenumber: 2695
    functionLinenumberEnd: 2714
    functionName: evutil_issetugid
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - issetugid
    - getauxval
    - getegid
    - getuid
    - geteuid
    - getgid
    linkageType: ''
    returnType: int
    signature: int evutil_issetugid(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_issetugid
      Src: /src/libevent/evutil.c:2719,1
    - Dst: getenv
      Src: /src/libevent/evutil.c:2722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - varname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2723
      start: 2716
    functionDepth: 1
    functionLinenumber: 2716
    functionLinenumberEnd: 2723
    functionName: evutil_getenv_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_issetugid
    - getenv
    linkageType: ''
    returnType: char
    signature: 'char *

      evutil_getenv_(const char *varname)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/evutil.c:2730,1
    - Dst: _getpid
      Src: /src/libevent/evutil.c:2733,1
    - Dst: getpid
      Src: /src/libevent/evutil.c:2735,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - state
    - seed
    argTypes:
    - struct evutil_weakrand_state*
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2740
      start: 2725
    functionDepth: 0
    functionLinenumber: 2725
    functionLinenumberEnd: 2740
    functionName: evutil_weakrand_seed_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - _getpid
    - getpid
    linkageType: ''
    returnType: ev_uint32_t
    signature: ev_uint32_t evutil_weakrand_seed_(struct evutil_weakrand_state *state,
      ev_uint32_t seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct evutil_weakrand_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2755
      start: 2742
    functionDepth: 0
    functionLinenumber: 2742
    functionLinenumberEnd: 2755
    functionName: evutil_weakrand_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ev_int32_t
    signature: ev_int32_t evutil_weakrand_(struct evutil_weakrand_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_weakrand_
      Src: /src/libevent/evutil.c:2768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - state
    - top
    argTypes:
    - struct evutil_weakrand_state*
    - ev_int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2771
      start: 2757
    functionDepth: 1
    functionLinenumber: 2757
    functionLinenumberEnd: 2771
    functionName: evutil_weakrand_range_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_weakrand_
    linkageType: ''
    returnType: ev_int32_t
    signature: ev_int32_t evutil_weakrand_range_(struct evutil_weakrand_state *state,
      ev_int32_t top)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_memset_volatile_
      Src: /src/libevent/evutil.c:2782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mem
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2783
      start: 2779
    functionDepth: 0
    functionLinenumber: 2779
    functionLinenumberEnd: 2783
    functionName: evutil_memclear_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_memset_volatile_
    linkageType: ''
    returnType: void
    signature: void evutil_memclear_(void *mem, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/libevent/evutil.c:2794,1
    - Dst: memcmp
      Src: /src/libevent/evutil.c:2797,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2800
      start: 2785
    functionDepth: 0
    functionLinenumber: 2785
    functionLinenumberEnd: 2800
    functionName: evutil_sockaddr_is_loopback_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - ntohl
    - memcmp
    linkageType: ''
    returnType: int
    signature: int evutil_sockaddr_is_loopback_(const struct sockaddr *addr)
  - BBCount: 23
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2825
      start: 2802
    functionDepth: 0
    functionLinenumber: 2802
    functionLinenumberEnd: 2825
    functionName: evutil_hex_char_to_int_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evutil_hex_char_to_int_(char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemDirectory
      Src: /src/libevent/evutil.c:2833,1
    - Dst: _tcslen
      Src: /src/libevent/evutil.c:2834,1
    - Dst: _tcscat
      Src: /src/libevent/evutil.c:2836,1
    - Dst: TEXT
      Src: /src/libevent/evutil.c:2836,1
    - Dst: _tcscat
      Src: /src/libevent/evutil.c:2837,1
    - Dst: LoadLibrary
      Src: /src/libevent/evutil.c:2838,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - library_name
    argTypes:
    - TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2839
      start: 2828
    functionDepth: 0
    functionLinenumber: 2828
    functionLinenumberEnd: 2839
    functionName: evutil_load_windows_system_library_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 1
    functionsReached:
    - _tcscat
    - TEXT
    - LoadLibrary
    - GetSystemDirectory
    - _tcslen
    linkageType: ''
    returnType: HMODULE
    signature: HMODULE evutil_load_windows_system_library_(const TCHAR *library_name)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/libevent/evutil.c:2855,1
    - Dst: socket
      Src: /src/libevent/evutil.c:2862,1
    - Dst: evutil_fast_socket_nonblocking
      Src: /src/libevent/evutil.c:2866,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:2867,1
    - Dst: evutil_fast_socket_closeonexec
      Src: /src/libevent/evutil.c:2872,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:2873,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - domain
    - type
    - protocol
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2878
      start: 2850
    functionDepth: 3
    functionLinenumber: 2850
    functionLinenumberEnd: 2878
    functionName: evutil_socket_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 1
    functionsReached:
    - evutil_fast_socket_nonblocking
    - socket
    - evutil_fast_socket_closeonexec
    - evutil_closesocket
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t evutil_socket_(int domain, int type, int protocol)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: evutil_win_socketpair
      Src: /src/libevent/evutil.c:2898,1
    - Dst: socketpair
      Src: /src/libevent/evutil.c:2900,1
    - Dst: evutil_ersatz_socketpair_
      Src: /src/libevent/evutil.c:2902,1
    - Dst: evutil_fast_socket_nonblocking
      Src: /src/libevent/evutil.c:2908,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:2909,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:2910,1
    - Dst: evutil_fast_socket_nonblocking
      Src: /src/libevent/evutil.c:2913,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:2914,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:2915,1
    - Dst: evutil_fast_socket_closeonexec
      Src: /src/libevent/evutil.c:2922,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:2923,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:2924,1
    - Dst: evutil_fast_socket_closeonexec
      Src: /src/libevent/evutil.c:2927,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:2928,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:2929,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 4
    argNames:
    - family
    - type
    - protocol
    - fd
    argTypes:
    - int
    - int
    - int
    - evutil_socket_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2935
      start: 2880
    functionDepth: 4
    functionLinenumber: 2880
    functionLinenumberEnd: 2935
    functionName: evutil_socketpair
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_ersatz_socketpair_
    - socketpair
    - evutil_closesocket
    - evutil_fast_socket_nonblocking
    - evutil_fast_socket_closeonexec
    - evutil_win_socketpair
    linkageType: ''
    returnType: int
    signature: int evutil_socketpair(int family, int type, int protocol, evutil_socket_t
      fd[2])
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/evutil.c:2968,1
    - Dst: ERR
      Src: /src/libevent/evutil.c:2968,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/evutil.c:2973,1
    - Dst: ERR
      Src: /src/libevent/evutil.c:2973,1
    - Dst: socket
      Src: /src/libevent/evutil.c:2977,1
    - Dst: memset
      Src: /src/libevent/evutil.c:2980,1
    - Dst: htonl
      Src: /src/libevent/evutil.c:2982,1
    - Dst: bind
      Src: /src/libevent/evutil.c:2984,1
    - Dst: listen
      Src: /src/libevent/evutil.c:2987,1
    - Dst: socket
      Src: /src/libevent/evutil.c:2990,1
    - Dst: memset
      Src: /src/libevent/evutil.c:2994,1
    - Dst: getsockname
      Src: /src/libevent/evutil.c:2998,1
    - Dst: connect
      Src: /src/libevent/evutil.c:3002,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/evutil.c:3005,1
    - Dst: EVUTIL_ERR_CONNECT_RETRIABLE
      Src: /src/libevent/evutil.c:3006,1
    - Dst: accept
      Src: /src/libevent/evutil.c:3012,1
    - Dst: EVUTIL_ERR_ACCEPT_RETRIABLE
      Src: /src/libevent/evutil.c:3013,1
    - Dst: getsockname
      Src: /src/libevent/evutil.c:3020,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:3027,1
    - Dst: ERR
      Src: /src/libevent/evutil.c:3034,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/evutil.c:3037,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:3039,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:3041,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:3043,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/evutil.c:3045,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 76
    argCount: 4
    argNames:
    - family
    - type
    - protocol
    - fd
    argTypes:
    - int
    - int
    - int
    - evutil_socket_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3048
      start: 2937
    functionDepth: 1
    functionLinenumber: 2937
    functionLinenumberEnd: 3048
    functionName: evutil_ersatz_socketpair_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 2
    functionsReached:
    - EVUTIL_ERR_CONNECT_RETRIABLE
    - EVUTIL_SET_SOCKET_ERROR
    - getsockname
    - connect
    - EVUTIL_ERR_ACCEPT_RETRIABLE
    - evutil_closesocket
    - accept
    - listen
    - memset
    - socket
    - EVUTIL_SOCKET_ERROR
    - ERR
    - bind
    - evutil_socket_geterror
    - htonl
    linkageType: ''
    returnType: int
    signature: "int evutil_ersatz_socketpair_(int family, int type, int protocol,\n
      \   evutil_socket_t fd[2])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2951
      start: 2950
    functionDepth: 0
    functionLinenumber: 2950
    functionLinenumberEnd: 2951
    functionName: ERR
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2953
      start: 2952
    functionDepth: 0
    functionLinenumber: 2952
    functionLinenumberEnd: 2953
    functionName: ERR
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR(e)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: accept4
      Src: /src/libevent/evutil.c:3064,1
    - Dst: accept
      Src: /src/libevent/evutil.c:3074,1
    - Dst: evutil_fast_socket_closeonexec
      Src: /src/libevent/evutil.c:3079,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:3080,1
    - Dst: evutil_fast_socket_nonblocking
      Src: /src/libevent/evutil.c:3085,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:3086,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 4
    argNames:
    - sockfd
    - addr
    - addrlen
    - flags
    argTypes:
    - evutil_socket_t
    - struct sockaddr*
    - ev_socklen_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3091
      start: 3058
    functionDepth: 3
    functionLinenumber: 3058
    functionLinenumberEnd: 3091
    functionName: evutil_accept4_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_closesocket
    - evutil_fast_socket_nonblocking
    - accept
    - evutil_fast_socket_closeonexec
    - accept4
    linkageType: ''
    returnType: evutil_socket_t
    signature: "evutil_socket_t evutil_accept4_(evutil_socket_t sockfd, struct sockaddr
      *addr,\n    ev_socklen_t *addrlen, int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pipe2
      Src: /src/libevent/evutil.c:3110,1
    - Dst: pipe
      Src: /src/libevent/evutil.c:3114,1
    - Dst: evutil_fast_socket_nonblocking
      Src: /src/libevent/evutil.c:3115,1
    - Dst: evutil_fast_socket_nonblocking
      Src: /src/libevent/evutil.c:3116,1
    - Dst: evutil_fast_socket_closeonexec
      Src: /src/libevent/evutil.c:3117,1
    - Dst: evutil_fast_socket_closeonexec
      Src: /src/libevent/evutil.c:3118,1
    - Dst: close
      Src: /src/libevent/evutil.c:3119,1
    - Dst: close
      Src: /src/libevent/evutil.c:3120,1
    - Dst: event_warn
      Src: /src/libevent/evutil.c:3126,1
    - Dst: evutil_socketpair
      Src: /src/libevent/evutil.c:3135,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3140
      start: 3097
    functionDepth: 5
    functionLinenumber: 3097
    functionLinenumberEnd: 3140
    functionName: evutil_make_internal_pipe_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - close
    - evutil_fast_socket_nonblocking
    - pipe2
    - event_warn
    - evutil_fast_socket_closeonexec
    - evutil_socketpair
    - pipe
    linkageType: ''
    returnType: int
    signature: int evutil_make_internal_pipe_(evutil_socket_t fd[2])
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: eventfd
      Src: /src/libevent/evutil.c:3152,1
    - Dst: eventfd
      Src: /src/libevent/evutil.c:3156,1
    - Dst: evutil_fast_socket_closeonexec
      Src: /src/libevent/evutil.c:3160,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:3161,1
    - Dst: evutil_fast_socket_nonblocking
      Src: /src/libevent/evutil.c:3166,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evutil.c:3167,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - initval
    - flags
    argTypes:
    - unsigned
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3175
      start: 3146
    functionDepth: 3
    functionLinenumber: 3146
    functionLinenumberEnd: 3175
    functionName: evutil_eventfd_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_fast_socket_nonblocking
    - eventfd
    - evutil_fast_socket_closeonexec
    - evutil_closesocket
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t evutil_eventfd_(unsigned initval, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_free_secure_rng_globals_
      Src: /src/libevent/evutil.c:3180,1
    - Dst: evutil_free_sock_err_globals
      Src: /src/libevent/evutil.c:3181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3182
      start: 3177
    functionDepth: 2
    functionLinenumber: 3177
    functionLinenumberEnd: 3182
    functionName: evutil_free_globals_
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_free_sock_err_globals
    - evutil_free_secure_rng_globals_
    linkageType: ''
    returnType: void
    signature: void evutil_free_globals_(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3190
      start: 3189
    functionDepth: 0
    functionLinenumber: 3189
    functionLinenumberEnd: 3190
    functionName: EVENT_KEEPALIVE_FACTOR
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_KEEPALIVE_FACTOR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_snprintf
      Src: /src/libevent/evutil.c:3371,1
    - Dst: strsignal
      Src: /src/libevent/evutil.c:3374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3376
      start: 3367
    functionDepth: 2
    functionLinenumber: 3367
    functionLinenumberEnd: 3376
    functionName: evutil_strsignal
    functionSourceFile: /src/libevent/evutil.c
    functionUses: 0
    functionsReached:
    - evutil_snprintf
    - strsignal
    linkageType: ''
    returnType: char
    signature: char * evutil_strsignal(int sig)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - dst
    - src
    - siz
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 70
    functionName: event_strlcpy_
    functionSourceFile: /src/libevent/strlcpy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t event_strlcpy_(char *dst, const char *src, size_t siz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct event_map_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: hashsocket
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned hashsocket(struct event_map_entry *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - e1
    - e2
    argTypes:
    - struct event_map_entry*
    - struct event_map_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: eqsocket
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int eqsocket(struct event_map_entry *e1, struct event_map_entry *e2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - map
    - ','
    - slot
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: GET_IO_SLOT
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_IO_SLOT(x, map, slot, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - x
    - ','
    - map
    - ','
    - slot
    - ','
    - type
    - ','
    - ctor
    - ','
    - fdinfo_len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 141
    functionName: GET_IO_SLOT_AND_CTOR
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_IO_SLOT_AND_CTOR(x, map, slot, type, ctor, fdinfo_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HT_INIT
      Src: /src/libevent/evmap.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct event_io_map*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: evmap_io_initmap_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - HT_INIT
    linkageType: ''
    returnType: void
    signature: void evmap_io_initmap_(struct event_io_map *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HT_START
      Src: /src/libevent/evmap.c:150,1
    - Dst: HT_NEXT_RMV
      Src: /src/libevent/evmap.c:152,1
    - Dst: mm_free
      Src: /src/libevent/evmap.c:153,1
    - Dst: HT_CLEAR
      Src: /src/libevent/evmap.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct event_io_map*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 156
    functionName: evmap_io_clear_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - HT_CLEAR
    - HT_NEXT_RMV
    - mm_free
    - HT_START
    linkageType: ''
    returnType: void
    signature: void evmap_io_clear_(struct event_io_map *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - map
    - ','
    - slot
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: GET_SIGNAL_SLOT
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_SIGNAL_SLOT(x, map, slot, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - x
    - ','
    - map
    - ','
    - slot
    - ','
    - type
    - ','
    - ctor
    - ','
    - fdinfo_len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 180
    functionName: GET_SIGNAL_SLOT_AND_CTOR
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_SIGNAL_SLOT_AND_CTOR(x, map, slot, type, ctor, fdinfo_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - map
    - ','
    - slot
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: GET_IO_SLOT
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_IO_SLOT(x,map,slot,type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - x
    - ','
    - map
    - ','
    - slot
    - ','
    - type
    - ','
    - ctor
    - ','
    - fdinfo_len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: GET_IO_SLOT_AND_CTOR
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_IO_SLOT_AND_CTOR(x,map,slot,type,ctor,fdinfo_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evmap_signal_initmap_
      Src: /src/libevent/evmap.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct event_io_map*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: evmap_io_initmap_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - evmap_signal_initmap_
    linkageType: ''
    returnType: void
    signature: void evmap_io_initmap_(struct event_io_map* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evmap_signal_clear_
      Src: /src/libevent/evmap.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct event_io_map*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: evmap_io_clear_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - evmap_signal_clear_
    linkageType: ''
    returnType: void
    signature: void evmap_io_clear_(struct event_io_map* ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mm_realloc
      Src: /src/libevent/evmap.c:220,1
    - Dst: memset
      Src: /src/libevent/evmap.c:224,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - map
    - slot
    - msize
    argTypes:
    - struct event_signal_map*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 232
    functionName: evmap_make_space
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - memset
    - mm_realloc
    linkageType: ''
    returnType: int
    signature: int evmap_make_space(struct event_signal_map *map, int slot, int msize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct event_signal_map*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 239
    functionName: evmap_signal_initmap_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evmap_signal_initmap_(struct event_signal_map *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/evmap.c:248,1
    - Dst: mm_free
      Src: /src/libevent/evmap.c:250,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct event_signal_map*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 254
    functionName: evmap_signal_clear_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 1
    functionsReached:
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evmap_signal_clear_(struct event_signal_map *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INIT
      Src: /src/libevent/evmap.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct evmap_io*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 267
    functionName: evmap_io_init
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    linkageType: ''
    returnType: void
    signature: void evmap_io_init(struct evmap_io *entry)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:282,1
    - Dst: evmap_make_space
      Src: /src/libevent/evmap.c:289,1
    - Dst: GET_IO_SLOT_AND_CTOR
      Src: /src/libevent/evmap.c:293,1
    - Dst: EVUTIL_UNLIKELY
      Src: /src/libevent/evmap.c:319,1
    - Dst: event_warnx
      Src: /src/libevent/evmap.c:320,1
    - Dst: EVENT_DEBUG_MODE_IS_ON
      Src: /src/libevent/evmap.c:324,1
    - Dst: LIST_FIRST
      Src: /src/libevent/evmap.c:325,1
    - Dst: event_warnx
      Src: /src/libevent/evmap.c:327,1
    - Dst: struct eventop*::add
      Src: /src/libevent/evmap.c:337,1
    - Dst: LIST_INSERT_HEAD
      Src: /src/libevent/evmap.c:346,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 3
    argNames:
    - base
    - fd
    - ev
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 349
    functionName: evmap_io_add_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - EVUTIL_UNLIKELY
    - EVUTIL_ASSERT
    - GET_IO_SLOT_AND_CTOR
    - EVENT_DEBUG_MODE_IS_ON
    - LIST_FIRST
    - struct eventop*::add
    - evmap_make_space
    - event_warnx
    - LIST_INSERT_HEAD
    linkageType: ''
    returnType: int
    signature: int evmap_io_add_(struct event_base *base, evutil_socket_t fd, struct
      event *ev)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:365,1
    - Dst: GET_IO_SLOT
      Src: /src/libevent/evmap.c:372,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:388,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:393,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:398,1
    - Dst: struct eventop*::del
      Src: /src/libevent/evmap.c:403,1
    - Dst: LIST_REMOVE
      Src: /src/libevent/evmap.c:414,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 3
    argNames:
    - base
    - fd
    - ev
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 417
    functionName: evmap_io_del_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - struct eventop*::del
    - GET_IO_SLOT
    - LIST_REMOVE
    linkageType: ''
    returnType: int
    signature: int evmap_io_del_(struct event_base *base, evutil_socket_t fd, struct
      event *ev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_IO_SLOT
      Src: /src/libevent/evmap.c:430,1
    - Dst: LIST_FOREACH
      Src: /src/libevent/evmap.c:434,1
    - Dst: event_active_nolock_
      Src: /src/libevent/evmap.c:436,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - base
    - fd
    - events
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 438
    functionName: evmap_io_active_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - LIST_FOREACH
    - event_active_nolock_
    - GET_IO_SLOT
    linkageType: ''
    returnType: void
    signature: void evmap_io_active_(struct event_base *base, evutil_socket_t fd,
      short events)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INIT
      Src: /src/libevent/evmap.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct evmap_signal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 446
    functionName: evmap_signal_init
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    linkageType: ''
    returnType: void
    signature: void evmap_signal_init(struct evmap_signal *entry)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evmap_make_space
      Src: /src/libevent/evmap.c:460,1
    - Dst: GET_SIGNAL_SLOT_AND_CTOR
      Src: /src/libevent/evmap.c:464,1
    - Dst: LIST_EMPTY
      Src: /src/libevent/evmap.c:467,1
    - Dst: struct eventop*::add
      Src: /src/libevent/evmap.c:468,1
    - Dst: LIST_INSERT_HEAD
      Src: /src/libevent/evmap.c:473,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - base
    - sig
    - ev
    argTypes:
    - struct event_base*
    - int
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 449
    functionDepth: 2
    functionLinenumber: 449
    functionLinenumberEnd: 476
    functionName: evmap_signal_add_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - struct eventop*::add
    - GET_SIGNAL_SLOT_AND_CTOR
    - evmap_make_space
    - LIST_EMPTY
    - LIST_INSERT_HEAD
    linkageType: ''
    returnType: int
    signature: int evmap_signal_add_(struct event_base *base, int sig, struct event
      *ev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_SIGNAL_SLOT
      Src: /src/libevent/evmap.c:488,1
    - Dst: LIST_REMOVE
      Src: /src/libevent/evmap.c:490,1
    - Dst: LIST_FIRST
      Src: /src/libevent/evmap.c:492,1
    - Dst: struct eventop*::del
      Src: /src/libevent/evmap.c:493,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - base
    - sig
    - ev
    argTypes:
    - struct event_base*
    - int
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 498
    functionName: evmap_signal_del_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - struct eventop*::del
    - GET_SIGNAL_SLOT
    - LIST_FIRST
    - LIST_REMOVE
    linkageType: ''
    returnType: int
    signature: int evmap_signal_del_(struct event_base *base, int sig, struct event
      *ev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_SIGNAL_SLOT
      Src: /src/libevent/evmap.c:509,1
    - Dst: LIST_FOREACH
      Src: /src/libevent/evmap.c:513,1
    - Dst: event_active_nolock_
      Src: /src/libevent/evmap.c:514,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - base
    - sig
    - ncalls
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 515
    functionName: evmap_signal_active_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - LIST_FOREACH
    - GET_SIGNAL_SLOT
    - event_active_nolock_
    linkageType: ''
    returnType: void
    signature: void evmap_signal_active_(struct event_base *base, evutil_socket_t
      sig, int ncalls)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_IO_SLOT
      Src: /src/libevent/evmap.c:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - map
    - fd
    argTypes:
    - struct event_io_map*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 526
    functionName: evmap_io_get_fdinfo_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - GET_IO_SLOT
    linkageType: ''
    returnType: void
    signature: 'void *

      evmap_io_get_fdinfo_(struct event_io_map *map, evutil_socket_t fd)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/libevent/evmap.c:564,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 568
    functionName: HT_FOREACH
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - fn
    linkageType: ''
    returnType: void
    signature: void HT_FOREACH(mapent, event_io_map, iomap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/libevent/evmap.c:597,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - base
    - fn
    - arg
    argTypes:
    - struct event_base*
    - evmap_signal_foreach_signal_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 601
    functionName: evmap_signal_foreach_signal
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - fn
    linkageType: ''
    returnType: int
    signature: "int evmap_signal_foreach_signal(struct event_base *base,\n    evmap_signal_foreach_signal_cb
      fn,\n    void *arg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:615,1
    - Dst: memset
      Src: /src/libevent/evmap.c:625,1
    - Dst: LIST_FIRST
      Src: /src/libevent/evmap.c:627,1
    - Dst: struct eventop*::add
      Src: /src/libevent/evmap.c:630,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 4
    argNames:
    - base
    - fd
    - ctx
    - arg
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - struct evmap_io*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 634
    functionName: evmap_io_reinit_iter_fn
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - memset
    - LIST_FIRST
    - struct eventop*::add
    linkageType: ''
    returnType: int
    signature: "int evmap_io_reinit_iter_fn(struct event_base *base, evutil_socket_t
      fd,\n    struct evmap_io *ctx, void *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LIST_EMPTY
      Src: /src/libevent/evmap.c:645,1
    - Dst: struct eventop*::add
      Src: /src/libevent/evmap.c:646,1
    - Dst: LIST_FIRST
      Src: /src/libevent/evmap.c:647,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - base
    - signum
    - ctx
    - arg
    argTypes:
    - struct event_base*
    - int
    - struct evmap_signal*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 651
    functionName: evmap_signal_reinit_iter_fn
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - LIST_EMPTY
    - LIST_FIRST
    - struct eventop*::add
    linkageType: ''
    returnType: int
    signature: "int evmap_signal_reinit_iter_fn(struct event_base *base,\n    int
      signum, struct evmap_signal *ctx, void *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evmap_io_foreach_fd
      Src: /src/libevent/evmap.c:658,1
    - Dst: evmap_signal_foreach_signal
      Src: /src/libevent/evmap.c:661,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 665
    functionName: evmap_reinit_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - evmap_signal_foreach_signal
    - evmap_io_foreach_fd
    linkageType: ''
    returnType: int
    signature: int evmap_reinit_(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_FIRST
      Src: /src/libevent/evmap.c:672,1
    - Dst: event_del
      Src: /src/libevent/evmap.c:673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dlist
    argTypes:
    - struct event_dlist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 675
    functionName: delete_all_in_dlist
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - event_del
    - LIST_FIRST
    linkageType: ''
    returnType: int
    signature: int delete_all_in_dlist(struct event_dlist *dlist)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: delete_all_in_dlist
      Src: /src/libevent/evmap.c:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - base
    - fd
    - io_info
    - arg
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - struct evmap_io*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 678
    functionDepth: 2
    functionLinenumber: 678
    functionLinenumberEnd: 683
    functionName: evmap_io_delete_all_iter_fn
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - delete_all_in_dlist
    linkageType: ''
    returnType: int
    signature: "int evmap_io_delete_all_iter_fn(struct event_base *base, evutil_socket_t
      fd,\n    struct evmap_io *io_info, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: delete_all_in_dlist
      Src: /src/libevent/evmap.c:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - base
    - signum
    - sig_info
    - arg
    argTypes:
    - struct event_base*
    - int
    - struct evmap_signal*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 686
    functionDepth: 2
    functionLinenumber: 686
    functionLinenumberEnd: 691
    functionName: evmap_signal_delete_all_iter_fn
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - delete_all_in_dlist
    linkageType: ''
    returnType: int
    signature: "int evmap_signal_delete_all_iter_fn(struct event_base *base, int signum,\n
      \   struct evmap_signal *sig_info, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evmap_signal_foreach_signal
      Src: /src/libevent/evmap.c:696,1
    - Dst: evmap_io_foreach_fd
      Src: /src/libevent/evmap.c:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 698
    functionName: evmap_delete_all_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - evmap_io_foreach_fd
    - evmap_signal_foreach_signal
    linkageType: ''
    returnType: void
    signature: void evmap_delete_all_(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - changelist
    argTypes:
    - struct event_changelist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 714
    functionName: event_changelist_init_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_changelist_init_(struct event_changelist *changelist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_SIGNAL_SLOT
      Src: /src/libevent/evmap.c:724,1
    - Dst: GET_IO_SLOT
      Src: /src/libevent/evmap.c:728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - base
    - change
    argTypes:
    - struct event_base*
    - struct event_change*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 732
    functionName: event_change_get_fdinfo
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - GET_SIGNAL_SLOT
    - GET_IO_SLOT
    linkageType: ''
    returnType: struct event_changelist_fdinfo
    signature: "struct event_changelist_fdinfo *\nevent_change_get_fdinfo(struct event_base
      *base,\n    const struct event_change *change)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - base
    - fd
    - io
    - arg
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - struct evmap_io*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 749
    functionName: event_changelist_assert_ok_foreach_iter_fn
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: int
    signature: "int event_changelist_assert_ok_foreach_iter_fn(\n\tstruct event_base
      *base,\n\tevutil_socket_t fd, struct evmap_io *io, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:758,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:762,1
    - Dst: event_change_get_fdinfo
      Src: /src/libevent/evmap.c:763,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:764,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:765,1
    - Dst: evmap_io_foreach_fd
      Src: /src/libevent/evmap.c:768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 752
    functionDepth: 2
    functionLinenumber: 752
    functionLinenumberEnd: 771
    functionName: event_changelist_assert_ok
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - event_change_get_fdinfo
    - evmap_io_foreach_fd
    linkageType: ''
    returnType: void
    signature: void event_changelist_assert_ok(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 775
    functionName: event_changelist_check
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: event_changelist_check(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 777
    functionName: event_changelist_check
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: event_changelist_check(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_changelist_check
      Src: /src/libevent/evmap.c:785,1
    - Dst: event_change_get_fdinfo
      Src: /src/libevent/evmap.c:790,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:791,1
    - Dst: event_changelist_check
      Src: /src/libevent/evmap.c:797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - changelist
    - base
    argTypes:
    - struct event_changelist*
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 779
    functionDepth: 2
    functionLinenumber: 779
    functionLinenumberEnd: 798
    functionName: event_changelist_remove_all_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - event_change_get_fdinfo
    - event_changelist_check
    linkageType: ''
    returnType: void
    signature: "void event_changelist_remove_all_(struct event_changelist *changelist,\n
      \   struct event_base *base)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/evmap.c:804,1
    - Dst: event_changelist_init_
      Src: /src/libevent/evmap.c:805,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - changelist
    argTypes:
    - struct event_changelist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 806
    functionName: event_changelist_freemem_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - mm_free
    - event_changelist_init_
    linkageType: ''
    returnType: void
    signature: void event_changelist_freemem_(struct event_changelist *changelist)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_realloc
      Src: /src/libevent/evmap.c:819,1
    - Dst: EVUTIL_UNLIKELY
      Src: /src/libevent/evmap.c:822,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - changelist
    argTypes:
    - struct event_changelist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 829
    functionName: event_changelist_grow
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - mm_realloc
    - EVUTIL_UNLIKELY
    linkageType: ''
    returnType: int
    signature: int event_changelist_grow(struct event_changelist *changelist)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:845,1
    - Dst: event_changelist_grow
      Src: /src/libevent/evmap.c:848,1
    - Dst: memset
      Src: /src/libevent/evmap.c:856,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:861,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - changelist
    - fd
    - old_events
    - fdinfo
    argTypes:
    - struct event_changelist*
    - evutil_socket_t
    - short
    - struct event_changelist_fdinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 835
    functionDepth: 2
    functionLinenumber: 835
    functionLinenumberEnd: 864
    functionName: event_changelist_get_or_construct
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - memset
    - event_changelist_grow
    linkageType: ''
    returnType: struct event_change
    signature: "struct event_change *\nevent_changelist_get_or_construct(struct event_changelist
      *changelist,\n    evutil_socket_t fd,\n    short old_events,\n    struct event_changelist_fdinfo
      *fdinfo)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: event_changelist_check
      Src: /src/libevent/evmap.c:875,1
    - Dst: event_changelist_get_or_construct
      Src: /src/libevent/evmap.c:877,1
    - Dst: event_changelist_check
      Src: /src/libevent/evmap.c:892,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 866
    functionDepth: 3
    functionLinenumber: 866
    functionLinenumberEnd: 894
    functionName: event_changelist_add_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - event_changelist_get_or_construct
    - event_changelist_check
    linkageType: ''
    returnType: int
    signature: "int event_changelist_add_(struct event_base *base, evutil_socket_t
      fd, short old, short events,\n    void *p)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: event_changelist_check
      Src: /src/libevent/evmap.c:905,1
    - Dst: event_changelist_get_or_construct
      Src: /src/libevent/evmap.c:906,1
    - Dst: event_changelist_check
      Src: /src/libevent/evmap.c:907,1
    - Dst: event_changelist_check
      Src: /src/libevent/evmap.c:945,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 896
    functionDepth: 3
    functionLinenumber: 896
    functionLinenumberEnd: 947
    functionName: event_changelist_del_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - event_changelist_get_or_construct
    - event_changelist_check
    linkageType: ''
    returnType: int
    signature: "int event_changelist_del_(struct event_base *base, evutil_socket_t
      fd, short old, short events,\n    void *p)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT_LIST_OK
      Src: /src/libevent/evmap.c:961,1
    - Dst: LIST_FOREACH
      Src: /src/libevent/evmap.c:963,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:964,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:965,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:966,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:967,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:976,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:977,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:978,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - base
    - fd
    - io_info
    - arg
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - struct evmap_io*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 952
    functionDepth: 1
    functionLinenumber: 952
    functionLinenumberEnd: 981
    functionName: evmap_io_check_integrity_fn
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - EVUTIL_ASSERT_LIST_OK
    - LIST_FOREACH
    linkageType: ''
    returnType: int
    signature: "int evmap_io_check_integrity_fn(struct event_base *base, evutil_socket_t
      fd,\n    struct evmap_io *io_info, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT_LIST_OK
      Src: /src/libevent/evmap.c:991,1
    - Dst: LIST_FOREACH
      Src: /src/libevent/evmap.c:993,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:994,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:995,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:996,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evmap.c:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - base
    - signum
    - sig_info
    - arg
    argTypes:
    - struct event_base*
    - int
    - struct evmap_signal*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 1000
    functionName: evmap_signal_check_integrity_fn
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - EVUTIL_ASSERT_LIST_OK
    - LIST_FOREACH
    linkageType: ''
    returnType: int
    signature: "int evmap_signal_check_integrity_fn(struct event_base *base,\n    int
      signum, struct evmap_signal *sig_info, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evmap_io_foreach_fd
      Src: /src/libevent/evmap.c:1005,1
    - Dst: evmap_signal_foreach_signal
      Src: /src/libevent/evmap.c:1006,1
    - Dst: event_changelist_assert_ok
      Src: /src/libevent/evmap.c:1009,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 1002
    functionDepth: 3
    functionLinenumber: 1002
    functionLinenumberEnd: 1010
    functionName: evmap_check_integrity_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - event_changelist_assert_ok
    - evmap_signal_foreach_signal
    - evmap_io_foreach_fd
    linkageType: ''
    returnType: void
    signature: void evmap_check_integrity_(struct event_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_FOREACH
      Src: /src/libevent/evmap.c:1028,1
    - Dst: struct evmap_foreach_event_helper*::fn
      Src: /src/libevent/evmap.c:1029,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - base
    - fd
    - io_info
    - arg
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - struct evmap_io*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1033
    functionName: evmap_io_foreach_event_fn
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - struct evmap_foreach_event_helper*::fn
    - LIST_FOREACH
    linkageType: ''
    returnType: int
    signature: "int evmap_io_foreach_event_fn(struct event_base *base, evutil_socket_t
      fd,\n    struct evmap_io *io_info, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_FOREACH
      Src: /src/libevent/evmap.c:1044,1
    - Dst: struct evmap_foreach_event_helper*::fn
      Src: /src/libevent/evmap.c:1045,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - base
    - signum
    - sig_info
    - arg
    argTypes:
    - struct event_base*
    - int
    - struct evmap_signal*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1037
    functionDepth: 0
    functionLinenumber: 1037
    functionLinenumberEnd: 1049
    functionName: evmap_signal_foreach_event_fn
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - struct evmap_foreach_event_helper*::fn
    - LIST_FOREACH
    linkageType: ''
    returnType: int
    signature: "int evmap_signal_foreach_event_fn(struct event_base *base, int signum,\n
      \   struct evmap_signal *sig_info, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evmap_io_foreach_fd
      Src: /src/libevent/evmap.c:1059,1
    - Dst: evmap_signal_foreach_signal
      Src: /src/libevent/evmap.c:1061,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - base
    - fn
    - arg
    argTypes:
    - struct event_base*
    - event_base_foreach_event_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1062
    functionName: evmap_foreach_event_
    functionSourceFile: /src/libevent/evmap.c
    functionUses: 0
    functionsReached:
    - evmap_signal_foreach_signal
    - evmap_io_foreach_fd
    linkageType: ''
    returnType: int
    signature: "int evmap_foreach_event_(struct event_base *base,\n    event_base_foreach_event_cb
      fn, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: sigfd_init_
    functionSourceFile: /src/libevent/evsignal-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sigfd_init_(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: EV_CHECK_FMT
    functionSourceFile: /src/libevent/log-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EV_CHECK_FMT(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: event_debug_get_logging_mask_
    functionSourceFile: /src/libevent/log-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: event_debug_get_logging_mask_()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: event_debug_get_logging_mask_
    functionSourceFile: /src/libevent/log-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: event_debug_get_logging_mask_()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: event_debug
    functionSourceFile: /src/libevent/log-internal.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: event_debug(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: event_debug
    functionSourceFile: /src/libevent/log-internal.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: event_debug(x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/ws.c:97,1
    - Dst: bufferevent_free
      Src: /src/libevent/ws.c:102,1
    - Dst: evbuffer_free
      Src: /src/libevent/ws.c:105,1
    - Dst: mm_free
      Src: /src/libevent/ws.c:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - evws
    argTypes:
    - struct evws_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 109
    functionName: evws_connection_free
    functionSourceFile: /src/libevent/ws.c
    functionUses: 1
    functionsReached:
    - evbuffer_free
    - bufferevent_free
    - mm_free
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void evws_connection_free(struct evws_connection *evws)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - encoded
    - string
    - len
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 144
    functionName: Base64encode
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Base64encode(char *encoded, const char *string, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/libevent/ws.c:152,1
    - Dst: builtin_SHA1
      Src: /src/libevent/ws.c:154,1
    - Dst: strlen
      Src: /src/libevent/ws.c:154,1
    - Dst: Base64encode
      Src: /src/libevent/ws.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ws_key
    - out
    argTypes:
    - char*
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 157
    functionName: ws_gen_accept_key
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached:
    - strlen
    - Base64encode
    - snprintf
    - builtin_SHA1
    linkageType: ''
    returnType: char
    signature: 'char *

      ws_gen_accept_key(const char *ws_key, char out[32])'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/ws.c:162,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/ws.c:162,1
    - Dst: evws_connection_free
      Src: /src/libevent/ws.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: close_after_write_cb
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached:
    - evws_connection_free
    - bufferevent_get_output
    - evbuffer_get_length
    linkageType: ''
    returnType: void
    signature: void close_after_write_cb(struct bufferevent *bev, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evws_connection_free
      Src: /src/libevent/ws.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bev
    - what
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: close_event_cb
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached:
    - evws_connection_free
    linkageType: ''
    returnType: void
    signature: void close_event_cb(struct bufferevent *bev, short what, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/libevent/ws.c:185,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/ws.c:186,1
    - Dst: evbuffer_add
      Src: /src/libevent/ws.c:187,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/ws.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - evws
    - reason
    argTypes:
    - struct evws_connection*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 192
    functionName: evws_close
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached:
    - bufferevent_setcb
    - bufferevent_get_output
    - evbuffer_add
    - htons
    linkageType: ''
    returnType: void
    signature: void evws_close(struct evws_connection *evws, uint16_t reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evws_close
      Src: /src/libevent/ws.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - evws
    argTypes:
    - struct evws_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: evws_force_disconnect_
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached:
    - evws_close
    linkageType: ''
    returnType: void
    signature: void evws_force_disconnect_(struct evws_connection *evws)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libevent/ws.c:232,1
    - Dst: ntohs
      Src: /src/libevent/ws.c:233,1
    - Dst: event_warn
      Src: /src/libevent/ws.c:248,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 4
    argNames:
    - in_buffer
    - buf_len
    - payload_ptr
    - out_len
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 291
    functionName: get_ws_frame
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached:
    - ntohs
    - event_warn
    - memcpy
    linkageType: ''
    returnType: enum WebSocketFrameType
    signature: "enum WebSocketFrameType get_ws_frame(unsigned char *in_buffer, size_t
      buf_len,\n\tunsigned char **payload_ptr, size_t *out_len)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/ws.c:301,1
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/ws.c:303,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/ws.c:304,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/ws.c:305,1
    - Dst: get_ws_frame
      Src: /src/libevent/ws.c:310,1
    - Dst: evbuffer_drain
      Src: /src/libevent/ws.c:316,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/ws.c:317,1
    - Dst: evbuffer_add
      Src: /src/libevent/ws.c:325,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/ws.c:327,1
    - Dst: struct evws_connection*::cb
      Src: /src/libevent/ws.c:329,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/ws.c:330,1
    - Dst: evbuffer_free
      Src: /src/libevent/ws.c:331,1
    - Dst: struct evws_connection*::cb
      Src: /src/libevent/ws.c:334,1
    - Dst: evbuffer_new
      Src: /src/libevent/ws.c:341,1
    - Dst: evbuffer_remove_buffer
      Src: /src/libevent/ws.c:343,1
    - Dst: evws_force_disconnect_
      Src: /src/libevent/ws.c:347,1
    - Dst: event_warn
      Src: /src/libevent/ws.c:354,1
    - Dst: evws_force_disconnect_
      Src: /src/libevent/ws.c:355,1
    - Dst: evbuffer_drain
      Src: /src/libevent/ws.c:357,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/ws.c:361,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 2
    argNames:
    - bufev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 362
    functionName: ws_evhttp_read_cb
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached:
    - bufferevent_incref_and_lock_
    - evbuffer_add
    - evbuffer_remove_buffer
    - bufferevent_get_input
    - evws_force_disconnect_
    - evbuffer_pullup
    - struct evws_connection*::cb
    - evbuffer_free
    - event_warn
    - bufferevent_decref_and_unlock_
    - evbuffer_get_length
    - evbuffer_new
    - evbuffer_drain
    - get_ws_frame
    linkageType: ''
    returnType: void
    signature: void ws_evhttp_read_cb(struct bufferevent *bufev, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close_after_write_cb
      Src: /src/libevent/ws.c:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bufev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 371
    functionName: ws_evhttp_error_cb
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached:
    - close_after_write_cb
    linkageType: ''
    returnType: void
    signature: void ws_evhttp_error_cb(struct bufferevent *bufev, short what, void
      *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/ws.c:383,1
    - Dst: evhttp_find_header
      Src: /src/libevent/ws.c:384,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/ws.c:385,1
    - Dst: evhttp_find_header
      Src: /src/libevent/ws.c:388,1
    - Dst: evutil_ascii_strcasestr
      Src: /src/libevent/ws.c:389,1
    - Dst: evhttp_find_header
      Src: /src/libevent/ws.c:392,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/ws.c:396,1
    - Dst: evhttp_add_header
      Src: /src/libevent/ws.c:397,1
    - Dst: evhttp_add_header
      Src: /src/libevent/ws.c:398,1
    - Dst: evhttp_add_header
      Src: /src/libevent/ws.c:400,1
    - Dst: ws_gen_accept_key
      Src: /src/libevent/ws.c:401,1
    - Dst: evhttp_find_header
      Src: /src/libevent/ws.c:403,1
    - Dst: evhttp_add_header
      Src: /src/libevent/ws.c:405,1
    - Dst: mm_calloc
      Src: /src/libevent/ws.c:407,1
    - Dst: event_warn
      Src: /src/libevent/ws.c:408,1
    - Dst: evhttp_request_get_connection
      Src: /src/libevent/ws.c:415,1
    - Dst: evhttp_start_ws_
      Src: /src/libevent/ws.c:418,1
    - Dst: bufferevent_enable_locking_
      Src: /src/libevent/ws.c:424,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/ws.c:428,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/ws.c:431,1
    - Dst: evws_connection_free
      Src: /src/libevent/ws.c:438,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/ws.c:440,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 4
    argNames:
    - req
    - cb
    - arg
    - options
    argTypes:
    - struct evhttp_request*
    - ws_on_msg_cb
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 373
    functionDepth: 6
    functionLinenumber: 373
    functionLinenumberEnd: 442
    functionName: evws_new_session
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached:
    - evutil_ascii_strcasecmp
    - evhttp_start_ws_
    - evutil_ascii_strcasestr
    - bufferevent_enable_locking_
    - evhttp_send_reply
    - mm_calloc
    - evhttp_request_get_input_headers
    - evhttp_add_header
    - event_warn
    - evhttp_request_get_connection
    - bufferevent_setcb
    - evws_connection_free
    - ws_gen_accept_key
    - evhttp_request_get_output_headers
    - evhttp_find_header
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: struct evws_connection
    signature: "struct evws_connection *\nevws_new_session(\n\tstruct evhttp_request
      *req, ws_on_msg_cb cb, void *arg, int options)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_add
      Src: /src/libevent/ws.c:467,1
    - Dst: evbuffer_add
      Src: /src/libevent/ws.c:468,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - output
    - frame_type
    - msg
    - len
    argTypes:
    - struct evbuffer*
    - enum WebSocketFrameType
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 469
    functionName: make_ws_frame
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    linkageType: ''
    returnType: void
    signature: "void make_ws_frame(struct evbuffer *output, enum WebSocketFrameType
      frame_type,\n\tunsigned char *msg, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_lock
      Src: /src/libevent/ws.c:477,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/ws.c:478,1
    - Dst: make_ws_frame
      Src: /src/libevent/ws.c:479,1
    - Dst: bufferevent_unlock
      Src: /src/libevent/ws.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - evws
    - frame_type
    - packet_str
    - str_len
    argTypes:
    - struct evws_connection*
    - enum WebSocketFrameType
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 481
    functionName: evws_send
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached:
    - make_ws_frame
    - bufferevent_unlock
    - bufferevent_get_output
    - bufferevent_lock
    linkageType: ''
    returnType: void
    signature: "void evws_send(struct evws_connection *evws, enum WebSocketFrameType
      frame_type,\n\tconst char *packet_str, size_t str_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evws_send
      Src: /src/libevent/ws.c:486,1
    - Dst: strlen
      Src: /src/libevent/ws.c:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - evws
    - packet_str
    argTypes:
    - struct evws_connection*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 483
    functionDepth: 3
    functionLinenumber: 483
    functionLinenumberEnd: 487
    functionName: evws_send_text
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached:
    - strlen
    - evws_send
    linkageType: ''
    returnType: void
    signature: void evws_send_text(struct evws_connection *evws, const char *packet_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evws_send
      Src: /src/libevent/ws.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - evws
    - packet_data
    - packet_len
    argTypes:
    - struct evws_connection*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 489
    functionDepth: 3
    functionLinenumber: 489
    functionLinenumberEnd: 494
    functionName: evws_send_binary
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached:
    - evws_send
    linkageType: ''
    returnType: void
    signature: "void evws_send_binary(\n\tstruct evws_connection *evws, const char
      *packet_data, size_t packet_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - evws
    - cb
    - cbarg
    argTypes:
    - struct evws_connection*
    - ws_on_close_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 502
    functionName: evws_connection_set_closecb
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evws_connection_set_closecb(\n\tstruct evws_connection *evws,
      ws_on_close_cb cb, void *cbarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - evws
    argTypes:
    - struct evws_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 508
    functionName: evws_connection_get_bufferevent
    functionSourceFile: /src/libevent/ws.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct bufferevent
    signature: 'struct bufferevent *

      evws_connection_get_bufferevent(struct evws_connection *evws)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - listener
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: LOCK
    functionSourceFile: /src/libevent/listener.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCK(listener)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - listener
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: UNLOCK
    functionSourceFile: /src/libevent/listener.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLOCK(listener)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOCK
      Src: /src/libevent/listener.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - listener
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: listener_incref_and_lock
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - LOCK
    linkageType: ''
    returnType: void
    signature: void listener_incref_and_lock(struct evconnlistener *listener)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct evconnlistener*::ops::destroy
      Src: /src/libevent/listener.c:140,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:141,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/listener.c:142,1
    - Dst: mm_free
      Src: /src/libevent/listener.c:143,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - listener
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 149
    functionName: listener_decref_and_unlock
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - UNLOCK
    - EVTHREAD_FREE_LOCK
    - struct evconnlistener*::ops::destroy
    - mm_free
    linkageType: ''
    returnType: int
    signature: int listener_decref_and_unlock(struct evconnlistener *listener)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: event_base_get_iocp_
      Src: /src/libevent/listener.c:170,1
    - Dst: event_get_win32_extension_fns_
      Src: /src/libevent/listener.c:172,1
    - Dst: evconnlistener_new_async
      Src: /src/libevent/listener.c:174,1
    - Dst: listen
      Src: /src/libevent/listener.c:180,1
    - Dst: listen
      Src: /src/libevent/listener.c:183,1
    - Dst: mm_calloc
      Src: /src/libevent/listener.c:187,1
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/listener.c:204,1
    - Dst: event_assign
      Src: /src/libevent/listener.c:207,1
    - Dst: evconnlistener_enable
      Src: /src/libevent/listener.c:211,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 6
    argNames:
    - base
    - cb
    - ptr
    - flags
    - backlog
    - fd
    argTypes:
    - struct event_base*
    - evconnlistener_cb
    - void*
    - unsigned
    - int
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 214
    functionName: evconnlistener_new
    functionSourceFile: /src/libevent/listener.c
    functionUses: 1
    functionsReached:
    - EVTHREAD_ALLOC_LOCK
    - mm_calloc
    - evconnlistener_enable
    - listen
    - event_get_win32_extension_fns_
    - event_assign
    - event_base_get_iocp_
    - evconnlistener_new_async
    linkageType: ''
    returnType: struct evconnlistener
    signature: "struct evconnlistener *\nevconnlistener_new(struct event_base *base,\n
      \   evconnlistener_cb cb, void *ptr, unsigned flags, int backlog,\n    evutil_socket_t
      fd)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: evutil_socket_
      Src: /src/libevent/listener.c:232,1
    - Dst: evutil_set_tcp_keepalive
      Src: /src/libevent/listener.c:242,1
    - Dst: evutil_closesocket
      Src: /src/libevent/listener.c:254,1
    - Dst: evutil_make_listen_socket_reuseable
      Src: /src/libevent/listener.c:257,1
    - Dst: evutil_closesocket
      Src: /src/libevent/listener.c:269,1
    - Dst: evutil_make_listen_socket_reuseable_port
      Src: /src/libevent/listener.c:272,1
    - Dst: evutil_make_tcp_listen_socket_deferred
      Src: /src/libevent/listener.c:277,1
    - Dst: evutil_make_listen_socket_ipv6only
      Src: /src/libevent/listener.c:282,1
    - Dst: evutil_make_listen_socket_not_ipv6only
      Src: /src/libevent/listener.c:287,1
    - Dst: bind
      Src: /src/libevent/listener.c:292,1
    - Dst: evconnlistener_new
      Src: /src/libevent/listener.c:296,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/listener.c:303,1
    - Dst: evutil_closesocket
      Src: /src/libevent/listener.c:304,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/listener.c:306,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 63
    argCount: 7
    argNames:
    - base
    - cb
    - ptr
    - flags
    - backlog
    - sa
    - socklen
    argTypes:
    - struct event_base*
    - evconnlistener_cb
    - void*
    - unsigned
    - int
    - struct sockaddr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 216
    functionDepth: 4
    functionLinenumber: 216
    functionLinenumberEnd: 309
    functionName: evconnlistener_new_bind
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - evutil_set_tcp_keepalive
    - evutil_make_listen_socket_not_ipv6only
    - evutil_make_listen_socket_ipv6only
    - evutil_make_listen_socket_reuseable_port
    - EVUTIL_SET_SOCKET_ERROR
    - evutil_closesocket
    - evutil_socket_
    - EVUTIL_SOCKET_ERROR
    - bind
    - evconnlistener_new
    - evutil_make_listen_socket_reuseable
    - evutil_make_tcp_listen_socket_deferred
    linkageType: ''
    returnType: struct evconnlistener
    signature: "struct evconnlistener *\nevconnlistener_new_bind(struct event_base
      *base, evconnlistener_cb cb,\n    void *ptr, unsigned flags, int backlog, const
      struct sockaddr *sa,\n    int socklen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOCK
      Src: /src/libevent/listener.c:314,1
    - Dst: struct evconnlistener*::ops::shutdown
      Src: /src/libevent/listener.c:318,1
    - Dst: listener_decref_and_unlock
      Src: /src/libevent/listener.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 320
    functionName: evconnlistener_free
    functionSourceFile: /src/libevent/listener.c
    functionUses: 3
    functionsReached:
    - LOCK
    - listener_decref_and_unlock
    - struct evconnlistener*::ops::shutdown
    linkageType: ''
    returnType: void
    signature: void evconnlistener_free(struct evconnlistener *lev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/listener.c:326,1
    - Dst: event_del
      Src: /src/libevent/listener.c:328,1
    - Dst: evutil_closesocket
      Src: /src/libevent/listener.c:330,1
    - Dst: event_get_fd
      Src: /src/libevent/listener.c:330,1
    - Dst: event_debug_unassign
      Src: /src/libevent/listener.c:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 332
    functionName: event_listener_destroy
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - event_debug_unassign
    - event_del
    - evutil_closesocket
    - event_get_fd
    - EVUTIL_UPCAST
    linkageType: ''
    returnType: void
    signature: void event_listener_destroy(struct evconnlistener *lev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOCK
      Src: /src/libevent/listener.c:338,1
    - Dst: struct evconnlistener*::ops::enable
      Src: /src/libevent/listener.c:341,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 346
    functionName: evconnlistener_enable
    functionSourceFile: /src/libevent/listener.c
    functionUses: 1
    functionsReached:
    - LOCK
    - struct evconnlistener*::ops::enable
    - UNLOCK
    linkageType: ''
    returnType: int
    signature: int evconnlistener_enable(struct evconnlistener *lev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOCK
      Src: /src/libevent/listener.c:352,1
    - Dst: struct evconnlistener*::ops::disable
      Src: /src/libevent/listener.c:354,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 357
    functionName: evconnlistener_disable
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - LOCK
    - struct evconnlistener*::ops::disable
    - UNLOCK
    linkageType: ''
    returnType: int
    signature: int evconnlistener_disable(struct evconnlistener *lev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/listener.c:363,1
    - Dst: event_add
      Src: /src/libevent/listener.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 365
    functionName: event_listener_enable
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - event_add
    - EVUTIL_UPCAST
    linkageType: ''
    returnType: int
    signature: int event_listener_enable(struct evconnlistener *lev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/listener.c:371,1
    - Dst: event_del
      Src: /src/libevent/listener.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 373
    functionName: event_listener_disable
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - event_del
    - EVUTIL_UPCAST
    linkageType: ''
    returnType: int
    signature: int event_listener_disable(struct evconnlistener *lev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOCK
      Src: /src/libevent/listener.c:379,1
    - Dst: struct evconnlistener*::ops::getfd
      Src: /src/libevent/listener.c:380,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 383
    functionName: evconnlistener_get_fd
    functionSourceFile: /src/libevent/listener.c
    functionUses: 1
    functionsReached:
    - LOCK
    - UNLOCK
    - struct evconnlistener*::ops::getfd
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t evconnlistener_get_fd(struct evconnlistener *lev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/listener.c:389,1
    - Dst: event_get_fd
      Src: /src/libevent/listener.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 391
    functionName: event_listener_getfd
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - event_get_fd
    - EVUTIL_UPCAST
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t event_listener_getfd(struct evconnlistener *lev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOCK
      Src: /src/libevent/listener.c:397,1
    - Dst: struct evconnlistener*::ops::getbase
      Src: /src/libevent/listener.c:398,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 401
    functionName: evconnlistener_get_base
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - LOCK
    - struct evconnlistener*::ops::getbase
    - UNLOCK
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      evconnlistener_get_base(struct evconnlistener *lev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/listener.c:407,1
    - Dst: event_get_base
      Src: /src/libevent/listener.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 409
    functionName: event_listener_getbase
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - event_get_base
    - EVUTIL_UPCAST
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      event_listener_getbase(struct evconnlistener *lev)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOCK
      Src: /src/libevent/listener.c:416,1
    - Dst: evconnlistener_enable
      Src: /src/libevent/listener.c:422,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:423,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - lev
    - cb
    - arg
    argTypes:
    - struct evconnlistener*
    - evconnlistener_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 424
    functionName: evconnlistener_set_cb
    functionSourceFile: /src/libevent/listener.c
    functionUses: 1
    functionsReached:
    - LOCK
    - evconnlistener_enable
    - UNLOCK
    linkageType: ''
    returnType: void
    signature: "void evconnlistener_set_cb(struct evconnlistener *lev,\n    evconnlistener_cb
      cb, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOCK
      Src: /src/libevent/listener.c:430,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - lev
    - errorcb
    argTypes:
    - struct evconnlistener*
    - evconnlistener_errorcb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 433
    functionName: evconnlistener_set_error_cb
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - LOCK
    - UNLOCK
    linkageType: ''
    returnType: void
    signature: "void evconnlistener_set_error_cb(struct evconnlistener *lev,\n    evconnlistener_errorcb
      errorcb)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: LOCK
      Src: /src/libevent/listener.c:443,1
    - Dst: evutil_accept4_
      Src: /src/libevent/listener.c:447,1
    - Dst: evutil_closesocket
      Src: /src/libevent/listener.c:453,1
    - Dst: evutil_closesocket
      Src: /src/libevent/listener.c:458,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:459,1
    - Dst: cb
      Src: /src/libevent/listener.c:465,1
    - Dst: listener_decref_and_unlock
      Src: /src/libevent/listener.c:468,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/listener.c:469,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:475,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/listener.c:479,1
    - Dst: EVUTIL_ERR_ACCEPT_RETRIABLE
      Src: /src/libevent/listener.c:480,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:481,1
    - Dst: errorcb
      Src: /src/libevent/listener.c:488,1
    - Dst: listener_decref_and_unlock
      Src: /src/libevent/listener.c:489,1
    - Dst: event_sock_warn
      Src: /src/libevent/listener.c:491,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:492,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 3
    argNames:
    - fd
    - what
    - p
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 435
    functionDepth: 4
    functionLinenumber: 435
    functionLinenumberEnd: 494
    functionName: listener_read_cb
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - LOCK
    - EVUTIL_ERR_ACCEPT_RETRIABLE
    - evutil_closesocket
    - cb
    - UNLOCK
    - EVUTIL_ASSERT
    - listener_decref_and_unlock
    - evutil_socket_geterror
    - evutil_accept4_
    - event_sock_warn
    - errorcb
    linkageType: ''
    returnType: void
    signature: void listener_read_cb(evutil_socket_t fd, short what, void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_add_virtual_
      Src: /src/libevent/listener.c:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener_iocp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 522
    functionName: iocp_listener_event_add
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - event_base_add_virtual_
    linkageType: ''
    returnType: void
    signature: void iocp_listener_event_add(struct evconnlistener_iocp *lev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_del_virtual_
      Src: /src/libevent/listener.c:531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener_iocp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 532
    functionName: iocp_listener_event_del
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - event_base_del_virtual_
    linkageType: ''
    returnType: void
    signature: void iocp_listener_event_del(struct evconnlistener_iocp *lev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evutil_check_working_afunix_
      Src: /src/libevent/listener.c:546,1
    - Dst: mm_calloc
      Src: /src/libevent/listener.c:553,1
    - Dst: event_overlapped_init_
      Src: /src/libevent/listener.c:557,1
    - Dst: event_deferred_cb_init_
      Src: /src/libevent/listener.c:563,1
    - Dst: event_base_get_npriorities
      Src: /src/libevent/listener.c:564,1
    - Dst: InitializeCriticalSectionAndSpinCount
      Src: /src/libevent/listener.c:567,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - lev
    - family
    argTypes:
    - struct evconnlistener_iocp*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 570
    functionName: new_accepting_socket
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - event_overlapped_init_
    - event_base_get_npriorities
    - mm_calloc
    - InitializeCriticalSectionAndSpinCount
    - evutil_check_working_afunix_
    - event_deferred_cb_init_
    linkageType: ''
    returnType: struct accepting_socket
    signature: 'struct accepting_socket *

      new_accepting_socket(struct evconnlistener_iocp *lev, int family)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: closesocket
      Src: /src/libevent/listener.c:577,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/listener.c:579,1
    - Dst: DeleteCriticalSection
      Src: /src/libevent/listener.c:580,1
    - Dst: mm_free
      Src: /src/libevent/listener.c:581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - as
    argTypes:
    - struct accepting_socket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 582
    functionName: free_and_unlock_accepting_socket
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - LeaveCriticalSection
    - closesocket
    - mm_free
    - DeleteCriticalSection
    linkageType: ''
    returnType: void
    signature: void free_and_unlock_accepting_socket(struct accepting_socket *as)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: event_get_win32_extension_fns_
      Src: /src/libevent/listener.c:588,1
    - Dst: socket
      Src: /src/libevent/listener.c:590,1
    - Dst: WSAGetLastError
      Src: /src/libevent/listener.c:597,1
    - Dst: setsockopt
      Src: /src/libevent/listener.c:603,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/listener.c:607,1
    - Dst: event_iocp_port_associate_
      Src: /src/libevent/listener.c:609,1
    - Dst: closesocket
      Src: /src/libevent/listener.c:610,1
    - Dst: struct win32_extension_fns*::AcceptEx
      Src: /src/libevent/listener.c:616,1
    - Dst: accepted_socket_cb
      Src: /src/libevent/listener.c:620,1
    - Dst: WSAGetLastError
      Src: /src/libevent/listener.c:622,1
    - Dst: event_deferred_cb_schedule_
      Src: /src/libevent/listener.c:632,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - as
    argTypes:
    - struct accepting_socket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 636
    functionName: start_accepting
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - event_iocp_port_associate_
    - event_deferred_cb_schedule_
    - setsockopt
    - struct win32_extension_fns*::AcceptEx
    - event_get_win32_extension_fns_
    - socket
    - closesocket
    - evutil_make_socket_nonblocking
    - accepted_socket_cb
    linkageType: ''
    returnType: int
    signature: int start_accepting(struct accepting_socket *as)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: closesocket
      Src: /src/libevent/listener.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - as
    argTypes:
    - struct accepting_socket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 645
    functionName: stop_accepting
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - closesocket
    linkageType: ''
    returnType: void
    signature: void stop_accepting(struct accepting_socket *as)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: event_get_win32_extension_fns_
      Src: /src/libevent/listener.c:654,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/listener.c:662,1
    - Dst: LOCK
      Src: /src/libevent/listener.c:664,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/listener.c:665,1
    - Dst: free_and_unlock_accepting_socket
      Src: /src/libevent/listener.c:667,1
    - Dst: listener_decref_and_unlock
      Src: /src/libevent/listener.c:668,1
    - Dst: struct win32_extension_fns*::GetAcceptExSockaddrs
      Src: /src/libevent/listener.c:679,1
    - Dst: setsockopt
      Src: /src/libevent/listener.c:690,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/listener.c:695,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:696,1
    - Dst: WSASetLastError
      Src: /src/libevent/listener.c:699,1
    - Dst: errorcb
      Src: /src/libevent/listener.c:700,1
    - Dst: cb
      Src: /src/libevent/listener.c:702,1
    - Dst: LOCK
      Src: /src/libevent/listener.c:705,1
    - Dst: listener_decref_and_unlock
      Src: /src/libevent/listener.c:706,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/listener.c:709,1
    - Dst: start_accepting
      Src: /src/libevent/listener.c:710,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/listener.c:711,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 2
    argNames:
    - dcb
    - arg
    argTypes:
    - struct event_callback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 647
    functionDepth: 3
    functionLinenumber: 647
    functionLinenumberEnd: 712
    functionName: accepted_socket_invoke_user_cb
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - LOCK
    - struct win32_extension_fns*::GetAcceptExSockaddrs
    - setsockopt
    - EVUTIL_ASSERT
    - free_and_unlock_accepting_socket
    - UNLOCK
    - start_accepting
    - listener_decref_and_unlock
    - event_get_win32_extension_fns_
    - LeaveCriticalSection
    - WSASetLastError
    - EnterCriticalSection
    - cb
    - errorcb
    linkageType: ''
    returnType: void
    signature: void accepted_socket_invoke_user_cb(struct event_callback *dcb, void
      *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/listener.c:718,1
    - Dst: LOCK
      Src: /src/libevent/listener.c:720,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/listener.c:721,1
    - Dst: event_deferred_cb_schedule_
      Src: /src/libevent/listener.c:724,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/listener.c:727,1
    - Dst: free_and_unlock_accepting_socket
      Src: /src/libevent/listener.c:730,1
    - Dst: listener_decref_and_unlock
      Src: /src/libevent/listener.c:731,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/listener.c:735,1
    - Dst: event_sock_warn
      Src: /src/libevent/listener.c:740,1
    - Dst: WSAGetOverlappedResult
      Src: /src/libevent/listener.c:741,1
    - Dst: WSAGetLastError
      Src: /src/libevent/listener.c:747,1
    - Dst: event_deferred_cb_schedule_
      Src: /src/libevent/listener.c:749,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/listener.c:752,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:754,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - o
    - key
    - n
    - ok
    argTypes:
    - struct event_overlapped*
    - ev_uintptr_t
    - ev_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 714
    functionDepth: 2
    functionLinenumber: 714
    functionLinenumberEnd: 755
    functionName: accepted_socket_cb
    functionSourceFile: /src/libevent/listener.c
    functionUses: 1
    functionsReached:
    - LOCK
    - WSAGetLastError
    - event_deferred_cb_schedule_
    - free_and_unlock_accepting_socket
    - UNLOCK
    - listener_decref_and_unlock
    - LeaveCriticalSection
    - EnterCriticalSection
    - event_sock_warn
    - EVUTIL_UPCAST
    - WSAGetOverlappedResult
    linkageType: ''
    returnType: void
    signature: void accepted_socket_cb(struct event_overlapped *o, ev_uintptr_t key,
      ev_ssize_t n, int ok)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/listener.c:762,1
    - Dst: LOCK
      Src: /src/libevent/listener.c:764,1
    - Dst: iocp_listener_event_add
      Src: /src/libevent/listener.c:765,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/listener.c:770,1
    - Dst: start_accepting
      Src: /src/libevent/listener.c:772,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/listener.c:773,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:775,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 757
    functionDepth: 3
    functionLinenumber: 757
    functionLinenumberEnd: 777
    functionName: iocp_listener_enable
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - LOCK
    - iocp_listener_event_add
    - UNLOCK
    - start_accepting
    - LeaveCriticalSection
    - EnterCriticalSection
    - EVUTIL_UPCAST
    linkageType: ''
    returnType: int
    signature: int iocp_listener_enable(struct evconnlistener *lev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/listener.c:784,1
    - Dst: LOCK
      Src: /src/libevent/listener.c:786,1
    - Dst: iocp_listener_event_del
      Src: /src/libevent/listener.c:787,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/listener.c:792,1
    - Dst: stop_accepting
      Src: /src/libevent/listener.c:796,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/listener.c:798,1
    - Dst: evutil_closesocket
      Src: /src/libevent/listener.c:802,1
    - Dst: UNLOCK
      Src: /src/libevent/listener.c:804,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - lev
    - shutdown
    argTypes:
    - struct evconnlistener*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 779
    functionDepth: 2
    functionLinenumber: 779
    functionLinenumberEnd: 806
    functionName: iocp_listener_disable_impl
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - LOCK
    - evutil_closesocket
    - stop_accepting
    - UNLOCK
    - LeaveCriticalSection
    - iocp_listener_event_del
    - EnterCriticalSection
    - EVUTIL_UPCAST
    linkageType: ''
    returnType: int
    signature: int iocp_listener_disable_impl(struct evconnlistener *lev, int shutdown)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iocp_listener_disable_impl
      Src: /src/libevent/listener.c:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 808
    functionDepth: 3
    functionLinenumber: 808
    functionLinenumberEnd: 812
    functionName: iocp_listener_disable
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - iocp_listener_disable_impl
    linkageType: ''
    returnType: int
    signature: int iocp_listener_disable(struct evconnlistener *lev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/listener.c:818,1
    - Dst: iocp_listener_disable_impl
      Src: /src/libevent/listener.c:822,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 814
    functionDepth: 3
    functionLinenumber: 814
    functionLinenumberEnd: 825
    functionName: iocp_listener_destroy
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - iocp_listener_disable_impl
    - EVUTIL_UPCAST
    linkageType: ''
    returnType: void
    signature: void iocp_listener_destroy(struct evconnlistener *lev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/listener.c:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 833
    functionName: iocp_listener_getfd
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - EVUTIL_UPCAST
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t iocp_listener_getfd(struct evconnlistener *lev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/listener.c:838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lev
    argTypes:
    - struct evconnlistener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 840
    functionName: iocp_listener_getbase
    functionSourceFile: /src/libevent/listener.c
    functionUses: 0
    functionsReached:
    - EVUTIL_UPCAST
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      iocp_listener_getbase(struct evconnlistener *lev)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: event_base_get_iocp_
      Src: /src/libevent/listener.c:866,1
    - Dst: listen
      Src: /src/libevent/listener.c:871,1
    - Dst: listen
      Src: /src/libevent/listener.c:874,1
    - Dst: getsockname
      Src: /src/libevent/listener.c:877,1
    - Dst: event_sock_warn
      Src: /src/libevent/listener.c:878,1
    - Dst: mm_calloc
      Src: /src/libevent/listener.c:881,1
    - Dst: event_warn
      Src: /src/libevent/listener.c:883,1
    - Dst: event_base_get_iocp_
      Src: /src/libevent/listener.c:893,1
    - Dst: event_iocp_port_associate_
      Src: /src/libevent/listener.c:898,1
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/listener.c:901,1
    - Dst: mm_calloc
      Src: /src/libevent/listener.c:904,1
    - Dst: event_warn
      Src: /src/libevent/listener.c:907,1
    - Dst: new_accepting_socket
      Src: /src/libevent/listener.c:911,1
    - Dst: event_warnx
      Src: /src/libevent/listener.c:913,1
    - Dst: start_accepting
      Src: /src/libevent/listener.c:916,1
    - Dst: event_warnx
      Src: /src/libevent/listener.c:917,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/listener.c:918,1
    - Dst: free_and_unlock_accepting_socket
      Src: /src/libevent/listener.c:919,1
    - Dst: iocp_listener_event_add
      Src: /src/libevent/listener.c:925,1
    - Dst: free_and_unlock_accepting_socket
      Src: /src/libevent/listener.c:932,1
    - Dst: mm_free
      Src: /src/libevent/listener.c:934,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/listener.c:936,1
    - Dst: mm_free
      Src: /src/libevent/listener.c:938,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 80
    argCount: 6
    argNames:
    - base
    - cb
    - ptr
    - flags
    - backlog
    - fd
    argTypes:
    - struct event_base*
    - evconnlistener_cb
    - void*
    - unsigned
    - int
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 854
    functionDepth: 3
    functionLinenumber: 854
    functionLinenumberEnd: 942
    functionName: evconnlistener_new_async
    functionSourceFile: /src/libevent/listener.c
    functionUses: 1
    functionsReached:
    - EVTHREAD_ALLOC_LOCK
    - event_iocp_port_associate_
    - iocp_listener_event_add
    - mm_free
    - getsockname
    - free_and_unlock_accepting_socket
    - mm_calloc
    - listen
    - event_warn
    - start_accepting
    - new_accepting_socket
    - EVTHREAD_FREE_LOCK
    - event_base_get_iocp_
    - EnterCriticalSection
    - event_warnx
    - event_sock_warn
    linkageType: ''
    returnType: struct evconnlistener
    signature: "struct evconnlistener *\nevconnlistener_new_async(struct event_base
      *base,\n    evconnlistener_cb cb, void *ptr, unsigned flags, int backlog,\n
      \   evutil_socket_t fd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: MIN
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: MAX
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - req
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: ASSERT_VALID_REQUEST
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_VALID_REQUEST(req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: EDNS_ENABLED
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EDNS_ENABLED(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 470
    functionName: evdns_get_global_base
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evdns_base
    signature: 'struct evdns_base *

      evdns_get_global_base(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 477
    functionName: TO_SERVER_REQUEST
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_SERVER_REQUEST(base_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 479
    functionName: REQ_HEAD
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQ_HEAD(base, id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 513
    functionName: EVDNS_LOCK
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVDNS_LOCK(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 514
    functionName: EVDNS_UNLOCK
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVDNS_UNLOCK(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 515
    functionName: ASSERT_LOCKED
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_LOCKED(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 518
    functionName: EVDNS_LOCK
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVDNS_LOCK(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 520
    functionName: EVDNS_UNLOCK
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVDNS_UNLOCK(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 522
    functionName: ASSERT_LOCKED
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_LOCKED(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fn
    argTypes:
    - evdns_debug_log_fn_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 530
    functionName: evdns_set_log_fn
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evdns_set_log_fn(evdns_debug_log_fn_type fn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libevent/evdns.c:543,1
    - Dst: evutil_vsnprintf
      Src: /src/libevent/evdns.c:547,1
    - Dst: evdns_log_fn
      Src: /src/libevent/evdns.c:548,1
    - Dst: event_logv_
      Src: /src/libevent/evdns.c:550,1
    - Dst: va_end
      Src: /src/libevent/evdns.c:552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - severity
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 553
    functionName: evdns_log_
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_log_fn
    - event_logv_
    - va_end
    - va_start
    - evutil_vsnprintf
    linkageType: ''
    returnType: void
    signature: void evdns_log_(int severity, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/evdns.c:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - conn
    - bev
    argTypes:
    - struct tcp_connection*
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 565
    functionName: init_tcp_connection
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void init_tcp_connection(struct tcp_connection *conn, struct bufferevent
      *bev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_free
      Src: /src/libevent/evdns.c:576,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct tcp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 579
    functionName: evdns_tcp_disconnect
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - bufferevent_free
    linkageType: ''
    returnType: void
    signature: void evdns_tcp_disconnect(struct tcp_connection *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:586,1
    - Dst: mm_calloc
      Src: /src/libevent/evdns.c:590,1
    - Dst: init_tcp_connection
      Src: /src/libevent/evdns.c:593,1
    - Dst: LIST_INSERT_HEAD
      Src: /src/libevent/evdns.c:595,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - port
    - bev
    argTypes:
    - struct evdns_server_port*
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 603
    functionName: evdns_add_tcp_client
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - mm_calloc
    - LIST_INSERT_HEAD
    - init_tcp_connection
    linkageType: ''
    returnType: struct client_tcp_connection
    signature: 'struct client_tcp_connection *

      evdns_add_tcp_client(struct evdns_server_port *port, struct bufferevent *bev)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_tcp_disconnect
      Src: /src/libevent/evdns.c:612,1
    - Dst: LIST_REMOVE
      Src: /src/libevent/evdns.c:613,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:614,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - port
    - client
    argTypes:
    - struct evdns_server_port*
    - struct client_tcp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 606
    functionDepth: 2
    functionLinenumber: 606
    functionLinenumberEnd: 620
    functionName: evdns_remove_tcp_client
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_tcp_disconnect
    - mm_free
    - LIST_REMOVE
    linkageType: ''
    returnType: int
    signature: int evdns_remove_tcp_client(struct evdns_server_port *port, struct
      client_tcp_connection *client)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_FIRST
      Src: /src/libevent/evdns.c:627,1
    - Dst: evdns_remove_tcp_client
      Src: /src/libevent/evdns.c:628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct evdns_server_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 623
    functionDepth: 3
    functionLinenumber: 623
    functionLinenumberEnd: 630
    functionName: evdns_remove_all_tcp_clients
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_remove_tcp_client
    - LIST_FIRST
    linkageType: ''
    returnType: void
    signature: void evdns_remove_all_tcp_clients(struct evdns_server_port *port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/evdns.c:640,1
    - Dst: init_tcp_connection
      Src: /src/libevent/evdns.c:643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 645
    functionName: new_tcp_connection
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - init_tcp_connection
    linkageType: ''
    returnType: struct tcp_connection
    signature: 'struct tcp_connection *

      new_tcp_connection(struct bufferevent *bev)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_tcp_disconnect
      Src: /src/libevent/evdns.c:653,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct tcp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 648
    functionDepth: 2
    functionLinenumber: 648
    functionLinenumberEnd: 655
    functionName: disconnect_and_free_connection
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_tcp_disconnect
    - mm_free
    linkageType: ''
    returnType: void
    signature: void disconnect_and_free_connection(struct tcp_connection *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: REQ_HEAD
      Src: /src/libevent/evdns.c:662,1
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:665,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - base
    - trans_id
    argTypes:
    - struct evdns_base*
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 675
    functionName: request_find_from_trans_id
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - REQ_HEAD
    - ASSERT_LOCKED
    linkageType: ''
    returnType: struct request
    signature: 'struct request *

      request_find_from_trans_id(struct evdns_base *base, u16 trans_id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:685,1
    - Dst: nameserver_send_probe
      Src: /src/libevent/evdns.c:686,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 688
    functionName: nameserver_prod_callback
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - nameserver_send_probe
    linkageType: ''
    returnType: void
    signature: void nameserver_prod_callback(evutil_socket_t fd, short events, void
      *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:698,1
    - Dst: evtimer_del
      Src: /src/libevent/evdns.c:699,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:706,1
    - Dst: evtimer_add
      Src: /src/libevent/evdns.c:723,1
    - Dst: log
      Src: /src/libevent/evdns.c:725,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/evdns.c:727,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - ns
    argTypes:
    - struct nameserver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 693
    functionDepth: 4
    functionLinenumber: 693
    functionLinenumberEnd: 731
    functionName: nameserver_probe_failed
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evtimer_add
    - evtimer_del
    - ASSERT_LOCKED
    - evutil_format_sockaddr_port_
    - log
    - memcpy
    linkageType: ''
    returnType: void
    signature: void nameserver_probe_failed(struct nameserver *const ns)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - req
    - ns
    argTypes:
    - struct request*
    - struct nameserver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 742
    functionName: request_swap_ns
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: void
    signature: void request_swap_ns(struct request *req, struct nameserver *ns)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:753,1
    - Dst: log
      Src: /src/libevent/evdns.c:758,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/evdns.c:759,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:765,1
    - Dst: log
      Src: /src/libevent/evdns.c:767,1
    - Dst: disconnect_and_free_connection
      Src: /src/libevent/evdns.c:774,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evdns.c:784,1
    - Dst: evutil_socket_
      Src: /src/libevent/evdns.c:785,1
    - Dst: evutil_sockaddr_is_loopback_
      Src: /src/libevent/evdns.c:789,1
    - Dst: bind
      Src: /src/libevent/evdns.c:790,1
    - Dst: log
      Src: /src/libevent/evdns.c:793,1
    - Dst: event_del
      Src: /src/libevent/evdns.c:797,1
    - Dst: event_assign
      Src: /src/libevent/evdns.c:798,1
    - Dst: event_add
      Src: /src/libevent/evdns.c:801,1
    - Dst: log
      Src: /src/libevent/evdns.c:802,1
    - Dst: evtimer_add
      Src: /src/libevent/evdns.c:806,1
    - Dst: log
      Src: /src/libevent/evdns.c:808,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/evdns.c:810,1
    - Dst: request_swap_ns
      Src: /src/libevent/evdns.c:831,1
    - Dst: nameserver_pick
      Src: /src/libevent/evdns.c:831,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 3
    argNames:
    - ns
    - msg
    - err
    argTypes:
    - struct nameserver*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 746
    functionDepth: 4
    functionLinenumber: 746
    functionLinenumberEnd: 837
    functionName: nameserver_failed
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - disconnect_and_free_connection
    - request_swap_ns
    - nameserver_pick
    - evtimer_add
    - event_del
    - evutil_sockaddr_is_loopback_
    - evutil_closesocket
    - EVUTIL_ASSERT
    - evutil_socket_
    - ASSERT_LOCKED
    - event_assign
    - evutil_format_sockaddr_port_
    - event_add
    - log
    - bind
    linkageType: ''
    returnType: void
    signature: void nameserver_failed(struct nameserver *const ns, const char *msg,
      int err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:843,1
    - Dst: log
      Src: /src/libevent/evdns.c:845,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/evdns.c:846,1
    - Dst: evtimer_del
      Src: /src/libevent/evdns.c:849,1
    - Dst: evdns_cancel_request
      Src: /src/libevent/evdns.c:851,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ns
    argTypes:
    - struct nameserver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 839
    functionDepth: 4
    functionLinenumber: 839
    functionLinenumberEnd: 858
    functionName: nameserver_up
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evtimer_del
    - ASSERT_LOCKED
    - evutil_format_sockaddr_port_
    - evdns_cancel_request
    - log
    linkageType: ''
    returnType: void
    signature: void nameserver_up(struct nameserver *const ns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/libevent/evdns.c:863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - req
    - trans_id
    argTypes:
    - struct request*
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 864
    functionName: request_trans_id_set
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - htons
    linkageType: ''
    returnType: void
    signature: void request_trans_id_set(struct request *const req, const u16 trans_id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:874,1
    - Dst: ASSERT_VALID_REQUEST
      Src: /src/libevent/evdns.c:875,1
    - Dst: evdns_request_remove
      Src: /src/libevent/evdns.c:878,1
    - Dst: log
      Src: /src/libevent/evdns.c:880,1
    - Dst: evtimer_del
      Src: /src/libevent/evdns.c:882,1
    - Dst: event_debug_unassign
      Src: /src/libevent/evdns.c:889,1
    - Dst: event_del
      Src: /src/libevent/evdns.c:894,1
    - Dst: evtimer_del
      Src: /src/libevent/evdns.c:895,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:900,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:907,1
    - Dst: search_request_finished
      Src: /src/libevent/evdns.c:910,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:915,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:924,1
    - Dst: evdns_requests_pump_waiting_queue
      Src: /src/libevent/evdns.c:926,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:927,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 3
    argNames:
    - req
    - head
    - free_handle
    argTypes:
    - struct request*
    - struct request**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 870
    functionDepth: 1
    functionLinenumber: 870
    functionLinenumberEnd: 928
    functionName: request_finished
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached:
    - EVDNS_LOCK
    - mm_free
    - search_request_finished
    - event_debug_unassign
    - event_del
    - evdns_requests_pump_waiting_queue
    - evtimer_del
    - EVUTIL_ASSERT
    - ASSERT_VALID_REQUEST
    - evdns_request_remove
    - EVDNS_UNLOCK
    - log
    linkageType: ''
    returnType: void
    signature: void request_finished(struct request *const req, struct request **head,
      int free_handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:939,1
    - Dst: ASSERT_VALID_REQUEST
      Src: /src/libevent/evdns.c:940,1
    - Dst: request_swap_ns
      Src: /src/libevent/evdns.c:944,1
    - Dst: nameserver_pick
      Src: /src/libevent/evdns.c:944,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 936
    functionDepth: 2
    functionLinenumber: 936
    functionLinenumberEnd: 957
    functionName: request_reissue
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - request_swap_ns
    - ASSERT_VALID_REQUEST
    - ASSERT_LOCKED
    - nameserver_pick
    linkageType: ''
    returnType: int
    signature: int request_reissue(struct request *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:966,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:971,1
    - Dst: nameserver_pick
      Src: /src/libevent/evdns.c:974,1
    - Dst: evdns_request_remove
      Src: /src/libevent/evdns.c:981,1
    - Dst: request_trans_id_set
      Src: /src/libevent/evdns.c:986,1
    - Dst: transaction_id_pick
      Src: /src/libevent/evdns.c:986,1
    - Dst: evdns_request_insert
      Src: /src/libevent/evdns.c:988,1
    - Dst: REQ_HEAD
      Src: /src/libevent/evdns.c:988,1
    - Dst: evdns_request_transmit
      Src: /src/libevent/evdns.c:989,1
    - Dst: evdns_transmit
      Src: /src/libevent/evdns.c:990,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 964
    functionDepth: 1
    functionLinenumber: 964
    functionLinenumberEnd: 992
    functionName: evdns_requests_pump_waiting_queue
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached:
    - nameserver_pick
    - request_trans_id_set
    - EVUTIL_ASSERT
    - ASSERT_LOCKED
    - evdns_request_remove
    - evdns_request_insert
    - evdns_transmit
    - REQ_HEAD
    - transaction_id_pick
    - evdns_request_transmit
    linkageType: ''
    returnType: void
    signature: void evdns_requests_pump_waiting_queue(struct evdns_base *base)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/evdns.c:998,1
    - Dst: struct evdns_request*::user_callback
      Src: /src/libevent/evdns.c:1003,1
    - Dst: struct evdns_request*::user_callback
      Src: /src/libevent/evdns.c:1008,1
    - Dst: struct evdns_request*::user_callback
      Src: /src/libevent/evdns.c:1011,1
    - Dst: struct evdns_request*::user_callback
      Src: /src/libevent/evdns.c:1016,1
    - Dst: struct evdns_request*::user_callback
      Src: /src/libevent/evdns.c:1019,1
    - Dst: struct evdns_request*::user_callback
      Src: /src/libevent/evdns.c:1024,1
    - Dst: struct evdns_request*::user_callback
      Src: /src/libevent/evdns.c:1029,1
    - Dst: struct evdns_request*::user_callback
      Src: /src/libevent/evdns.c:1032,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:1035,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:1039,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:1043,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:1046,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - d
    - user_pointer
    argTypes:
    - struct event_callback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 994
    functionDepth: 1
    functionLinenumber: 994
    functionLinenumberEnd: 1047
    functionName: reply_run_callback
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - struct evdns_request*::user_callback
    - mm_free
    - EVUTIL_UPCAST
    linkageType: ''
    returnType: void
    signature: void reply_run_callback(struct event_callback *d, void *user_pointer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:1054,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:1061,1
    - Dst: event_deferred_cb_init_
      Src: /src/libevent/evdns.c:1068,1
    - Dst: event_get_priority
      Src: /src/libevent/evdns.c:1070,1
    - Dst: event_deferred_cb_schedule_
      Src: /src/libevent/evdns.c:1073,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - req
    - ttl
    - err
    - reply
    argTypes:
    - struct request*
    - u32
    - u32
    - struct reply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1076
    functionName: reply_schedule_callback
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - event_deferred_cb_schedule_
    - event_get_priority
    - ASSERT_LOCKED
    - event_deferred_cb_init_
    - memcpy
    linkageType: ''
    returnType: void
    signature: void reply_schedule_callback(struct request *const req, u32 ttl, u32
      err, struct reply *reply)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: request_clone
      Src: /src/libevent/evdns.c:1083,1
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:1084,1
    - Dst: request_finished
      Src: /src/libevent/evdns.c:1087,1
    - Dst: REQ_HEAD
      Src: /src/libevent/evdns.c:1087,1
    - Dst: request_submit
      Src: /src/libevent/evdns.c:1090,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - handle
    argTypes:
    - struct evdns_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1078
    functionDepth: 2
    functionLinenumber: 1078
    functionLinenumberEnd: 1092
    functionName: client_retransmit_through_tcp
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - ASSERT_LOCKED
    - request_clone
    - request_submit
    - REQ_HEAD
    - request_finished
    linkageType: ''
    returnType: int
    signature: int client_retransmit_through_tcp(struct evdns_request *handle)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:1117,1
    - Dst: ASSERT_VALID_REQUEST
      Src: /src/libevent/evdns.c:1118,1
    - Dst: evutil_snprintf
      Src: /src/libevent/evdns.c:1144,1
    - Dst: evdns_err_to_string
      Src: /src/libevent/evdns.c:1145,1
    - Dst: nameserver_failed
      Src: /src/libevent/evdns.c:1146,1
    - Dst: request_reissue
      Src: /src/libevent/evdns.c:1147,1
    - Dst: log
      Src: /src/libevent/evdns.c:1156,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/evdns.c:1158,1
    - Dst: evdns_request_timeout_callback
      Src: /src/libevent/evdns.c:1162,1
    - Dst: nameserver_up
      Src: /src/libevent/evdns.c:1171,1
    - Dst: log
      Src: /src/libevent/evdns.c:1175,1
    - Dst: client_retransmit_through_tcp
      Src: /src/libevent/evdns.c:1178,1
    - Dst: search_try_next
      Src: /src/libevent/evdns.c:1186,1
    - Dst: reply_schedule_callback
      Src: /src/libevent/evdns.c:1197,1
    - Dst: request_finished
      Src: /src/libevent/evdns.c:1198,1
    - Dst: REQ_HEAD
      Src: /src/libevent/evdns.c:1198,1
    - Dst: reply_schedule_callback
      Src: /src/libevent/evdns.c:1201,1
    - Dst: nameserver_up
      Src: /src/libevent/evdns.c:1204,1
    - Dst: request_finished
      Src: /src/libevent/evdns.c:1205,1
    - Dst: REQ_HEAD
      Src: /src/libevent/evdns.c:1205,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 4
    argNames:
    - req
    - flags
    - ttl
    - reply
    argTypes:
    - struct request*
    - u16
    - u32
    - struct reply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1107
    functionDepth: 5
    functionLinenumber: 1107
    functionLinenumberEnd: 1207
    functionName: reply_handle
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - request_reissue
    - nameserver_failed
    - reply_schedule_callback
    - nameserver_up
    - ASSERT_VALID_REQUEST
    - ASSERT_LOCKED
    - evutil_format_sockaddr_port_
    - evdns_request_timeout_callback
    - evdns_err_to_string
    - log
    - search_try_next
    - evutil_snprintf
    - REQ_HEAD
    - request_finished
    - client_retransmit_through_tcp
    linkageType: ''
    returnType: void
    signature: void reply_handle(struct request *const req, u16 flags, u32 ttl, struct
      reply *reply)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: GET8
      Src: /src/libevent/evdns.c:1229,1
    - Dst: GET8
      Src: /src/libevent/evdns.c:1233,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:1250,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 5
    argNames:
    - packet
    - length
    - idx
    - name_out
    - name_out_len
    argTypes:
    - u8*
    - int
    - int*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1209
    functionDepth: 1
    functionLinenumber: 1209
    functionLinenumberEnd: 1263
    functionName: name_parse
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - memcpy
    - GET8
    linkageType: ''
    returnType: int
    signature: int name_parse(u8 *packet, int length, int *idx, char *name_out, int
      name_out_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1214
    functionDepth: 0
    functionLinenumber: 1214
    functionLinenumberEnd: 1215
    functionName: GET32
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1215
    functionDepth: 0
    functionLinenumber: 1215
    functionLinenumberEnd: 1216
    functionName: GET16
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1216
    functionDepth: 0
    functionLinenumber: 1216
    functionLinenumberEnd: 1217
    functionName: GET8
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET8(x)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/evdns.c:1282,1
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:1284,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1286,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1287,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1288,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1289,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1290,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1291,1
    - Dst: request_find_from_trans_id
      Src: /src/libevent/evdns.c:1295,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:1297,1
    - Dst: name_parse
      Src: /src/libevent/evdns.c:1325,1
    - Dst: name_parse
      Src: /src/libevent/evdns.c:1327,1
    - Dst: strcmp
      Src: /src/libevent/evdns.c:1331,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/evdns.c:1334,1
    - Dst: MAX
      Src: /src/libevent/evdns.c:1350,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:1351,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1361,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1362,1
    - Dst: GET32
      Src: /src/libevent/evdns.c:1363,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1364,1
    - Dst: MIN
      Src: /src/libevent/evdns.c:1375,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:1378,1
    - Dst: name_parse
      Src: /src/libevent/evdns.c:1387,1
    - Dst: MIN
      Src: /src/libevent/evdns.c:1390,1
    - Dst: name_parse
      Src: /src/libevent/evdns.c:1395,1
    - Dst: mm_strdup
      Src: /src/libevent/evdns.c:1399,1
    - Dst: mm_strdup
      Src: /src/libevent/evdns.c:1401,1
    - Dst: MIN
      Src: /src/libevent/evdns.c:1410,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:1414,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1429,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1430,1
    - Dst: GET32
      Src: /src/libevent/evdns.c:1431,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1432,1
    - Dst: GET32
      Src: /src/libevent/evdns.c:1437,1
    - Dst: GET32
      Src: /src/libevent/evdns.c:1438,1
    - Dst: GET32
      Src: /src/libevent/evdns.c:1439,1
    - Dst: GET32
      Src: /src/libevent/evdns.c:1440,1
    - Dst: GET32
      Src: /src/libevent/evdns.c:1441,1
    - Dst: MIN
      Src: /src/libevent/evdns.c:1446,1
    - Dst: MIN
      Src: /src/libevent/evdns.c:1447,1
    - Dst: reply_handle
      Src: /src/libevent/evdns.c:1458,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:1460,1
    - Dst: reply_handle
      Src: /src/libevent/evdns.c:1464,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:1466,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 154
    argCount: 3
    argNames:
    - base
    - packet
    - length
    argTypes:
    - struct evdns_base*
    - u8*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1266
    functionDepth: 6
    functionLinenumber: 1266
    functionLinenumberEnd: 1468
    functionName: reply_parse
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evutil_ascii_strcasecmp
    - mm_free
    - MAX
    - EVUTIL_ASSERT
    - request_find_from_trans_id
    - ASSERT_LOCKED
    - mm_malloc
    - strcmp
    - mm_strdup
    - memset
    - GET32
    - reply_handle
    - MIN
    - name_parse
    - memcpy
    - GET16
    linkageType: ''
    returnType: int
    signature: int reply_parse(struct evdns_base *base, u8 *packet, int length)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:1488,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1491,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1492,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1493,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1494,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1495,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1496,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:1501,1
    - Dst: memset
      Src: /src/libevent/evdns.c:1503,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:1507,1
    - Dst: mm_calloc
      Src: /src/libevent/evdns.c:1515,1
    - Dst: name_parse
      Src: /src/libevent/evdns.c:1523,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1525,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1526,1
    - Dst: strlen
      Src: /src/libevent/evdns.c:1527,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:1528,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:1533,1
    - Dst: GET16
      Src: /src/libevent/evdns.c:1541,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 6
    argNames:
    - packet
    - length
    - port
    - addr
    - addrlen
    - client
    argTypes:
    - u8*
    - int
    - struct evdns_server_port*
    - struct sockaddr*
    - ev_socklen_t
    - struct client_tcp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1473
    functionDepth: 2
    functionLinenumber: 1473
    functionLinenumberEnd: 1543
    functionName: request_parse
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - mm_malloc
    - ASSERT_LOCKED
    - memset
    - memcpy
    - name_parse
    - strlen
    - GET16
    linkageType: ''
    returnType: int
    signature: "int request_parse(u8 *packet, int length, struct evdns_server_port
      *port,\n\t\t\t\tstruct sockaddr *addr, ev_socklen_t addrlen, struct client_tcp_connection
      *client)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:1612,1
    - Dst: evutil_secure_rng_get_bytes
      Src: /src/libevent/evdns.c:1615,1
    - Dst: request_find_from_trans_id
      Src: /src/libevent/evdns.c:1619,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1610
    functionDepth: 2
    functionLinenumber: 1610
    functionLinenumberEnd: 1622
    functionName: transaction_id_pick
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached:
    - evutil_secure_rng_get_bytes
    - request_find_from_trans_id
    - ASSERT_LOCKED
    linkageType: ''
    returnType: u16
    signature: u16 transaction_id_pick(struct evdns_base *base)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:1630,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:1654,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1660
      start: 1627
    functionDepth: 1
    functionLinenumber: 1627
    functionLinenumberEnd: 1660
    functionName: nameserver_pick
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 3
    functionsReached:
    - EVUTIL_ASSERT
    - ASSERT_LOCKED
    linkageType: ''
    returnType: struct nameserver
    signature: 'struct nameserver *

      nameserver_pick(struct evdns_base *base)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:1669,1
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:1670,1
    - Dst: nameserver_failed
      Src: /src/libevent/evdns.c:1673,1
    - Dst: recvfrom
      Src: /src/libevent/evdns.c:1678,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/evdns.c:1682,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/evdns.c:1683,1
    - Dst: nameserver_failed
      Src: /src/libevent/evdns.c:1685,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/evdns.c:1686,1
    - Dst: evutil_sockaddr_cmp
      Src: /src/libevent/evdns.c:1689,1
    - Dst: log
      Src: /src/libevent/evdns.c:1691,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/evdns.c:1693,1
    - Dst: reply_parse
      Src: /src/libevent/evdns.c:1700,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:1703,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - ns
    argTypes:
    - struct nameserver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1663
    functionDepth: 7
    functionLinenumber: 1663
    functionLinenumberEnd: 1704
    functionName: nameserver_read
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - reply_parse
    - mm_free
    - nameserver_failed
    - recvfrom
    - EVUTIL_ERR_RW_RETRIABLE
    - ASSERT_LOCKED
    - mm_malloc
    - evutil_format_sockaddr_port_
    - evutil_sockaddr_cmp
    - evutil_socket_error_to_string
    - log
    - evutil_socket_geterror
    linkageType: ''
    returnType: void
    signature: void nameserver_read(struct nameserver *ns)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:1714,1
    - Dst: recvfrom
      Src: /src/libevent/evdns.c:1718,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/evdns.c:1721,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/evdns.c:1722,1
    - Dst: log
      Src: /src/libevent/evdns.c:1724,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/evdns.c:1726,1
    - Dst: request_parse
      Src: /src/libevent/evdns.c:1729,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct evdns_server_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1708
    functionDepth: 3
    functionLinenumber: 1708
    functionLinenumberEnd: 1731
    functionName: server_udp_port_read
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - request_parse
    - recvfrom
    - EVUTIL_ERR_RW_RETRIABLE
    - ASSERT_LOCKED
    - log
    - evutil_socket_error_to_string
    - evutil_socket_geterror
    linkageType: ''
    returnType: void
    signature: void server_udp_port_read(struct evdns_server_port *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:1740,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:1741,1
    - Dst: htons
      Src: /src/libevent/evdns.c:1742,1
    - Dst: bufferevent_write
      Src: /src/libevent/evdns.c:1743,1
    - Dst: bufferevent_write
      Src: /src/libevent/evdns.c:1745,1
    - Dst: sendto
      Src: /src/libevent/evdns.c:1749,1
    - Dst: log
      Src: /src/libevent/evdns.c:1755,1
    - Dst: evdns_remove_tcp_client
      Src: /src/libevent/evdns.c:1757,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - port
    - req
    argTypes:
    - struct evdns_server_port*
    - struct server_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1733
    functionDepth: 3
    functionLinenumber: 1733
    functionLinenumberEnd: 1759
    functionName: server_send_response
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - evdns_remove_tcp_client
    - log
    - htons
    - bufferevent_write
    - sendto
    linkageType: ''
    returnType: int
    signature: int server_send_response(struct evdns_server_port *port, struct server_request
      *req)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:1766,1
    - Dst: server_send_response
      Src: /src/libevent/evdns.c:1768,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/evdns.c:1770,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/evdns.c:1771,1
    - Dst: log
      Src: /src/libevent/evdns.c:1773,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/evdns.c:1773,1
    - Dst: server_request_free
      Src: /src/libevent/evdns.c:1775,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:1779,1
    - Dst: event_del
      Src: /src/libevent/evdns.c:1785,1
    - Dst: event_assign
      Src: /src/libevent/evdns.c:1786,1
    - Dst: event_add
      Src: /src/libevent/evdns.c:1790,1
    - Dst: log
      Src: /src/libevent/evdns.c:1791,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct evdns_server_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1762
    functionDepth: 4
    functionLinenumber: 1762
    functionLinenumberEnd: 1794
    functionName: server_port_flush
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - server_request_free
    - server_send_response
    - event_del
    - EVUTIL_ASSERT
    - EVUTIL_ERR_RW_RETRIABLE
    - ASSERT_LOCKED
    - event_assign
    - event_add
    - log
    - evutil_socket_error_to_string
    - evutil_socket_geterror
    linkageType: ''
    returnType: void
    signature: void server_port_flush(struct evdns_server_port *port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:1801,1
    - Dst: event_del
      Src: /src/libevent/evdns.c:1805,1
    - Dst: event_assign
      Src: /src/libevent/evdns.c:1806,1
    - Dst: event_add
      Src: /src/libevent/evdns.c:1809,1
    - Dst: log
      Src: /src/libevent/evdns.c:1811,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/evdns.c:1812,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ns
    - waiting
    argTypes:
    - struct nameserver*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1799
    functionDepth: 4
    functionLinenumber: 1799
    functionLinenumberEnd: 1817
    functionName: nameserver_write_waiting
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - event_del
    - ASSERT_LOCKED
    - event_assign
    - evutil_format_sockaddr_port_
    - event_add
    - log
    linkageType: ''
    returnType: void
    signature: void nameserver_write_waiting(struct nameserver *ns, char waiting)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:1826,1
    - Dst: evdns_transmit
      Src: /src/libevent/evdns.c:1829,1
    - Dst: nameserver_write_waiting
      Src: /src/libevent/evdns.c:1830,1
    - Dst: nameserver_read
      Src: /src/libevent/evdns.c:1834,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:1836,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1821
    functionDepth: 8
    functionLinenumber: 1821
    functionLinenumberEnd: 1837
    functionName: nameserver_ready_callback
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - nameserver_read
    - EVDNS_UNLOCK
    - evdns_transmit
    - nameserver_write_waiting
    linkageType: ''
    returnType: void
    signature: void nameserver_ready_callback(evutil_socket_t fd, short events, void
      *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:1846,1
    - Dst: server_port_flush
      Src: /src/libevent/evdns.c:1849,1
    - Dst: server_udp_port_read
      Src: /src/libevent/evdns.c:1852,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:1854,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1841
    functionDepth: 5
    functionLinenumber: 1841
    functionLinenumberEnd: 1855
    functionName: server_port_ready_callback
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - server_port_flush
    - server_udp_port_read
    linkageType: ''
    returnType: void
    signature: void server_port_ready_callback(evutil_socket_t fd, short events, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - table
    argTypes:
    - struct dnslabel_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1869
    functionDepth: 0
    functionLinenumber: 1869
    functionLinenumberEnd: 1873
    functionName: dnslabel_table_init
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dnslabel_table_init(struct dnslabel_table *table)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/evdns.c:1881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - table
    argTypes:
    - struct dnslabel_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1883
      start: 1876
    functionDepth: 1
    functionLinenumber: 1876
    functionLinenumberEnd: 1883
    functionName: dnslabel_clear
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - mm_free
    linkageType: ''
    returnType: void
    signature: void dnslabel_clear(struct dnslabel_table *table)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libevent/evdns.c:1892,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - table
    - label
    argTypes:
    - struct dnslabel_table*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1896
      start: 1887
    functionDepth: 0
    functionLinenumber: 1887
    functionLinenumberEnd: 1896
    functionName: dnslabel_table_get_pos
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int dnslabel_table_get_pos(const struct dnslabel_table *table, const
      char *label)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_strdup
      Src: /src/libevent/evdns.c:1906,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - table
    - label
    - pos
    argTypes:
    - struct dnslabel_table*
    - char*
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1899
    functionDepth: 1
    functionLinenumber: 1899
    functionLinenumberEnd: 1914
    functionName: dnslabel_table_add
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - mm_strdup
    linkageType: ''
    returnType: int
    signature: int dnslabel_table_add(struct dnslabel_table *table, const char *label,
      off_t pos)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: dnslabel_table_get_pos
      Src: /src/libevent/evdns.c:1954,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:1955,1
    - Dst: strchr
      Src: /src/libevent/evdns.c:1958,1
    - Dst: dnslabel_table_add
      Src: /src/libevent/evdns.c:1963,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:1966,1
    - Dst: dnslabel_table_add
      Src: /src/libevent/evdns.c:1974,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:1977,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 6
    argNames:
    - buf
    - buf_len
    - j
    - name
    - name_len
    - table
    argTypes:
    - u8*
    - size_t
    - off_t
    - char*
    - size_t
    - struct dnslabel_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1991
      start: 1927
    functionDepth: 2
    functionLinenumber: 1927
    functionLinenumberEnd: 1991
    functionName: dnsname_to_labels
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - APPEND16
    - strchr
    - dnslabel_table_add
    - memcpy
    - dnslabel_table_get_pos
    linkageType: ''
    returnType: off_t
    signature: "off_t dnsname_to_labels(u8 *const buf, size_t buf_len, off_t j,\n\t\t\t\t
      \ const char *name, const size_t name_len,\n\t\t\t\t  struct dnslabel_table
      *table)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1942
      start: 1935
    functionDepth: 0
    functionLinenumber: 1935
    functionLinenumberEnd: 1942
    functionName: APPEND16
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1942
    functionDepth: 0
    functionLinenumber: 1942
    functionLinenumberEnd: 1949
    functionName: APPEND32
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND32(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EDNS_ENABLED
      Src: /src/libevent/evdns.c:2000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - base
    - name_len
    argTypes:
    - struct evdns_base*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 1996
    functionDepth: 1
    functionLinenumber: 1996
    functionLinenumberEnd: 2011
    functionName: evdns_request_len
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EDNS_ENABLED
    linkageType: ''
    returnType: size_t
    signature: size_t evdns_request_len(const struct evdns_base *base, const size_t
      name_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2027,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2028,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2029,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2030,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2031,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2032,1
    - Dst: EDNS_ENABLED
      Src: /src/libevent/evdns.c:2032,1
    - Dst: dnsname_to_labels
      Src: /src/libevent/evdns.c:2034,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2039,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2040,1
    - Dst: EDNS_ENABLED
      Src: /src/libevent/evdns.c:2042,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2056,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2057,1
    - Dst: APPEND32
      Src: /src/libevent/evdns.c:2058,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2059,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 8
    argNames:
    - base
    - name
    - name_len
    - trans_id
    - type
    - class
    - buf
    - buf_len
    argTypes:
    - struct evdns_base*
    - char*
    - size_t
    - u16
    - u16
    - u16
    - u8*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2017
    functionDepth: 3
    functionLinenumber: 2017
    functionLinenumberEnd: 2065
    functionName: evdns_request_data_build
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - APPEND32
    - EDNS_ENABLED
    - APPEND16
    - dnsname_to_labels
    linkageType: ''
    returnType: int
    signature: "int evdns_request_data_build(const struct evdns_base *base,\n\tconst
      char *const name, const size_t name_len,\n\tconst u16 trans_id, const u16 type,
      const u16 class, u8 *const buf,\n\tsize_t buf_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:2074,1
    - Dst: memset
      Src: /src/libevent/evdns.c:2076,1
    - Dst: LIST_INIT
      Src: /src/libevent/evdns.c:2091,1
    - Dst: event_assign
      Src: /src/libevent/evdns.c:2092,1
    - Dst: event_add
      Src: /src/libevent/evdns.c:2095,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2096,1
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/evdns.c:2099,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 5
    argNames:
    - base
    - socket
    - flags
    - cb
    - user_data
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - int
    - evdns_request_callback_fn_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2101
      start: 2068
    functionDepth: 1
    functionLinenumber: 2068
    functionLinenumberEnd: 2101
    functionName: evdns_add_server_port_with_base
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVTHREAD_ALLOC_LOCK
    - mm_free
    - mm_malloc
    - event_assign
    - memset
    - event_add
    - LIST_INIT
    linkageType: ''
    returnType: struct evdns_server_port
    signature: 'struct evdns_server_port *

      evdns_add_server_port_with_base(struct event_base *base, evutil_socket_t socket,
      int flags, evdns_request_callback_fn_type cb, void *user_data)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/evdns.c:2113,1
    - Dst: LIST_INIT
      Src: /src/libevent/evdns.c:2125,1
    - Dst: evconnlistener_set_cb
      Src: /src/libevent/evdns.c:2127,1
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/evdns.c:2129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 5
    argNames:
    - base
    - listener
    - flags
    - cb
    - user_data
    argTypes:
    - struct event_base*
    - struct evconnlistener*
    - int
    - evdns_request_callback_fn_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2131
      start: 2104
    functionDepth: 3
    functionLinenumber: 2104
    functionLinenumberEnd: 2131
    functionName: evdns_add_server_port_with_listener
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVTHREAD_ALLOC_LOCK
    - mm_calloc
    - LIST_INIT
    - evconnlistener_set_cb
    linkageType: ''
    returnType: struct evdns_server_port
    signature: 'struct evdns_server_port *

      evdns_add_server_port_with_listener(struct event_base *base, struct evconnlistener
      *listener, int flags, evdns_request_callback_fn_type cb, void *user_data)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/evdns.c:2140,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2144,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2145,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/evdns.c:2149,1
    - Dst: bufferevent_read
      Src: /src/libevent/evdns.c:2152,1
    - Dst: ntohs
      Src: /src/libevent/evdns.c:2154,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/evdns.c:2160,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:2163,1
    - Dst: bufferevent_read
      Src: /src/libevent/evdns.c:2167,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2169,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - conn
    - msg
    - msg_len
    argTypes:
    - struct tcp_connection*
    - u8**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2136
    functionDepth: 1
    functionLinenumber: 2136
    functionLinenumberEnd: 2180
    functionName: tcp_read_message
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - ntohs
    - bufferevent_read
    - mm_free
    - bufferevent_get_input
    - EVUTIL_ASSERT
    - mm_malloc
    - evbuffer_get_length
    linkageType: ''
    returnType: int
    signature: int tcp_read_message(struct tcp_connection *conn, u8 **msg, int *msg_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2191,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:2192,1
    - Dst: tcp_read_message
      Src: /src/libevent/evdns.c:2195,1
    - Dst: log
      Src: /src/libevent/evdns.c:2196,1
    - Dst: evdns_remove_tcp_client
      Src: /src/libevent/evdns.c:2197,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2199,1
    - Dst: server_port_free
      Src: /src/libevent/evdns.c:2201,1
    - Dst: request_parse
      Src: /src/libevent/evdns.c:2209,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2210,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/evdns.c:2215,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/evdns.c:2217,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2218,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2219
      start: 2182
    functionDepth: 3
    functionLinenumber: 2182
    functionLinenumberEnd: 2219
    functionName: server_tcp_read_packet_cb
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - request_parse
    - mm_free
    - EVUTIL_ASSERT
    - evdns_remove_tcp_client
    - EVDNS_UNLOCK
    - server_port_free
    - bufferevent_setwatermark
    - log
    - tcp_read_message
    - bufferevent_setcb
    linkageType: ''
    returnType: void
    signature: void server_tcp_read_packet_cb(struct bufferevent *bev, void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2227,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:2228,1
    - Dst: log
      Src: /src/libevent/evdns.c:2230,1
    - Dst: evdns_remove_tcp_client
      Src: /src/libevent/evdns.c:2231,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2234,1
    - Dst: server_port_free
      Src: /src/libevent/evdns.c:2236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - bev
    - events
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2237
      start: 2221
    functionDepth: 3
    functionLinenumber: 2221
    functionLinenumberEnd: 2237
    functionName: server_tcp_event_cb
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVUTIL_ASSERT
    - EVDNS_UNLOCK
    - evdns_remove_tcp_client
    - server_port_free
    - log
    linkageType: ''
    returnType: void
    signature: void server_tcp_event_cb(struct bufferevent *bev, short events, void
      *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_socket_new
      Src: /src/libevent/evdns.c:2244,1
    - Dst: log
      Src: /src/libevent/evdns.c:2250,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/evdns.c:2252,1
    - Dst: evdns_add_tcp_client
      Src: /src/libevent/evdns.c:2254,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/evdns.c:2260,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/evdns.c:2261,1
    - Dst: bufferevent_enable
      Src: /src/libevent/evdns.c:2262,1
    - Dst: bufferevent_free
      Src: /src/libevent/evdns.c:2267,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - listener
    - fd
    - address
    - socklen
    - arg
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2269
      start: 2239
    functionDepth: 2
    functionLinenumber: 2239
    functionLinenumberEnd: 2269
    functionName: incoming_conn_cb
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - bufferevent_socket_new
    - bufferevent_free
    - bufferevent_set_timeouts
    - bufferevent_setcb
    - bufferevent_setwatermark
    - log
    - bufferevent_enable
    - evdns_add_tcp_client
    linkageType: ''
    returnType: void
    signature: "void incoming_conn_cb(struct evconnlistener *listener, evutil_socket_t
      fd,\n\t\t\t\t  struct sockaddr *address, int socklen, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_add_server_port_with_base
      Src: /src/libevent/evdns.c:2274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - socket
    - flags
    - cb
    - user_data
    argTypes:
    - evutil_socket_t
    - int
    - evdns_request_callback_fn_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2275
      start: 2271
    functionDepth: 2
    functionLinenumber: 2271
    functionLinenumberEnd: 2275
    functionName: evdns_add_server_port
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_add_server_port_with_base
    linkageType: ''
    returnType: struct evdns_server_port
    signature: 'struct evdns_server_port *

      evdns_add_server_port(evutil_socket_t socket, int flags, evdns_request_callback_fn_type
      cb, void *user_data)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:2281,1
    - Dst: evdns_remove_all_tcp_clients
      Src: /src/libevent/evdns.c:2282,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2284,1
    - Dst: server_port_free
      Src: /src/libevent/evdns.c:2285,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct evdns_server_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2290
      start: 2278
    functionDepth: 4
    functionLinenumber: 2278
    functionLinenumberEnd: 2290
    functionName: evdns_close_server_port
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - evdns_remove_all_tcp_clients
    - server_port_free
    linkageType: ''
    returnType: void
    signature: void evdns_close_server_port(struct evdns_server_port *port)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TO_SERVER_REQUEST
      Src: /src/libevent/evdns.c:2296,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:2301,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:2324,1
    - Dst: mm_strdup
      Src: /src/libevent/evdns.c:2328,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2329,1
    - Dst: mm_strdup
      Src: /src/libevent/evdns.c:2340,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2341,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2342,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:2347,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2348,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2349,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:2353,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2361,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 68
    argCount: 9
    argNames:
    - req_
    - section
    - name
    - type
    - class
    - ttl
    - datalen
    - is_name
    - data
    argTypes:
    - struct evdns_server_request*
    - int
    - char*
    - int
    - int
    - int
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2363
      start: 2293
    functionDepth: 1
    functionLinenumber: 2293
    functionLinenumberEnd: 2363
    functionName: evdns_server_request_add_reply
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - mm_free
    - mm_malloc
    - mm_strdup
    - EVDNS_UNLOCK
    - memcpy
    - TO_SERVER_REQUEST
    linkageType: ''
    returnType: int
    signature: int evdns_server_request_add_reply(struct evdns_server_request *req_,
      int section, const char *name, int type, int class, int ttl, int datalen, int
      is_name, const char *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_server_request_add_reply
      Src: /src/libevent/evdns.c:2369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - req
    - name
    - n
    - addrs
    - ttl
    argTypes:
    - struct evdns_server_request*
    - char*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2372
      start: 2366
    functionDepth: 2
    functionLinenumber: 2366
    functionLinenumberEnd: 2372
    functionName: evdns_server_request_add_a_reply
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_server_request_add_reply
    linkageType: ''
    returnType: int
    signature: int evdns_server_request_add_a_reply(struct evdns_server_request *req,
      const char *name, int n, const void *addrs, int ttl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_server_request_add_reply
      Src: /src/libevent/evdns.c:2378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - req
    - name
    - n
    - addrs
    - ttl
    argTypes:
    - struct evdns_server_request*
    - char*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2381
      start: 2375
    functionDepth: 2
    functionLinenumber: 2375
    functionLinenumberEnd: 2381
    functionName: evdns_server_request_add_aaaa_reply
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_server_request_add_reply
    linkageType: ''
    returnType: int
    signature: int evdns_server_request_add_aaaa_reply(struct evdns_server_request
      *req, const char *name, int n, const void *addrs, int ttl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/libevent/evdns.c:2394,1
    - Dst: evutil_snprintf
      Src: /src/libevent/evdns.c:2395,1
    - Dst: evdns_server_request_add_reply
      Src: /src/libevent/evdns.c:2402,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 5
    argNames:
    - req
    - in
    - inaddr_name
    - hostname
    - ttl
    argTypes:
    - struct evdns_server_request*
    - struct in_addr*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2405
      start: 2384
    functionDepth: 2
    functionLinenumber: 2384
    functionLinenumberEnd: 2405
    functionName: evdns_server_request_add_ptr_reply
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evutil_snprintf
    - evdns_server_request_add_reply
    - ntohl
    linkageType: ''
    returnType: int
    signature: int evdns_server_request_add_ptr_reply(struct evdns_server_request
      *req, struct in_addr *in, const char *inaddr_name, const char *hostname, int
      ttl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_server_request_add_reply
      Src: /src/libevent/evdns.c:2411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - req
    - name
    - cname
    - ttl
    argTypes:
    - struct evdns_server_request*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2414
      start: 2408
    functionDepth: 2
    functionLinenumber: 2408
    functionLinenumberEnd: 2414
    functionName: evdns_server_request_add_cname_reply
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_server_request_add_reply
    linkageType: ''
    returnType: int
    signature: int evdns_server_request_add_cname_reply(struct evdns_server_request
      *req, const char *name, const char *cname, int ttl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TO_SERVER_REQUEST
      Src: /src/libevent/evdns.c:2420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - exreq
    - flags
    argTypes:
    - struct evdns_server_request*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2423
      start: 2417
    functionDepth: 1
    functionLinenumber: 2417
    functionLinenumberEnd: 2423
    functionName: evdns_server_request_set_flags
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - TO_SERVER_REQUEST
    linkageType: ''
    returnType: void
    signature: void evdns_server_request_set_flags(struct evdns_server_request *exreq,
      int flags)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: dnslabel_table_init
      Src: /src/libevent/evdns.c:2444,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2445,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2446,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2447,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2448,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2449,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2450,1
    - Dst: dnsname_to_labels
      Src: /src/libevent/evdns.c:2455,1
    - Dst: strlen
      Src: /src/libevent/evdns.c:2455,1
    - Dst: dnslabel_clear
      Src: /src/libevent/evdns.c:2457,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2460,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2461,1
    - Dst: dnsname_to_labels
      Src: /src/libevent/evdns.c:2474,1
    - Dst: strlen
      Src: /src/libevent/evdns.c:2474,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2479,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2480,1
    - Dst: APPEND32
      Src: /src/libevent/evdns.c:2481,1
    - Dst: dnsname_to_labels
      Src: /src/libevent/evdns.c:2486,1
    - Dst: strlen
      Src: /src/libevent/evdns.c:2486,1
    - Dst: htons
      Src: /src/libevent/evdns.c:2490,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:2491,1
    - Dst: APPEND16
      Src: /src/libevent/evdns.c:2493,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:2497,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2500,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:2515,1
    - Dst: server_request_free_answers
      Src: /src/libevent/evdns.c:2516,1
    - Dst: dnslabel_clear
      Src: /src/libevent/evdns.c:2517,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:2520,1
    - Dst: server_request_free_answers
      Src: /src/libevent/evdns.c:2521,1
    - Dst: dnslabel_clear
      Src: /src/libevent/evdns.c:2522,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 77
    argCount: 2
    argNames:
    - req
    - err
    argTypes:
    - struct server_request*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2524
      start: 2425
    functionDepth: 3
    functionLinenumber: 2425
    functionLinenumberEnd: 2524
    functionName: evdns_server_request_format_response
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - APPEND32
    - EVUTIL_ASSERT
    - APPEND16
    - mm_malloc
    - server_request_free_answers
    - dnslabel_table_init
    - htons
    - memcpy
    - strlen
    - dnslabel_clear
    - dnsname_to_labels
    linkageType: ''
    returnType: int
    signature: int evdns_server_request_format_response(struct server_request *req,
      int err)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TO_SERVER_REQUEST
      Src: /src/libevent/evdns.c:2530,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:2534,1
    - Dst: evdns_server_request_format_response
      Src: /src/libevent/evdns.c:2536,1
    - Dst: server_send_response
      Src: /src/libevent/evdns.c:2540,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/evdns.c:2542,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/evdns.c:2543,1
    - Dst: event_del
      Src: /src/libevent/evdns.c:2556,1
    - Dst: event_assign
      Src: /src/libevent/evdns.c:2557,1
    - Dst: event_add
      Src: /src/libevent/evdns.c:2559,1
    - Dst: log
      Src: /src/libevent/evdns.c:2560,1
    - Dst: server_request_free
      Src: /src/libevent/evdns.c:2568,1
    - Dst: server_port_flush
      Src: /src/libevent/evdns.c:2574,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2578,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 2
    argNames:
    - req_
    - err
    argTypes:
    - struct evdns_server_request*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2580
      start: 2527
    functionDepth: 5
    functionLinenumber: 2527
    functionLinenumberEnd: 2580
    functionName: evdns_server_request_respond
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - server_request_free
    - server_send_response
    - event_del
    - EVUTIL_ERR_RW_RETRIABLE
    - server_port_flush
    - event_assign
    - EVDNS_UNLOCK
    - event_add
    - log
    - TO_SERVER_REQUEST
    - evutil_socket_geterror
    - evdns_server_request_format_response
    linkageType: ''
    returnType: int
    signature: int evdns_server_request_respond(struct evdns_server_request *req_,
      int err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2599,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2602,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2605,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct server_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2610
      start: 2583
    functionDepth: 1
    functionLinenumber: 2583
    functionLinenumberEnd: 2610
    functionName: server_request_free_answers
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached:
    - mm_free
    linkageType: ''
    returnType: void
    signature: void server_request_free_answers(struct server_request *req)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2620,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2623,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:2628,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2640,1
    - Dst: server_request_free_answers
      Src: /src/libevent/evdns.c:2644,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2652,1
    - Dst: server_port_free
      Src: /src/libevent/evdns.c:2653,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2654,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2658,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2659,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct server_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2661
      start: 2614
    functionDepth: 2
    functionLinenumber: 2614
    functionLinenumberEnd: 2661
    functionName: server_request_free
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 2
    functionsReached:
    - EVDNS_LOCK
    - mm_free
    - server_request_free_answers
    - EVDNS_UNLOCK
    - server_port_free
    linkageType: ''
    returnType: int
    signature: int server_request_free(struct server_request *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2667,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2668,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2669,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evdns.c:2671,1
    - Dst: evconnlistener_free
      Src: /src/libevent/evdns.c:2677,1
    - Dst: event_del
      Src: /src/libevent/evdns.c:2679,1
    - Dst: event_debug_unassign
      Src: /src/libevent/evdns.c:2680,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/evdns.c:2683,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2684,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct evdns_server_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2685
      start: 2664
    functionDepth: 3
    functionLinenumber: 2664
    functionLinenumberEnd: 2685
    functionName: server_port_free
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 4
    functionsReached:
    - mm_free
    - event_del
    - event_debug_unassign
    - evutil_closesocket
    - EVUTIL_ASSERT
    - EVTHREAD_FREE_LOCK
    - evconnlistener_free
    linkageType: ''
    returnType: void
    signature: void server_port_free(struct evdns_server_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TO_SERVER_REQUEST
      Src: /src/libevent/evdns.c:2691,1
    - Dst: server_request_free
      Src: /src/libevent/evdns.c:2692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - req_
    argTypes:
    - struct evdns_server_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2694
      start: 2688
    functionDepth: 3
    functionLinenumber: 2688
    functionLinenumberEnd: 2694
    functionName: evdns_server_request_drop
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - TO_SERVER_REQUEST
    - server_request_free
    linkageType: ''
    returnType: int
    signature: int evdns_server_request_drop(struct evdns_server_request *req_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TO_SERVER_REQUEST
      Src: /src/libevent/evdns.c:2700,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:2703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - req_
    - sa
    - addr_len
    argTypes:
    - struct evdns_server_request*
    - struct sockaddr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2705
      start: 2697
    functionDepth: 1
    functionLinenumber: 2697
    functionLinenumberEnd: 2705
    functionName: evdns_server_request_get_requesting_addr
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - TO_SERVER_REQUEST
    - memcpy
    linkageType: ''
    returnType: int
    signature: int evdns_server_request_get_requesting_addr(struct evdns_server_request
      *req_, struct sockaddr *sa, int addr_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libevent/evdns.c:2720,1
    - Dst: reply_schedule_callback
      Src: /src/libevent/evdns.c:2722,1
    - Dst: request_finished
      Src: /src/libevent/evdns.c:2723,1
    - Dst: REQ_HEAD
      Src: /src/libevent/evdns.c:2723,1
    - Dst: evtimer_del
      Src: /src/libevent/evdns.c:2725,1
    - Dst: evdns_request_transmit
      Src: /src/libevent/evdns.c:2726,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - server
    argTypes:
    - struct nameserver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2732
      start: 2707
    functionDepth: 2
    functionLinenumber: 2707
    functionLinenumberEnd: 2732
    functionName: retransmit_all_tcp_requests_for
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - reply_schedule_callback
    - evtimer_del
    - log
    - REQ_HEAD
    - request_finished
    - evdns_request_transmit
    linkageType: ''
    returnType: void
    signature: void retransmit_all_tcp_requests_for(struct nameserver *server)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libevent/evdns.c:2744,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:2745,1
    - Dst: log
      Src: /src/libevent/evdns.c:2750,1
    - Dst: reply_schedule_callback
      Src: /src/libevent/evdns.c:2752,1
    - Dst: request_finished
      Src: /src/libevent/evdns.c:2754,1
    - Dst: REQ_HEAD
      Src: /src/libevent/evdns.c:2754,1
    - Dst: nameserver_failed
      Src: /src/libevent/evdns.c:2755,1
    - Dst: disconnect_and_free_connection
      Src: /src/libevent/evdns.c:2759,1
    - Dst: retransmit_all_tcp_requests_for
      Src: /src/libevent/evdns.c:2763,1
    - Dst: log
      Src: /src/libevent/evdns.c:2766,1
    - Dst: evtimer_del
      Src: /src/libevent/evdns.c:2767,1
    - Dst: request_swap_ns
      Src: /src/libevent/evdns.c:2768,1
    - Dst: nameserver_pick
      Src: /src/libevent/evdns.c:2768,1
    - Dst: evdns_request_transmit
      Src: /src/libevent/evdns.c:2769,1
    - Dst: nameserver_failed
      Src: /src/libevent/evdns.c:2774,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2779,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2780
      start: 2736
    functionDepth: 5
    functionLinenumber: 2736
    functionLinenumberEnd: 2780
    functionName: evdns_request_timeout_callback
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached:
    - EVDNS_LOCK
    - disconnect_and_free_connection
    - request_swap_ns
    - nameserver_pick
    - nameserver_failed
    - reply_schedule_callback
    - evtimer_del
    - EVDNS_UNLOCK
    - log
    - REQ_HEAD
    - request_finished
    - retransmit_all_tcp_requests_for
    - evdns_request_transmit
    linkageType: ''
    returnType: void
    signature: void evdns_request_timeout_callback(evutil_socket_t fd, short events,
      void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:2791,1
    - Dst: ASSERT_VALID_REQUEST
      Src: /src/libevent/evdns.c:2792,1
    - Dst: event_add
      Src: /src/libevent/evdns.c:2796,1
    - Dst: sendto
      Src: /src/libevent/evdns.c:2800,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/evdns.c:2803,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/evdns.c:2804,1
    - Dst: nameserver_failed
      Src: /src/libevent/evdns.c:2806,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/evdns.c:2806,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - req
    - server
    argTypes:
    - struct request*
    - struct nameserver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2813
      start: 2788
    functionDepth: 5
    functionLinenumber: 2788
    functionLinenumberEnd: 2813
    functionName: evdns_request_transmit_to
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - nameserver_failed
    - ASSERT_VALID_REQUEST
    - EVUTIL_ERR_RW_RETRIABLE
    - ASSERT_LOCKED
    - event_add
    - evutil_socket_error_to_string
    - evutil_socket_geterror
    - sendto
    linkageType: ''
    returnType: int
    signature: int evdns_request_transmit_to(struct request *req, struct nameserver
      *server)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: disconnect_and_free_connection
      Src: /src/libevent/evdns.c:2829,1
    - Dst: new_tcp_connection
      Src: /src/libevent/evdns.c:2830,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/evdns.c:2830,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/evdns.c:2835,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2838,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/evdns.c:2839,1
    - Dst: log
      Src: /src/libevent/evdns.c:2843,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - server
    argTypes:
    - struct nameserver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2845
      start: 2821
    functionDepth: 3
    functionLinenumber: 2821
    functionLinenumberEnd: 2845
    functionName: evdns_tcp_connect_if_disconnected
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - bufferevent_socket_new
    - disconnect_and_free_connection
    - EVUTIL_ASSERT
    - bufferevent_set_timeouts
    - log
    - new_tcp_connection
    - bufferevent_socket_connect
    linkageType: ''
    returnType: int
    signature: int evdns_tcp_connect_if_disconnected(struct nameserver *server)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2858,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:2859,1
    - Dst: tcp_read_message
      Src: /src/libevent/evdns.c:2862,1
    - Dst: disconnect_and_free_connection
      Src: /src/libevent/evdns.c:2863,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2865,1
    - Dst: reply_parse
      Src: /src/libevent/evdns.c:2873,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:2874,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2879,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/evdns.c:2885,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/evdns.c:2887,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2888,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2889
      start: 2851
    functionDepth: 7
    functionLinenumber: 2851
    functionLinenumberEnd: 2889
    functionName: client_tcp_read_packet_cb
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - disconnect_and_free_connection
    - reply_parse
    - mm_free
    - EVUTIL_ASSERT
    - EVDNS_UNLOCK
    - bufferevent_setcb
    - bufferevent_setwatermark
    - tcp_read_message
    linkageType: ''
    returnType: void
    signature: void client_tcp_read_packet_cb(struct bufferevent *bev, void *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2895,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:2896,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2897,1
    - Dst: log
      Src: /src/libevent/evdns.c:2899,1
    - Dst: disconnect_and_free_connection
      Src: /src/libevent/evdns.c:2902,1
    - Dst: disconnect_and_free_connection
      Src: /src/libevent/evdns.c:2905,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2908,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/evdns.c:2910,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/evdns.c:2910,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/evdns.c:2911,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/evdns.c:2912,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:2914,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - bev
    - events
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2915
      start: 2891
    functionDepth: 3
    functionLinenumber: 2891
    functionLinenumberEnd: 2915
    functionName: client_tcp_event_cb
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - disconnect_and_free_connection
    - EVUTIL_ASSERT
    - bufferevent_setcb
    - EVDNS_UNLOCK
    - bufferevent_setwatermark
    - log
    - evutil_make_socket_nonblocking
    - bufferevent_getfd
    linkageType: ''
    returnType: void
    signature: void client_tcp_event_cb(struct bufferevent *bev, short events, void
      *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:2928,1
    - Dst: ASSERT_VALID_REQUEST
      Src: /src/libevent/evdns.c:2929,1
    - Dst: evdns_tcp_connect_if_disconnected
      Src: /src/libevent/evdns.c:2931,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/evdns.c:2935,1
    - Dst: log
      Src: /src/libevent/evdns.c:2937,1
    - Dst: htons
      Src: /src/libevent/evdns.c:2938,1
    - Dst: bufferevent_write
      Src: /src/libevent/evdns.c:2939,1
    - Dst: bufferevent_write
      Src: /src/libevent/evdns.c:2941,1
    - Dst: bufferevent_enable
      Src: /src/libevent/evdns.c:2943,1
    - Dst: evtimer_add
      Src: /src/libevent/evdns.c:2945,1
    - Dst: log
      Src: /src/libevent/evdns.c:2950,1
    - Dst: disconnect_and_free_connection
      Src: /src/libevent/evdns.c:2951,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - req
    - server
    argTypes:
    - struct request*
    - struct nameserver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2954
      start: 2923
    functionDepth: 4
    functionLinenumber: 2923
    functionLinenumberEnd: 2954
    functionName: evdns_request_transmit_through_tcp
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - disconnect_and_free_connection
    - evtimer_add
    - ASSERT_VALID_REQUEST
    - ASSERT_LOCKED
    - bufferevent_setcb
    - log
    - evdns_tcp_connect_if_disconnected
    - htons
    - bufferevent_enable
    - bufferevent_write
    linkageType: ''
    returnType: int
    signature: int evdns_request_transmit_through_tcp(struct request *req, struct
      nameserver *server)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:2966,1
    - Dst: ASSERT_VALID_REQUEST
      Src: /src/libevent/evdns.c:2967,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:2971,1
    - Dst: evdns_request_transmit_through_tcp
      Src: /src/libevent/evdns.c:2986,1
    - Dst: evdns_request_transmit_to
      Src: /src/libevent/evdns.c:2995,1
    - Dst: nameserver_write_waiting
      Src: /src/libevent/evdns.c:3001,1
    - Dst: log
      Src: /src/libevent/evdns.c:3011,1
    - Dst: evtimer_add
      Src: /src/libevent/evdns.c:3013,1
    - Dst: log
      Src: /src/libevent/evdns.c:3014,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3023
      start: 2962
    functionDepth: 6
    functionLinenumber: 2962
    functionLinenumberEnd: 3023
    functionName: evdns_request_transmit
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 3
    functionsReached:
    - evtimer_add
    - EVUTIL_ASSERT
    - ASSERT_VALID_REQUEST
    - ASSERT_LOCKED
    - evdns_request_transmit_to
    - log
    - nameserver_write_waiting
    - evdns_request_transmit_through_tcp
    linkageType: ''
    returnType: int
    signature: int evdns_request_transmit(struct request *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3040,1
    - Dst: nameserver_up
      Src: /src/libevent/evdns.c:3044,1
    - Dst: nameserver_probe_failed
      Src: /src/libevent/evdns.c:3046,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3048,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 6
    argNames:
    - result
    - type
    - count
    - ttl
    - addresses
    - arg
    argTypes:
    - int
    - char
    - int
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3049
      start: 3025
    functionDepth: 5
    functionLinenumber: 3025
    functionLinenumberEnd: 3049
    functionName: nameserver_probe_callback
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - nameserver_up
    - nameserver_probe_failed
    - EVDNS_UNLOCK
    linkageType: ''
    returnType: void
    signature: void nameserver_probe_callback(int result, char type, int count, int
      ttl, void *addresses, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:3059,1
    - Dst: log
      Src: /src/libevent/evdns.c:3060,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/evdns.c:3061,1
    - Dst: mm_calloc
      Src: /src/libevent/evdns.c:3064,1
    - Dst: request_new
      Src: /src/libevent/evdns.c:3068,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:3070,1
    - Dst: request_trans_id_set
      Src: /src/libevent/evdns.c:3075,1
    - Dst: transaction_id_pick
      Src: /src/libevent/evdns.c:3075,1
    - Dst: request_submit
      Src: /src/libevent/evdns.c:3077,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - ns
    argTypes:
    - struct nameserver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3078
      start: 3051
    functionDepth: 4
    functionLinenumber: 3051
    functionLinenumberEnd: 3078
    functionName: nameserver_send_probe
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached:
    - mm_free
    - request_new
    - request_trans_id_set
    - mm_calloc
    - ASSERT_LOCKED
    - evutil_format_sockaddr_port_
    - log
    - request_submit
    - transaction_id_pick
    linkageType: ''
    returnType: void
    signature: void nameserver_send_probe(struct nameserver *const ns)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:3088,1
    - Dst: evdns_request_transmit
      Src: /src/libevent/evdns.c:3096,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3105
      start: 3083
    functionDepth: 7
    functionLinenumber: 3083
    functionLinenumberEnd: 3105
    functionName: evdns_transmit
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 2
    functionsReached:
    - ASSERT_LOCKED
    - evdns_request_transmit
    linkageType: ''
    returnType: int
    signature: int evdns_transmit(struct evdns_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3114,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3125
      start: 3108
    functionDepth: 1
    functionLinenumber: 3108
    functionLinenumberEnd: 3125
    functionName: evdns_base_count_nameservers
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    linkageType: ''
    returnType: int
    signature: int evdns_base_count_nameservers(struct evdns_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_count_nameservers
      Src: /src/libevent/evdns.c:3130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3131
      start: 3127
    functionDepth: 2
    functionLinenumber: 3127
    functionLinenumberEnd: 3131
    functionName: evdns_count_nameservers
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_count_nameservers
    linkageType: ''
    returnType: int
    signature: int evdns_count_nameservers(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3140,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3144,1
    - Dst: disconnect_and_free_connection
      Src: /src/libevent/evdns.c:3149,1
    - Dst: event_del
      Src: /src/libevent/evdns.c:3151,1
    - Dst: evtimer_initialized
      Src: /src/libevent/evdns.c:3152,1
    - Dst: evtimer_del
      Src: /src/libevent/evdns.c:3153,1
    - Dst: evdns_cancel_request
      Src: /src/libevent/evdns.c:3155,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evdns.c:3159,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:3160,1
    - Dst: evtimer_del
      Src: /src/libevent/evdns.c:3176,1
    - Dst: evdns_request_insert
      Src: /src/libevent/evdns.c:3181,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3197,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3199
      start: 3134
    functionDepth: 3
    functionLinenumber: 3134
    functionLinenumberEnd: 3199
    functionName: evdns_base_clear_nameservers_and_suspend
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - evtimer_initialized
    - disconnect_and_free_connection
    - mm_free
    - event_del
    - evutil_closesocket
    - evtimer_del
    - EVDNS_UNLOCK
    - evdns_cancel_request
    - evdns_request_insert
    linkageType: ''
    returnType: int
    signature: int evdns_base_clear_nameservers_and_suspend(struct evdns_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_clear_nameservers_and_suspend
      Src: /src/libevent/evdns.c:3204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3205
      start: 3201
    functionDepth: 4
    functionLinenumber: 3201
    functionLinenumberEnd: 3205
    functionName: evdns_clear_nameservers_and_suspend
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_clear_nameservers_and_suspend
    linkageType: ''
    returnType: int
    signature: int evdns_clear_nameservers_and_suspend(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3212,1
    - Dst: evdns_requests_pump_waiting_queue
      Src: /src/libevent/evdns.c:3213,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3217
      start: 3209
    functionDepth: 2
    functionLinenumber: 3209
    functionLinenumberEnd: 3217
    functionName: evdns_base_resume
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - evdns_requests_pump_waiting_queue
    linkageType: ''
    returnType: int
    signature: int evdns_base_resume(struct evdns_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_resume
      Src: /src/libevent/evdns.c:3222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3223
      start: 3219
    functionDepth: 3
    functionLinenumber: 3219
    functionLinenumberEnd: 3223
    functionName: evdns_resume
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_resume
    linkageType: ''
    returnType: int
    signature: int evdns_resume(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:3234,1
    - Dst: evutil_sockaddr_cmp
      Src: /src/libevent/evdns.c:3237,1
    - Dst: log
      Src: /src/libevent/evdns.c:3242,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:3246,1
    - Dst: memset
      Src: /src/libevent/evdns.c:3249,1
    - Dst: evtimer_assign
      Src: /src/libevent/evdns.c:3252,1
    - Dst: evutil_socket_
      Src: /src/libevent/evdns.c:3254,1
    - Dst: evutil_sockaddr_is_loopback_
      Src: /src/libevent/evdns.c:3259,1
    - Dst: bind
      Src: /src/libevent/evdns.c:3260,1
    - Dst: log
      Src: /src/libevent/evdns.c:3263,1
    - Dst: setsockopt
      Src: /src/libevent/evdns.c:3270,1
    - Dst: log
      Src: /src/libevent/evdns.c:3272,1
    - Dst: setsockopt
      Src: /src/libevent/evdns.c:3278,1
    - Dst: log
      Src: /src/libevent/evdns.c:3280,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:3286,1
    - Dst: event_assign
      Src: /src/libevent/evdns.c:3290,1
    - Dst: event_add
      Src: /src/libevent/evdns.c:3292,1
    - Dst: log
      Src: /src/libevent/evdns.c:3297,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/evdns.c:3298,1
    - Dst: evutil_closesocket
      Src: /src/libevent/evdns.c:3316,1
    - Dst: event_debug_unassign
      Src: /src/libevent/evdns.c:3318,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:3319,1
    - Dst: log
      Src: /src/libevent/evdns.c:3320,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/evdns.c:3321,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 80
    argCount: 3
    argNames:
    - base
    - address
    - addrlen
    argTypes:
    - struct evdns_base*
    - struct sockaddr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3323
      start: 3225
    functionDepth: 4
    functionLinenumber: 3225
    functionLinenumberEnd: 3323
    functionName: evdns_nameserver_add_impl_
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evtimer_assign
    - mm_free
    - event_debug_unassign
    - evutil_sockaddr_is_loopback_
    - evutil_socket_
    - setsockopt
    - evutil_closesocket
    - mm_malloc
    - ASSERT_LOCKED
    - event_assign
    - memset
    - evutil_format_sockaddr_port_
    - event_add
    - log
    - evutil_sockaddr_cmp
    - bind
    - memcpy
    linkageType: ''
    returnType: int
    signature: int evdns_nameserver_add_impl_(struct evdns_base *base, const struct
      sockaddr *address, int addrlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/evdns.c:3331,1
    - Dst: htons
      Src: /src/libevent/evdns.c:3333,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3338,1
    - Dst: evdns_nameserver_add_impl_
      Src: /src/libevent/evdns.c:3339,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - base
    - address
    argTypes:
    - struct evdns_base*
    - unsigned long int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3342
      start: 3326
    functionDepth: 5
    functionLinenumber: 3326
    functionLinenumberEnd: 3342
    functionName: evdns_base_nameserver_add
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - memset
    - EVDNS_UNLOCK
    - htons
    - evdns_nameserver_add_impl_
    linkageType: ''
    returnType: int
    signature: int evdns_base_nameserver_add(struct evdns_base *base, unsigned long
      int address)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/evdns.c:3347,1
    - Dst: evdns_base_nameserver_add
      Src: /src/libevent/evdns.c:3348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - address
    argTypes:
    - unsigned long int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3349
      start: 3344
    functionDepth: 6
    functionLinenumber: 3344
    functionLinenumberEnd: 3349
    functionName: evdns_nameserver_add
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_nameserver_add
    - evdns_base_new
    linkageType: ''
    returnType: int
    signature: int evdns_nameserver_add(unsigned long int address)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/libevent/evdns.c:3355,1
    - Dst: htons
      Src: /src/libevent/evdns.c:3357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - sa
    - port
    argTypes:
    - struct sockaddr*
    - ev_uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3359
      start: 3351
    functionDepth: 0
    functionLinenumber: 3351
    functionLinenumberEnd: 3359
    functionName: sockaddr_setport
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - htons
    linkageType: ''
    returnType: void
    signature: void sockaddr_setport(struct sockaddr *sa, ev_uint16_t port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/libevent/evdns.c:3365,1
    - Dst: ntohs
      Src: /src/libevent/evdns.c:3367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - sa
    argTypes:
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3371
      start: 3361
    functionDepth: 0
    functionLinenumber: 3361
    functionLinenumberEnd: 3371
    functionName: sockaddr_getport
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - ntohs
    linkageType: ''
    returnType: ev_uint16_t
    signature: ev_uint16_t sockaddr_getport(struct sockaddr *sa)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evutil_parse_sockaddr_port
      Src: /src/libevent/evdns.c:3380,1
    - Dst: log
      Src: /src/libevent/evdns.c:3382,1
    - Dst: sockaddr_getport
      Src: /src/libevent/evdns.c:3387,1
    - Dst: sockaddr_setport
      Src: /src/libevent/evdns.c:3388,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3390,1
    - Dst: evdns_nameserver_add_impl_
      Src: /src/libevent/evdns.c:3391,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - base
    - ip_as_string
    argTypes:
    - struct evdns_base*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3394
      start: 3374
    functionDepth: 5
    functionLinenumber: 3374
    functionLinenumberEnd: 3394
    functionName: evdns_base_nameserver_ip_add
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - evdns_nameserver_add_impl_
    - evutil_parse_sockaddr_port
    - sockaddr_setport
    - EVDNS_UNLOCK
    - log
    - sockaddr_getport
    linkageType: ''
    returnType: int
    signature: int evdns_base_nameserver_ip_add(struct evdns_base *base, const char
      *ip_as_string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/evdns.c:3399,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/evdns.c:3400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ip_as_string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3401
      start: 3396
    functionDepth: 6
    functionLinenumber: 3396
    functionLinenumberEnd: 3401
    functionName: evdns_nameserver_ip_add
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_nameserver_ip_add
    - evdns_base_new
    linkageType: ''
    returnType: int
    signature: int evdns_nameserver_ip_add(const char *ip_as_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:3408,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3409,1
    - Dst: evdns_nameserver_add_impl_
      Src: /src/libevent/evdns.c:3410,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - base
    - sa
    - len
    - flags
    argTypes:
    - struct evdns_base*
    - struct sockaddr*
    - ev_socklen_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3413
      start: 3403
    functionDepth: 5
    functionLinenumber: 3403
    functionLinenumberEnd: 3413
    functionName: evdns_base_nameserver_sockaddr_add
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - evdns_nameserver_add_impl_
    linkageType: ''
    returnType: int
    signature: "int evdns_base_nameserver_sockaddr_add(struct evdns_base *base,\n
      \   const struct sockaddr *sa, ev_socklen_t len, unsigned flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3422,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:3436,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3439,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - base
    - idx
    - sa
    - len
    argTypes:
    - struct evdns_base*
    - int
    - struct sockaddr*
    - ev_socklen_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3441
      start: 3415
    functionDepth: 1
    functionLinenumber: 3415
    functionLinenumberEnd: 3441
    functionName: evdns_base_get_nameserver_addr
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int evdns_base_get_nameserver_addr(struct evdns_base *base, int idx,\n
      \   struct sockaddr *sa, ev_socklen_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3449,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3459,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - base
    - idx
    argTypes:
    - struct evdns_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3461
      start: 3443
    functionDepth: 1
    functionLinenumber: 3443
    functionLinenumberEnd: 3461
    functionName: evdns_base_get_nameserver_fd
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    linkageType: ''
    returnType: int
    signature: int evdns_base_get_nameserver_fd(struct evdns_base *base, int idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:3468,1
    - Dst: ASSERT_VALID_REQUEST
      Src: /src/libevent/evdns.c:3469,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:3475,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:3485,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:3487,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - req
    - head
    argTypes:
    - struct request*
    - struct request**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3500
      start: 3465
    functionDepth: 1
    functionLinenumber: 3465
    functionLinenumberEnd: 3500
    functionName: evdns_request_remove
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 2
    functionsReached:
    - EVUTIL_ASSERT
    - ASSERT_VALID_REQUEST
    - ASSERT_LOCKED
    linkageType: ''
    returnType: void
    signature: void evdns_request_remove(struct request *req, struct request **head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:3505,1
    - Dst: ASSERT_VALID_REQUEST
      Src: /src/libevent/evdns.c:3506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - req
    - head
    argTypes:
    - struct request*
    - struct request**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3517
      start: 3503
    functionDepth: 1
    functionLinenumber: 3503
    functionLinenumberEnd: 3517
    functionName: evdns_request_insert
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 2
    functionsReached:
    - ASSERT_VALID_REQUEST
    - ASSERT_LOCKED
    linkageType: ''
    returnType: void
    signature: void evdns_request_insert(struct request *req, struct request **head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/libevent/evdns.c:3522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3527
      start: 3519
    functionDepth: 0
    functionLinenumber: 3519
    functionLinenumberEnd: 3527
    functionName: string_num_dots
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: int
    signature: int string_num_dots(const char *s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/evdns.c:3536,1
    - Dst: evdns_request_len
      Src: /src/libevent/evdns.c:3537,1
    - Dst: transaction_id_pick
      Src: /src/libevent/evdns.c:3538,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:3541,1
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:3546,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:3551,1
    - Dst: memset
      Src: /src/libevent/evdns.c:3555,1
    - Dst: evtimer_assign
      Src: /src/libevent/evdns.c:3559,1
    - Dst: strlcpy
      Src: /src/libevent/evdns.c:3564,1
    - Dst: evutil_secure_rng_get_bytes
      Src: /src/libevent/evdns.c:3565,1
    - Dst: EVUTIL_ISALPHA_
      Src: /src/libevent/evdns.c:3567,1
    - Dst: evdns_request_data_build
      Src: /src/libevent/evdns.c:3581,1
    - Dst: nameserver_pick
      Src: /src/libevent/evdns.c:3590,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:3603,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 5
    argNames:
    - base
    - handle
    - type
    - name
    - flags
    argTypes:
    - struct evdns_base*
    - struct evdns_request*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3605
      start: 3529
    functionDepth: 4
    functionLinenumber: 3529
    functionLinenumberEnd: 3605
    functionName: request_new
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 3
    functionsReached:
    - evtimer_assign
    - evutil_secure_rng_get_bytes
    - nameserver_pick
    - mm_free
    - evdns_request_len
    - ASSERT_LOCKED
    - mm_malloc
    - strlcpy
    - EVUTIL_ISALPHA_
    - memset
    - evdns_request_data_build
    - strlen
    - transaction_id_pick
    linkageType: ''
    returnType: struct request
    signature: "struct request *\nrequest_new(struct evdns_base *base, struct evdns_request
      *handle, int type,\n\t    const char *name, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: transaction_id_pick
      Src: /src/libevent/evdns.c:3612,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:3614,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:3615,1
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:3616,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:3620,1
    - Dst: evtimer_assign
      Src: /src/libevent/evdns.c:3622,1
    - Dst: request_trans_id_set
      Src: /src/libevent/evdns.c:3627,1
    - Dst: nameserver_pick
      Src: /src/libevent/evdns.c:3630,1
    - Dst: log
      Src: /src/libevent/evdns.c:3633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - base
    - current
    argTypes:
    - struct evdns_base*
    - struct request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3636
      start: 3607
    functionDepth: 3
    functionLinenumber: 3607
    functionLinenumberEnd: 3636
    functionName: request_clone
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached:
    - evtimer_assign
    - nameserver_pick
    - request_trans_id_set
    - EVUTIL_ASSERT
    - ASSERT_LOCKED
    - mm_malloc
    - memcpy
    - log
    - transaction_id_pick
    linkageType: ''
    returnType: struct request
    signature: 'struct request *

      request_clone(struct evdns_base *base, struct request* current)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:3641,1
    - Dst: ASSERT_VALID_REQUEST
      Src: /src/libevent/evdns.c:3642,1
    - Dst: evdns_request_insert
      Src: /src/libevent/evdns.c:3646,1
    - Dst: REQ_HEAD
      Src: /src/libevent/evdns.c:3646,1
    - Dst: evdns_request_transmit
      Src: /src/libevent/evdns.c:3651,1
    - Dst: evdns_request_insert
      Src: /src/libevent/evdns.c:3653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3656
      start: 3638
    functionDepth: 7
    functionLinenumber: 3638
    functionLinenumberEnd: 3656
    functionName: request_submit
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 2
    functionsReached:
    - ASSERT_VALID_REQUEST
    - ASSERT_LOCKED
    - evdns_request_insert
    - REQ_HEAD
    - evdns_request_transmit
    linkageType: ''
    returnType: void
    signature: void request_submit(struct request *const req)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3674,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3676,1
    - Dst: ASSERT_VALID_REQUEST
      Src: /src/libevent/evdns.c:3681,1
    - Dst: reply_schedule_callback
      Src: /src/libevent/evdns.c:3683,1
    - Dst: request_finished
      Src: /src/libevent/evdns.c:3686,1
    - Dst: REQ_HEAD
      Src: /src/libevent/evdns.c:3686,1
    - Dst: request_finished
      Src: /src/libevent/evdns.c:3689,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3691,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - base
    - handle
    argTypes:
    - struct evdns_base*
    - struct evdns_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3692
      start: 3659
    functionDepth: 2
    functionLinenumber: 3659
    functionLinenumberEnd: 3692
    functionName: evdns_cancel_request
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 2
    functionsReached:
    - EVDNS_LOCK
    - reply_schedule_callback
    - ASSERT_VALID_REQUEST
    - EVDNS_UNLOCK
    - REQ_HEAD
    - request_finished
    linkageType: ''
    returnType: void
    signature: void evdns_cancel_request(struct evdns_base *base, struct evdns_request
      *handle)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libevent/evdns.c:3700,1
    - Dst: mm_calloc
      Src: /src/libevent/evdns.c:3701,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3706,1
    - Dst: request_new
      Src: /src/libevent/evdns.c:3711,1
    - Dst: request_submit
      Src: /src/libevent/evdns.c:3713,1
    - Dst: search_request_new
      Src: /src/libevent/evdns.c:3715,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:3718,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3721,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - base
    - name
    - flags
    - callback
    - ptr
    argTypes:
    - struct evdns_base*
    - char*
    - int
    - evdns_callback_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3723
      start: 3695
    functionDepth: 8
    functionLinenumber: 3695
    functionLinenumberEnd: 3723
    functionName: evdns_base_resolve_ipv4
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - mm_free
    - request_new
    - mm_calloc
    - search_request_new
    - EVDNS_UNLOCK
    - log
    - request_submit
    linkageType: ''
    returnType: struct evdns_request
    signature: "struct evdns_request *\nevdns_base_resolve_ipv4(struct evdns_base
      *base, const char *name, int flags,\n    evdns_callback_type callback, void
      *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/evdns.c:3728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - name
    - flags
    - callback
    - ptr
    argTypes:
    - char*
    - int
    - evdns_callback_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3730
      start: 3725
    functionDepth: 9
    functionLinenumber: 3725
    functionLinenumberEnd: 3730
    functionName: evdns_resolve_ipv4
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_resolve_ipv4
    linkageType: ''
    returnType: int
    signature: "int evdns_resolve_ipv4(const char *name, int flags,\n\t\t\t\t\t   evdns_callback_type
      callback, void *ptr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libevent/evdns.c:3741,1
    - Dst: mm_calloc
      Src: /src/libevent/evdns.c:3742,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3747,1
    - Dst: request_new
      Src: /src/libevent/evdns.c:3751,1
    - Dst: request_submit
      Src: /src/libevent/evdns.c:3753,1
    - Dst: search_request_new
      Src: /src/libevent/evdns.c:3755,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:3758,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3761,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - base
    - name
    - flags
    - callback
    - ptr
    argTypes:
    - struct evdns_base*
    - char*
    - int
    - evdns_callback_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3763
      start: 3734
    functionDepth: 8
    functionLinenumber: 3734
    functionLinenumberEnd: 3763
    functionName: evdns_base_resolve_ipv6
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - mm_free
    - request_new
    - mm_calloc
    - search_request_new
    - EVDNS_UNLOCK
    - log
    - request_submit
    linkageType: ''
    returnType: struct evdns_request
    signature: "struct evdns_request *\nevdns_base_resolve_ipv6(struct evdns_base
      *base,\n    const char *name, int flags,\n    evdns_callback_type callback,
      void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_resolve_ipv6
      Src: /src/libevent/evdns.c:3767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - name
    - flags
    - callback
    - ptr
    argTypes:
    - char*
    - int
    - evdns_callback_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3769
      start: 3765
    functionDepth: 9
    functionLinenumber: 3765
    functionLinenumberEnd: 3769
    functionName: evdns_resolve_ipv6
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_resolve_ipv6
    linkageType: ''
    returnType: int
    signature: "int evdns_resolve_ipv6(const char *name, int flags,\n    evdns_callback_type
      callback, void *ptr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:3777,1
    - Dst: ntohl
      Src: /src/libevent/evdns.c:3778,1
    - Dst: evutil_snprintf
      Src: /src/libevent/evdns.c:3779,1
    - Dst: mm_calloc
      Src: /src/libevent/evdns.c:3784,1
    - Dst: log
      Src: /src/libevent/evdns.c:3789,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3790,1
    - Dst: request_new
      Src: /src/libevent/evdns.c:3793,1
    - Dst: request_submit
      Src: /src/libevent/evdns.c:3795,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:3797,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3800,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 5
    argNames:
    - base
    - in
    - flags
    - callback
    - ptr
    argTypes:
    - struct evdns_base*
    - struct in_addr*
    - int
    - evdns_callback_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3802
      start: 3771
    functionDepth: 8
    functionLinenumber: 3771
    functionLinenumberEnd: 3802
    functionName: evdns_base_resolve_reverse
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - mm_free
    - request_new
    - EVUTIL_ASSERT
    - mm_calloc
    - ntohl
    - EVDNS_UNLOCK
    - log
    - request_submit
    - evutil_snprintf
    linkageType: ''
    returnType: struct evdns_request
    signature: 'struct evdns_request *

      evdns_base_resolve_reverse(struct evdns_base *base, const struct in_addr *in,
      int flags, evdns_callback_type callback, void *ptr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_resolve_reverse
      Src: /src/libevent/evdns.c:3805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - in
    - flags
    - callback
    - ptr
    argTypes:
    - struct in_addr*
    - int
    - evdns_callback_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3807
      start: 3804
    functionDepth: 9
    functionLinenumber: 3804
    functionLinenumberEnd: 3807
    functionName: evdns_resolve_reverse
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_resolve_reverse
    linkageType: ''
    returnType: int
    signature: int evdns_resolve_reverse(const struct in_addr *in, int flags, evdns_callback_type
      callback, void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:3817,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:3826,1
    - Dst: strlen
      Src: /src/libevent/evdns.c:3826,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:3827,1
    - Dst: strlen
      Src: /src/libevent/evdns.c:3827,1
    - Dst: mm_calloc
      Src: /src/libevent/evdns.c:3828,1
    - Dst: log
      Src: /src/libevent/evdns.c:3833,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3834,1
    - Dst: request_new
      Src: /src/libevent/evdns.c:3837,1
    - Dst: request_submit
      Src: /src/libevent/evdns.c:3839,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:3841,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3844,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 5
    argNames:
    - base
    - in
    - flags
    - callback
    - ptr
    argTypes:
    - struct evdns_base*
    - struct in6_addr*
    - int
    - evdns_callback_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3846
      start: 3809
    functionDepth: 8
    functionLinenumber: 3809
    functionLinenumberEnd: 3846
    functionName: evdns_base_resolve_reverse_ipv6
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - mm_free
    - request_new
    - EVUTIL_ASSERT
    - mm_calloc
    - EVDNS_UNLOCK
    - log
    - memcpy
    - request_submit
    - strlen
    linkageType: ''
    returnType: struct evdns_request
    signature: 'struct evdns_request *

      evdns_base_resolve_reverse_ipv6(struct evdns_base *base, const struct in6_addr
      *in, int flags, evdns_callback_type callback, void *ptr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_resolve_reverse_ipv6
      Src: /src/libevent/evdns.c:3849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - in
    - flags
    - callback
    - ptr
    argTypes:
    - struct in6_addr*
    - int
    - evdns_callback_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3851
      start: 3848
    functionDepth: 9
    functionLinenumber: 3848
    functionLinenumberEnd: 3851
    functionName: evdns_resolve_reverse_ipv6
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_resolve_reverse_ipv6
    linkageType: ''
    returnType: int
    signature: int evdns_resolve_reverse_ipv6(const struct in6_addr *in, int flags,
      evdns_callback_type callback, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/evdns.c:3887,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:3889,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct search_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3891
      start: 3879
    functionDepth: 1
    functionLinenumber: 3879
    functionLinenumberEnd: 3891
    functionName: search_state_decref
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - mm_free
    linkageType: ''
    returnType: void
    signature: void search_state_decref(struct search_state *const state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:3895,1
    - Dst: memset
      Src: /src/libevent/evdns.c:3897,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3902
      start: 3893
    functionDepth: 1
    functionLinenumber: 3893
    functionLinenumberEnd: 3902
    functionName: search_state_new
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - memset
    - mm_malloc
    linkageType: ''
    returnType: struct search_state
    signature: 'struct search_state *

      search_state_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: search_state_decref
      Src: /src/libevent/evdns.c:3906,1
    - Dst: search_state_new
      Src: /src/libevent/evdns.c:3908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3909
      start: 3904
    functionDepth: 2
    functionLinenumber: 3904
    functionLinenumberEnd: 3909
    functionName: search_postfix_clear
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - search_state_new
    - search_state_decref
    linkageType: ''
    returnType: void
    signature: void search_postfix_clear(struct evdns_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3915,1
    - Dst: search_postfix_clear
      Src: /src/libevent/evdns.c:3916,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3918
      start: 3912
    functionDepth: 3
    functionLinenumber: 3912
    functionLinenumberEnd: 3918
    functionName: evdns_base_search_clear
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - search_postfix_clear
    linkageType: ''
    returnType: void
    signature: void evdns_base_search_clear(struct evdns_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_search_clear
      Src: /src/libevent/evdns.c:3922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3923
      start: 3920
    functionDepth: 4
    functionLinenumber: 3920
    functionLinenumberEnd: 3923
    functionName: evdns_search_clear
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_search_clear
    linkageType: ''
    returnType: void
    signature: void evdns_search_clear(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/evdns.c:3930,1
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:3932,1
    - Dst: search_state_new
      Src: /src/libevent/evdns.c:3933,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:3937,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:3939,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - base
    - domain
    argTypes:
    - struct evdns_base*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3944
      start: 3925
    functionDepth: 2
    functionLinenumber: 3925
    functionLinenumberEnd: 3944
    functionName: search_postfix_add
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - ASSERT_LOCKED
    - memcpy
    - strlen
    - search_state_new
    linkageType: ''
    returnType: void
    signature: void search_postfix_add(struct evdns_base *base, const char *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:3951,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3961
      start: 3948
    functionDepth: 1
    functionLinenumber: 3948
    functionLinenumberEnd: 3961
    functionName: search_reverse
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - ASSERT_LOCKED
    linkageType: ''
    returnType: void
    signature: void search_reverse(struct evdns_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3966,1
    - Dst: search_postfix_add
      Src: /src/libevent/evdns.c:3967,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - base
    - domain
    argTypes:
    - struct evdns_base*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3969
      start: 3964
    functionDepth: 3
    functionLinenumber: 3964
    functionLinenumberEnd: 3969
    functionName: evdns_base_search_add
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - search_postfix_add
    linkageType: ''
    returnType: void
    signature: void evdns_base_search_add(struct evdns_base *base, const char *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_search_add
      Src: /src/libevent/evdns.c:3972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3973
      start: 3970
    functionDepth: 4
    functionLinenumber: 3970
    functionLinenumberEnd: 3973
    functionName: evdns_search_add
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_search_add
    linkageType: ''
    returnType: void
    signature: void evdns_search_add(const char *domain)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:3978,1
    - Dst: search_state_new
      Src: /src/libevent/evdns.c:3979,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:3982,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - base
    - ndots
    argTypes:
    - struct evdns_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3983
      start: 3976
    functionDepth: 2
    functionLinenumber: 3976
    functionLinenumberEnd: 3983
    functionName: evdns_base_search_ndots_set
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - search_state_new
    linkageType: ''
    returnType: void
    signature: void evdns_base_search_ndots_set(struct evdns_base *base, const int
      ndots)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_search_ndots_set
      Src: /src/libevent/evdns.c:3986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndots
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3987
      start: 3984
    functionDepth: 3
    functionLinenumber: 3984
    functionLinenumberEnd: 3987
    functionName: evdns_search_ndots_set
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_search_ndots_set
    linkageType: ''
    returnType: void
    signature: void evdns_search_ndots_set(const int ndots)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:3993,1
    - Dst: search_postfix_clear
      Src: /src/libevent/evdns.c:3994,1
    - Dst: gethostname
      Src: /src/libevent/evdns.c:3995,1
    - Dst: strchr
      Src: /src/libevent/evdns.c:3996,1
    - Dst: search_postfix_add
      Src: /src/libevent/evdns.c:3998,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3999
      start: 3989
    functionDepth: 3
    functionLinenumber: 3989
    functionLinenumberEnd: 3999
    functionName: search_set_from_hostname
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - search_postfix_clear
    - ASSERT_LOCKED
    - strchr
    - gethostname
    - search_postfix_add
    linkageType: ''
    returnType: void
    signature: void search_set_from_hostname(struct evdns_base *base)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/evdns.c:4004,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:4017,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:4019,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:4021,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:4028,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - state
    - n
    - base_name
    argTypes:
    - struct search_state*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4030
      start: 4002
    functionDepth: 1
    functionLinenumber: 4002
    functionLinenumberEnd: 4030
    functionName: search_make_new
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    - mm_malloc
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: char
    signature: 'char *

      search_make_new(const struct search_state *const state, int n, const char *const
      base_name)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:4035,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:4036,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:4037,1
    - Dst: string_num_dots
      Src: /src/libevent/evdns.c:4043,1
    - Dst: request_new
      Src: /src/libevent/evdns.c:4044,1
    - Dst: search_make_new
      Src: /src/libevent/evdns.c:4048,1
    - Dst: request_new
      Src: /src/libevent/evdns.c:4050,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:4051,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:4055,1
    - Dst: mm_strdup
      Src: /src/libevent/evdns.c:4056,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:4060,1
    - Dst: request_submit
      Src: /src/libevent/evdns.c:4066,1
    - Dst: request_new
      Src: /src/libevent/evdns.c:4069,1
    - Dst: request_submit
      Src: /src/libevent/evdns.c:4071,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 5
    argNames:
    - base
    - handle
    - type
    - name
    - flags
    argTypes:
    - struct evdns_base*
    - struct evdns_request*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4074
      start: 4032
    functionDepth: 8
    functionLinenumber: 4032
    functionLinenumberEnd: 4074
    functionName: search_request_new
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 2
    functionsReached:
    - mm_free
    - request_new
    - string_num_dots
    - EVUTIL_ASSERT
    - ASSERT_LOCKED
    - mm_strdup
    - search_make_new
    - request_submit
    linkageType: ''
    returnType: struct request
    signature: "struct request *\nsearch_request_new(struct evdns_base *base, struct
      evdns_request *handle,\n\t\t   int type, const char *const name, int flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:4086,1
    - Dst: string_num_dots
      Src: /src/libevent/evdns.c:4094,1
    - Dst: request_new
      Src: /src/libevent/evdns.c:4096,1
    - Dst: log
      Src: /src/libevent/evdns.c:4097,1
    - Dst: search_request_finished
      Src: /src/libevent/evdns.c:4099,1
    - Dst: search_make_new
      Src: /src/libevent/evdns.c:4106,1
    - Dst: log
      Src: /src/libevent/evdns.c:4108,1
    - Dst: request_new
      Src: /src/libevent/evdns.c:4109,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:4110,1
    - Dst: request_finished
      Src: /src/libevent/evdns.c:4117,1
    - Dst: REQ_HEAD
      Src: /src/libevent/evdns.c:4117,1
    - Dst: request_submit
      Src: /src/libevent/evdns.c:4120,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - handle
    argTypes:
    - struct evdns_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4122
      start: 4081
    functionDepth: 8
    functionLinenumber: 4081
    functionLinenumberEnd: 4122
    functionName: search_try_next
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached:
    - mm_free
    - request_new
    - string_num_dots
    - search_request_finished
    - ASSERT_LOCKED
    - search_make_new
    - log
    - request_submit
    - REQ_HEAD
    - request_finished
    linkageType: ''
    returnType: int
    signature: int search_try_next(struct evdns_request *const handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:4126,1
    - Dst: search_state_decref
      Src: /src/libevent/evdns.c:4128,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:4132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - handle
    argTypes:
    - struct evdns_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4135
      start: 4124
    functionDepth: 2
    functionLinenumber: 4124
    functionLinenumberEnd: 4135
    functionName: search_request_finished
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 2
    functionsReached:
    - mm_free
    - ASSERT_LOCKED
    - search_state_decref
    linkageType: ''
    returnType: void
    signature: void search_request_finished(struct evdns_request *const handle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:4147,1
    - Dst: search_set_from_hostname
      Src: /src/libevent/evdns.c:4149,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/evdns.c:4151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - base
    - flags
    argTypes:
    - struct evdns_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4152
      start: 4140
    functionDepth: 6
    functionLinenumber: 4140
    functionLinenumberEnd: 4152
    functionName: evdns_resolv_set_defaults
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - search_set_from_hostname
    - evdns_base_nameserver_ip_add
    - ASSERT_LOCKED
    linkageType: ''
    returnType: void
    signature: void evdns_resolv_set_defaults(struct evdns_base *base, int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/libevent/evdns.c:4161,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - s
    - delim
    - state
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4173
      start: 4155
    functionDepth: 0
    functionLinenumber: 4155
    functionLinenumberEnd: 4173
    functionName: strtok_r
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: char
    signature: 'char *

      strtok_r(char *s, const char *delim, char **state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/libevent/evdns.c:4181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4184
      start: 4177
    functionDepth: 0
    functionLinenumber: 4177
    functionLinenumberEnd: 4184
    functionName: strtoint
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - strtol
    linkageType: ''
    returnType: int
    signature: int strtoint(const char *const str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strtod
      Src: /src/libevent/evdns.c:4192,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - str
    - out
    argTypes:
    - char*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4200
      start: 4187
    functionDepth: 0
    functionLinenumber: 4187
    functionLinenumberEnd: 4200
    functionName: evdns_strtotimeval
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - strtod
    linkageType: ''
    returnType: int
    signature: int evdns_strtotimeval(const char *const str, struct timeval *out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strtoint
      Src: /src/libevent/evdns.c:4206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - str
    - min
    - max
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4215
      start: 4203
    functionDepth: 1
    functionLinenumber: 4203
    functionLinenumberEnd: 4215
    functionName: strtoint_clipped
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - strtoint
    linkageType: ''
    returnType: int
    signature: int strtoint_clipped(const char *const str, int min, int max)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:4224,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:4228,1
    - Dst: mm_calloc
      Src: /src/libevent/evdns.c:4229,1
    - Dst: evdns_request_remove
      Src: /src/libevent/evdns.c:4236,1
    - Dst: evdns_request_insert
      Src: /src/libevent/evdns.c:4237,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:4240,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - base
    - maxinflight
    argTypes:
    - struct evdns_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4246
      start: 4217
    functionDepth: 2
    functionLinenumber: 4217
    functionLinenumberEnd: 4246
    functionName: evdns_base_set_max_requests_inflight
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - mm_free
    - EVUTIL_ASSERT
    - mm_calloc
    - ASSERT_LOCKED
    - evdns_request_remove
    - evdns_request_insert
    linkageType: ''
    returnType: int
    signature: int evdns_base_set_max_requests_inflight(struct evdns_base *base, int
      maxinflight)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:4254,1
    - Dst: evdns_base_set_option_impl
      Src: /src/libevent/evdns.c:4255,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:4256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - base
    - option
    - val
    argTypes:
    - struct evdns_base*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4258
      start: 4249
    functionDepth: 1
    functionLinenumber: 4249
    functionLinenumberEnd: 4258
    functionName: evdns_base_set_option
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - evdns_base_set_option_impl
    linkageType: ''
    returnType: int
    signature: "int evdns_base_set_option(struct evdns_base *base,\n    const char
      *option, const char *val)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/evdns.c:4266,1
    - Dst: strlen
      Src: /src/libevent/evdns.c:4267,1
    - Dst: strncmp
      Src: /src/libevent/evdns.c:4269,1
    - Dst: strncmp
      Src: /src/libevent/evdns.c:4271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - s1
    - optionname
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4274
      start: 4260
    functionDepth: 0
    functionLinenumber: 4260
    functionLinenumberEnd: 4274
    functionName: str_matches_option
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - strlen
    - strncmp
    linkageType: ''
    returnType: int
    signature: int str_matches_option(const char *s1, const char *optionname)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:4282,1
    - Dst: log
      Src: /src/libevent/evdns.c:4286,1
    - Dst: log
      Src: /src/libevent/evdns.c:4291,1
    - Dst: log
      Src: /src/libevent/evdns.c:4295,1
    - Dst: log
      Src: /src/libevent/evdns.c:4301,1
    - Dst: log
      Src: /src/libevent/evdns.c:4305,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:4310,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - port
    - option
    - value
    argTypes:
    - struct evdns_server_port*
    - enum evdns_server_option
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4312
      start: 4277
    functionDepth: 1
    functionLinenumber: 4277
    functionLinenumberEnd: 4312
    functionName: evdns_server_port_set_option
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - log
    linkageType: ''
    returnType: int
    signature: "int evdns_server_port_set_option(struct evdns_server_port *port,\n\tenum
      evdns_server_option option, size_t value)"
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:4318,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4319,1
    - Dst: strtoint
      Src: /src/libevent/evdns.c:4320,1
    - Dst: log
      Src: /src/libevent/evdns.c:4323,1
    - Dst: search_state_new
      Src: /src/libevent/evdns.c:4324,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4327,1
    - Dst: evdns_strtotimeval
      Src: /src/libevent/evdns.c:4329,1
    - Dst: log
      Src: /src/libevent/evdns.c:4331,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:4332,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4333,1
    - Dst: evdns_strtotimeval
      Src: /src/libevent/evdns.c:4335,1
    - Dst: log
      Src: /src/libevent/evdns.c:4337,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:4339,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4341,1
    - Dst: strtoint_clipped
      Src: /src/libevent/evdns.c:4342,1
    - Dst: log
      Src: /src/libevent/evdns.c:4345,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4348,1
    - Dst: strtoint_clipped
      Src: /src/libevent/evdns.c:4349,1
    - Dst: log
      Src: /src/libevent/evdns.c:4352,1
    - Dst: evdns_base_set_max_requests_inflight
      Src: /src/libevent/evdns.c:4354,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4355,1
    - Dst: strtoint
      Src: /src/libevent/evdns.c:4356,1
    - Dst: log
      Src: /src/libevent/evdns.c:4360,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4362,1
    - Dst: strtoint
      Src: /src/libevent/evdns.c:4363,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4367,1
    - Dst: evutil_parse_sockaddr_port
      Src: /src/libevent/evdns.c:4372,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4376,1
    - Dst: evdns_strtotimeval
      Src: /src/libevent/evdns.c:4378,1
    - Dst: log
      Src: /src/libevent/evdns.c:4382,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:4384,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4386,1
    - Dst: strtoint_clipped
      Src: /src/libevent/evdns.c:4387,1
    - Dst: log
      Src: /src/libevent/evdns.c:4390,1
    - Dst: log
      Src: /src/libevent/evdns.c:4396,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4399,1
    - Dst: strtoint_clipped
      Src: /src/libevent/evdns.c:4400,1
    - Dst: log
      Src: /src/libevent/evdns.c:4403,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4406,1
    - Dst: strtoint
      Src: /src/libevent/evdns.c:4407,1
    - Dst: log
      Src: /src/libevent/evdns.c:4410,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4412,1
    - Dst: strtoint
      Src: /src/libevent/evdns.c:4413,1
    - Dst: log
      Src: /src/libevent/evdns.c:4416,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4418,1
    - Dst: evdns_strtotimeval
      Src: /src/libevent/evdns.c:4420,1
    - Dst: log
      Src: /src/libevent/evdns.c:4422,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:4423,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4424,1
    - Dst: strlen
      Src: /src/libevent/evdns.c:4426,1
    - Dst: log
      Src: /src/libevent/evdns.c:4427,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4429,1
    - Dst: strlen
      Src: /src/libevent/evdns.c:4431,1
    - Dst: log
      Src: /src/libevent/evdns.c:4432,1
    - Dst: str_matches_option
      Src: /src/libevent/evdns.c:4434,1
    - Dst: strtoint_clipped
      Src: /src/libevent/evdns.c:4435,1
    - Dst: log
      Src: /src/libevent/evdns.c:4438,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 150
    argCount: 4
    argNames:
    - base
    - option
    - val
    - flags
    argTypes:
    - struct evdns_base*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4442
      start: 4314
    functionDepth: 3
    functionLinenumber: 4314
    functionLinenumberEnd: 4442
    functionName: evdns_base_set_option_impl
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached:
    - evdns_base_set_max_requests_inflight
    - strlen
    - str_matches_option
    - ASSERT_LOCKED
    - strtoint_clipped
    - evutil_parse_sockaddr_port
    - log
    - memcpy
    - search_state_new
    - evdns_strtotimeval
    - strtoint
    linkageType: ''
    returnType: int
    signature: "int evdns_base_set_option_impl(struct evdns_base *base,\n    const
      char *option, const char *val, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/evdns.c:4448,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/evdns.c:4449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - option
    - val
    - flags
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4450
      start: 4444
    functionDepth: 2
    functionLinenumber: 4444
    functionLinenumberEnd: 4450
    functionName: evdns_set_option
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_set_option
    - evdns_base_new
    linkageType: ''
    returnType: int
    signature: int evdns_set_option(const char *option, const char *val, int flags)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strtok_r
      Src: /src/libevent/evdns.c:4459,1
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:4460,1
    - Dst: strcmp
      Src: /src/libevent/evdns.c:4463,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/evdns.c:4467,1
    - Dst: strcmp
      Src: /src/libevent/evdns.c:4468,1
    - Dst: search_postfix_clear
      Src: /src/libevent/evdns.c:4471,1
    - Dst: search_postfix_add
      Src: /src/libevent/evdns.c:4472,1
    - Dst: strcmp
      Src: /src/libevent/evdns.c:4474,1
    - Dst: search_postfix_clear
      Src: /src/libevent/evdns.c:4476,1
    - Dst: search_postfix_add
      Src: /src/libevent/evdns.c:4479,1
    - Dst: search_reverse
      Src: /src/libevent/evdns.c:4481,1
    - Dst: strcmp
      Src: /src/libevent/evdns.c:4482,1
    - Dst: strchr
      Src: /src/libevent/evdns.c:4485,1
    - Dst: evdns_base_set_option_impl
      Src: /src/libevent/evdns.c:4486,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 3
    argNames:
    - base
    - start
    - flags
    argTypes:
    - struct evdns_base*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4490
      start: 4452
    functionDepth: 6
    functionLinenumber: 4452
    functionLinenumberEnd: 4490
    functionName: resolv_conf_parse_line
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - search_postfix_clear
    - search_reverse
    - evdns_base_set_option_impl
    - ASSERT_LOCKED
    - strcmp
    - strchr
    - evdns_base_nameserver_ip_add
    - strtok_r
    - search_postfix_add
    linkageType: ''
    returnType: void
    signature: void resolv_conf_parse_line(struct evdns_base *base, char *const start,
      int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:4504,1
    - Dst: evdns_base_resolv_conf_parse_impl
      Src: /src/libevent/evdns.c:4505,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:4506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - base
    - flags
    - filename
    argTypes:
    - struct evdns_base*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4508
      start: 4501
    functionDepth: 1
    functionLinenumber: 4501
    functionLinenumberEnd: 4508
    functionName: evdns_base_resolv_conf_parse
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - evdns_base_resolv_conf_parse_impl
    - EVDNS_UNLOCK
    linkageType: ''
    returnType: int
    signature: int evdns_base_resolv_conf_parse(struct evdns_base *base, int flags,
      const char *const filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SHGetSpecialFolderPathA
      Src: /src/libevent/evdns.c:4524,1
    - Dst: strlen
      Src: /src/libevent/evdns.c:4526,1
    - Dst: strlen
      Src: /src/libevent/evdns.c:4526,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:4527,1
    - Dst: evutil_snprintf
      Src: /src/libevent/evdns.c:4528,1
    - Dst: mm_strdup
      Src: /src/libevent/evdns.c:4531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4533
      start: 4510
    functionDepth: 2
    functionLinenumber: 4510
    functionLinenumberEnd: 4533
    functionName: evdns_get_default_hosts_filename
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - SHGetSpecialFolderPathA
    - mm_malloc
    - mm_strdup
    - strlen
    - evutil_snprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      evdns_get_default_hosts_filename(void)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libevent/evdns.c:4543,1
    - Dst: evdns_get_default_hosts_filename
      Src: /src/libevent/evdns.c:4550,1
    - Dst: evdns_base_load_hosts
      Src: /src/libevent/evdns.c:4551,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:4553,1
    - Dst: evdns_resolv_set_defaults
      Src: /src/libevent/evdns.c:4557,1
    - Dst: evutil_read_file_
      Src: /src/libevent/evdns.c:4561,1
    - Dst: evdns_resolv_set_defaults
      Src: /src/libevent/evdns.c:4564,1
    - Dst: strchr
      Src: /src/libevent/evdns.c:4573,1
    - Dst: resolv_conf_parse_line
      Src: /src/libevent/evdns.c:4575,1
    - Dst: resolv_conf_parse_line
      Src: /src/libevent/evdns.c:4579,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/evdns.c:4586,1
    - Dst: search_set_from_hostname
      Src: /src/libevent/evdns.c:4590,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:4593,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 3
    argNames:
    - base
    - flags
    - filename
    argTypes:
    - struct evdns_base*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4595
      start: 4535
    functionDepth: 7
    functionLinenumber: 4535
    functionLinenumberEnd: 4595
    functionName: evdns_base_resolv_conf_parse_impl
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached:
    - evdns_base_load_hosts
    - mm_free
    - evutil_read_file_
    - evdns_resolv_set_defaults
    - search_set_from_hostname
    - strchr
    - resolv_conf_parse_line
    - evdns_base_nameserver_ip_add
    - evdns_get_default_hosts_filename
    - log
    linkageType: ''
    returnType: int
    signature: int evdns_base_resolv_conf_parse_impl(struct evdns_base *base, int
      flags, const char *const filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/evdns.c:4600,1
    - Dst: evdns_base_resolv_conf_parse
      Src: /src/libevent/evdns.c:4601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - flags
    - filename
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4602
      start: 4597
    functionDepth: 2
    functionLinenumber: 4597
    functionLinenumberEnd: 4602
    functionName: evdns_resolv_conf_parse
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_resolv_conf_parse
    - evdns_base_new
    linkageType: ''
    returnType: int
    signature: int evdns_resolv_conf_parse(int flags, const char *const filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:4612,1
    - Dst: isspace
      Src: /src/libevent/evdns.c:4614,1
    - Dst: isdigit
      Src: /src/libevent/evdns.c:4617,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:4620,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:4622,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/evdns.c:4624,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:4625,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 2
    argNames:
    - base
    - ips
    argTypes:
    - struct evdns_base*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4629
      start: 4607
    functionDepth: 6
    functionLinenumber: 4607
    functionLinenumberEnd: 4629
    functionName: evdns_nameserver_ip_add_line
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - mm_free
    - mm_malloc
    - ASSERT_LOCKED
    - evdns_base_nameserver_ip_add
    - isdigit
    - isspace
    - memcpy
    linkageType: ''
    returnType: int
    signature: int evdns_nameserver_ip_add_line(struct evdns_base *base, const char
      *ips)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:4646,1
    - Dst: evutil_load_windows_system_library_
      Src: /src/libevent/evdns.c:4647,1
    - Dst: TEXT
      Src: /src/libevent/evdns.c:4648,1
    - Dst: log
      Src: /src/libevent/evdns.c:4649,1
    - Dst: GetProcAddress
      Src: /src/libevent/evdns.c:4653,1
    - Dst: log
      Src: /src/libevent/evdns.c:4654,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:4659,1
    - Dst: fn
      Src: /src/libevent/evdns.c:4662,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:4668,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:4669,1
    - Dst: fn
      Src: /src/libevent/evdns.c:4672,1
    - Dst: log
      Src: /src/libevent/evdns.c:4674,1
    - Dst: inet_ntop
      Src: /src/libevent/evdns.c:4685,1
    - Dst: inet_ntop
      Src: /src/libevent/evdns.c:4687,1
    - Dst: strncmp
      Src: /src/libevent/evdns.c:4691,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/evdns.c:4695,1
    - Dst: log
      Src: /src/libevent/evdns.c:4697,1
    - Dst: log
      Src: /src/libevent/evdns.c:4701,1
    - Dst: log
      Src: /src/libevent/evdns.c:4709,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:4718,1
    - Dst: FreeLibrary
      Src: /src/libevent/evdns.c:4720,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 82
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4722
      start: 4635
    functionDepth: 6
    functionLinenumber: 4635
    functionLinenumberEnd: 4722
    functionName: load_nameservers_with_getadaptersaddresses_unlocked
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - FreeLibrary
    - GetProcAddress
    - mm_free
    - inet_ntop
    - fn
    - evutil_load_windows_system_library_
    - strncmp
    - ASSERT_LOCKED
    - mm_malloc
    - TEXT
    - evdns_base_nameserver_ip_add
    - log
    linkageType: ''
    returnType: int
    signature: int load_nameservers_with_getadaptersaddresses_unlocked(struct evdns_base
      *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:4728,1
    - Dst: load_nameservers_with_getadaptersaddresses_unlocked
      Src: /src/libevent/evdns.c:4729,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:4730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4732
      start: 4724
    functionDepth: 7
    functionLinenumber: 4724
    functionLinenumberEnd: 4732
    functionName: load_nameservers_with_getadaptersaddresses
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - load_nameservers_with_getadaptersaddresses_unlocked
    linkageType: ''
    returnType: int
    signature: int load_nameservers_with_getadaptersaddresses(struct evdns_base *base)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:4741,1
    - Dst: RegQueryValueEx
      Src: /src/libevent/evdns.c:4742,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:4745,1
    - Dst: RegQueryValueEx
      Src: /src/libevent/evdns.c:4748,1
    - Dst: evdns_nameserver_ip_add_line
      Src: /src/libevent/evdns.c:4750,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:4753,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - base
    - key
    - subkey
    argTypes:
    - struct evdns_base*
    - HKEY
    - TCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4755
      start: 4734
    functionDepth: 7
    functionLinenumber: 4734
    functionLinenumberEnd: 4755
    functionName: config_nameserver_from_reg_key
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - mm_free
    - mm_malloc
    - ASSERT_LOCKED
    - RegQueryValueEx
    - evdns_nameserver_ip_add_line
    linkageType: ''
    returnType: int
    signature: int config_nameserver_from_reg_key(struct evdns_base *base, HKEY key,
      const TCHAR *subkey)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:4775,1
    - Dst: GetVersion
      Src: /src/libevent/evdns.c:4777,1
    - Dst: RegOpenKeyEx
      Src: /src/libevent/evdns.c:4780,1
    - Dst: log
      Src: /src/libevent/evdns.c:4782,1
    - Dst: GetLastError
      Src: /src/libevent/evdns.c:4782,1
    - Dst: RegOpenKeyEx
      Src: /src/libevent/evdns.c:4785,1
    - Dst: TEXT
      Src: /src/libevent/evdns.c:4785,1
    - Dst: log
      Src: /src/libevent/evdns.c:4789,1
    - Dst: GetLastError
      Src: /src/libevent/evdns.c:4789,1
    - Dst: TRY
      Src: /src/libevent/evdns.c:4792,1
    - Dst: TRY
      Src: /src/libevent/evdns.c:4793,1
    - Dst: TRY
      Src: /src/libevent/evdns.c:4794,1
    - Dst: TRY
      Src: /src/libevent/evdns.c:4795,1
    - Dst: RegCloseKey
      Src: /src/libevent/evdns.c:4796,1
    - Dst: RegCloseKey
      Src: /src/libevent/evdns.c:4797,1
    - Dst: RegOpenKeyEx
      Src: /src/libevent/evdns.c:4800,1
    - Dst: log
      Src: /src/libevent/evdns.c:4802,1
    - Dst: GetLastError
      Src: /src/libevent/evdns.c:4802,1
    - Dst: TRY
      Src: /src/libevent/evdns.c:4805,1
    - Dst: RegCloseKey
      Src: /src/libevent/evdns.c:4806,1
    - Dst: log
      Src: /src/libevent/evdns.c:4810,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4815
      start: 4761
    functionDepth: 1
    functionLinenumber: 4761
    functionLinenumberEnd: 4815
    functionName: load_nameservers_from_registry
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - GetVersion
    - TRY
    - ASSERT_LOCKED
    - TEXT
    - RegCloseKey
    - log
    - RegOpenKeyEx
    linkageType: ''
    returnType: int
    signature: int load_nameservers_from_registry(struct evdns_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - k
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4774
      start: 4766
    functionDepth: 0
    functionLinenumber: 4766
    functionLinenumberEnd: 4774
    functionName: TRY
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRY(k, name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:4826,1
    - Dst: evdns_get_default_hosts_filename
      Src: /src/libevent/evdns.c:4827,1
    - Dst: log
      Src: /src/libevent/evdns.c:4828,1
    - Dst: evdns_base_load_hosts
      Src: /src/libevent/evdns.c:4829,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:4831,1
    - Dst: load_nameservers_with_getadaptersaddresses_unlocked
      Src: /src/libevent/evdns.c:4833,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:4834,1
    - Dst: load_nameservers_from_registry
      Src: /src/libevent/evdns.c:4837,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:4839,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4841
      start: 4817
    functionDepth: 7
    functionLinenumber: 4817
    functionLinenumberEnd: 4841
    functionName: evdns_base_config_windows_nameservers
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - evdns_base_load_hosts
    - mm_free
    - load_nameservers_with_getadaptersaddresses_unlocked
    - load_nameservers_from_registry
    - EVDNS_UNLOCK
    - evdns_get_default_hosts_filename
    - log
    linkageType: ''
    returnType: int
    signature: int evdns_base_config_windows_nameservers(struct evdns_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/evdns.c:4847,1
    - Dst: evdns_base_config_windows_nameservers
      Src: /src/libevent/evdns.c:4850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4852
      start: 4843
    functionDepth: 8
    functionLinenumber: 4843
    functionLinenumberEnd: 4852
    functionName: evdns_config_windows_nameservers
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_config_windows_nameservers
    - evdns_base_new
    linkageType: ''
    returnType: int
    signature: int evdns_config_windows_nameservers(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: evutil_secure_rng_init
      Src: /src/libevent/evdns.c:4860,1
    - Dst: log
      Src: /src/libevent/evdns.c:4861,1
    - Dst: evutil_set_evdns_getaddrinfo_fn_
      Src: /src/libevent/evdns.c:4869,1
    - Dst: evutil_set_evdns_getaddrinfo_cancel_fn_
      Src: /src/libevent/evdns.c:4870,1
    - Dst: mm_malloc
      Src: /src/libevent/evdns.c:4872,1
    - Dst: memset
      Src: /src/libevent/evdns.c:4875,1
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/evdns.c:4878,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:4879,1
    - Dst: evdns_base_set_max_requests_inflight
      Src: /src/libevent/evdns.c:4884,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/evdns.c:4907,1
    - Dst: SPLAY_INIT
      Src: /src/libevent/evdns.c:4908,1
    - Dst: log
      Src: /src/libevent/evdns.c:4919,1
    - Dst: evdns_base_config_windows_nameservers
      Src: /src/libevent/evdns.c:4937,1
    - Dst: evdns_base_resolv_conf_parse
      Src: /src/libevent/evdns.c:4939,1
    - Dst: evutil_resolvconf_filename_
      Src: /src/libevent/evdns.c:4939,1
    - Dst: evdns_base_free_and_unlock
      Src: /src/libevent/evdns.c:4942,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:4949,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 57
    argCount: 2
    argNames:
    - event_base
    - flags
    argTypes:
    - struct event_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4951
      start: 4855
    functionDepth: 8
    functionLinenumber: 4855
    functionLinenumberEnd: 4951
    functionName: evdns_base_new
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 5
    functionsReached:
    - evutil_set_evdns_getaddrinfo_fn_
    - EVTHREAD_ALLOC_LOCK
    - EVDNS_LOCK
    - SPLAY_INIT
    - evdns_base_free_and_unlock
    - evdns_base_set_max_requests_inflight
    - mm_malloc
    - evdns_base_config_windows_nameservers
    - evdns_base_resolv_conf_parse
    - memset
    - EVDNS_UNLOCK
    - log
    - evutil_resolvconf_filename_
    - evutil_set_evdns_getaddrinfo_cancel_fn_
    - evutil_secure_rng_init
    - TAILQ_INIT
    linkageType: ''
    returnType: struct evdns_base
    signature: 'struct evdns_base *

      evdns_base_new(struct event_base *event_base, int flags)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/evdns.c:4956,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4963
      start: 4953
    functionDepth: 9
    functionLinenumber: 4953
    functionLinenumberEnd: 4963
    functionName: evdns_init
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_new
    linkageType: ''
    returnType: int
    signature: int evdns_init(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4984
      start: 4965
    functionDepth: 0
    functionLinenumber: 4965
    functionLinenumberEnd: 4984
    functionName: evdns_err_to_string
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      evdns_err_to_string(int err)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evutil_closesocket
      Src: /src/libevent/evdns.c:4990,1
    - Dst: event_del
      Src: /src/libevent/evdns.c:4991,1
    - Dst: event_debug_unassign
      Src: /src/libevent/evdns.c:4992,1
    - Dst: event_del
      Src: /src/libevent/evdns.c:4994,1
    - Dst: evdns_cancel_request
      Src: /src/libevent/evdns.c:4996,1
    - Dst: event_debug_unassign
      Src: /src/libevent/evdns.c:4999,1
    - Dst: disconnect_and_free_connection
      Src: /src/libevent/evdns.c:5000,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:5001,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - server
    argTypes:
    - struct nameserver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5002
      start: 4986
    functionDepth: 3
    functionLinenumber: 4986
    functionLinenumberEnd: 5002
    functionName: evdns_nameserver_free
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - disconnect_and_free_connection
    - mm_free
    - event_del
    - event_debug_unassign
    - evutil_closesocket
    - evdns_cancel_request
    linkageType: ''
    returnType: void
    signature: void evdns_nameserver_free(struct nameserver *server)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/libevent/evdns.c:5007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct evdns_cache*
    - struct evdns_cache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5008
      start: 5004
    functionDepth: 0
    functionLinenumber: 5004
    functionLinenumberEnd: 5008
    functionName: evdns_cache_compare
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int evdns_cache_compare(struct evdns_cache *a, struct evdns_cache *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SPLAY_REMOVE
      Src: /src/libevent/evdns.c:5016,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:5017,1
    - Dst: evtimer_del
      Src: /src/libevent/evdns.c:5018,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/evdns.c:5019,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:5020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - cache
    argTypes:
    - struct evdns_cache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5021
      start: 5013
    functionDepth: 2
    functionLinenumber: 5013
    functionLinenumberEnd: 5021
    functionName: evdns_cache_free
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evtimer_del
    - evutil_freeaddrinfo
    - mm_free
    - SPLAY_REMOVE
    linkageType: ''
    returnType: void
    signature: void evdns_cache_free(struct evdns_cache *cache)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: reply_schedule_callback
      Src: /src/libevent/evdns.c:5036,1
    - Dst: request_finished
      Src: /src/libevent/evdns.c:5037,1
    - Dst: reply_schedule_callback
      Src: /src/libevent/evdns.c:5042,1
    - Dst: request_finished
      Src: /src/libevent/evdns.c:5043,1
    - Dst: REQ_HEAD
      Src: /src/libevent/evdns.c:5043,1
    - Dst: evdns_nameserver_free
      Src: /src/libevent/evdns.c:5052,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:5062,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:5064,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evdns.c:5070,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evdns.c:5071,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:5072,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:5076,1
    - Dst: SPLAY_EMPTY
      Src: /src/libevent/evdns.c:5078,1
    - Dst: evdns_cache_free
      Src: /src/libevent/evdns.c:5079,1
    - Dst: SPLAY_ROOT
      Src: /src/libevent/evdns.c:5079,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:5082,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/evdns.c:5083,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:5085,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 2
    argNames:
    - base
    - fail_requests
    argTypes:
    - struct evdns_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5086
      start: 5023
    functionDepth: 4
    functionLinenumber: 5023
    functionLinenumberEnd: 5086
    functionName: evdns_base_free_and_unlock
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 1
    functionsReached:
    - mm_free
    - evdns_nameserver_free
    - reply_schedule_callback
    - SPLAY_EMPTY
    - TAILQ_FIRST
    - evdns_cache_free
    - EVDNS_UNLOCK
    - EVTHREAD_FREE_LOCK
    - SPLAY_ROOT
    - REQ_HEAD
    - request_finished
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void evdns_base_free_and_unlock(struct evdns_base *base, int fail_requests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:5091,1
    - Dst: evdns_base_free_and_unlock
      Src: /src/libevent/evdns.c:5092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - base
    - fail_requests
    argTypes:
    - struct evdns_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5093
      start: 5088
    functionDepth: 5
    functionLinenumber: 5088
    functionLinenumberEnd: 5093
    functionName: evdns_base_free
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - evdns_base_free_and_unlock
    linkageType: ''
    returnType: void
    signature: void evdns_base_free(struct evdns_base *base, int fail_requests)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:5099,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evdns.c:5100,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evdns.c:5101,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:5102,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:5104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evdns_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5105
      start: 5095
    functionDepth: 1
    functionLinenumber: 5095
    functionLinenumberEnd: 5105
    functionName: evdns_base_clear_host_addresses
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - mm_free
    - TAILQ_FIRST
    - EVDNS_UNLOCK
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void evdns_base_clear_host_addresses(struct evdns_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_free
      Src: /src/libevent/evdns.c:5113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fail_requests
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5116
      start: 5107
    functionDepth: 6
    functionLinenumber: 5107
    functionLinenumberEnd: 5116
    functionName: evdns_shutdown
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evdns_base_free
    linkageType: ''
    returnType: void
    signature: void evdns_shutdown(int fail_requests)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strtok_r
      Src: /src/libevent/evdns.c:5123,1
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:5127,1
    - Dst: memset
      Src: /src/libevent/evdns.c:5134,1
    - Dst: evutil_parse_sockaddr_port
      Src: /src/libevent/evdns.c:5135,1
    - Dst: sockaddr_getport
      Src: /src/libevent/evdns.c:5140,1
    - Dst: strchr
      Src: /src/libevent/evdns.c:5146,1
    - Dst: strlen
      Src: /src/libevent/evdns.c:5152,1
    - Dst: mm_calloc
      Src: /src/libevent/evdns.c:5154,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:5157,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:5158,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:5159,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/evdns.c:5162,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - base
    - line
    argTypes:
    - struct evdns_base*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5170
      start: 5118
    functionDepth: 3
    functionLinenumber: 5118
    functionLinenumberEnd: 5170
    functionName: evdns_base_parse_hosts_line
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - mm_calloc
    - ASSERT_LOCKED
    - evutil_parse_sockaddr_port
    - strchr
    - memset
    - strtok_r
    - memcpy
    - strlen
    - TAILQ_INSERT_TAIL
    - sockaddr_getport
    linkageType: ''
    returnType: int
    signature: int evdns_base_parse_hosts_line(struct evdns_base *base, char *line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_LOCKED
      Src: /src/libevent/evdns.c:5179,1
    - Dst: evutil_read_file_
      Src: /src/libevent/evdns.c:5182,1
    - Dst: strlcpy
      Src: /src/libevent/evdns.c:5184,1
    - Dst: evdns_base_parse_hosts_line
      Src: /src/libevent/evdns.c:5185,1
    - Dst: strlcpy
      Src: /src/libevent/evdns.c:5186,1
    - Dst: evdns_base_parse_hosts_line
      Src: /src/libevent/evdns.c:5187,1
    - Dst: strchr
      Src: /src/libevent/evdns.c:5195,1
    - Dst: evdns_base_parse_hosts_line
      Src: /src/libevent/evdns.c:5199,1
    - Dst: evdns_base_parse_hosts_line
      Src: /src/libevent/evdns.c:5202,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:5207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - base
    - hosts_fname
    argTypes:
    - struct evdns_base*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5209
      start: 5172
    functionDepth: 4
    functionLinenumber: 5172
    functionLinenumberEnd: 5209
    functionName: evdns_base_load_hosts_impl
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - mm_free
    - evutil_read_file_
    - evdns_base_parse_hosts_line
    - strlcpy
    - ASSERT_LOCKED
    - strchr
    linkageType: ''
    returnType: int
    signature: int evdns_base_load_hosts_impl(struct evdns_base *base, const char
      *hosts_fname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:5217,1
    - Dst: evdns_base_load_hosts_impl
      Src: /src/libevent/evdns.c:5218,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:5219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - base
    - hosts_fname
    argTypes:
    - struct evdns_base*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5221
      start: 5211
    functionDepth: 5
    functionLinenumber: 5211
    functionLinenumberEnd: 5221
    functionName: evdns_base_load_hosts
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 2
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - evdns_base_load_hosts_impl
    linkageType: ''
    returnType: int
    signature: int evdns_base_load_hosts(struct evdns_base *base, const char *hosts_fname)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - e1
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5279
      start: 5269
    functionDepth: 0
    functionLinenumber: 5269
    functionLinenumberEnd: 5279
    functionName: evdns_err_to_getaddrinfo_err
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evdns_err_to_getaddrinfo_err(int e1)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - e1
    - e2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5290
      start: 5282
    functionDepth: 0
    functionLinenumber: 5282
    functionLinenumberEnd: 5290
    functionName: getaddrinfo_merge_err
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getaddrinfo_merge_err(int e1, int e2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/evdns.c:5298,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:5300,1
    - Dst: event_del
      Src: /src/libevent/evdns.c:5301,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:5302,1
    - Dst: mm_free
      Src: /src/libevent/evdns.c:5303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct evdns_getaddrinfo_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5305
      start: 5292
    functionDepth: 2
    functionLinenumber: 5292
    functionLinenumberEnd: 5305
    functionName: free_getaddrinfo_request
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evutil_freeaddrinfo
    - mm_free
    - event_del
    linkageType: ''
    returnType: void
    signature: void free_getaddrinfo_request(struct evdns_getaddrinfo_request *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - data
    - ai
    argTypes:
    - struct evdns_getaddrinfo_request*
    - struct evutil_addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5315
      start: 5307
    functionDepth: 0
    functionLinenumber: 5307
    functionLinenumberEnd: 5315
    functionName: add_cname_to_reply
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void add_cname_to_reply(struct evdns_getaddrinfo_request *data,\n
      \   struct evutil_addrinfo *ai)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evdns_cancel_request
      Src: /src/libevent/evdns.c:5331,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:5333,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:5335,1
    - Dst: evdns_cancel_request
      Src: /src/libevent/evdns.c:5340,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:5342,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:5344,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:5349,1
    - Dst: add_cname_to_reply
      Src: /src/libevent/evdns.c:5353,1
    - Dst: struct evdns_getaddrinfo_request*::user_cb
      Src: /src/libevent/evdns.c:5354,1
    - Dst: struct evdns_getaddrinfo_request*::user_cb
      Src: /src/libevent/evdns.c:5360,1
    - Dst: free_getaddrinfo_request
      Src: /src/libevent/evdns.c:5369,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - fd
    - what
    - ptr
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5371
      start: 5321
    functionDepth: 3
    functionLinenumber: 5321
    functionLinenumberEnd: 5371
    functionName: evdns_getaddrinfo_timeout_cb
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - free_getaddrinfo_request
    - EVUTIL_ASSERT
    - struct evdns_getaddrinfo_request*::user_cb
    - EVDNS_UNLOCK
    - evdns_cancel_request
    - add_cname_to_reply
    linkageType: ''
    returnType: void
    signature: void evdns_getaddrinfo_timeout_cb(evutil_socket_t fd, short what, void
      *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_add
      Src: /src/libevent/evdns.c:5377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - evdns_base
    - data
    argTypes:
    - struct evdns_base*
    - struct evdns_getaddrinfo_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5378
      start: 5373
    functionDepth: 1
    functionLinenumber: 5373
    functionLinenumberEnd: 5378
    functionName: evdns_getaddrinfo_set_timeout
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - event_add
    linkageType: ''
    returnType: int
    signature: "int evdns_getaddrinfo_set_timeout(struct evdns_base *evdns_base,\n
      \   struct evdns_getaddrinfo_request *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - result
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5385
      start: 5380
    functionDepth: 0
    functionLinenumber: 5380
    functionLinenumberEnd: 5385
    functionName: evdns_result_is_answer
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evdns_result_is_answer(int result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libevent/evdns.c:5392,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:5393,1
    - Dst: evdns_cache_free
      Src: /src/libevent/evdns.c:5394,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:5395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5396
      start: 5387
    functionDepth: 3
    functionLinenumber: 5387
    functionLinenumberEnd: 5396
    functionName: evdns_ttl_expired
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - evdns_cache_free
    - log
    linkageType: ''
    returnType: void
    signature: void evdns_ttl_expired(evutil_socket_t fd, short what, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libevent/evdns.c:5405,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:5406,1
    - Dst: SPLAY_FIND
      Src: /src/libevent/evdns.c:5408,1
    - Dst: log
      Src: /src/libevent/evdns.c:5410,1
    - Dst: evdns_cache_free
      Src: /src/libevent/evdns.c:5411,1
    - Dst: mm_calloc
      Src: /src/libevent/evdns.c:5414,1
    - Dst: mm_strdup
      Src: /src/libevent/evdns.c:5416,1
    - Dst: evutil_dup_addrinfo_
      Src: /src/libevent/evdns.c:5417,1
    - Dst: SPLAY_INSERT
      Src: /src/libevent/evdns.c:5418,1
    - Dst: evtimer_assign
      Src: /src/libevent/evdns.c:5419,1
    - Dst: timerclear
      Src: /src/libevent/evdns.c:5420,1
    - Dst: evtimer_add
      Src: /src/libevent/evdns.c:5422,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:5424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 4
    argNames:
    - dns_base
    - nodename
    - res
    - ttl
    argTypes:
    - struct evdns_base*
    - char*
    - struct evutil_addrinfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5425
      start: 5398
    functionDepth: 3
    functionLinenumber: 5398
    functionLinenumberEnd: 5425
    functionName: evdns_cache_write
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - evtimer_assign
    - SPLAY_INSERT
    - evtimer_add
    - mm_calloc
    - evdns_cache_free
    - mm_strdup
    - EVDNS_UNLOCK
    - evutil_dup_addrinfo_
    - timerclear
    - log
    - SPLAY_FIND
    linkageType: ''
    returnType: void
    signature: void evdns_cache_write(struct evdns_base *dns_base, char *nodename,
      struct evutil_addrinfo *res, int ttl)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libevent/evdns.c:5439,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:5440,1
    - Dst: SPLAY_FIND
      Src: /src/libevent/evdns.c:5442,1
    - Dst: log
      Src: /src/libevent/evdns.c:5445,1
    - Dst: evutil_new_addrinfo_
      Src: /src/libevent/evdns.c:5455,1
    - Dst: mm_strdup
      Src: /src/libevent/evdns.c:5461,1
    - Dst: sockaddr_setport
      Src: /src/libevent/evdns.c:5463,1
    - Dst: evutil_addrinfo_append_
      Src: /src/libevent/evdns.c:5464,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:5467,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/evdns.c:5477,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 5
    argNames:
    - base
    - nodename
    - hints
    - port
    - res
    argTypes:
    - struct evdns_base*
    - char*
    - struct evutil_addrinfo*
    - ev_uint16_t
    - struct evutil_addrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5480
      start: 5427
    functionDepth: 2
    functionLinenumber: 5427
    functionLinenumberEnd: 5480
    functionName: evdns_cache_lookup
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - evutil_freeaddrinfo
    - evutil_new_addrinfo_
    - mm_strdup
    - sockaddr_setport
    - EVDNS_UNLOCK
    - log
    - SPLAY_FIND
    - evutil_addrinfo_append_
    linkageType: ''
    returnType: int
    signature: "int evdns_cache_lookup(struct evdns_base *base,\n    const char *nodename,
      struct evutil_addrinfo *hints, ev_uint16_t port,\n    struct evutil_addrinfo
      **res)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:5501,1
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/evdns.c:5503,1
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/evdns.c:5506,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:5512,1
    - Dst: evdns_result_is_answer
      Src: /src/libevent/evdns.c:5513,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:5522,1
    - Dst: free_getaddrinfo_request
      Src: /src/libevent/evdns.c:5534,1
    - Dst: free_getaddrinfo_request
      Src: /src/libevent/evdns.c:5541,1
    - Dst: evdns_err_to_getaddrinfo_err
      Src: /src/libevent/evdns.c:5551,1
    - Dst: evdns_getaddrinfo_set_timeout
      Src: /src/libevent/evdns.c:5561,1
    - Dst: struct evdns_getaddrinfo_request*::user_cb
      Src: /src/libevent/evdns.c:5568,1
    - Dst: add_cname_to_reply
      Src: /src/libevent/evdns.c:5572,1
    - Dst: evdns_cache_write
      Src: /src/libevent/evdns.c:5574,1
    - Dst: struct evdns_getaddrinfo_request*::user_cb
      Src: /src/libevent/evdns.c:5576,1
    - Dst: getaddrinfo_merge_err
      Src: /src/libevent/evdns.c:5580,1
    - Dst: struct evdns_getaddrinfo_request*::user_cb
      Src: /src/libevent/evdns.c:5582,1
    - Dst: free_getaddrinfo_request
      Src: /src/libevent/evdns.c:5584,1
    - Dst: struct evdns_getaddrinfo_request*::user_cb
      Src: /src/libevent/evdns.c:5593,1
    - Dst: free_getaddrinfo_request
      Src: /src/libevent/evdns.c:5594,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evdns.c:5600,1
    - Dst: memset
      Src: /src/libevent/evdns.c:5603,1
    - Dst: htons
      Src: /src/libevent/evdns.c:5605,1
    - Dst: memset
      Src: /src/libevent/evdns.c:5615,1
    - Dst: htons
      Src: /src/libevent/evdns.c:5617,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:5631,1
    - Dst: evutil_new_addrinfo_
      Src: /src/libevent/evdns.c:5632,1
    - Dst: evdns_cancel_request
      Src: /src/libevent/evdns.c:5635,1
    - Dst: struct evdns_getaddrinfo_request*::user_cb
      Src: /src/libevent/evdns.c:5637,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/evdns.c:5639,1
    - Dst: free_getaddrinfo_request
      Src: /src/libevent/evdns.c:5642,1
    - Dst: evutil_addrinfo_append_
      Src: /src/libevent/evdns.c:5645,1
    - Dst: evdns_getaddrinfo_set_timeout
      Src: /src/libevent/evdns.c:5651,1
    - Dst: evutil_addrinfo_append_
      Src: /src/libevent/evdns.c:5661,1
    - Dst: evutil_addrinfo_append_
      Src: /src/libevent/evdns.c:5664,1
    - Dst: add_cname_to_reply
      Src: /src/libevent/evdns.c:5671,1
    - Dst: evdns_cache_write
      Src: /src/libevent/evdns.c:5673,1
    - Dst: struct evdns_getaddrinfo_request*::user_cb
      Src: /src/libevent/evdns.c:5675,1
    - Dst: free_getaddrinfo_request
      Src: /src/libevent/evdns.c:5678,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 132
    argCount: 6
    argNames:
    - result
    - type
    - count
    - ttl
    - addresses
    - arg
    argTypes:
    - int
    - char
    - int
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5680
      start: 5482
    functionDepth: 4
    functionLinenumber: 5482
    functionLinenumberEnd: 5680
    functionName: evdns_getaddrinfo_gotresolve
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - evdns_result_is_answer
    - getaddrinfo_merge_err
    - htons
    - evdns_cache_write
    - evutil_freeaddrinfo
    - evdns_err_to_getaddrinfo_err
    - memcpy
    - EVUTIL_UPCAST
    - free_getaddrinfo_request
    - EVUTIL_ASSERT
    - struct evdns_getaddrinfo_request*::user_cb
    - evutil_new_addrinfo_
    - EVDNS_UNLOCK
    - memset
    - evdns_getaddrinfo_set_timeout
    - add_cname_to_reply
    - evutil_addrinfo_append_
    - evdns_cancel_request
    linkageType: ''
    returnType: void
    signature: "void evdns_getaddrinfo_gotresolve(int result, char type, int count,\n
      \   int ttl, void *addresses, void *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_NEXT
      Src: /src/libevent/evdns.c:5689,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evdns.c:5691,1
    - Dst: TAILQ_NEXT
      Src: /src/libevent/evdns.c:5693,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/evdns.c:5694,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - base
    - hostname
    - find_after
    argTypes:
    - struct evdns_base*
    - char*
    - struct hosts_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5698
      start: 5682
    functionDepth: 2
    functionLinenumber: 5682
    functionLinenumberEnd: 5698
    functionName: find_hosts_entry
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - TAILQ_NEXT
    - evutil_ascii_strcasecmp
    - TAILQ_FIRST
    linkageType: ''
    returnType: struct hosts_entry
    signature: "struct hosts_entry *\nfind_hosts_entry(struct evdns_base *base, const
      char *hostname,\n    struct hosts_entry *find_after)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:5710,1
    - Dst: find_hosts_entry
      Src: /src/libevent/evdns.c:5711,1
    - Dst: find_hosts_entry
      Src: /src/libevent/evdns.c:5712,1
    - Dst: evutil_new_addrinfo_
      Src: /src/libevent/evdns.c:5718,1
    - Dst: sockaddr_setport
      Src: /src/libevent/evdns.c:5723,1
    - Dst: evutil_addrinfo_append_
      Src: /src/libevent/evdns.c:5724,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:5726,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/evdns.c:5736,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 5
    argNames:
    - base
    - nodename
    - hints
    - port
    - res
    argTypes:
    - struct evdns_base*
    - char*
    - struct evutil_addrinfo*
    - ev_uint16_t
    - struct evutil_addrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5739
      start: 5700
    functionDepth: 3
    functionLinenumber: 5700
    functionLinenumberEnd: 5739
    functionName: evdns_getaddrinfo_fromhosts
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - find_hosts_entry
    - evutil_freeaddrinfo
    - evutil_new_addrinfo_
    - sockaddr_setport
    - EVDNS_UNLOCK
    - evutil_addrinfo_append_
    linkageType: ''
    returnType: int
    signature: "int evdns_getaddrinfo_fromhosts(struct evdns_base *base,\n    const
      char *nodename, struct evutil_addrinfo *hints, ev_uint16_t port,\n    struct
      evutil_addrinfo **res)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/libevent/evdns.c:5758,1
    - Dst: cb
      Src: /src/libevent/evdns.c:5761,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/evdns.c:5769,1
    - Dst: cb
      Src: /src/libevent/evdns.c:5770,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:5775,1
    - Dst: memset
      Src: /src/libevent/evdns.c:5777,1
    - Dst: evutil_adjust_hints_for_addrconfig_
      Src: /src/libevent/evdns.c:5781,1
    - Dst: evutil_getaddrinfo_common_
      Src: /src/libevent/evdns.c:5788,1
    - Dst: cb
      Src: /src/libevent/evdns.c:5790,1
    - Dst: evdns_getaddrinfo_fromhosts
      Src: /src/libevent/evdns.c:5795,1
    - Dst: cb
      Src: /src/libevent/evdns.c:5797,1
    - Dst: evdns_cache_lookup
      Src: /src/libevent/evdns.c:5803,1
    - Dst: cb
      Src: /src/libevent/evdns.c:5805,1
    - Dst: mm_calloc
      Src: /src/libevent/evdns.c:5813,1
    - Dst: cb
      Src: /src/libevent/evdns.c:5815,1
    - Dst: memcpy
      Src: /src/libevent/evdns.c:5819,1
    - Dst: mm_strdup
      Src: /src/libevent/evdns.c:5826,1
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:5843,1
    - Dst: log
      Src: /src/libevent/evdns.c:5846,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/evdns.c:5849,1
    - Dst: log
      Src: /src/libevent/evdns.c:5857,1
    - Dst: evdns_base_resolve_ipv6
      Src: /src/libevent/evdns.c:5860,1
    - Dst: evtimer_assign
      Src: /src/libevent/evdns.c:5868,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:5873,1
    - Dst: free_getaddrinfo_request
      Src: /src/libevent/evdns.c:5878,1
    - Dst: cb
      Src: /src/libevent/evdns.c:5879,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 76
    argCount: 6
    argNames:
    - dns_base
    - nodename
    - servname
    - hints_in
    - cb
    - arg
    argTypes:
    - struct evdns_base*
    - char*
    - char*
    - struct evutil_addrinfo*
    - evdns_getaddrinfo_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5882
      start: 5741
    functionDepth: 9
    functionLinenumber: 5741
    functionLinenumberEnd: 5882
    functionName: evdns_getaddrinfo
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - evutil_getaddrinfo
    - EVDNS_LOCK
    - evtimer_assign
    - evutil_adjust_hints_for_addrconfig_
    - evdns_base_resolve_ipv4
    - free_getaddrinfo_request
    - mm_calloc
    - evdns_base_resolve_ipv6
    - mm_strdup
    - memset
    - EVDNS_UNLOCK
    - memcpy
    - log
    - evdns_getaddrinfo_fromhosts
    - cb
    - evutil_getaddrinfo_common_
    - evdns_cache_lookup
    linkageType: ''
    returnType: struct evdns_getaddrinfo_request
    signature: "struct evdns_getaddrinfo_request *\nevdns_getaddrinfo(struct evdns_base
      *dns_base,\n    const char *nodename, const char *servname,\n    const struct
      evutil_addrinfo *hints_in,\n    evdns_getaddrinfo_cb cb, void *arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVDNS_LOCK
      Src: /src/libevent/evdns.c:5887,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:5889,1
    - Dst: event_del
      Src: /src/libevent/evdns.c:5892,1
    - Dst: evdns_cancel_request
      Src: /src/libevent/evdns.c:5895,1
    - Dst: evdns_cancel_request
      Src: /src/libevent/evdns.c:5897,1
    - Dst: EVDNS_UNLOCK
      Src: /src/libevent/evdns.c:5898,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct evdns_getaddrinfo_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5899
      start: 5884
    functionDepth: 3
    functionLinenumber: 5884
    functionLinenumberEnd: 5899
    functionName: evdns_getaddrinfo_cancel
    functionSourceFile: /src/libevent/evdns.c
    functionUses: 0
    functionsReached:
    - EVDNS_LOCK
    - EVDNS_UNLOCK
    - evdns_cancel_request
    - event_del
    linkageType: ''
    returnType: void
    signature: void evdns_getaddrinfo_cancel(struct evdns_getaddrinfo_request *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/libevent/openssl-compat.h:12,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - type
    - name
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 19
    functionName: BIO_meth_new
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached:
    - calloc
    linkageType: ''
    returnType: BIO_METHOD
    signature: BIO_METHOD *BIO_meth_new(int type, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: BIO_meth_set_write
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_meth_set_write(b, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: BIO_meth_set_read
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_meth_set_read(b, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: BIO_meth_set_puts
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_meth_set_puts(b, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: BIO_meth_set_ctrl
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_meth_set_ctrl(b, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: BIO_meth_set_create
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_meth_set_create(b, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: BIO_meth_set_destroy
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_meth_set_destroy(b, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: BIO_set_init
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_init(b, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: BIO_set_data
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_data(b, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: BIO_set_shutdown
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_set_shutdown(b, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: BIO_get_init
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_init(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: BIO_get_data
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_data(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: BIO_get_shutdown
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_shutdown(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: BIO_get_init
    functionSourceFile: /src/libevent/openssl-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIO_get_init(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: min_heap_elem_greater
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min_heap_elem_greater(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - min_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: min_heap_ctor_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void min_heap_ctor_(min_heap_t* s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/minheap-internal.h:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - min_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: min_heap_dtor_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 0
    functionsReached:
    - mm_free
    linkageType: ''
    returnType: void
    signature: void min_heap_dtor_(min_heap_t* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: min_heap_elem_init_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void min_heap_elem_init_(struct event* e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - min_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: min_heap_empty_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int min_heap_empty_(min_heap_t* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - min_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: min_heap_size_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t min_heap_size_(min_heap_t* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - min_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: min_heap_top_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct event
    signature: struct event * min_heap_top_(min_heap_t* s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: min_heap_reserve_
      Src: /src/libevent/minheap-internal.h:73,1
    - Dst: min_heap_shift_up_
      Src: /src/libevent/minheap-internal.h:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - min_heap_t*
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: min_heap_push_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 0
    functionsReached:
    - min_heap_reserve_
    - min_heap_shift_up_
    linkageType: ''
    returnType: int
    signature: int min_heap_push_(min_heap_t* s, struct event* e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: min_heap_shift_down_
      Src: /src/libevent/minheap-internal.h:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - min_heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 89
    functionName: min_heap_pop_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 0
    functionsReached:
    - min_heap_shift_down_
    linkageType: ''
    returnType: struct event
    signature: struct event * min_heap_pop_(min_heap_t* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: min_heap_elt_is_top_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int min_heap_elt_is_top_(const struct event *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: min_heap_elem_greater
      Src: /src/libevent/minheap-internal.h:107,1
    - Dst: min_heap_shift_up_unconditional_
      Src: /src/libevent/minheap-internal.h:108,1
    - Dst: min_heap_shift_down_
      Src: /src/libevent/minheap-internal.h:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - min_heap_t*
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 115
    functionName: min_heap_erase_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 0
    functionsReached:
    - min_heap_shift_down_
    - min_heap_elem_greater
    - min_heap_shift_up_unconditional_
    linkageType: ''
    returnType: int
    signature: int min_heap_erase_(min_heap_t* s, struct event* e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: min_heap_push_
      Src: /src/libevent/minheap-internal.h:120,1
    - Dst: min_heap_elem_greater
      Src: /src/libevent/minheap-internal.h:125,1
    - Dst: min_heap_shift_up_unconditional_
      Src: /src/libevent/minheap-internal.h:126,1
    - Dst: min_heap_shift_down_
      Src: /src/libevent/minheap-internal.h:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - min_heap_t*
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 131
    functionName: min_heap_adjust_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 0
    functionsReached:
    - min_heap_shift_down_
    - min_heap_elem_greater
    - min_heap_push_
    - min_heap_shift_up_unconditional_
    linkageType: ''
    returnType: int
    signature: int min_heap_adjust_(min_heap_t *s, struct event *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_realloc
      Src: /src/libevent/minheap-internal.h:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - min_heap_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 147
    functionName: min_heap_reserve_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 1
    functionsReached:
    - mm_realloc
    linkageType: ''
    returnType: int
    signature: int min_heap_reserve_(min_heap_t* s, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_heap_elem_greater
      Src: /src/libevent/minheap-internal.h:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - s
    - hole_index
    - e
    argTypes:
    - min_heap_t*
    - size_t
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 159
    functionName: min_heap_shift_up_unconditional_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 2
    functionsReached:
    - min_heap_elem_greater
    linkageType: ''
    returnType: void
    signature: void min_heap_shift_up_unconditional_(min_heap_t* s, size_t hole_index,
      struct event* e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_heap_elem_greater
      Src: /src/libevent/minheap-internal.h:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - s
    - hole_index
    - e
    argTypes:
    - min_heap_t*
    - size_t
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: min_heap_shift_up_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 1
    functionsReached:
    - min_heap_elem_greater
    linkageType: ''
    returnType: void
    signature: void min_heap_shift_up_(min_heap_t* s, size_t hole_index, struct event*
      e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: min_heap_elem_greater
      Src: /src/libevent/minheap-internal.h:178,1
    - Dst: min_heap_elem_greater
      Src: /src/libevent/minheap-internal.h:179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - s
    - hole_index
    - e
    argTypes:
    - min_heap_t*
    - size_t
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 186
    functionName: min_heap_shift_down_
    functionSourceFile: /src/libevent/minheap-internal.h
    functionUses: 3
    functionsReached:
    - min_heap_elem_greater
    linkageType: ''
    returnType: void
    signature: void min_heap_shift_down_(min_heap_t* s, size_t hole_index, struct
      event* e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: XFREE
    functionSourceFile: /src/libevent/win32select.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XFREE(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: FD_SET_ALLOC_SIZE
    functionSourceFile: /src/libevent/win32select.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FD_SET_ALLOC_SIZE(n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/win32select.c:108,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/win32select.c:110,1
    - Dst: FD_SET_ALLOC_SIZE
      Src: /src/libevent/win32select.c:112,1
    - Dst: mm_realloc
      Src: /src/libevent/win32select.c:113,1
    - Dst: mm_realloc
      Src: /src/libevent/win32select.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - op
    - new_num_fds
    argTypes:
    - struct win32op*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 120
    functionName: grow_fd_sets
    functionSourceFile: /src/libevent/win32select.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - mm_realloc
    - FD_SET_ALLOC_SIZE
    linkageType: ''
    returnType: int
    signature: int grow_fd_sets(struct win32op *op, unsigned new_num_fds)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: grow_fd_sets
      Src: /src/libevent/win32select.c:134,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - op
    - ent
    - s
    - read
    argTypes:
    - struct win32op*
    - struct idx_info*
    - evutil_socket_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 145
    functionName: do_fd_set
    functionSourceFile: /src/libevent/win32select.c
    functionUses: 0
    functionsReached:
    - grow_fd_sets
    linkageType: ''
    returnType: int
    signature: int do_fd_set(struct win32op *op, struct idx_info *ent, evutil_socket_t
      s, int read)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evmap_io_get_fdinfo_
      Src: /src/libevent/win32select.c:167,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - base
    - op
    - ent
    - read
    argTypes:
    - struct event_base*
    - struct win32op*
    - struct idx_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 177
    functionName: do_fd_clear
    functionSourceFile: /src/libevent/win32select.c
    functionUses: 0
    functionsReached:
    - evmap_io_get_fdinfo_
    linkageType: ''
    returnType: int
    signature: "int do_fd_clear(struct event_base *base,\n\t\t\tstruct win32op *op,
      struct idx_info *ent, int read)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/win32select.c:185,1
    - Dst: FD_SET_ALLOC_SIZE
      Src: /src/libevent/win32select.c:188,1
    - Dst: mm_malloc
      Src: /src/libevent/win32select.c:189,1
    - Dst: mm_malloc
      Src: /src/libevent/win32select.c:191,1
    - Dst: mm_malloc
      Src: /src/libevent/win32select.c:193,1
    - Dst: mm_malloc
      Src: /src/libevent/win32select.c:195,1
    - Dst: mm_malloc
      Src: /src/libevent/win32select.c:197,1
    - Dst: evsig_init_
      Src: /src/libevent/win32select.c:203,1
    - Dst: evutil_weakrand_seed_
      Src: /src/libevent/win32select.c:206,1
    - Dst: XFREE
      Src: /src/libevent/win32select.c:210,1
    - Dst: XFREE
      Src: /src/libevent/win32select.c:211,1
    - Dst: XFREE
      Src: /src/libevent/win32select.c:212,1
    - Dst: XFREE
      Src: /src/libevent/win32select.c:213,1
    - Dst: XFREE
      Src: /src/libevent/win32select.c:214,1
    - Dst: XFREE
      Src: /src/libevent/win32select.c:215,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 217
    functionName: win32_init
    functionSourceFile: /src/libevent/win32select.c
    functionUses: 0
    functionsReached:
    - evsig_init_
    - evutil_weakrand_seed_
    - FD_SET_ALLOC_SIZE
    - XFREE
    - mm_calloc
    - mm_malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      win32_init(struct event_base *base)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: event_debug
      Src: /src/libevent/win32select.c:232,1
    - Dst: do_fd_set
      Src: /src/libevent/win32select.c:234,1
    - Dst: do_fd_set
      Src: /src/libevent/win32select.c:238,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - idx_
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 242
    functionName: win32_add
    functionSourceFile: /src/libevent/win32select.c
    functionUses: 0
    functionsReached:
    - event_debug
    - do_fd_set
    linkageType: ''
    returnType: int
    signature: "int win32_add(struct event_base *base, evutil_socket_t fd,\n\t\t\t
      short old, short events, void *idx_)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_debug
      Src: /src/libevent/win32select.c:251,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/win32select.c:252,1
    - Dst: do_fd_clear
      Src: /src/libevent/win32select.c:254,1
    - Dst: do_fd_clear
      Src: /src/libevent/win32select.c:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - idx_
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 244
    functionDepth: 3
    functionLinenumber: 244
    functionLinenumberEnd: 259
    functionName: win32_del
    functionSourceFile: /src/libevent/win32select.c
    functionUses: 0
    functionsReached:
    - event_debug
    - EV_SOCK_ARG
    - do_fd_clear
    linkageType: ''
    returnType: int
    signature: "int win32_del(struct event_base *base, evutil_socket_t fd, short old,
      short events,\n\t\t  void *idx_)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libevent/win32select.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - struct win_fd_set*
    - struct win_fd_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 266
    functionName: fd_set_copy
    functionSourceFile: /src/libevent/win32select.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void fd_set_copy(struct win_fd_set *out, const struct win_fd_set *in)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: FD_SET_ALLOC_SIZE
      Src: /src/libevent/win32select.c:289,1
    - Dst: mm_realloc
      Src: /src/libevent/win32select.c:290,1
    - Dst: mm_realloc
      Src: /src/libevent/win32select.c:292,1
    - Dst: mm_realloc
      Src: /src/libevent/win32select.c:294,1
    - Dst: fd_set_copy
      Src: /src/libevent/win32select.c:299,1
    - Dst: fd_set_copy
      Src: /src/libevent/win32select.c:300,1
    - Dst: fd_set_copy
      Src: /src/libevent/win32select.c:301,1
    - Dst: evutil_tv_to_msec_
      Src: /src/libevent/win32select.c:308,1
    - Dst: Sleep
      Src: /src/libevent/win32select.c:313,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/win32select.c:317,1
    - Dst: select
      Src: /src/libevent/win32select.c:319,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/win32select.c:324,1
    - Dst: event_debug
      Src: /src/libevent/win32select.c:326,1
    - Dst: event_debug
      Src: /src/libevent/win32select.c:329,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/win32select.c:330,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/win32select.c:330,1
    - Dst: evutil_weakrand_range_
      Src: /src/libevent/win32select.c:335,1
    - Dst: evmap_io_active_
      Src: /src/libevent/win32select.c:341,1
    - Dst: evutil_weakrand_range_
      Src: /src/libevent/win32select.c:345,1
    - Dst: evmap_io_active_
      Src: /src/libevent/win32select.c:351,1
    - Dst: evutil_weakrand_range_
      Src: /src/libevent/win32select.c:355,1
    - Dst: evmap_io_active_
      Src: /src/libevent/win32select.c:361,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 2
    argNames:
    - base
    - tv
    argTypes:
    - struct event_base*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 365
    functionName: win32_dispatch
    functionSourceFile: /src/libevent/win32select.c
    functionUses: 0
    functionsReached:
    - FD_SET_ALLOC_SIZE
    - select
    - EVBASE_RELEASE_LOCK
    - evutil_weakrand_range_
    - mm_realloc
    - fd_set_copy
    - Sleep
    - evmap_io_active_
    - evutil_tv_to_msec_
    - EVUTIL_SOCKET_ERROR
    - evutil_socket_error_to_string
    - event_debug
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: int
    signature: int win32_dispatch(struct event_base *base, struct timeval *tv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evsig_dealloc_
      Src: /src/libevent/win32select.c:372,1
    - Dst: mm_free
      Src: /src/libevent/win32select.c:374,1
    - Dst: mm_free
      Src: /src/libevent/win32select.c:376,1
    - Dst: mm_free
      Src: /src/libevent/win32select.c:378,1
    - Dst: mm_free
      Src: /src/libevent/win32select.c:380,1
    - Dst: mm_free
      Src: /src/libevent/win32select.c:382,1
    - Dst: memset
      Src: /src/libevent/win32select.c:385,1
    - Dst: mm_free
      Src: /src/libevent/win32select.c:386,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 387
    functionName: win32_dealloc
    functionSourceFile: /src/libevent/win32select.c
    functionUses: 0
    functionsReached:
    - memset
    - mm_free
    - evsig_dealloc_
    linkageType: ''
    returnType: void
    signature: void win32_dealloc(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: EVTHREAD_GET_ID
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_GET_ID()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: EVBASE_IN_THREAD
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBASE_IN_THREAD(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: EVBASE_NEED_NOTIFY
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBASE_NEED_NOTIFY(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar
    - ','
    - locktype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: EVTHREAD_ALLOC_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_ALLOC_LOCK(lockvar, locktype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar
    - ','
    - locktype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: EVTHREAD_FREE_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_FREE_LOCK(lockvar, locktype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: EVLOCK_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_LOCK(lockvar,mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: EVLOCK_UNLOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_UNLOCK(lockvar,mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar1
    - ','
    - lockvar2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 115
    functionName: EVLOCK_SORTLOCKS_
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_SORTLOCKS_(lockvar1, lockvar2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - lockvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: EVBASE_ACQUIRE_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBASE_ACQUIRE_LOCK(base, lockvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - lockvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: EVBASE_RELEASE_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBASE_RELEASE_LOCK(base, lockvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: EVLOCK_ASSERT_LOCKED
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_ASSERT_LOCKED(lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libevent/evthread-internal.h:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - lock
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 150
    functionName: EVLOCK_TRY_LOCK_
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached:
    - lock
    linkageType: ''
    returnType: int
    signature: int EVLOCK_TRY_LOCK_(void *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - condvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: EVTHREAD_ALLOC_COND
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_ALLOC_COND(condvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 164
    functionName: EVTHREAD_FREE_COND
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_FREE_COND(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: EVTHREAD_COND_SIGNAL
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_COND_SIGNAL(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: EVTHREAD_COND_BROADCAST
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_COND_BROADCAST(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: EVTHREAD_COND_WAIT
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_COND_WAIT(cond, lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - cond
    - ','
    - lock
    - ','
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: EVTHREAD_COND_WAIT_TIMED
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_COND_WAIT_TIMED(cond, lock, tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: EVTHREAD_LOCKING_ENABLED
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_LOCKING_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: EVTHREAD_GET_ID
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_GET_ID()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: EVBASE_IN_THREAD
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBASE_IN_THREAD(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: EVBASE_NEED_NOTIFY
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBASE_NEED_NOTIFY(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar
    - ','
    - locktype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: EVTHREAD_ALLOC_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_ALLOC_LOCK(lockvar, locktype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar
    - ','
    - locktype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 224
    functionName: EVTHREAD_FREE_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_FREE_LOCK(lockvar, locktype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: EVLOCK_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_LOCK(lockvar,mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: EVLOCK_UNLOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_UNLOCK(lockvar,mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - lockvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: EVBASE_ACQUIRE_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBASE_ACQUIRE_LOCK(base, lockvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - lockvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: EVBASE_RELEASE_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBASE_RELEASE_LOCK(base, lockvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: EVLOCK_ASSERT_LOCKED
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_ASSERT_LOCKED(lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evthreadimpl_lock_lock_
      Src: /src/libevent/evthread-internal.h:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - lock
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 273
    functionName: EVLOCK_TRY_LOCK_
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached:
    - evthreadimpl_lock_lock_
    linkageType: ''
    returnType: int
    signature: int EVLOCK_TRY_LOCK_(void *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - condvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: EVTHREAD_ALLOC_COND
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_ALLOC_COND(condvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 286
    functionName: EVTHREAD_FREE_COND
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_FREE_COND(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 289
    functionName: EVTHREAD_COND_SIGNAL
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_COND_SIGNAL(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 292
    functionName: EVTHREAD_COND_BROADCAST
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_COND_BROADCAST(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 298
    functionName: EVTHREAD_COND_WAIT
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_COND_WAIT(cond, lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - cond
    - ','
    - lock
    - ','
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 302
    functionName: EVTHREAD_COND_WAIT_TIMED
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_COND_WAIT_TIMED(cond, lock, tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 305
    functionName: EVTHREAD_LOCKING_ENABLED
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_LOCKING_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 309
    functionName: EVTHREAD_GET_ID
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_GET_ID()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar
    - ','
    - locktype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 310
    functionName: EVTHREAD_ALLOC_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_ALLOC_LOCK(lockvar, locktype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar
    - ','
    - locktype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 311
    functionName: EVTHREAD_FREE_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_FREE_LOCK(lockvar, locktype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 313
    functionName: EVLOCK_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_LOCK(lockvar, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: EVLOCK_UNLOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_UNLOCK(lockvar, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - lock1
    - ','
    - lock2
    - ','
    - mode1
    - ','
    - mode2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 315
    functionName: EVLOCK_LOCK2
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_LOCK2(lock1,lock2,mode1,mode2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - lock1
    - ','
    - lock2
    - ','
    - mode1
    - ','
    - mode2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 316
    functionName: EVLOCK_UNLOCK2
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_UNLOCK2(lock1,lock2,mode1,mode2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 318
    functionName: EVBASE_IN_THREAD
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBASE_IN_THREAD(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 319
    functionName: EVBASE_NEED_NOTIFY
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBASE_NEED_NOTIFY(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 320
    functionName: EVBASE_ACQUIRE_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBASE_ACQUIRE_LOCK(base, lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 321
    functionName: EVBASE_RELEASE_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBASE_RELEASE_LOCK(base, lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 322
    functionName: EVLOCK_ASSERT_LOCKED
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_ASSERT_LOCKED(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 324
    functionName: EVLOCK_TRY_LOCK_
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_TRY_LOCK_(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - condvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 326
    functionName: EVTHREAD_ALLOC_COND
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_ALLOC_COND(condvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 327
    functionName: EVTHREAD_FREE_COND
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_FREE_COND(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 328
    functionName: EVTHREAD_COND_SIGNAL
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_COND_SIGNAL(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 329
    functionName: EVTHREAD_COND_BROADCAST
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_COND_BROADCAST(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 330
    functionName: EVTHREAD_COND_WAIT
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_COND_WAIT(cond, lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - cond
    - ','
    - lock
    - ','
    - howlong
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 331
    functionName: EVTHREAD_COND_WAIT_TIMED
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_COND_WAIT_TIMED(cond, lock, howlong)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 333
    functionName: EVTHREAD_LOCKING_ENABLED
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_LOCKING_ENABLED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar1
    - ','
    - lockvar2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 347
    functionName: EVLOCK_SORTLOCKS_
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_SORTLOCKS_(lockvar1, lockvar2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - lock1
    - ','
    - lock2
    - ','
    - mode1
    - ','
    - mode2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 359
    functionName: EVLOCK_LOCK2
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_LOCK2(lock1,lock2,mode1,mode2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - lock1
    - ','
    - lock2
    - ','
    - mode1
    - ','
    - mode2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 369
    functionName: EVLOCK_UNLOCK2
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVLOCK_UNLOCK2(lock1,lock2,mode1,mode2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lockvar
    - ','
    - locktype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 386
    functionName: EVTHREAD_SETUP_GLOBAL_LOCK
    functionSourceFile: /src/libevent/evthread-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTHREAD_SETUP_GLOBAL_LOCK(lockvar, locktype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/bufferevent_pair.c:59,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_pair.c:60,1
    - Dst: BEV_IS_PAIR
      Src: /src/libevent/bufferevent_pair.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: upcast
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - BEV_IS_PAIR
    - EVUTIL_UPCAST
    linkageType: ''
    returnType: struct bufferevent_pair
    signature: 'struct bufferevent_pair *

      upcast(struct bufferevent *bev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bev_pair
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: downcast
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: downcast(bev_pair)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent_pair.c:70,1
    - Dst: upcast
      Src: /src/libevent/bufferevent_pair.c:71,1
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent_pair.c:73,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: incref_and_lock
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached:
    - upcast
    - bufferevent_incref_and_lock_
    - downcast
    linkageType: ''
    returnType: void
    signature: void incref_and_lock(struct bufferevent *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_pair.c:79,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_pair.c:81,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:81,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_pair.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: decref_and_unlock
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 4
    functionsReached:
    - upcast
    - bufferevent_decref_and_unlock_
    - downcast
    linkageType: ''
    returnType: void
    signature: void decref_and_unlock(struct bufferevent *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/bufferevent_pair.c:95,1
    - Dst: bufferevent_init_common_
      Src: /src/libevent/bufferevent_pair.c:97,1
    - Dst: mm_free
      Src: /src/libevent/bufferevent_pair.c:99,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/bufferevent_pair.c:102,1
    - Dst: bufferevent_free
      Src: /src/libevent/bufferevent_pair.c:103,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:103,1
    - Dst: bufferevent_init_generic_timeout_cbs_
      Src: /src/libevent/bufferevent_pair.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - base
    - options
    argTypes:
    - struct event_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 110
    functionName: bufferevent_pair_elt_new
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached:
    - downcast
    - mm_free
    - bufferevent_init_common_
    - evbuffer_add_cb
    - bufferevent_init_generic_timeout_cbs_
    - mm_calloc
    - bufferevent_free
    linkageType: ''
    returnType: struct bufferevent_pair
    signature: "struct bufferevent_pair *\nbufferevent_pair_elt_new(struct event_base
      *base,\n    int options)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_pair_elt_new
      Src: /src/libevent/bufferevent_pair.c:122,1
    - Dst: bufferevent_pair_elt_new
      Src: /src/libevent/bufferevent_pair.c:125,1
    - Dst: bufferevent_free
      Src: /src/libevent/bufferevent_pair.c:127,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:127,1
    - Dst: bufferevent_enable_locking_
      Src: /src/libevent/bufferevent_pair.c:133,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:133,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/bufferevent_pair.c:139,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:139,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/bufferevent_pair.c:140,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:140,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/bufferevent_pair.c:141,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:141,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/bufferevent_pair.c:142,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:142,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:144,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - base
    - options
    - pair
    argTypes:
    - struct event_base*
    - int
    - struct bufferevent*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 148
    functionName: bufferevent_pair_new
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 1
    functionsReached:
    - downcast
    - evbuffer_freeze
    - bufferevent_enable_locking_
    - bufferevent_free
    - bufferevent_pair_elt_new
    linkageType: ''
    returnType: int
    signature: "int bufferevent_pair_new(struct event_base *base, int options,\n    struct
      bufferevent *pair[2])"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_unfreeze
      Src: /src/libevent/bufferevent_pair.c:157,1
    - Dst: evbuffer_unfreeze
      Src: /src/libevent/bufferevent_pair.c:158,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_pair.c:161,1
    - Dst: evbuffer_remove_buffer
      Src: /src/libevent/bufferevent_pair.c:164,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_pair.c:168,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/bufferevent_pair.c:169,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_pair.c:172,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/bufferevent_pair.c:173,1
    - Dst: BEV_RESET_GENERIC_READ_TIMEOUT
      Src: /src/libevent/bufferevent_pair.c:177,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_pair.c:179,1
    - Dst: BEV_RESET_GENERIC_WRITE_TIMEOUT
      Src: /src/libevent/bufferevent_pair.c:180,1
    - Dst: BEV_DEL_GENERIC_WRITE_TIMEOUT
      Src: /src/libevent/bufferevent_pair.c:182,1
    - Dst: bufferevent_trigger_nolock_
      Src: /src/libevent/bufferevent_pair.c:185,1
    - Dst: bufferevent_trigger_nolock_
      Src: /src/libevent/bufferevent_pair.c:186,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/bufferevent_pair.c:188,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/bufferevent_pair.c:189,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - src
    - dst
    - ignore_wm
    argTypes:
    - struct bufferevent*
    - struct bufferevent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 190
    functionName: be_pair_transfer
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached:
    - evbuffer_unfreeze
    - evbuffer_remove_buffer
    - evbuffer_freeze
    - BEV_DEL_GENERIC_WRITE_TIMEOUT
    - BEV_RESET_GENERIC_READ_TIMEOUT
    - BEV_RESET_GENERIC_WRITE_TIMEOUT
    - evbuffer_add_buffer
    - bufferevent_trigger_nolock_
    - evbuffer_get_length
    linkageType: ''
    returnType: void
    signature: "void be_pair_transfer(struct bufferevent *src, struct bufferevent
      *dst,\n    int ignore_wm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:196,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:197,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_pair.c:199,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - struct bufferevent_pair*
    - struct bufferevent_pair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 200
    functionName: be_pair_wants_to_talk
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached:
    - downcast
    - evbuffer_get_length
    linkageType: ''
    returnType: int
    signature: "int be_pair_wants_to_talk(struct bufferevent_pair *src,\n    struct
      bufferevent_pair *dst)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: incref_and_lock
      Src: /src/libevent/bufferevent_pair.c:209,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:209,1
    - Dst: be_pair_wants_to_talk
      Src: /src/libevent/bufferevent_pair.c:214,1
    - Dst: be_pair_transfer
      Src: /src/libevent/bufferevent_pair.c:215,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:215,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:215,1
    - Dst: decref_and_unlock
      Src: /src/libevent/bufferevent_pair.c:219,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - outbuf
    - info
    - arg
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 220
    functionName: be_pair_outbuf_cb
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached:
    - downcast
    - be_pair_wants_to_talk
    - decref_and_unlock
    - incref_and_lock
    - be_pair_transfer
    linkageType: ''
    returnType: void
    signature: "void be_pair_outbuf_cb(struct evbuffer *outbuf,\n    const struct
      evbuffer_cb_info *info, void *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_pair.c:225,1
    - Dst: incref_and_lock
      Src: /src/libevent/bufferevent_pair.c:228,1
    - Dst: BEV_RESET_GENERIC_READ_TIMEOUT
      Src: /src/libevent/bufferevent_pair.c:231,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_pair.c:233,1
    - Dst: BEV_RESET_GENERIC_WRITE_TIMEOUT
      Src: /src/libevent/bufferevent_pair.c:234,1
    - Dst: be_pair_wants_to_talk
      Src: /src/libevent/bufferevent_pair.c:238,1
    - Dst: be_pair_transfer
      Src: /src/libevent/bufferevent_pair.c:239,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:239,1
    - Dst: be_pair_wants_to_talk
      Src: /src/libevent/bufferevent_pair.c:243,1
    - Dst: be_pair_transfer
      Src: /src/libevent/bufferevent_pair.c:244,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:244,1
    - Dst: decref_and_unlock
      Src: /src/libevent/bufferevent_pair.c:246,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 2
    argNames:
    - bufev
    - events
    argTypes:
    - struct bufferevent*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 248
    functionName: be_pair_enable
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached:
    - downcast
    - upcast
    - be_pair_wants_to_talk
    - BEV_RESET_GENERIC_READ_TIMEOUT
    - BEV_RESET_GENERIC_WRITE_TIMEOUT
    - decref_and_unlock
    - evbuffer_get_length
    - incref_and_lock
    - be_pair_transfer
    linkageType: ''
    returnType: int
    signature: int be_pair_enable(struct bufferevent *bufev, short events)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEV_DEL_GENERIC_READ_TIMEOUT
      Src: /src/libevent/bufferevent_pair.c:254,1
    - Dst: BEV_DEL_GENERIC_WRITE_TIMEOUT
      Src: /src/libevent/bufferevent_pair.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - bev
    - events
    argTypes:
    - struct bufferevent*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 260
    functionName: be_pair_disable
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached:
    - BEV_DEL_GENERIC_WRITE_TIMEOUT
    - BEV_DEL_GENERIC_READ_TIMEOUT
    linkageType: ''
    returnType: int
    signature: int be_pair_disable(struct bufferevent *bev, short events)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_pair.c:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 272
    functionName: be_pair_unlink
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached:
    - upcast
    linkageType: ''
    returnType: void
    signature: void be_pair_unlink(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_pair.c:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 300
    functionName: be_pair_destruct
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached:
    - upcast
    linkageType: ''
    returnType: void
    signature: void be_pair_destruct(struct bufferevent *bev)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_pair.c:306,1
    - Dst: incref_and_lock
      Src: /src/libevent/bufferevent_pair.c:315,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:317,1
    - Dst: be_pair_transfer
      Src: /src/libevent/bufferevent_pair.c:320,1
    - Dst: be_pair_transfer
      Src: /src/libevent/bufferevent_pair.c:323,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_pair.c:331,1
    - Dst: decref_and_unlock
      Src: /src/libevent/bufferevent_pair.c:333,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - bev
    - iotype
    - mode
    argTypes:
    - struct bufferevent*
    - short
    - enum bufferevent_flush_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 335
    functionName: be_pair_flush
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached:
    - downcast
    - upcast
    - bufferevent_run_eventcb_
    - decref_and_unlock
    - incref_and_lock
    - be_pair_transfer
    linkageType: ''
    returnType: int
    signature: "int be_pair_flush(struct bufferevent *bev, short iotype,\n    enum
      bufferevent_flush_mode mode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEV_IS_PAIR
      Src: /src/libevent/bufferevent_pair.c:342,1
    - Dst: upcast
      Src: /src/libevent/bufferevent_pair.c:344,1
    - Dst: incref_and_lock
      Src: /src/libevent/bufferevent_pair.c:345,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_pair.c:347,1
    - Dst: decref_and_unlock
      Src: /src/libevent/bufferevent_pair.c:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 350
    functionName: bufferevent_pair_get_partner
    functionSourceFile: /src/libevent/bufferevent_pair.c
    functionUses: 0
    functionsReached:
    - downcast
    - upcast
    - incref_and_lock
    - decref_and_unlock
    - BEV_IS_PAIR
    linkageType: ''
    returnType: struct bufferevent
    signature: 'struct bufferevent *

      bufferevent_pair_get_partner(struct bufferevent *bev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: PTR_TO_UDATA
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTR_TO_UDATA(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: INT_TO_UDATA
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INT_TO_UDATA(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: PTR_TO_UDATA
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTR_TO_UDATA(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: INT_TO_UDATA
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INT_TO_UDATA(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: PTR_TO_UDATA
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTR_TO_UDATA(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: INT_TO_UDATA
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INT_TO_UDATA(x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/kqueue.c:123,1
    - Dst: kqueue
      Src: /src/libevent/kqueue.c:128,1
    - Dst: event_warn
      Src: /src/libevent/kqueue.c:129,1
    - Dst: getpid
      Src: /src/libevent/kqueue.c:135,1
    - Dst: mm_calloc
      Src: /src/libevent/kqueue.c:138,1
    - Dst: memset
      Src: /src/libevent/kqueue.c:144,1
    - Dst: kevent
      Src: /src/libevent/kqueue.c:153,1
    - Dst: event_warn
      Src: /src/libevent/kqueue.c:157,1
    - Dst: kqop_free
      Src: /src/libevent/kqueue.c:166,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 169
    functionName: kq_init
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached:
    - kqop_free
    - mm_calloc
    - event_warn
    - memset
    - kevent
    - getpid
    - kqueue
    linkageType: ''
    returnType: void
    signature: 'void *

      kq_init(struct event_base *base)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/kqueue.c:176,1
    - Dst: INT_TO_UDATA
      Src: /src/libevent/kqueue.c:184,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/kqueue.c:193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - out
    - fd
    - filter
    - change
    argTypes:
    - struct kevent*
    - evutil_socket_t
    - int
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 196
    functionName: kq_setup_kevent
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached:
    - INT_TO_UDATA
    - memset
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: void
    signature: void kq_setup_kevent(struct kevent *out, evutil_socket_t fd, int filter,
      short change)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_warnx
      Src: /src/libevent/kqueue.c:206,1
    - Dst: mm_realloc
      Src: /src/libevent/kqueue.c:211,1
    - Dst: event_warn
      Src: /src/libevent/kqueue.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - kqop
    argTypes:
    - struct kqop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 219
    functionName: kq_grow_events
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached:
    - event_warnx
    - mm_realloc
    - event_warn
    linkageType: ''
    returnType: int
    signature: int kq_grow_events(struct kqop *kqop)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: kq_setup_kevent
      Src: /src/libevent/kqueue.c:233,1
    - Dst: kq_grow_events
      Src: /src/libevent/kqueue.c:235,1
    - Dst: kq_setup_kevent
      Src: /src/libevent/kqueue.c:241,1
    - Dst: kq_grow_events
      Src: /src/libevent/kqueue.c:243,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - changelist
    - kqop
    argTypes:
    - struct event_changelist*
    - struct kqop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 249
    functionName: kq_build_changes_list
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached:
    - kq_setup_kevent
    - kq_grow_events
    linkageType: ''
    returnType: int
    signature: "int kq_build_changes_list(const struct event_changelist *changelist,\n
      \   struct kqop *kqop)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/kqueue.c:266,1
    - Dst: kq_build_changes_list
      Src: /src/libevent/kqueue.c:267,1
    - Dst: event_changelist_remove_all_
      Src: /src/libevent/kqueue.c:271,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/kqueue.c:279,1
    - Dst: kevent
      Src: /src/libevent/kqueue.c:280,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/kqueue.c:281,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/kqueue.c:283,1
    - Dst: event_warn
      Src: /src/libevent/kqueue.c:289,1
    - Dst: event_debug
      Src: /src/libevent/kqueue.c:296,1
    - Dst: evmap_signal_active_
      Src: /src/libevent/kqueue.c:380,1
    - Dst: evmap_io_active_
      Src: /src/libevent/kqueue.c:382,1
    - Dst: kq_grow_events
      Src: /src/libevent/kqueue.c:389,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 74
    argCount: 2
    argNames:
    - base
    - tv
    argTypes:
    - struct event_base*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 394
    functionName: kq_dispatch
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - evmap_signal_active_
    - EVUTIL_ASSERT
    - kq_build_changes_list
    - kq_grow_events
    - event_warn
    - evmap_io_active_
    - kevent
    - event_changelist_remove_all_
    - event_debug
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: int
    signature: int kq_dispatch(struct event_base *base, struct timeval *tv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/kqueue.c:400,1
    - Dst: getpid
      Src: /src/libevent/kqueue.c:401,1
    - Dst: close
      Src: /src/libevent/kqueue.c:402,1
    - Dst: memset
      Src: /src/libevent/kqueue.c:403,1
    - Dst: mm_free
      Src: /src/libevent/kqueue.c:404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - kqop
    argTypes:
    - struct kqop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 405
    functionName: kqop_free
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 1
    functionsReached:
    - close
    - mm_free
    - memset
    - getpid
    linkageType: ''
    returnType: void
    signature: void kqop_free(struct kqop *kqop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evsig_dealloc_
      Src: /src/libevent/kqueue.c:411,1
    - Dst: kqop_free
      Src: /src/libevent/kqueue.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 413
    functionName: kq_dealloc
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached:
    - kqop_free
    - evsig_dealloc_
    linkageType: ''
    returnType: void
    signature: void kq_dealloc(struct event_base *base)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/kqueue.c:424,1
    - Dst: memset
      Src: /src/libevent/kqueue.c:426,1
    - Dst: kevent
      Src: /src/libevent/kqueue.c:434,1
    - Dst: evsig_set_handler_
      Src: /src/libevent/kqueue.c:442,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - base
    - nsignal
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - int
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 447
    functionName: kq_sig_add
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - memset
    - kevent
    - evsig_set_handler_
    linkageType: ''
    returnType: int
    signature: int kq_sig_add(struct event_base *base, int nsignal, short old, short
      events, void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/kqueue.c:458,1
    - Dst: memset
      Src: /src/libevent/kqueue.c:460,1
    - Dst: kevent
      Src: /src/libevent/kqueue.c:468,1
    - Dst: evsig_restore_handler_
      Src: /src/libevent/kqueue.c:471,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - base
    - nsignal
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - int
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 475
    functionName: kq_sig_del
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - memset
    - kevent
    - evsig_restore_handler_
    linkageType: ''
    returnType: int
    signature: int kq_sig_del(struct event_base *base, int nsignal, short old, short
      events, void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/kqueue.c:502,1
    - Dst: kevent
      Src: /src/libevent/kqueue.c:507,1
    - Dst: event_warn
      Src: /src/libevent/kqueue.c:508,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 518
    functionName: event_kq_add_notify_event_
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached:
    - memset
    - kevent
    - event_warn
    linkageType: ''
    returnType: int
    signature: int event_kq_add_notify_event_(struct event_base *base)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/kqueue.c:532,1
    - Dst: kevent
      Src: /src/libevent/kqueue.c:537,1
    - Dst: event_warn
      Src: /src/libevent/kqueue.c:538,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 546
    functionName: event_kq_notify_base_
    functionSourceFile: /src/libevent/kqueue.c
    functionUses: 0
    functionsReached:
    - memset
    - kevent
    - event_warn
    linkageType: ''
    returnType: int
    signature: int event_kq_notify_base_(struct event_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/buffer_iocp.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: upcast_evbuffer
    functionSourceFile: /src/libevent/buffer_iocp.c
    functionUses: 0
    functionsReached:
    - EVUTIL_UPCAST
    linkageType: ''
    returnType: struct evbuffer_overlapped
    signature: 'struct evbuffer_overlapped *

      upcast_evbuffer(struct evbuffer *buf)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer_iocp.c:90,1
    - Dst: evbuffer_chain_unpin_
      Src: /src/libevent/buffer_iocp.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - eo
    - flag
    argTypes:
    - struct evbuffer_overlapped*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: pin_release
    functionSourceFile: /src/libevent/buffer_iocp.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - evbuffer_chain_unpin_
    linkageType: ''
    returnType: void
    signature: void pin_release(struct evbuffer_overlapped *eo, unsigned flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: upcast_evbuffer
      Src: /src/libevent/buffer_iocp.c:100,1
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer_iocp.c:105,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer_iocp.c:106,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer_iocp.c:107,1
    - Dst: evbuffer_unfreeze
      Src: /src/libevent/buffer_iocp.c:109,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer_iocp.c:116,1
    - Dst: pin_release
      Src: /src/libevent/buffer_iocp.c:126,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer_iocp.c:133,1
    - Dst: evbuffer_decref_and_unlock_
      Src: /src/libevent/buffer_iocp.c:135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - evbuf
    - nBytes
    argTypes:
    - struct evbuffer*
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 136
    functionName: evbuffer_commit_read_
    functionSourceFile: /src/libevent/buffer_iocp.c
    functionUses: 0
    functionsReached:
    - evbuffer_unfreeze
    - pin_release
    - EVUTIL_ASSERT
    - EVBUFFER_LOCK
    - evbuffer_decref_and_unlock_
    - evbuffer_invoke_callbacks_
    - upcast_evbuffer
    linkageType: ''
    returnType: void
    signature: void evbuffer_commit_read_(struct evbuffer *evbuf, ev_ssize_t nBytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: upcast_evbuffer
      Src: /src/libevent/buffer_iocp.c:141,1
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer_iocp.c:143,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer_iocp.c:144,1
    - Dst: evbuffer_unfreeze
      Src: /src/libevent/buffer_iocp.c:145,1
    - Dst: evbuffer_drain
      Src: /src/libevent/buffer_iocp.c:146,1
    - Dst: pin_release
      Src: /src/libevent/buffer_iocp.c:147,1
    - Dst: evbuffer_decref_and_unlock_
      Src: /src/libevent/buffer_iocp.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - evbuf
    - nBytes
    argTypes:
    - struct evbuffer*
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 150
    functionName: evbuffer_commit_write_
    functionSourceFile: /src/libevent/buffer_iocp.c
    functionUses: 0
    functionsReached:
    - evbuffer_unfreeze
    - pin_release
    - EVUTIL_ASSERT
    - EVBUFFER_LOCK
    - evbuffer_decref_and_unlock_
    - evbuffer_drain
    - upcast_evbuffer
    linkageType: ''
    returnType: void
    signature: void evbuffer_commit_write_(struct evbuffer *evbuf, ev_ssize_t nBytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/buffer_iocp.c:157,1
    - Dst: LIST_INIT
      Src: /src/libevent/buffer_iocp.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 169
    functionName: evbuffer_overlapped_new_
    functionSourceFile: /src/libevent/buffer_iocp.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - LIST_INIT
    linkageType: ''
    returnType: struct evbuffer
    signature: 'struct evbuffer *

      evbuffer_overlapped_new_(evutil_socket_t fd)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: upcast_evbuffer
      Src: /src/libevent/buffer_iocp.c:175,1
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer_iocp.c:186,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer_iocp.c:187,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/buffer_iocp.c:197,1
    - Dst: memset
      Src: /src/libevent/buffer_iocp.c:201,1
    - Dst: evbuffer_chain_pin_
      Src: /src/libevent/buffer_iocp.c:208,1
    - Dst: evbuffer_incref_
      Src: /src/libevent/buffer_iocp.c:225,1
    - Dst: WSASend
      Src: /src/libevent/buffer_iocp.c:226,1
    - Dst: WSAGetLastError
      Src: /src/libevent/buffer_iocp.c:228,1
    - Dst: pin_release
      Src: /src/libevent/buffer_iocp.c:231,1
    - Dst: evbuffer_unfreeze
      Src: /src/libevent/buffer_iocp.c:232,1
    - Dst: evbuffer_free
      Src: /src/libevent/buffer_iocp.c:233,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer_iocp.c:241,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 3
    argNames:
    - buf
    - at_most
    - ol
    argTypes:
    - struct evbuffer*
    - ev_ssize_t
    - struct event_overlapped*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 243
    functionName: evbuffer_launch_write_
    functionSourceFile: /src/libevent/buffer_iocp.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - evbuffer_unfreeze
    - EVBUFFER_UNLOCK
    - evbuffer_incref_
    - evbuffer_freeze
    - pin_release
    - EVUTIL_ASSERT
    - evbuffer_chain_pin_
    - EVBUFFER_LOCK
    - evbuffer_free
    - memset
    - WSASend
    - upcast_evbuffer
    linkageType: ''
    returnType: int
    signature: "int evbuffer_launch_write_(struct evbuffer *buf, ev_ssize_t at_most,\n\t\tstruct
      event_overlapped *ol)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: upcast_evbuffer
      Src: /src/libevent/buffer_iocp.c:249,1
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer_iocp.c:260,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer_iocp.c:261,1
    - Dst: memset
      Src: /src/libevent/buffer_iocp.c:267,1
    - Dst: evbuffer_expand_fast_
      Src: /src/libevent/buffer_iocp.c:269,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/buffer_iocp.c:271,1
    - Dst: evbuffer_read_setup_vecs_
      Src: /src/libevent/buffer_iocp.c:273,1
    - Dst: WSABUF_FROM_EVBUFFER_IOV
      Src: /src/libevent/buffer_iocp.c:276,1
    - Dst: evbuffer_chain_pin_
      Src: /src/libevent/buffer_iocp.c:286,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer_iocp.c:289,1
    - Dst: evbuffer_incref_
      Src: /src/libevent/buffer_iocp.c:291,1
    - Dst: WSARecv
      Src: /src/libevent/buffer_iocp.c:292,1
    - Dst: WSAGetLastError
      Src: /src/libevent/buffer_iocp.c:294,1
    - Dst: pin_release
      Src: /src/libevent/buffer_iocp.c:297,1
    - Dst: evbuffer_unfreeze
      Src: /src/libevent/buffer_iocp.c:298,1
    - Dst: evbuffer_free
      Src: /src/libevent/buffer_iocp.c:299,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer_iocp.c:307,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 3
    argNames:
    - buf
    - at_most
    - ol
    argTypes:
    - struct evbuffer*
    - size_t
    - struct event_overlapped*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 309
    functionName: evbuffer_launch_read_
    functionSourceFile: /src/libevent/buffer_iocp.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - evbuffer_unfreeze
    - EVBUFFER_UNLOCK
    - evbuffer_incref_
    - evbuffer_freeze
    - pin_release
    - EVUTIL_ASSERT
    - evbuffer_chain_pin_
    - WSARecv
    - EVBUFFER_LOCK
    - evbuffer_expand_fast_
    - evbuffer_free
    - WSABUF_FROM_EVBUFFER_IOV
    - memset
    - evbuffer_read_setup_vecs_
    - upcast_evbuffer
    linkageType: ''
    returnType: int
    signature: "int evbuffer_launch_read_(struct evbuffer *buf, size_t at_most,\n\t\tstruct
      event_overlapped *ol)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: upcast_evbuffer
      Src: /src/libevent/buffer_iocp.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 316
    functionName: evbuffer_overlapped_get_fd_
    functionSourceFile: /src/libevent/buffer_iocp.c
    functionUses: 0
    functionsReached:
    - upcast_evbuffer
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t evbuffer_overlapped_get_fd_(struct evbuffer *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: upcast_evbuffer
      Src: /src/libevent/buffer_iocp.c:321,1
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer_iocp.c:322,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer_iocp.c:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - fd
    argTypes:
    - struct evbuffer*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 327
    functionName: evbuffer_overlapped_set_fd_
    functionSourceFile: /src/libevent/buffer_iocp.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    - upcast_evbuffer
    linkageType: ''
    returnType: void
    signature: void evbuffer_overlapped_set_fd_(struct evbuffer *buf, evutil_socket_t
      fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - status
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: NT_SUCCESS
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NT_SUCCESS(status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: RTL_CONSTANT_STRING
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTL_CONSTANT_STRING(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ObjectName
    - ','
    - Attributes
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: RTL_CONSTANT_OBJECT_ATTRIBUTES
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTL_CONSTANT_OBJECT_ATTRIBUTES(ObjectName, Attributes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 269
    functionName: NT_NTDLL_IMPORT_LIST
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NT_NTDLL_IMPORT_LIST(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - return_type
    - ','
    - attributes
    - ','
    - name
    - ','
    - parameters
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 272
    functionName: X
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(return_type, attributes, name, parameters)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 311
    functionName: return_map_error
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: return_map_error(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - value
    - ','
    - error
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 317
    functionName: return_set_error
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: return_set_error(value, error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NtCreateFile
      Src: /src/libevent/wepoll.c:339,1
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:351,1
    - Dst: RtlNtStatusToDosError
      Src: /src/libevent/wepoll.c:351,1
    - Dst: CreateIoCompletionPort
      Src: /src/libevent/wepoll.c:353,1
    - Dst: SetFileCompletionNotificationModes
      Src: /src/libevent/wepoll.c:356,1
    - Dst: CloseHandle
      Src: /src/libevent/wepoll.c:364,1
    - Dst: return_map_error
      Src: /src/libevent/wepoll.c:365,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - iocp_handle
    - afd_helper_handle_out
    argTypes:
    - HANDLE
    - HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 366
    functionName: afd_create_helper_handle
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - SetFileCompletionNotificationModes
    - return_set_error
    - NtCreateFile
    - CreateIoCompletionPort
    - CloseHandle
    - return_map_error
    - RtlNtStatusToDosError
    linkageType: ''
    returnType: int
    signature: "int afd_create_helper_handle(HANDLE iocp_handle,\n                             HANDLE*
      afd_helper_handle_out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libevent/wepoll.c:374,1
    - Dst: NtDeviceIoControlFile
      Src: /src/libevent/wepoll.c:377,1
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:391,1
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:393,1
    - Dst: RtlNtStatusToDosError
      Src: /src/libevent/wepoll.c:393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - afd_helper_handle
    - poll_info
    - io_status_block
    argTypes:
    - HANDLE
    - AFD_POLL_INFO*
    - IO_STATUS_BLOCK*
    assertStmts:
    - condition: (io_status_block != NULL)
      pos:
        line_end: 373
        line_start: 373
        source_file: /src/libevent/wepoll.c
    constantsTouched: []
    func_position:
      end: 394
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 394
    functionName: afd_poll
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - NtDeviceIoControlFile
    - assert
    - RtlNtStatusToDosError
    - return_set_error
    linkageType: ''
    returnType: int
    signature: "int afd_poll(HANDLE afd_helper_handle,\n             AFD_POLL_INFO*
      poll_info,\n             IO_STATUS_BLOCK* io_status_block)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NtCancelIoFileEx
      Src: /src/libevent/wepoll.c:407,1
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:414,1
    - Dst: RtlNtStatusToDosError
      Src: /src/libevent/wepoll.c:414,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - afd_helper_handle
    - io_status_block
    argTypes:
    - HANDLE
    - IO_STATUS_BLOCK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 415
    functionName: afd_cancel_poll
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - return_set_error
    - NtCancelIoFileEx
    - RtlNtStatusToDosError
    linkageType: ''
    returnType: int
    signature: "int afd_cancel_poll(HANDLE afd_helper_handle,\n                    IO_STATUS_BLOCK*
      io_status_block)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ts_tree_init
      Src: /src/libevent/wepoll.c:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 555
    functionName: epoll_global_init
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - ts_tree_init
    linkageType: ''
    returnType: int
    signature: int epoll_global_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/libevent/wepoll.c:562,1
    - Dst: port_new
      Src: /src/libevent/wepoll.c:565,1
    - Dst: port_state_to_handle_tree_node
      Src: /src/libevent/wepoll.c:569,1
    - Dst: ts_tree_add
      Src: /src/libevent/wepoll.c:570,1
    - Dst: port_delete
      Src: /src/libevent/wepoll.c:572,1
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:573,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 577
    functionName: epoll__create
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - port_new
    - init
    - port_delete
    - return_set_error
    - port_state_to_handle_tree_node
    - ts_tree_add
    linkageType: ''
    returnType: HANDLE
    signature: HANDLE epoll__create(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:581,1
    - Dst: epoll__create
      Src: /src/libevent/wepoll.c:583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 579
    functionDepth: 2
    functionLinenumber: 579
    functionLinenumberEnd: 584
    functionName: epoll_create
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - epoll__create
    - return_set_error
    linkageType: ''
    returnType: HANDLE
    signature: HANDLE epoll_create(int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:588,1
    - Dst: epoll__create
      Src: /src/libevent/wepoll.c:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 586
    functionDepth: 2
    functionLinenumber: 586
    functionLinenumberEnd: 591
    functionName: epoll_create1
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - epoll__create
    - return_set_error
    linkageType: ''
    returnType: HANDLE
    signature: HANDLE epoll_create1(int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/libevent/wepoll.c:597,1
    - Dst: ts_tree_del_and_ref
      Src: /src/libevent/wepoll.c:600,1
    - Dst: err_set_win_error
      Src: /src/libevent/wepoll.c:602,1
    - Dst: port_state_from_handle_tree_node
      Src: /src/libevent/wepoll.c:606,1
    - Dst: port_close
      Src: /src/libevent/wepoll.c:607,1
    - Dst: ts_tree_node_unref_and_destroy
      Src: /src/libevent/wepoll.c:609,1
    - Dst: port_delete
      Src: /src/libevent/wepoll.c:611,1
    - Dst: err_check_handle
      Src: /src/libevent/wepoll.c:614,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - ephnd
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 616
    functionName: epoll_close
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - err_set_win_error
    - port_close
    - init
    - port_delete
    - port_state_from_handle_tree_node
    - err_check_handle
    - ts_tree_del_and_ref
    - ts_tree_node_unref_and_destroy
    linkageType: ''
    returnType: int
    signature: int epoll_close(HANDLE ephnd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/libevent/wepoll.c:623,1
    - Dst: ts_tree_find_and_ref
      Src: /src/libevent/wepoll.c:626,1
    - Dst: err_set_win_error
      Src: /src/libevent/wepoll.c:628,1
    - Dst: port_state_from_handle_tree_node
      Src: /src/libevent/wepoll.c:632,1
    - Dst: port_ctl
      Src: /src/libevent/wepoll.c:633,1
    - Dst: ts_tree_node_unref
      Src: /src/libevent/wepoll.c:635,1
    - Dst: err_check_handle
      Src: /src/libevent/wepoll.c:645,1
    - Dst: err_check_handle
      Src: /src/libevent/wepoll.c:646,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - ephnd
    - op
    - sock
    - ev
    argTypes:
    - HANDLE
    - int
    - SOCKET
    - struct epoll_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 648
    functionName: epoll_ctl
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - err_set_win_error
    - init
    - ts_tree_find_and_ref
    - port_state_from_handle_tree_node
    - port_ctl
    - ts_tree_node_unref
    - err_check_handle
    linkageType: ''
    returnType: int
    signature: int epoll_ctl(HANDLE ephnd, int op, SOCKET sock, struct epoll_event*
      ev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:659,1
    - Dst: init
      Src: /src/libevent/wepoll.c:661,1
    - Dst: ts_tree_find_and_ref
      Src: /src/libevent/wepoll.c:664,1
    - Dst: err_set_win_error
      Src: /src/libevent/wepoll.c:666,1
    - Dst: port_state_from_handle_tree_node
      Src: /src/libevent/wepoll.c:670,1
    - Dst: port_wait
      Src: /src/libevent/wepoll.c:671,1
    - Dst: ts_tree_node_unref
      Src: /src/libevent/wepoll.c:673,1
    - Dst: err_check_handle
      Src: /src/libevent/wepoll.c:681,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - ephnd
    - events
    - maxevents
    - timeout
    argTypes:
    - HANDLE
    - struct epoll_event*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 683
    functionName: epoll_wait
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - err_set_win_error
    - init
    - port_wait
    - return_set_error
    - port_state_from_handle_tree_node
    - ts_tree_find_and_ref
    - ts_tree_node_unref
    - err_check_handle
    linkageType: ''
    returnType: int
    signature: "int epoll_wait(HANDLE ephnd,\n               struct epoll_event* events,\n
      \              int maxevents,\n               int timeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 789
    functionName: ERR__ERRNO_MAPPINGS
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR__ERRNO_MAPPINGS(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR__ERRNO_MAPPINGS
      Src: /src/libevent/wepoll.c:795,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - error
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 790
    functionDepth: 1
    functionLinenumber: 790
    functionLinenumberEnd: 799
    functionName: err__map_win_error_to_errno
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - ERR__ERRNO_MAPPINGS
    linkageType: ''
    returnType: errno_t
    signature: errno_t err__map_win_error_to_errno(DWORD error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - error_sym
    - ','
    - errno_sym
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 795
    functionName: X
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(error_sym, errno_sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: err__map_win_error_to_errno
      Src: /src/libevent/wepoll.c:802,1
    - Dst: GetLastError
      Src: /src/libevent/wepoll.c:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 801
    functionDepth: 2
    functionLinenumber: 801
    functionLinenumberEnd: 803
    functionName: err_map_win_error
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - err__map_win_error_to_errno
    linkageType: ''
    returnType: void
    signature: void err_map_win_error(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetLastError
      Src: /src/libevent/wepoll.c:806,1
    - Dst: err__map_win_error_to_errno
      Src: /src/libevent/wepoll.c:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - error
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 805
    functionDepth: 2
    functionLinenumber: 805
    functionLinenumberEnd: 808
    functionName: err_set_win_error
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 3
    functionsReached:
    - SetLastError
    - err__map_win_error_to_errno
    linkageType: ''
    returnType: void
    signature: void err_set_win_error(DWORD error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:816,1
    - Dst: GetHandleInformation
      Src: /src/libevent/wepoll.c:818,1
    - Dst: return_map_error
      Src: /src/libevent/wepoll.c:819,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - handle
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 822
    functionName: err_check_handle
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 3
    functionsReached:
    - return_map_error
    - return_set_error
    - GetHandleInformation
    linkageType: ''
    returnType: int
    signature: int err_check_handle(HANDLE handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 827
    functionName: array_count
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: array_count(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 830
    functionName: container_of
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: container_of(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 832
    functionName: unused_var
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unused_var(v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unused_var
      Src: /src/libevent/wepoll.c:847,1
    - Dst: unused_var
      Src: /src/libevent/wepoll.c:848,1
    - Dst: unused_var
      Src: /src/libevent/wepoll.c:849,1
    - Dst: ws_global_init
      Src: /src/libevent/wepoll.c:852,1
    - Dst: nt_global_init
      Src: /src/libevent/wepoll.c:852,1
    - Dst: reflock_global_init
      Src: /src/libevent/wepoll.c:853,1
    - Dst: epoll_global_init
      Src: /src/libevent/wepoll.c:853,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - once
    - parameter
    - context
    argTypes:
    - INIT_ONCE*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 844
    functionDepth: 2
    functionLinenumber: 844
    functionLinenumberEnd: 858
    functionName: init__once_callback
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - unused_var
    - epoll_global_init
    - ws_global_init
    - reflock_global_init
    - nt_global_init
    linkageType: ''
    returnType: BOOL
    signature: "BOOL init__once_callback(INIT_ONCE* once,\n                                         void*
      parameter,\n                                         void** context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: InitOnceExecuteOnce
      Src: /src/libevent/wepoll.c:862,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 870
    functionName: init
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 63
    functionsReached:
    - InitOnceExecuteOnce
    linkageType: ''
    returnType: int
    signature: int init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - return_type
    - ','
    - attributes
    - ','
    - name
    - ','
    - parameters
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 886
    functionName: X
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(return_type, attributes, name, parameters)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleHandleW
      Src: /src/libevent/wepoll.c:893,1
    - Dst: NT_NTDLL_IMPORT_LIST
      Src: /src/libevent/wepoll.c:902,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 906
    functionName: nt_global_init
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - GetModuleHandleW
    - NT_NTDLL_IMPORT_LIST
    linkageType: ''
    returnType: int
    signature: int nt_global_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - return_type
    - ','
    - attributes
    - ','
    - name
    - ','
    - parameters
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 902
    functionName: X
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(return_type, attributes, name, parameters)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: port_get_iocp_handle
      Src: /src/libevent/wepoll.c:958,1
    - Dst: port_get_poll_group_queue
      Src: /src/libevent/wepoll.c:959,1
    - Dst: mm_malloc
      Src: /src/libevent/wepoll.c:961,1
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:963,1
    - Dst: memset
      Src: /src/libevent/wepoll.c:965,1
    - Dst: queue_node_init
      Src: /src/libevent/wepoll.c:967,1
    - Dst: afd_create_helper_handle
      Src: /src/libevent/wepoll.c:970,1
    - Dst: mm_free
      Src: /src/libevent/wepoll.c:972,1
    - Dst: queue_append
      Src: /src/libevent/wepoll.c:976,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - port_state
    argTypes:
    - port_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 957
    functionDepth: 2
    functionLinenumber: 957
    functionLinenumberEnd: 979
    functionName: poll_group__new
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - queue_append
    - mm_free
    - port_get_poll_group_queue
    - return_set_error
    - queue_node_init
    - afd_create_helper_handle
    - mm_malloc
    - memset
    - port_get_iocp_handle
    linkageType: ''
    returnType: poll_group_t
    signature: poll_group_t * poll_group__new(port_state_t* port_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libevent/wepoll.c:982,1
    - Dst: CloseHandle
      Src: /src/libevent/wepoll.c:983,1
    - Dst: queue_remove
      Src: /src/libevent/wepoll.c:984,1
    - Dst: mm_free
      Src: /src/libevent/wepoll.c:985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - poll_group
    argTypes:
    - poll_group_t*
    assertStmts:
    - condition: (poll_group->group_size == 0)
      pos:
        line_end: 981
        line_start: 981
        source_file: /src/libevent/wepoll.c
    constantsTouched: []
    func_position:
      end: 986
      start: 981
    functionDepth: 1
    functionLinenumber: 981
    functionLinenumberEnd: 986
    functionName: poll_group_delete
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - assert
    - queue_remove
    - mm_free
    - CloseHandle
    linkageType: ''
    returnType: void
    signature: void poll_group_delete(poll_group_t* poll_group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/libevent/wepoll.c:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - queue_node
    argTypes:
    - queue_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 988
    functionDepth: 1
    functionLinenumber: 988
    functionLinenumberEnd: 990
    functionName: poll_group_from_queue_node
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - container_of
    linkageType: ''
    returnType: poll_group_t
    signature: poll_group_t * poll_group_from_queue_node(queue_node_t* queue_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poll_group
    argTypes:
    - poll_group_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 994
    functionName: poll_group_get_afd_helper_handle
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HANDLE
    signature: HANDLE poll_group_get_afd_helper_handle(poll_group_t* poll_group)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: port_get_poll_group_queue
      Src: /src/libevent/wepoll.c:997,1
    - Dst: queue_empty
      Src: /src/libevent/wepoll.c:999,1
    - Dst: container_of
      Src: /src/libevent/wepoll.c:1000,1
    - Dst: queue_last
      Src: /src/libevent/wepoll.c:1001,1
    - Dst: poll_group__new
      Src: /src/libevent/wepoll.c:1006,1
    - Dst: queue_move_first
      Src: /src/libevent/wepoll.c:1011,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - port_state
    argTypes:
    - port_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 996
    functionDepth: 3
    functionLinenumber: 996
    functionLinenumberEnd: 1014
    functionName: poll_group_acquire
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - queue_empty
    - port_get_poll_group_queue
    - poll_group__new
    - queue_last
    - container_of
    - queue_move_first
    linkageType: ''
    returnType: poll_group_t
    signature: poll_group_t * poll_group_acquire(port_state_t* port_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: port_get_poll_group_queue
      Src: /src/libevent/wepoll.c:1018,1
    - Dst: assert
      Src: /src/libevent/wepoll.c:1021,1
    - Dst: queue_move_last
      Src: /src/libevent/wepoll.c:1023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - poll_group
    argTypes:
    - poll_group_t*
    assertStmts:
    - condition: (poll_group->group_size < POLL_GROUP__MAX_GROUP_SIZE)
      pos:
        line_end: 1020
        line_start: 1020
        source_file: /src/libevent/wepoll.c
    constantsTouched: []
    func_position:
      end: 1026
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1026
    functionName: poll_group_release
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - assert
    - queue_move_last
    - port_get_poll_group_queue
    linkageType: ''
    returnType: void
    signature: void poll_group_release(poll_group_t* poll_group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/wepoll.c:1067,1
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:1069,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1066
    functionDepth: 1
    functionLinenumber: 1066
    functionLinenumberEnd: 1072
    functionName: port__alloc
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - return_set_error
    - mm_malloc
    linkageType: ''
    returnType: port_state_t
    signature: port_state_t * port__alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libevent/wepoll.c:1075,1
    - Dst: mm_free
      Src: /src/libevent/wepoll.c:1076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - port
    argTypes:
    - port_state_t*
    assertStmts:
    - condition: (port != NULL)
      pos:
        line_end: 1074
        line_start: 1074
        source_file: /src/libevent/wepoll.c
    constantsTouched: []
    func_position:
      end: 1077
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1077
    functionName: port__free
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - assert
    - mm_free
    linkageType: ''
    returnType: void
    signature: void port__free(port_state_t* port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CreateIoCompletionPort
      Src: /src/libevent/wepoll.c:1081,1
    - Dst: return_map_error
      Src: /src/libevent/wepoll.c:1083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1079
    functionDepth: 1
    functionLinenumber: 1079
    functionLinenumberEnd: 1086
    functionName: port__create_iocp
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - return_map_error
    - CreateIoCompletionPort
    linkageType: ''
    returnType: HANDLE
    signature: HANDLE port__create_iocp(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: port__alloc
      Src: /src/libevent/wepoll.c:1092,1
    - Dst: port__create_iocp
      Src: /src/libevent/wepoll.c:1096,1
    - Dst: memset
      Src: /src/libevent/wepoll.c:1100,1
    - Dst: tree_init
      Src: /src/libevent/wepoll.c:1103,1
    - Dst: queue_init
      Src: /src/libevent/wepoll.c:1104,1
    - Dst: queue_init
      Src: /src/libevent/wepoll.c:1105,1
    - Dst: queue_init
      Src: /src/libevent/wepoll.c:1106,1
    - Dst: ts_tree_node_init
      Src: /src/libevent/wepoll.c:1107,1
    - Dst: InitializeCriticalSection
      Src: /src/libevent/wepoll.c:1108,1
    - Dst: port__free
      Src: /src/libevent/wepoll.c:1114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - iocp_handle_out
    argTypes:
    - HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1088
    functionDepth: 2
    functionLinenumber: 1088
    functionLinenumberEnd: 1117
    functionName: port_new
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - ts_tree_node_init
    - port__free
    - memset
    - tree_init
    - queue_init
    - InitializeCriticalSection
    - port__alloc
    - port__create_iocp
    linkageType: ''
    returnType: port_state_t
    signature: port_state_t * port_new(HANDLE* iocp_handle_out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CloseHandle
      Src: /src/libevent/wepoll.c:1123,1
    - Dst: return_map_error
      Src: /src/libevent/wepoll.c:1124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - port_state
    argTypes:
    - port_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1127
    functionName: port__close_iocp
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - return_map_error
    - CloseHandle
    linkageType: ''
    returnType: int
    signature: int port__close_iocp(port_state_t* port_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EnterCriticalSection
      Src: /src/libevent/wepoll.c:1132,1
    - Dst: port__close_iocp
      Src: /src/libevent/wepoll.c:1133,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/wepoll.c:1134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - port_state
    argTypes:
    - port_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1129
    functionDepth: 2
    functionLinenumber: 1129
    functionLinenumberEnd: 1137
    functionName: port_close
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - EnterCriticalSection
    - LeaveCriticalSection
    - port__close_iocp
    linkageType: ''
    returnType: int
    signature: int port_close(port_state_t* port_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libevent/wepoll.c:1144,1
    - Dst: tree_root
      Src: /src/libevent/wepoll.c:1146,1
    - Dst: sock_state_from_tree_node
      Src: /src/libevent/wepoll.c:1147,1
    - Dst: sock_force_delete
      Src: /src/libevent/wepoll.c:1148,1
    - Dst: queue_first
      Src: /src/libevent/wepoll.c:1151,1
    - Dst: sock_state_from_queue_node
      Src: /src/libevent/wepoll.c:1152,1
    - Dst: sock_force_delete
      Src: /src/libevent/wepoll.c:1153,1
    - Dst: queue_first
      Src: /src/libevent/wepoll.c:1156,1
    - Dst: poll_group_from_queue_node
      Src: /src/libevent/wepoll.c:1157,1
    - Dst: poll_group_delete
      Src: /src/libevent/wepoll.c:1158,1
    - Dst: assert
      Src: /src/libevent/wepoll.c:1161,1
    - Dst: queue_empty
      Src: /src/libevent/wepoll.c:1161,1
    - Dst: DeleteCriticalSection
      Src: /src/libevent/wepoll.c:1163,1
    - Dst: port__free
      Src: /src/libevent/wepoll.c:1165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - port_state
    argTypes:
    - port_state_t*
    assertStmts:
    - condition: (port_state->iocp_handle == NULL)
      pos:
        line_end: 1143
        line_start: 1143
        source_file: /src/libevent/wepoll.c
    - condition: (queue_empty(&port_state->sock_update_queue))
      pos:
        line_end: 1160
        line_start: 1160
        source_file: /src/libevent/wepoll.c
    constantsTouched: []
    func_position:
      end: 1168
      start: 1139
    functionDepth: 2
    functionLinenumber: 1139
    functionLinenumberEnd: 1168
    functionName: port_delete
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 2
    functionsReached:
    - DeleteCriticalSection
    - queue_empty
    - tree_root
    - sock_force_delete
    - port__free
    - poll_group_from_queue_node
    - sock_state_from_tree_node
    - poll_group_delete
    - sock_state_from_queue_node
    - assert
    - queue_first
    linkageType: ''
    returnType: int
    signature: int port_delete(port_state_t* port_state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: queue_empty
      Src: /src/libevent/wepoll.c:1175,1
    - Dst: queue_first
      Src: /src/libevent/wepoll.c:1176,1
    - Dst: sock_state_from_queue_node
      Src: /src/libevent/wepoll.c:1177,1
    - Dst: sock_update
      Src: /src/libevent/wepoll.c:1179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - port_state
    argTypes:
    - port_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1170
    functionDepth: 1
    functionLinenumber: 1170
    functionLinenumberEnd: 1186
    functionName: port__update_events
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - queue_first
    - queue_empty
    - sock_update
    - sock_state_from_queue_node
    linkageType: ''
    returnType: int
    signature: int port__update_events(port_state_t* port_state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: port__update_events
      Src: /src/libevent/wepoll.c:1190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - port_state
    argTypes:
    - port_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1188
    functionDepth: 2
    functionLinenumber: 1188
    functionLinenumberEnd: 1191
    functionName: port__update_events_if_polling
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - port__update_events
    linkageType: ''
    returnType: void
    signature: void port__update_events_if_polling(port_state_t* port_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sock_feed_event
      Src: /src/libevent/wepoll.c:1205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - port_state
    - epoll_events
    - iocp_events
    - iocp_event_count
    argTypes:
    - port_state_t*
    - struct epoll_event*
    - OVERLAPPED_ENTRY*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1193
    functionDepth: 1
    functionLinenumber: 1193
    functionLinenumberEnd: 1209
    functionName: port__feed_events
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - sock_feed_event
    linkageType: ''
    returnType: int
    signature: "int port__feed_events(port_state_t* port_state,\n                             struct
      epoll_event* epoll_events,\n                             OVERLAPPED_ENTRY* iocp_events,\n
      \                            DWORD iocp_event_count)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: port__update_events
      Src: /src/libevent/wepoll.c:1218,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/wepoll.c:1223,1
    - Dst: GetQueuedCompletionStatusEx
      Src: /src/libevent/wepoll.c:1225,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/wepoll.c:1232,1
    - Dst: return_map_error
      Src: /src/libevent/wepoll.c:1237,1
    - Dst: port__feed_events
      Src: /src/libevent/wepoll.c:1239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - port_state
    - epoll_events
    - iocp_events
    - maxevents
    - timeout
    argTypes:
    - port_state_t*
    - struct epoll_event*
    - OVERLAPPED_ENTRY*
    - DWORD
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1211
    functionDepth: 2
    functionLinenumber: 1211
    functionLinenumberEnd: 1241
    functionName: port__poll
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - port__feed_events
    - port__update_events
    - return_map_error
    - LeaveCriticalSection
    - GetQueuedCompletionStatusEx
    - EnterCriticalSection
    linkageType: ''
    returnType: int
    signature: "int port__poll(port_state_t* port_state,\n                      struct
      epoll_event* epoll_events,\n                      OVERLAPPED_ENTRY* iocp_events,\n
      \                     DWORD maxevents,\n                      DWORD timeout)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:1255,1
    - Dst: array_count
      Src: /src/libevent/wepoll.c:1259,1
    - Dst: mm_malloc
      Src: /src/libevent/wepoll.c:1262,1
    - Dst: array_count
      Src: /src/libevent/wepoll.c:1264,1
    - Dst: GetTickCount64
      Src: /src/libevent/wepoll.c:1270,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/wepoll.c:1278,1
    - Dst: port__poll
      Src: /src/libevent/wepoll.c:1285,1
    - Dst: GetTickCount64
      Src: /src/libevent/wepoll.c:1294,1
    - Dst: SetLastError
      Src: /src/libevent/wepoll.c:1298,1
    - Dst: port__update_events_if_polling
      Src: /src/libevent/wepoll.c:1306,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/wepoll.c:1308,1
    - Dst: mm_free
      Src: /src/libevent/wepoll.c:1311,1
    - Dst: GetLastError
      Src: /src/libevent/wepoll.c:1315,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 4
    argNames:
    - port_state
    - events
    - maxevents
    - timeout
    argTypes:
    - port_state_t*
    - struct epoll_event*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1243
    functionDepth: 3
    functionLinenumber: 1243
    functionLinenumberEnd: 1319
    functionName: port_wait
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - GetLastError
    - mm_free
    - port__poll
    - return_set_error
    - GetTickCount64
    - mm_malloc
    - array_count
    - LeaveCriticalSection
    - port__update_events_if_polling
    - SetLastError
    - EnterCriticalSection
    linkageType: ''
    returnType: int
    signature: "int port_wait(port_state_t* port_state,\n              struct epoll_event*
      events,\n              int maxevents,\n              int timeout)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sock_new
      Src: /src/libevent/wepoll.c:1324,1
    - Dst: sock_set_event
      Src: /src/libevent/wepoll.c:1328,1
    - Dst: sock_delete
      Src: /src/libevent/wepoll.c:1329,1
    - Dst: port__update_events_if_polling
      Src: /src/libevent/wepoll.c:1333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - port_state
    - sock
    - ev
    argTypes:
    - port_state_t*
    - SOCKET
    - struct epoll_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1321
    functionDepth: 3
    functionLinenumber: 1321
    functionLinenumberEnd: 1336
    functionName: port__ctl_add
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - sock_set_event
    - port__update_events_if_polling
    - sock_new
    - sock_delete
    linkageType: ''
    returnType: int
    signature: "int port__ctl_add(port_state_t* port_state,\n                         SOCKET
      sock,\n                         struct epoll_event* ev)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: port_find_socket
      Src: /src/libevent/wepoll.c:1341,1
    - Dst: sock_set_event
      Src: /src/libevent/wepoll.c:1345,1
    - Dst: port__update_events_if_polling
      Src: /src/libevent/wepoll.c:1348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - port_state
    - sock
    - ev
    argTypes:
    - port_state_t*
    - SOCKET
    - struct epoll_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1338
    functionDepth: 3
    functionLinenumber: 1338
    functionLinenumberEnd: 1351
    functionName: port__ctl_mod
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - sock_set_event
    - port__update_events_if_polling
    - port_find_socket
    linkageType: ''
    returnType: int
    signature: "int port__ctl_mod(port_state_t* port_state,\n                         SOCKET
      sock,\n                         struct epoll_event* ev)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: port_find_socket
      Src: /src/libevent/wepoll.c:1354,1
    - Dst: sock_delete
      Src: /src/libevent/wepoll.c:1358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - port_state
    - sock
    argTypes:
    - port_state_t*
    - SOCKET
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1353
    functionDepth: 1
    functionLinenumber: 1353
    functionLinenumberEnd: 1361
    functionName: port__ctl_del
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - port_find_socket
    - sock_delete
    linkageType: ''
    returnType: int
    signature: int port__ctl_del(port_state_t* port_state, SOCKET sock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: port__ctl_add
      Src: /src/libevent/wepoll.c:1369,1
    - Dst: port__ctl_mod
      Src: /src/libevent/wepoll.c:1371,1
    - Dst: port__ctl_del
      Src: /src/libevent/wepoll.c:1373,1
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:1375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - port_state
    - op
    - sock
    - ev
    argTypes:
    - port_state_t*
    - int
    - SOCKET
    - struct epoll_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1363
    functionDepth: 4
    functionLinenumber: 1363
    functionLinenumberEnd: 1377
    functionName: port__ctl_op
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - port__ctl_mod
    - port__ctl_add
    - port__ctl_del
    - return_set_error
    linkageType: ''
    returnType: int
    signature: "int port__ctl_op(port_state_t* port_state,\n                        int
      op,\n                        SOCKET sock,\n                        struct epoll_event*
      ev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EnterCriticalSection
      Src: /src/libevent/wepoll.c:1385,1
    - Dst: port__ctl_op
      Src: /src/libevent/wepoll.c:1386,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/wepoll.c:1387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - port_state
    - op
    - sock
    - ev
    argTypes:
    - port_state_t*
    - int
    - SOCKET
    - struct epoll_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1379
    functionDepth: 5
    functionLinenumber: 1379
    functionLinenumberEnd: 1390
    functionName: port_ctl
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - LeaveCriticalSection
    - EnterCriticalSection
    - port__ctl_op
    linkageType: ''
    returnType: int
    signature: "int port_ctl(port_state_t* port_state,\n             int op,\n             SOCKET
      sock,\n             struct epoll_event* ev)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tree_add
      Src: /src/libevent/wepoll.c:1395,1
    - Dst: sock_state_to_tree_node
      Src: /src/libevent/wepoll.c:1396,1
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:1398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - port_state
    - sock_state
    - socket
    argTypes:
    - port_state_t*
    - sock_state_t*
    - SOCKET
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1392
    functionDepth: 1
    functionLinenumber: 1392
    functionLinenumberEnd: 1400
    functionName: port_register_socket_handle
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - sock_state_to_tree_node
    - tree_add
    - return_set_error
    linkageType: ''
    returnType: int
    signature: "int port_register_socket_handle(port_state_t* port_state,\n                                sock_state_t*
      sock_state,\n                                SOCKET socket)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tree_del
      Src: /src/libevent/wepoll.c:1404,1
    - Dst: sock_state_to_tree_node
      Src: /src/libevent/wepoll.c:1404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - port_state
    - sock_state
    argTypes:
    - port_state_t*
    - sock_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1402
    functionDepth: 1
    functionLinenumber: 1402
    functionLinenumberEnd: 1405
    functionName: port_unregister_socket_handle
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - sock_state_to_tree_node
    - tree_del
    linkageType: ''
    returnType: void
    signature: "void port_unregister_socket_handle(port_state_t* port_state,\n                                   sock_state_t*
      sock_state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tree_find
      Src: /src/libevent/wepoll.c:1408,1
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:1410,1
    - Dst: sock_state_from_tree_node
      Src: /src/libevent/wepoll.c:1411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - port_state
    - socket
    argTypes:
    - port_state_t*
    - SOCKET
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1412
      start: 1407
    functionDepth: 1
    functionLinenumber: 1407
    functionLinenumberEnd: 1412
    functionName: port_find_socket
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 2
    functionsReached:
    - sock_state_from_tree_node
    - return_set_error
    - tree_find
    linkageType: ''
    returnType: sock_state_t
    signature: sock_state_t * port_find_socket(port_state_t* port_state, SOCKET socket)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: queue_enqueued
      Src: /src/libevent/wepoll.c:1416,1
    - Dst: sock_state_to_queue_node
      Src: /src/libevent/wepoll.c:1416,1
    - Dst: queue_append
      Src: /src/libevent/wepoll.c:1418,1
    - Dst: sock_state_to_queue_node
      Src: /src/libevent/wepoll.c:1419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - port_state
    - sock_state
    argTypes:
    - port_state_t*
    - sock_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1414
    functionDepth: 1
    functionLinenumber: 1414
    functionLinenumberEnd: 1420
    functionName: port_request_socket_update
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - queue_enqueued
    - queue_append
    - sock_state_to_queue_node
    linkageType: ''
    returnType: void
    signature: "void port_request_socket_update(port_state_t* port_state,\n                                sock_state_t*
      sock_state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unused_var
      Src: /src/libevent/wepoll.c:1424,1
    - Dst: queue_enqueued
      Src: /src/libevent/wepoll.c:1425,1
    - Dst: sock_state_to_queue_node
      Src: /src/libevent/wepoll.c:1425,1
    - Dst: queue_remove
      Src: /src/libevent/wepoll.c:1427,1
    - Dst: sock_state_to_queue_node
      Src: /src/libevent/wepoll.c:1427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - port_state
    - sock_state
    argTypes:
    - port_state_t*
    - sock_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1422
    functionDepth: 1
    functionLinenumber: 1422
    functionLinenumberEnd: 1428
    functionName: port_cancel_socket_update
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - queue_enqueued
    - queue_remove
    - unused_var
    - sock_state_to_queue_node
    linkageType: ''
    returnType: void
    signature: "void port_cancel_socket_update(port_state_t* port_state,\n                               sock_state_t*
      sock_state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: queue_enqueued
      Src: /src/libevent/wepoll.c:1432,1
    - Dst: sock_state_to_queue_node
      Src: /src/libevent/wepoll.c:1432,1
    - Dst: queue_append
      Src: /src/libevent/wepoll.c:1434,1
    - Dst: sock_state_to_queue_node
      Src: /src/libevent/wepoll.c:1435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - port_state
    - sock_state
    argTypes:
    - port_state_t*
    - sock_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1430
    functionDepth: 1
    functionLinenumber: 1430
    functionLinenumberEnd: 1436
    functionName: port_add_deleted_socket
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - queue_enqueued
    - queue_append
    - sock_state_to_queue_node
    linkageType: ''
    returnType: void
    signature: "void port_add_deleted_socket(port_state_t* port_state,\n                             sock_state_t*
      sock_state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unused_var
      Src: /src/libevent/wepoll.c:1440,1
    - Dst: queue_enqueued
      Src: /src/libevent/wepoll.c:1441,1
    - Dst: sock_state_to_queue_node
      Src: /src/libevent/wepoll.c:1441,1
    - Dst: queue_remove
      Src: /src/libevent/wepoll.c:1443,1
    - Dst: sock_state_to_queue_node
      Src: /src/libevent/wepoll.c:1443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - port_state
    - sock_state
    argTypes:
    - port_state_t*
    - sock_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1438
    functionDepth: 1
    functionLinenumber: 1438
    functionLinenumberEnd: 1444
    functionName: port_remove_deleted_socket
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - queue_enqueued
    - queue_remove
    - unused_var
    - sock_state_to_queue_node
    linkageType: ''
    returnType: void
    signature: "void port_remove_deleted_socket(port_state_t* port_state,\n                                sock_state_t*
      sock_state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libevent/wepoll.c:1447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - port_state
    argTypes:
    - port_state_t*
    assertStmts:
    - condition: (port_state->iocp_handle != NULL)
      pos:
        line_end: 1446
        line_start: 1446
        source_file: /src/libevent/wepoll.c
    constantsTouched: []
    func_position:
      end: 1449
      start: 1446
    functionDepth: 0
    functionLinenumber: 1446
    functionLinenumberEnd: 1449
    functionName: port_get_iocp_handle
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: HANDLE
    signature: HANDLE port_get_iocp_handle(port_state_t* port_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port_state
    argTypes:
    - port_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1451
    functionDepth: 0
    functionLinenumber: 1451
    functionLinenumberEnd: 1453
    functionName: port_get_poll_group_queue
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: queue_t
    signature: queue_t * port_get_poll_group_queue(port_state_t* port_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/libevent/wepoll.c:1456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tree_node
    argTypes:
    - ts_tree_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1455
    functionDepth: 1
    functionLinenumber: 1455
    functionLinenumberEnd: 1457
    functionName: port_state_from_handle_tree_node
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 3
    functionsReached:
    - container_of
    linkageType: ''
    returnType: port_state_t
    signature: port_state_t * port_state_from_handle_tree_node(ts_tree_node_t* tree_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port_state
    argTypes:
    - port_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1459
    functionDepth: 0
    functionLinenumber: 1459
    functionLinenumberEnd: 1461
    functionName: port_state_to_handle_tree_node
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ts_tree_node_t
    signature: ts_tree_node_t * port_state_to_handle_tree_node(port_state_t* port_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue_node_init
      Src: /src/libevent/wepoll.c:1464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - queue
    argTypes:
    - queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1463
    functionDepth: 1
    functionLinenumber: 1463
    functionLinenumberEnd: 1465
    functionName: queue_init
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - queue_node_init
    linkageType: ''
    returnType: void
    signature: void queue_init(queue_t* queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - queue_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1467
    functionDepth: 0
    functionLinenumber: 1467
    functionLinenumberEnd: 1470
    functionName: queue_node_init
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void queue_node_init(queue_node_t* node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - queue_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1475
      start: 1472
    functionDepth: 0
    functionLinenumber: 1472
    functionLinenumberEnd: 1475
    functionName: queue__detach_node
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void queue__detach_node(queue_node_t* node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue_empty
      Src: /src/libevent/wepoll.c:1478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - queue
    argTypes:
    - queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1477
    functionDepth: 1
    functionLinenumber: 1477
    functionLinenumberEnd: 1479
    functionName: queue_first
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 2
    functionsReached:
    - queue_empty
    linkageType: ''
    returnType: queue_node_t
    signature: queue_node_t * queue_first(const queue_t* queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue_empty
      Src: /src/libevent/wepoll.c:1482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - queue
    argTypes:
    - queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1481
    functionDepth: 1
    functionLinenumber: 1481
    functionLinenumberEnd: 1483
    functionName: queue_last
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - queue_empty
    linkageType: ''
    returnType: queue_node_t
    signature: queue_node_t * queue_last(const queue_t* queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - queue
    - node
    argTypes:
    - queue_t*
    - queue_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1485
    functionDepth: 0
    functionLinenumber: 1485
    functionLinenumberEnd: 1490
    functionName: queue_prepend
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void queue_prepend(queue_t* queue, queue_node_t* node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - queue
    - node
    argTypes:
    - queue_t*
    - queue_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1492
    functionDepth: 0
    functionLinenumber: 1492
    functionLinenumberEnd: 1497
    functionName: queue_append
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void queue_append(queue_t* queue, queue_node_t* node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue__detach_node
      Src: /src/libevent/wepoll.c:1500,1
    - Dst: queue_prepend
      Src: /src/libevent/wepoll.c:1501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - queue
    - node
    argTypes:
    - queue_t*
    - queue_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1499
    functionDepth: 1
    functionLinenumber: 1499
    functionLinenumberEnd: 1502
    functionName: queue_move_first
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - queue_prepend
    - queue__detach_node
    linkageType: ''
    returnType: void
    signature: void queue_move_first(queue_t* queue, queue_node_t* node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue__detach_node
      Src: /src/libevent/wepoll.c:1505,1
    - Dst: queue_append
      Src: /src/libevent/wepoll.c:1506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - queue
    - node
    argTypes:
    - queue_t*
    - queue_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1504
    functionDepth: 1
    functionLinenumber: 1504
    functionLinenumberEnd: 1507
    functionName: queue_move_last
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - queue__detach_node
    - queue_append
    linkageType: ''
    returnType: void
    signature: void queue_move_last(queue_t* queue, queue_node_t* node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue__detach_node
      Src: /src/libevent/wepoll.c:1510,1
    - Dst: queue_node_init
      Src: /src/libevent/wepoll.c:1511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - queue_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1509
    functionDepth: 1
    functionLinenumber: 1509
    functionLinenumberEnd: 1512
    functionName: queue_remove
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 3
    functionsReached:
    - queue__detach_node
    - queue_node_init
    linkageType: ''
    returnType: void
    signature: void queue_remove(queue_node_t* node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue_enqueued
      Src: /src/libevent/wepoll.c:1515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - queue
    argTypes:
    - queue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1514
    functionDepth: 1
    functionLinenumber: 1514
    functionLinenumberEnd: 1516
    functionName: queue_empty
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 5
    functionsReached:
    - queue_enqueued
    linkageType: ''
    returnType: bool
    signature: bool queue_empty(const queue_t* queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - queue_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1518
    functionDepth: 0
    functionLinenumber: 1518
    functionLinenumberEnd: 1520
    functionName: queue_enqueued
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool queue_enqueued(const queue_node_t* node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NtCreateKeyedEvent
      Src: /src/libevent/wepoll.c:1531,1
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:1534,1
    - Dst: RtlNtStatusToDosError
      Src: /src/libevent/wepoll.c:1534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1530
    functionDepth: 1
    functionLinenumber: 1530
    functionLinenumberEnd: 1536
    functionName: reflock_global_init
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - return_set_error
    - NtCreateKeyedEvent
    - RtlNtStatusToDosError
    linkageType: ''
    returnType: int
    signature: int reflock_global_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - reflock
    argTypes:
    - reflock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1538
    functionDepth: 0
    functionLinenumber: 1538
    functionLinenumberEnd: 1540
    functionName: reflock_init
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reflock_init(reflock_t* reflock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NtReleaseKeyedEvent
      Src: /src/libevent/wepoll.c:1544,1
    - Dst: abort
      Src: /src/libevent/wepoll.c:1546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - address
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1542
    functionDepth: 0
    functionLinenumber: 1542
    functionLinenumberEnd: 1547
    functionName: reflock__signal_event
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - NtReleaseKeyedEvent
    - abort
    linkageType: ''
    returnType: void
    signature: void reflock__signal_event(void* address)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NtWaitForKeyedEvent
      Src: /src/libevent/wepoll.c:1551,1
    - Dst: abort
      Src: /src/libevent/wepoll.c:1553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - address
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1549
    functionDepth: 0
    functionLinenumber: 1549
    functionLinenumberEnd: 1554
    functionName: reflock__await_event
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - abort
    - NtWaitForKeyedEvent
    linkageType: ''
    returnType: void
    signature: void reflock__await_event(void* address)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InterlockedAdd
      Src: /src/libevent/wepoll.c:1557,1
    - Dst: assert
      Src: /src/libevent/wepoll.c:1560,1
    - Dst: unused_var
      Src: /src/libevent/wepoll.c:1561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reflock
    argTypes:
    - reflock_t*
    assertStmts:
    - condition: ((state & REFLOCK__DESTROY_MASK) == 0)
      pos:
        line_end: 1559
        line_start: 1559
        source_file: /src/libevent/wepoll.c
    constantsTouched: []
    func_position:
      end: 1562
      start: 1556
    functionDepth: 1
    functionLinenumber: 1556
    functionLinenumberEnd: 1562
    functionName: reflock_ref
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - assert
    - unused_var
    - InterlockedAdd
    linkageType: ''
    returnType: void
    signature: void reflock_ref(reflock_t* reflock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: InterlockedAdd
      Src: /src/libevent/wepoll.c:1565,1
    - Dst: assert
      Src: /src/libevent/wepoll.c:1568,1
    - Dst: reflock__signal_event
      Src: /src/libevent/wepoll.c:1571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - reflock
    argTypes:
    - reflock_t*
    assertStmts:
    - condition: ((state & REFLOCK__DESTROY_MASK & ~REFLOCK__DESTROY) == 0)
      pos:
        line_end: 1567
        line_start: 1567
        source_file: /src/libevent/wepoll.c
    constantsTouched: []
    func_position:
      end: 1572
      start: 1564
    functionDepth: 1
    functionLinenumber: 1564
    functionLinenumberEnd: 1572
    functionName: reflock_unref
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - assert
    - reflock__signal_event
    - InterlockedAdd
    linkageType: ''
    returnType: void
    signature: void reflock_unref(reflock_t* reflock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: InterlockedAdd
      Src: /src/libevent/wepoll.c:1576,1
    - Dst: assert
      Src: /src/libevent/wepoll.c:1580,1
    - Dst: reflock__await_event
      Src: /src/libevent/wepoll.c:1583,1
    - Dst: InterlockedExchange
      Src: /src/libevent/wepoll.c:1585,1
    - Dst: assert
      Src: /src/libevent/wepoll.c:1586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - reflock
    argTypes:
    - reflock_t*
    assertStmts:
    - condition: (state == REFLOCK__DESTROY)
      pos:
        line_end: 1585
        line_start: 1585
        source_file: /src/libevent/wepoll.c
    - condition: ((state & REFLOCK__DESTROY_MASK) == REFLOCK__DESTROY)
      pos:
        line_end: 1579
        line_start: 1579
        source_file: /src/libevent/wepoll.c
    constantsTouched: []
    func_position:
      end: 1587
      start: 1574
    functionDepth: 1
    functionLinenumber: 1574
    functionLinenumberEnd: 1587
    functionName: reflock_unref_and_destroy
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - assert
    - InterlockedExchange
    - InterlockedAdd
    - reflock__await_event
    linkageType: ''
    returnType: void
    signature: void reflock_unref_and_destroy(reflock_t* reflock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/wepoll.c:1614,1
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:1616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1613
    functionDepth: 1
    functionLinenumber: 1613
    functionLinenumberEnd: 1618
    functionName: sock__alloc
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - return_set_error
    - mm_malloc
    linkageType: ''
    returnType: sock_state_t
    signature: sock_state_t * sock__alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/wepoll.c:1621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sock_state
    argTypes:
    - sock_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1620
    functionDepth: 1
    functionLinenumber: 1620
    functionLinenumberEnd: 1622
    functionName: sock__free
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - mm_free
    linkageType: ''
    returnType: void
    signature: void sock__free(sock_state_t* sock_state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libevent/wepoll.c:1625,1
    - Dst: afd_cancel_poll
      Src: /src/libevent/wepoll.c:1627,1
    - Dst: poll_group_get_afd_helper_handle
      Src: /src/libevent/wepoll.c:1627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sock_state
    argTypes:
    - sock_state_t*
    assertStmts:
    - condition: (sock_state->poll_status == SOCK__POLL_PENDING)
      pos:
        line_end: 1624
        line_start: 1624
        source_file: /src/libevent/wepoll.c
    constantsTouched: []
    func_position:
      end: 1634
      start: 1624
    functionDepth: 2
    functionLinenumber: 1624
    functionLinenumberEnd: 1634
    functionName: sock__cancel_poll
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - assert
    - poll_group_get_afd_helper_handle
    - afd_cancel_poll
    linkageType: ''
    returnType: int
    signature: int sock__cancel_poll(sock_state_t* sock_state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:1642,1
    - Dst: ws_get_base_socket
      Src: /src/libevent/wepoll.c:1644,1
    - Dst: poll_group_acquire
      Src: /src/libevent/wepoll.c:1648,1
    - Dst: sock__alloc
      Src: /src/libevent/wepoll.c:1652,1
    - Dst: memset
      Src: /src/libevent/wepoll.c:1656,1
    - Dst: tree_node_init
      Src: /src/libevent/wepoll.c:1661,1
    - Dst: queue_node_init
      Src: /src/libevent/wepoll.c:1662,1
    - Dst: port_register_socket_handle
      Src: /src/libevent/wepoll.c:1664,1
    - Dst: sock__free
      Src: /src/libevent/wepoll.c:1670,1
    - Dst: poll_group_release
      Src: /src/libevent/wepoll.c:1672,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - port_state
    - socket
    argTypes:
    - port_state_t*
    - SOCKET
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1636
    functionDepth: 4
    functionLinenumber: 1636
    functionLinenumberEnd: 1675
    functionName: sock_new
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - return_set_error
    - queue_node_init
    - sock__alloc
    - sock__free
    - memset
    - ws_get_base_socket
    - poll_group_release
    - port_register_socket_handle
    - poll_group_acquire
    - tree_node_init
    linkageType: ''
    returnType: sock_state_t
    signature: sock_state_t * sock_new(port_state_t* port_state, SOCKET socket)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sock__cancel_poll
      Src: /src/libevent/wepoll.c:1682,1
    - Dst: port_cancel_socket_update
      Src: /src/libevent/wepoll.c:1684,1
    - Dst: port_unregister_socket_handle
      Src: /src/libevent/wepoll.c:1685,1
    - Dst: port_remove_deleted_socket
      Src: /src/libevent/wepoll.c:1695,1
    - Dst: poll_group_release
      Src: /src/libevent/wepoll.c:1696,1
    - Dst: sock__free
      Src: /src/libevent/wepoll.c:1697,1
    - Dst: port_add_deleted_socket
      Src: /src/libevent/wepoll.c:1700,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - port_state
    - sock_state
    - force
    argTypes:
    - port_state_t*
    - sock_state_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1677
    functionDepth: 3
    functionLinenumber: 1677
    functionLinenumberEnd: 1704
    functionName: sock__delete
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - sock__cancel_poll
    - port_unregister_socket_handle
    - sock__free
    - poll_group_release
    - port_remove_deleted_socket
    - port_add_deleted_socket
    - port_cancel_socket_update
    linkageType: ''
    returnType: int
    signature: "int sock__delete(port_state_t* port_state,\n                        sock_state_t*
      sock_state,\n                        bool force)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sock__delete
      Src: /src/libevent/wepoll.c:1707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - port_state
    - sock_state
    argTypes:
    - port_state_t*
    - sock_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1706
    functionDepth: 4
    functionLinenumber: 1706
    functionLinenumberEnd: 1708
    functionName: sock_delete
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 2
    functionsReached:
    - sock__delete
    linkageType: ''
    returnType: void
    signature: void sock_delete(port_state_t* port_state, sock_state_t* sock_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sock__delete
      Src: /src/libevent/wepoll.c:1711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - port_state
    - sock_state
    argTypes:
    - port_state_t*
    - sock_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1710
    functionDepth: 4
    functionLinenumber: 1710
    functionLinenumberEnd: 1712
    functionName: sock_force_delete
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - sock__delete
    linkageType: ''
    returnType: void
    signature: void sock_force_delete(port_state_t* port_state, sock_state_t* sock_state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: port_request_socket_update
      Src: /src/libevent/wepoll.c:1726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - port_state
    - sock_state
    - ev
    argTypes:
    - port_state_t*
    - sock_state_t*
    - struct epoll_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1714
    functionDepth: 2
    functionLinenumber: 1714
    functionLinenumberEnd: 1729
    functionName: sock_set_event
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 2
    functionsReached:
    - port_request_socket_update
    linkageType: ''
    returnType: int
    signature: "int sock_set_event(port_state_t* port_state,\n                   sock_state_t*
      sock_state,\n                   const struct epoll_event* ev)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - epoll_events
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1750
      start: 1731
    functionDepth: 0
    functionLinenumber: 1731
    functionLinenumberEnd: 1750
    functionName: sock__epoll_events_to_afd_events
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD sock__epoll_events_to_afd_events(uint32_t epoll_events)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - afd_events
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1752
    functionDepth: 0
    functionLinenumber: 1752
    functionLinenumberEnd: 1771
    functionName: sock__afd_events_to_epoll_events
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t sock__afd_events_to_epoll_events(DWORD afd_events)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libevent/wepoll.c:1774,1
    - Dst: sock__cancel_poll
      Src: /src/libevent/wepoll.c:1789,1
    - Dst: sock__epoll_events_to_afd_events
      Src: /src/libevent/wepoll.c:1804,1
    - Dst: afd_poll
      Src: /src/libevent/wepoll.c:1806,1
    - Dst: poll_group_get_afd_helper_handle
      Src: /src/libevent/wepoll.c:1806,1
    - Dst: GetLastError
      Src: /src/libevent/wepoll.c:1809,1
    - Dst: sock__delete
      Src: /src/libevent/wepoll.c:1815,1
    - Dst: return_map_error
      Src: /src/libevent/wepoll.c:1818,1
    - Dst: assert
      Src: /src/libevent/wepoll.c:1828,1
    - Dst: port_cancel_socket_update
      Src: /src/libevent/wepoll.c:1831,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - port_state
    - sock_state
    argTypes:
    - port_state_t*
    - sock_state_t*
    assertStmts:
    - condition: (!sock_state->delete_pending)
      pos:
        line_end: 1773
        line_start: 1773
        source_file: /src/libevent/wepoll.c
    - condition: (false)
      pos:
        line_end: 1827
        line_start: 1827
        source_file: /src/libevent/wepoll.c
    constantsTouched: []
    func_position:
      end: 1833
      start: 1773
    functionDepth: 4
    functionLinenumber: 1773
    functionLinenumberEnd: 1833
    functionName: sock_update
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - sock__cancel_poll
    - GetLastError
    - sock__delete
    - return_map_error
    - sock__epoll_events_to_afd_events
    - afd_poll
    - assert
    - port_cancel_socket_update
    - poll_group_get_afd_helper_handle
    linkageType: ''
    returnType: int
    signature: int sock_update(port_state_t* port_state, sock_state_t* sock_state)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/libevent/wepoll.c:1839,1
    - Dst: sock__delete
      Src: /src/libevent/wepoll.c:1848,1
    - Dst: NT_SUCCESS
      Src: /src/libevent/wepoll.c:1853,1
    - Dst: sock__delete
      Src: /src/libevent/wepoll.c:1862,1
    - Dst: sock__afd_events_to_epoll_events
      Src: /src/libevent/wepoll.c:1867,1
    - Dst: port_request_socket_update
      Src: /src/libevent/wepoll.c:1871,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - port_state
    - io_status_block
    - ev
    argTypes:
    - port_state_t*
    - IO_STATUS_BLOCK*
    - struct epoll_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1835
    functionDepth: 4
    functionLinenumber: 1835
    functionLinenumberEnd: 1888
    functionName: sock_feed_event
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - port_request_socket_update
    - sock__delete
    - NT_SUCCESS
    - sock__afd_events_to_epoll_events
    - container_of
    linkageType: ''
    returnType: int
    signature: "int sock_feed_event(port_state_t* port_state,\n                    IO_STATUS_BLOCK*
      io_status_block,\n                    struct epoll_event* ev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/libevent/wepoll.c:1891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - queue_node
    argTypes:
    - queue_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1892
      start: 1890
    functionDepth: 1
    functionLinenumber: 1890
    functionLinenumberEnd: 1892
    functionName: sock_state_from_queue_node
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 2
    functionsReached:
    - container_of
    linkageType: ''
    returnType: sock_state_t
    signature: sock_state_t * sock_state_from_queue_node(queue_node_t* queue_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sock_state
    argTypes:
    - sock_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1896
      start: 1894
    functionDepth: 0
    functionLinenumber: 1894
    functionLinenumberEnd: 1896
    functionName: sock_state_to_queue_node
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: queue_node_t
    signature: queue_node_t * sock_state_to_queue_node(sock_state_t* sock_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/libevent/wepoll.c:1899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tree_node
    argTypes:
    - tree_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1900
      start: 1898
    functionDepth: 1
    functionLinenumber: 1898
    functionLinenumberEnd: 1900
    functionName: sock_state_from_tree_node
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 2
    functionsReached:
    - container_of
    linkageType: ''
    returnType: sock_state_t
    signature: sock_state_t * sock_state_from_tree_node(tree_node_t* tree_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sock_state
    argTypes:
    - sock_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1902
    functionDepth: 0
    functionLinenumber: 1902
    functionLinenumberEnd: 1904
    functionName: sock_state_to_tree_node
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: tree_node_t
    signature: tree_node_t * sock_state_to_tree_node(sock_state_t* sock_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tree_init
      Src: /src/libevent/wepoll.c:1907,1
    - Dst: InitializeSRWLock
      Src: /src/libevent/wepoll.c:1908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ts_tree
    argTypes:
    - ts_tree_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1909
      start: 1906
    functionDepth: 1
    functionLinenumber: 1906
    functionLinenumberEnd: 1909
    functionName: ts_tree_init
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - tree_init
    - InitializeSRWLock
    linkageType: ''
    returnType: void
    signature: void ts_tree_init(ts_tree_t* ts_tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tree_node_init
      Src: /src/libevent/wepoll.c:1912,1
    - Dst: reflock_init
      Src: /src/libevent/wepoll.c:1913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - ts_tree_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1911
    functionDepth: 1
    functionLinenumber: 1911
    functionLinenumberEnd: 1914
    functionName: ts_tree_node_init
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - reflock_init
    - tree_node_init
    linkageType: ''
    returnType: void
    signature: void ts_tree_node_init(ts_tree_node_t* node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AcquireSRWLockExclusive
      Src: /src/libevent/wepoll.c:1919,1
    - Dst: tree_add
      Src: /src/libevent/wepoll.c:1920,1
    - Dst: ReleaseSRWLockExclusive
      Src: /src/libevent/wepoll.c:1921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ts_tree
    - node
    - key
    argTypes:
    - ts_tree_t*
    - ts_tree_node_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1924
      start: 1916
    functionDepth: 1
    functionLinenumber: 1916
    functionLinenumberEnd: 1924
    functionName: ts_tree_add
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - ReleaseSRWLockExclusive
    - tree_add
    - AcquireSRWLockExclusive
    linkageType: ''
    returnType: int
    signature: int ts_tree_add(ts_tree_t* ts_tree, ts_tree_node_t* node, uintptr_t
      key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tree_find
      Src: /src/libevent/wepoll.c:1928,1
    - Dst: container_of
      Src: /src/libevent/wepoll.c:1932,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ts_tree
    - key
    argTypes:
    - ts_tree_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1933
      start: 1926
    functionDepth: 1
    functionLinenumber: 1926
    functionLinenumberEnd: 1933
    functionName: ts_tree__find_node
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached:
    - container_of
    - tree_find
    linkageType: ''
    returnType: ts_tree_node_t
    signature: "ts_tree_node_t * ts_tree__find_node(ts_tree_t* ts_tree,\n                                                 uintptr_t
      key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AcquireSRWLockExclusive
      Src: /src/libevent/wepoll.c:1938,1
    - Dst: ts_tree__find_node
      Src: /src/libevent/wepoll.c:1940,1
    - Dst: tree_del
      Src: /src/libevent/wepoll.c:1942,1
    - Dst: reflock_ref
      Src: /src/libevent/wepoll.c:1943,1
    - Dst: ReleaseSRWLockExclusive
      Src: /src/libevent/wepoll.c:1946,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ts_tree
    - key
    argTypes:
    - ts_tree_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1935
    functionDepth: 2
    functionLinenumber: 1935
    functionLinenumberEnd: 1949
    functionName: ts_tree_del_and_ref
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - reflock_ref
    - ReleaseSRWLockExclusive
    - AcquireSRWLockExclusive
    - ts_tree__find_node
    - tree_del
    linkageType: ''
    returnType: ts_tree_node_t
    signature: ts_tree_node_t * ts_tree_del_and_ref(ts_tree_t* ts_tree, uintptr_t
      key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AcquireSRWLockShared
      Src: /src/libevent/wepoll.c:1954,1
    - Dst: ts_tree__find_node
      Src: /src/libevent/wepoll.c:1956,1
    - Dst: reflock_ref
      Src: /src/libevent/wepoll.c:1958,1
    - Dst: ReleaseSRWLockShared
      Src: /src/libevent/wepoll.c:1960,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ts_tree
    - key
    argTypes:
    - ts_tree_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1951
    functionDepth: 2
    functionLinenumber: 1951
    functionLinenumberEnd: 1963
    functionName: ts_tree_find_and_ref
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 2
    functionsReached:
    - ts_tree__find_node
    - ReleaseSRWLockShared
    - reflock_ref
    - AcquireSRWLockShared
    linkageType: ''
    returnType: ts_tree_node_t
    signature: ts_tree_node_t * ts_tree_find_and_ref(ts_tree_t* ts_tree, uintptr_t
      key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reflock_unref
      Src: /src/libevent/wepoll.c:1966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - ts_tree_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1967
      start: 1965
    functionDepth: 2
    functionLinenumber: 1965
    functionLinenumberEnd: 1967
    functionName: ts_tree_node_unref
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 2
    functionsReached:
    - reflock_unref
    linkageType: ''
    returnType: void
    signature: void ts_tree_node_unref(ts_tree_node_t* node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reflock_unref_and_destroy
      Src: /src/libevent/wepoll.c:1970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - ts_tree_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1971
      start: 1969
    functionDepth: 2
    functionLinenumber: 1969
    functionLinenumberEnd: 1971
    functionName: ts_tree_node_unref_and_destroy
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - reflock_unref_and_destroy
    linkageType: ''
    returnType: void
    signature: void ts_tree_node_unref_and_destroy(ts_tree_node_t* node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/wepoll.c:1974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tree
    argTypes:
    - tree_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1975
      start: 1973
    functionDepth: 0
    functionLinenumber: 1973
    functionLinenumberEnd: 1975
    functionName: tree_init
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 3
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void tree_init(tree_t* tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/wepoll.c:1978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - tree_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1977
    functionDepth: 0
    functionLinenumber: 1977
    functionLinenumberEnd: 1979
    functionName: tree_node_init
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 3
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void tree_node_init(tree_node_t* node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cis
    - ','
    - trans
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1981
    functionDepth: 0
    functionLinenumber: 1981
    functionLinenumberEnd: 2001
    functionName: TREE__ROTATE
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TREE__ROTATE(cis, trans)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - side
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 2010
    functionDepth: 0
    functionLinenumber: 2010
    functionLinenumberEnd: 2017
    functionName: TREE__INSERT_OR_DESCEND
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TREE__INSERT_OR_DESCEND(side)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cis
    - ','
    - trans
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2036
      start: 2018
    functionDepth: 0
    functionLinenumber: 2018
    functionLinenumberEnd: 2036
    functionName: TREE__REBALANCE_AFTER_INSERT
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TREE__REBALANCE_AFTER_INSERT(cis, trans)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TREE__INSERT_OR_DESCEND
      Src: /src/libevent/wepoll.c:2044,1
    - Dst: TREE__INSERT_OR_DESCEND
      Src: /src/libevent/wepoll.c:2046,1
    - Dst: TREE__REBALANCE_AFTER_INSERT
      Src: /src/libevent/wepoll.c:2062,1
    - Dst: TREE__REBALANCE_AFTER_INSERT
      Src: /src/libevent/wepoll.c:2064,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - tree
    - node
    - key
    argTypes:
    - tree_t*
    - tree_node_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2070
      start: 2037
    functionDepth: 1
    functionLinenumber: 2037
    functionLinenumberEnd: 2070
    functionName: tree_add
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 12
    functionsReached:
    - TREE__INSERT_OR_DESCEND
    - TREE__REBALANCE_AFTER_INSERT
    linkageType: ''
    returnType: int
    signature: int tree_add(tree_t* tree, tree_node_t* node, uintptr_t key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cis
    - ','
    - trans
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2096
      start: 2072
    functionDepth: 0
    functionLinenumber: 2072
    functionLinenumberEnd: 2096
    functionName: TREE__REBALANCE_AFTER_REMOVE
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TREE__REBALANCE_AFTER_REMOVE(cis, trans)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TREE__REBALANCE_AFTER_REMOVE
      Src: /src/libevent/wepoll.c:2158,1
    - Dst: TREE__REBALANCE_AFTER_REMOVE
      Src: /src/libevent/wepoll.c:2160,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 2
    argNames:
    - tree
    - node
    argTypes:
    - tree_t*
    - tree_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2168
      start: 2097
    functionDepth: 1
    functionLinenumber: 2097
    functionLinenumberEnd: 2168
    functionName: tree_del
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 2
    functionsReached:
    - TREE__REBALANCE_AFTER_REMOVE
    linkageType: ''
    returnType: void
    signature: void tree_del(tree_t* tree, tree_node_t* node)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - tree
    - key
    argTypes:
    - tree_t*
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2181
      start: 2170
    functionDepth: 0
    functionLinenumber: 2170
    functionLinenumberEnd: 2181
    functionName: tree_find
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: tree_node_t
    signature: tree_node_t * tree_find(const tree_t* tree, uintptr_t key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tree
    argTypes:
    - tree_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2185
      start: 2183
    functionDepth: 0
    functionLinenumber: 2183
    functionLinenumberEnd: 2185
    functionName: tree_root
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: tree_node_t
    signature: tree_node_t * tree_root(const tree_t* tree)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WSAStartup
      Src: /src/libevent/wepoll.c:2195,1
    - Dst: MAKEWORD
      Src: /src/libevent/wepoll.c:2195,1
    - Dst: return_set_error
      Src: /src/libevent/wepoll.c:2197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2200
      start: 2191
    functionDepth: 1
    functionLinenumber: 2191
    functionLinenumberEnd: 2200
    functionName: ws_global_init
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - WSAStartup
    - MAKEWORD
    - return_set_error
    linkageType: ''
    returnType: int
    signature: int ws_global_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WSAIoctl
      Src: /src/libevent/wepoll.c:2206,1
    - Dst: return_map_error
      Src: /src/libevent/wepoll.c:2215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - socket
    argTypes:
    - SOCKET
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2218
      start: 2202
    functionDepth: 1
    functionLinenumber: 2202
    functionLinenumberEnd: 2218
    functionName: ws_get_base_socket
    functionSourceFile: /src/libevent/wepoll.c
    functionUses: 1
    functionsReached:
    - return_map_error
    - WSAIoctl
    linkageType: ''
    returnType: SOCKET
    signature: SOCKET ws_get_base_socket(SOCKET socket)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bevp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 307
    functionName: BEV_IS_SOCKET
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_IS_SOCKET(bevp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bevp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 308
    functionName: BEV_IS_FILTER
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_IS_FILTER(bevp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bevp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 309
    functionName: BEV_IS_PAIR
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_IS_PAIR(bevp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bevp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 320
    functionName: BEV_IS_SSL
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_IS_SSL(bevp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bevp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 322
    functionName: BEV_IS_SSL
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_IS_SSL(bevp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bevp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 327
    functionName: BEV_IS_ASYNC
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_IS_ASYNC(bevp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bevp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 329
    functionName: BEV_IS_ASYNC
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_IS_ASYNC(bevp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 353
    functionName: bufferevent_wm_suspend_read
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bufferevent_wm_suspend_read(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 355
    functionName: bufferevent_wm_unsuspend_read
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bufferevent_wm_unsuspend_read(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bufev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 378
    functionName: bufferevent_incref_
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bufferevent_incref_(bufev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bufev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 386
    functionName: bufferevent_decref_
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bufferevent_decref_(bufev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent-internal.h:418,1
    - Dst: bufferevent_run_readcb_
      Src: /src/libevent/bufferevent-internal.h:419,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent-internal.h:421,1
    - Dst: bufferevent_run_writecb_
      Src: /src/libevent/bufferevent-internal.h:422,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 3
    argNames:
    - bufev
    - iotype
    - options
    argTypes:
    - struct bufferevent*
    - short
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 423
    functionName: bufferevent_trigger_nolock_
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 1
    functionsReached:
    - bufferevent_run_readcb_
    - bufferevent_run_writecb_
    - evbuffer_get_length
    linkageType: ''
    returnType: void
    signature: void bufferevent_trigger_nolock_(struct bufferevent *bufev, short iotype,
      int options)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 471
    functionName: BEV_RESET_GENERIC_READ_TIMEOUT
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_RESET_GENERIC_READ_TIMEOUT(bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 478
    functionName: BEV_RESET_GENERIC_WRITE_TIMEOUT
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_RESET_GENERIC_WRITE_TIMEOUT(bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 480
    functionName: BEV_DEL_GENERIC_READ_TIMEOUT
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_DEL_GENERIC_READ_TIMEOUT(bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 482
    functionName: BEV_DEL_GENERIC_WRITE_TIMEOUT
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_DEL_GENERIC_WRITE_TIMEOUT(bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 487
    functionName: BEV_UPCAST
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_UPCAST(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 490
    functionName: BEV_LOCK
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_LOCK(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 491
    functionName: BEV_UNLOCK
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_UNLOCK(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 497
    functionName: BEV_LOCK
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_LOCK(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 503
    functionName: BEV_UNLOCK
    functionSourceFile: /src/libevent/bufferevent-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEV_UNLOCK(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fdi
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: FDI_HAS_READ
    functionSourceFile: /src/libevent/evport.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FDI_HAS_READ(fdi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fdi
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: FDI_HAS_WRITE
    functionSourceFile: /src/libevent/evport.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FDI_HAS_WRITE(fdi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fdi
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: FDI_HAS_EVENTS
    functionSourceFile: /src/libevent/evport.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FDI_HAS_EVENTS(fdi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fdi
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: FDI_TO_SYSEVENTS
    functionSourceFile: /src/libevent/evport.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FDI_TO_SYSEVENTS(fdi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/evport.c:145,1
    - Dst: port_create
      Src: /src/libevent/evport.c:148,1
    - Dst: mm_free
      Src: /src/libevent/evport.c:149,1
    - Dst: grow
      Src: /src/libevent/evport.c:153,1
    - Dst: close
      Src: /src/libevent/evport.c:154,1
    - Dst: mm_free
      Src: /src/libevent/evport.c:155,1
    - Dst: evsig_init_
      Src: /src/libevent/evport.c:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 164
    functionName: evport_init
    functionSourceFile: /src/libevent/evport.c
    functionUses: 0
    functionsReached:
    - port_create
    - close
    - evsig_init_
    - mm_free
    - grow
    - mm_calloc
    linkageType: ''
    returnType: void
    signature: 'void *

      evport_init(struct event_base *base)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_realloc
      Src: /src/libevent/evport.c:181,1
    - Dst: mm_realloc
      Src: /src/libevent/evport.c:185,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - data
    - min_events
    argTypes:
    - struct evport_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 192
    functionName: grow
    functionSourceFile: /src/libevent/evport.c
    functionUses: 3
    functionsReached:
    - mm_realloc
    linkageType: ''
    returnType: int
    signature: int grow(struct evport_data *data, int min_events)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evport.c:204,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evport.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - evpd
    argTypes:
    - struct evport_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 206
    functionName: check_evportop
    functionSourceFile: /src/libevent/evport.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: void
    signature: void check_evportop(struct evport_data *evpd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evport.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pevt
    argTypes:
    - port_event_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 221
    functionName: check_event
    functionSourceFile: /src/libevent/evport.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: void
    signature: void check_event(port_event_t* pevt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FDI_TO_SYSEVENTS
      Src: /src/libevent/evport.c:235,1
    - Dst: port_associate
      Src: /src/libevent/evport.c:238,1
    - Dst: event_warn
      Src: /src/libevent/evport.c:240,1
    - Dst: check_evportop
      Src: /src/libevent/evport.c:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - epdp
    - fdip
    - fd
    argTypes:
    - struct evport_data*
    - struct fd_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 248
    functionName: reassociate
    functionSourceFile: /src/libevent/evport.c
    functionUses: 0
    functionsReached:
    - port_associate
    - FDI_TO_SYSEVENTS
    - check_evportop
    - event_warn
    linkageType: ''
    returnType: int
    signature: int reassociate(struct evport_data *epdp, struct fd_info *fdip, int
      fd)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: evmap_io_get_fdinfo_
      Src: /src/libevent/evport.c:294,1
    - Dst: FDI_HAS_EVENTS
      Src: /src/libevent/evport.c:297,1
    - Dst: reassociate
      Src: /src/libevent/evport.c:298,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/evport.c:304,1
    - Dst: port_getn
      Src: /src/libevent/evport.c:306,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/evport.c:309,1
    - Dst: event_warn
      Src: /src/libevent/evport.c:318,1
    - Dst: event_debug
      Src: /src/libevent/evport.c:323,1
    - Dst: check_evportop
      Src: /src/libevent/evport.c:331,1
    - Dst: check_event
      Src: /src/libevent/evport.c:332,1
    - Dst: evmap_io_active_
      Src: /src/libevent/evport.c:356,1
    - Dst: grow
      Src: /src/libevent/evport.c:364,1
    - Dst: check_evportop
      Src: /src/libevent/evport.c:367,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 2
    argNames:
    - base
    - tv
    argTypes:
    - struct event_base*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 255
    functionDepth: 3
    functionLinenumber: 255
    functionLinenumberEnd: 370
    functionName: evport_dispatch
    functionSourceFile: /src/libevent/evport.c
    functionUses: 0
    functionsReached:
    - reassociate
    - EVBASE_RELEASE_LOCK
    - check_evportop
    - grow
    - evmap_io_get_fdinfo_
    - event_warn
    - port_getn
    - evmap_io_active_
    - check_event
    - event_debug
    - EVBASE_ACQUIRE_LOCK
    - FDI_HAS_EVENTS
    linkageType: ''
    returnType: int
    signature: int evport_dispatch(struct event_base *base, struct timeval *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_evportop
      Src: /src/libevent/evport.c:384,1
    - Dst: reassociate
      Src: /src/libevent/evport.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - int
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 378
    functionDepth: 3
    functionLinenumber: 378
    functionLinenumberEnd: 389
    functionName: evport_add
    functionSourceFile: /src/libevent/evport.c
    functionUses: 0
    functionsReached:
    - reassociate
    - check_evportop
    linkageType: ''
    returnType: int
    signature: int evport_add(struct event_base *base, int fd, short old, short events,
      void *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: check_evportop
      Src: /src/libevent/evport.c:402,1
    - Dst: FDI_HAS_EVENTS
      Src: /src/libevent/evport.c:407,1
    - Dst: port_dissociate
      Src: /src/libevent/evport.c:408,1
    - Dst: event_warn
      Src: /src/libevent/evport.c:414,1
    - Dst: FDI_HAS_EVENTS
      Src: /src/libevent/evport.c:418,1
    - Dst: reassociate
      Src: /src/libevent/evport.c:419,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evport.c:425,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - int
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 431
    functionName: evport_del
    functionSourceFile: /src/libevent/evport.c
    functionUses: 0
    functionsReached:
    - reassociate
    - check_evportop
    - EVUTIL_ASSERT
    - port_dissociate
    - event_warn
    - FDI_HAS_EVENTS
    linkageType: ''
    returnType: int
    signature: int evport_del(struct event_base *base, int fd, short old, short events,
      void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evsig_dealloc_
      Src: /src/libevent/evport.c:439,1
    - Dst: close
      Src: /src/libevent/evport.c:441,1
    - Dst: mm_free
      Src: /src/libevent/evport.c:444,1
    - Dst: mm_free
      Src: /src/libevent/evport.c:446,1
    - Dst: mm_free
      Src: /src/libevent/evport.c:448,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 449
    functionName: evport_dealloc
    functionSourceFile: /src/libevent/evport.c
    functionUses: 0
    functionsReached:
    - close
    - mm_free
    - evsig_dealloc_
    linkageType: ''
    returnType: void
    signature: void evport_dealloc(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: evthread_set_id_callback
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evthread_set_id_callback(unsigned long (*id_fn)(void))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: evthread_get_lock_callbacks
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evthread_lock_callbacks
    signature: struct evthread_lock_callbacks *evthread_get_lock_callbacks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: evthread_get_condition_callbacks
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evthread_condition_callbacks
    signature: struct evthread_condition_callbacks *evthread_get_condition_callbacks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: evthreadimpl_disable_lock_debugging_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evthreadimpl_disable_lock_debugging_(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: evthread_get_lock_callbacks
      Src: /src/libevent/evthread.c:95,1
    - Dst: event_errx
      Src: /src/libevent/evthread.c:100,1
    - Dst: event_warnx
      Src: /src/libevent/evthread.c:107,1
    - Dst: memset
      Src: /src/libevent/evthread.c:109,1
    - Dst: event_warnx
      Src: /src/libevent/evthread.c:123,1
    - Dst: memcpy
      Src: /src/libevent/evthread.c:128,1
    - Dst: event_global_setup_locks_
      Src: /src/libevent/evthread.c:129,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 25
    argCount: 1
    argNames:
    - cbs
    argTypes:
    - struct evthread_lock_callbacks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 133
    functionName: evthread_set_lock_callbacks
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - event_errx
    - event_global_setup_locks_
    - memset
    - memcpy
    - evthread_get_lock_callbacks
    - event_warnx
    linkageType: ''
    returnType: int
    signature: int evthread_set_lock_callbacks(const struct evthread_lock_callbacks
      *cbs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: evthread_get_condition_callbacks
      Src: /src/libevent/evthread.c:138,1
    - Dst: event_errx
      Src: /src/libevent/evthread.c:143,1
    - Dst: event_warnx
      Src: /src/libevent/evthread.c:150,1
    - Dst: memset
      Src: /src/libevent/evthread.c:153,1
    - Dst: event_warnx
      Src: /src/libevent/evthread.c:166,1
    - Dst: memcpy
      Src: /src/libevent/evthread.c:172,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 1
    argNames:
    - cbs
    argTypes:
    - struct evthread_condition_callbacks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 180
    functionName: evthread_set_condition_callbacks
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - evthread_get_condition_callbacks
    - event_errx
    - memset
    - memcpy
    - event_warnx
    linkageType: ''
    returnType: int
    signature: int evthread_set_condition_callbacks(const struct evthread_condition_callbacks
      *cbs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/evthread.c:197,1
    - Dst: alloc
      Src: /src/libevent/evthread.c:201,1
    - Dst: mm_free
      Src: /src/libevent/evthread.c:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - locktype
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 214
    functionName: debug_lock_alloc
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - mm_free
    - alloc
    - mm_malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      debug_lock_alloc(unsigned locktype)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:220,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:221,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:222,1
    - Dst: free
      Src: /src/libevent/evthread.c:224,1
    - Dst: mm_free
      Src: /src/libevent/evthread.c:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - lock_
    - locktype
    argTypes:
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 231
    functionName: debug_lock_free
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - free
    - mm_free
    linkageType: ''
    returnType: void
    signature: void debug_lock_free(void *lock_, unsigned locktype)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:236,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:239,1
    - Dst: evthread_id_fn_
      Src: /src/libevent/evthread.c:242,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - mode
    - lock
    argTypes:
    - unsigned
    - struct debug_lock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 247
    functionName: evthread_debug_lock_mark_locked
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - evthread_id_fn_
    linkageType: ''
    returnType: void
    signature: void evthread_debug_lock_mark_locked(unsigned mode, struct debug_lock
      *lock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:255,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:257,1
    - Dst: lock
      Src: /src/libevent/evthread.c:259,1
    - Dst: evthread_debug_lock_mark_locked
      Src: /src/libevent/evthread.c:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - mode
    - lock_
    argTypes:
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 264
    functionName: debug_lock_lock
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - evthread_debug_lock_mark_locked
    - lock
    linkageType: ''
    returnType: int
    signature: int debug_lock_lock(unsigned mode, void *lock_)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:269,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:271,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:273,1
    - Dst: evthread_id_fn_
      Src: /src/libevent/evthread.c:276,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:277,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - mode
    - lock
    argTypes:
    - unsigned
    - struct debug_lock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 283
    functionName: evthread_debug_lock_mark_unlocked
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - evthread_id_fn_
    linkageType: ''
    returnType: void
    signature: void evthread_debug_lock_mark_unlocked(unsigned mode, struct debug_lock
      *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evthread_debug_lock_mark_unlocked
      Src: /src/libevent/evthread.c:290,1
    - Dst: unlock
      Src: /src/libevent/evthread.c:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mode
    - lock_
    argTypes:
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 294
    functionName: debug_lock_unlock
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - evthread_debug_lock_mark_unlocked
    - unlock
    linkageType: ''
    returnType: int
    signature: int debug_lock_unlock(unsigned mode, void *lock_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:301,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:302,1
    - Dst: EVLOCK_ASSERT_LOCKED
      Src: /src/libevent/evthread.c:303,1
    - Dst: evthread_debug_lock_mark_unlocked
      Src: /src/libevent/evthread.c:304,1
    - Dst: wait_condition
      Src: /src/libevent/evthread.c:305,1
    - Dst: evthread_debug_lock_mark_locked
      Src: /src/libevent/evthread.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - cond_
    - lock_
    - tv
    argTypes:
    - void*
    - void*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 308
    functionName: debug_cond_wait
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - wait_condition
    - EVUTIL_ASSERT
    - evthread_debug_lock_mark_unlocked
    - EVLOCK_ASSERT_LOCKED
    - evthread_debug_lock_mark_locked
    linkageType: ''
    returnType: int
    signature: int debug_cond_wait(void *cond_, void *lock_, const struct timeval
      *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evthread_enable_lock_debugging
      Src: /src/libevent/evthread.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: evthread_enable_lock_debuging
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - evthread_enable_lock_debugging
    linkageType: ''
    returnType: void
    signature: void evthread_enable_lock_debuging(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libevent/evthread.c:330,1
    - Dst: memcpy
      Src: /src/libevent/evthread.c:332,1
    - Dst: memcpy
      Src: /src/libevent/evthread.c:335,1
    - Dst: event_global_setup_locks_
      Src: /src/libevent/evthread.c:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 342
    functionName: evthread_enable_lock_debugging
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 1
    functionsReached:
    - event_global_setup_locks_
    - memcpy
    linkageType: ''
    returnType: void
    signature: void evthread_enable_lock_debugging(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evthread_id_fn_
      Src: /src/libevent/evthread.c:351,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - lock_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 356
    functionName: evthread_is_debug_lock_held_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - evthread_id_fn_
    linkageType: ''
    returnType: int
    signature: int evthread_is_debug_lock_held_(void *lock_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 363
    functionName: evthread_debug_get_real_lock_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      evthread_debug_get_real_lock_(void *lock_)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:376,1
    - Dst: debug_lock_alloc
      Src: /src/libevent/evthread.c:377,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:381,1
    - Dst: free
      Src: /src/libevent/evthread.c:385,1
    - Dst: debug_lock_alloc
      Src: /src/libevent/evthread.c:386,1
    - Dst: mm_malloc
      Src: /src/libevent/evthread.c:388,1
    - Dst: free
      Src: /src/libevent/evthread.c:390,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:400,1
    - Dst: alloc
      Src: /src/libevent/evthread.c:401,1
    - Dst: debug_lock_alloc
      Src: /src/libevent/evthread.c:404,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:407,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evthread.c:408,1
    - Dst: alloc
      Src: /src/libevent/evthread.c:410,1
    - Dst: mm_free
      Src: /src/libevent/evthread.c:414,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 3
    argNames:
    - lock_
    - locktype
    - enable_locks
    argTypes:
    - void*
    - unsigned
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 420
    functionName: evthread_setup_global_lock_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - mm_free
    - alloc
    - EVUTIL_ASSERT
    - mm_malloc
    - debug_lock_alloc
    - free
    linkageType: ''
    returnType: void
    signature: 'void *

      evthread_setup_global_lock_(void *lock_, unsigned locktype, int enable_locks)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evthread_id_fn_
      Src: /src/libevent/evthread.c:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 428
    functionName: evthreadimpl_get_id_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - evthread_id_fn_
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long evthreadimpl_get_id_()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloc
      Src: /src/libevent/evthread.c:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - locktype
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 440
    functionName: evthreadimpl_lock_alloc_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - alloc
    linkageType: ''
    returnType: void
    signature: 'void *

      evthreadimpl_lock_alloc_(unsigned locktype)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libevent/evthread.c:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - lock
    - locktype
    argTypes:
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 446
    functionName: evthreadimpl_lock_free_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void evthreadimpl_lock_free_(void *lock, unsigned locktype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/libevent/evthread.c:451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mode
    - lock
    argTypes:
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 454
    functionName: evthreadimpl_lock_lock_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 1
    functionsReached:
    - lock
    linkageType: ''
    returnType: int
    signature: int evthreadimpl_lock_lock_(unsigned mode, void *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlock
      Src: /src/libevent/evthread.c:459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mode
    - lock
    argTypes:
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 462
    functionName: evthreadimpl_lock_unlock_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - unlock
    linkageType: ''
    returnType: int
    signature: int evthreadimpl_lock_unlock_(unsigned mode, void *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloc_condition
      Src: /src/libevent/evthread.c:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - condtype
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 474
    functionName: evthreadimpl_cond_alloc_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - alloc_condition
    linkageType: ''
    returnType: void
    signature: 'void *

      evthreadimpl_cond_alloc_(unsigned condtype)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_condition
      Src: /src/libevent/evthread.c:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - cond
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 480
    functionName: evthreadimpl_cond_free_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - free_condition
    linkageType: ''
    returnType: void
    signature: void evthreadimpl_cond_free_(void *cond)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: signal_condition
      Src: /src/libevent/evthread.c:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - cond
    - broadcast
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 488
    functionName: evthreadimpl_cond_signal_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - signal_condition
    linkageType: ''
    returnType: int
    signature: int evthreadimpl_cond_signal_(void *cond, int broadcast)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wait_condition
      Src: /src/libevent/evthread.c:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - cond
    - lock
    - tv
    argTypes:
    - void*
    - void*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 496
    functionName: evthreadimpl_cond_wait_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached:
    - wait_condition
    linkageType: ''
    returnType: int
    signature: int evthreadimpl_cond_wait_(void *cond, void *lock, const struct timeval
      *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 501
    functionName: evthreadimpl_is_lock_debugging_enabled_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evthreadimpl_is_lock_debugging_enabled_(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 507
    functionName: evthreadimpl_locking_enabled_
    functionSourceFile: /src/libevent/evthread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evthreadimpl_locking_enabled_(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/bufferevent_mbedtls.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: mbedtls_context_init
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      mbedtls_context_init(void *ssl)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_mbedtls_dyncontext_free
      Src: /src/libevent/bufferevent_mbedtls.c:68,1
    - Dst: mm_free
      Src: /src/libevent/bufferevent_mbedtls.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ssl
    - flags
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: mbedtls_context_free
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - mm_free
    - bufferevent_mbedtls_dyncontext_free
    linkageType: ''
    returnType: void
    signature: void mbedtls_context_free(void *ssl, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_ssl_renegotiate
      Src: /src/libevent/bufferevent_mbedtls.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: mbedtls_context_renegotiate
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_ssl_renegotiate
    linkageType: ''
    returnType: int
    signature: int mbedtls_context_renegotiate(void *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_ssl_write
      Src: /src/libevent/bufferevent_mbedtls.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ssl
    - buf
    - len
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: mbedtls_context_write
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_ssl_write
    linkageType: ''
    returnType: int
    signature: int mbedtls_context_write(void *ssl, const unsigned char *buf, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_ssl_read
      Src: /src/libevent/bufferevent_mbedtls.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ssl
    - buf
    - len
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: mbedtls_context_read
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_ssl_read
    linkageType: ''
    returnType: int
    signature: int mbedtls_context_read(void *ssl, unsigned char *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_ssl_get_bytes_avail
      Src: /src/libevent/bufferevent_mbedtls.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: mbedtls_context_pending
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_ssl_get_bytes_avail
    linkageType: ''
    returnType: size_t
    signature: size_t mbedtls_context_pending(void *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_ssl_handshake
      Src: /src/libevent/bufferevent_mbedtls.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: mbedtls_context_handshake
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_ssl_handshake
    linkageType: ''
    returnType: int
    signature: int mbedtls_context_handshake(void *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - ret
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: mbedtls_get_error
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mbedtls_get_error(void *ssl, int ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: mbedtls_clear_error
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mbedtls_clear_error(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: mbedtls_clear
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mbedtls_clear(void *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: mbedtls_set_ssl_noops
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mbedtls_set_ssl_noops(void *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: mbedtls_handshake_is_ok
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mbedtls_handshake_is_ok(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: mbedtls_is_want_read
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mbedtls_is_want_read(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: mbedtls_is_want_write
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mbedtls_is_want_write(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: be_mbedtls_get_fd
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t be_mbedtls_get_fd(void *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_strerror
      Src: /src/libevent/bufferevent_mbedtls.c:156,1
    - Dst: printf
      Src: /src/libevent/bufferevent_mbedtls.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: print_err
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_strerror
    - printf
    linkageType: ''
    returnType: void
    signature: void print_err(int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: print_err
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void print_err(int val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/bufferevent_mbedtls.c:179,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_mbedtls.c:180,1
    - Dst: evbuffer_remove
      Src: /src/libevent/bufferevent_mbedtls.c:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - out
    - outlen
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 188
    functionName: bio_bufferevent_read
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - evbuffer_remove
    - evbuffer_get_length
    - bufferevent_get_input
    linkageType: ''
    returnType: int
    signature: int bio_bufferevent_read(void *ctx, unsigned char *out, size_t outlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_output
      Src: /src/libevent/bufferevent_mbedtls.c:201,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_mbedtls.c:202,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_mbedtls.c:214,1
    - Dst: evbuffer_add
      Src: /src/libevent/bufferevent_mbedtls.c:215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - ctx
    - in
    - inlen
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 217
    functionName: bio_bufferevent_write
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - bufferevent_get_output
    - evbuffer_add
    - evbuffer_get_length
    linkageType: ''
    returnType: int
    signature: int bio_bufferevent_write(void *ctx, const unsigned char *in, size_t
      inlen)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_strerror
      Src: /src/libevent/bufferevent_mbedtls.c:229,1
    - Dst: event_warnx
      Src: /src/libevent/bufferevent_mbedtls.c:235,1
    - Dst: event_warnx
      Src: /src/libevent/bufferevent_mbedtls.c:239,1
    - Dst: bufferevent_ssl_put_error
      Src: /src/libevent/bufferevent_mbedtls.c:244,1
    - Dst: bufferevent_ssl_stop_reading
      Src: /src/libevent/bufferevent_mbedtls.c:247,1
    - Dst: bufferevent_ssl_stop_writing
      Src: /src/libevent/bufferevent_mbedtls.c:248,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_mbedtls.c:250,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - bev_ssl
    - when
    - errcode
    - ret
    argTypes:
    - struct bufferevent_ssl*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 251
    functionName: conn_closed
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_put_error
    - bufferevent_ssl_stop_reading
    - bufferevent_ssl_stop_writing
    - bufferevent_run_eventcb_
    - mbedtls_strerror
    - event_warnx
    linkageType: ''
    returnType: void
    signature: void conn_closed(struct bufferevent_ssl *bev_ssl, int when, int errcode,
      int ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_ssl_set_bio
      Src: /src/libevent/bufferevent_mbedtls.c:259,1
    - Dst: mbedtls_ssl_set_bio
      Src: /src/libevent/bufferevent_mbedtls.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - bev_ssl
    - fd
    argTypes:
    - struct bufferevent_ssl*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 266
    functionName: be_mbedtls_bio_set_fd
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_ssl_set_bio
    linkageType: ''
    returnType: int
    signature: int be_mbedtls_bio_set_fd(struct bufferevent_ssl *bev_ssl, evutil_socket_t
      fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_get_allow_dirty_shutdown
      Src: /src/libevent/bufferevent_mbedtls.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 272
    functionName: bufferevent_mbedtls_get_allow_dirty_shutdown
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_get_allow_dirty_shutdown
    linkageType: ''
    returnType: int
    signature: int bufferevent_mbedtls_get_allow_dirty_shutdown(struct bufferevent
      *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_set_allow_dirty_shutdown
      Src: /src/libevent/bufferevent_mbedtls.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bev
    - allow_dirty_shutdown
    argTypes:
    - struct bufferevent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 279
    functionName: bufferevent_mbedtls_set_allow_dirty_shutdown
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_set_allow_dirty_shutdown
    linkageType: ''
    returnType: void
    signature: "void bufferevent_mbedtls_set_allow_dirty_shutdown(\n\tstruct bufferevent
      *bev, int allow_dirty_shutdown)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_mbedtls.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 290
    functionName: bufferevent_mbedtls_get_ssl
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_upcast
    linkageType: ''
    returnType: mbedtls_ssl_context
    signature: 'mbedtls_ssl_context *

      bufferevent_mbedtls_get_ssl(struct bufferevent *bufev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_renegotiate_impl
      Src: /src/libevent/bufferevent_mbedtls.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 296
    functionName: bufferevent_mbedtls_renegotiate
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_renegotiate_impl
    linkageType: ''
    returnType: int
    signature: int bufferevent_mbedtls_renegotiate(struct bufferevent *bufev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_mbedtls.c:301,1
    - Dst: bufferevent_get_ssl_error
      Src: /src/libevent/bufferevent_mbedtls.c:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 305
    functionName: bufferevent_get_mbedtls_error
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_ssl_error
    - bufferevent_ssl_upcast
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long bufferevent_get_mbedtls_error(struct bufferevent *bufev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_new_impl
      Src: /src/libevent/bufferevent_mbedtls.c:342,1
    - Dst: be_mbedtls_bio_set_fd
      Src: /src/libevent/bufferevent_mbedtls.c:346,1
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_mbedtls.c:346,1
    - Dst: bufferevent_mbedtls_dyncontext_free
      Src: /src/libevent/bufferevent_mbedtls.c:353,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - base
    - underlying
    - ssl
    - state
    - options
    argTypes:
    - struct event_base*
    - struct bufferevent*
    - mbedtls_ssl_context*
    - enum bufferevent_ssl_state
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 355
    functionName: bufferevent_mbedtls_filter_new
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - be_mbedtls_bio_set_fd
    - bufferevent_ssl_new_impl
    - bufferevent_ssl_upcast
    - bufferevent_mbedtls_dyncontext_free
    linkageType: ''
    returnType: struct bufferevent
    signature: "struct bufferevent *\nbufferevent_mbedtls_filter_new(struct event_base
      *base,\n\tstruct bufferevent *underlying, mbedtls_ssl_context *ssl,\n\tenum
      bufferevent_ssl_state state, int options)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_getfd
      Src: /src/libevent/bufferevent_mbedtls.c:371,1
    - Dst: bufferevent_ssl_new_impl
      Src: /src/libevent/bufferevent_mbedtls.c:397,1
    - Dst: be_mbedtls_bio_set_fd
      Src: /src/libevent/bufferevent_mbedtls.c:401,1
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_mbedtls.c:401,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 5
    argNames:
    - base
    - fd
    - ssl
    - state
    - options
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - mbedtls_ssl_context*
    - enum bufferevent_ssl_state
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 407
    functionName: bufferevent_mbedtls_socket_new
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - be_mbedtls_bio_set_fd
    - bufferevent_ssl_new_impl
    - bufferevent_ssl_upcast
    - bufferevent_getfd
    linkageType: ''
    returnType: struct bufferevent
    signature: "struct bufferevent *\nbufferevent_mbedtls_socket_new(struct event_base
      *base, evutil_socket_t fd,\n\tmbedtls_ssl_context *ssl, enum bufferevent_ssl_state
      state, int options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/bufferevent_mbedtls.c:412,1
    - Dst: mbedtls_ssl_init
      Src: /src/libevent/bufferevent_mbedtls.c:413,1
    - Dst: mbedtls_ssl_setup
      Src: /src/libevent/bufferevent_mbedtls.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct mbedtls_ssl_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 416
    functionName: bufferevent_mbedtls_dyncontext_new
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_ssl_init
    - mm_calloc
    - mbedtls_ssl_setup
    linkageType: ''
    returnType: mbedtls_dyncontext
    signature: 'mbedtls_dyncontext *

      bufferevent_mbedtls_dyncontext_new(struct mbedtls_ssl_config *conf)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_ssl_free
      Src: /src/libevent/bufferevent_mbedtls.c:421,1
    - Dst: mm_free
      Src: /src/libevent/bufferevent_mbedtls.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mbedtls_dyncontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 423
    functionName: bufferevent_mbedtls_dyncontext_free
    functionSourceFile: /src/libevent/bufferevent_mbedtls.c
    functionUses: 2
    functionsReached:
    - mm_free
    - mbedtls_ssl_free
    linkageType: ''
    returnType: void
    signature: void bufferevent_mbedtls_dyncontext_free(mbedtls_dyncontext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/event_iocp.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - o
    - cb
    argTypes:
    - struct event_overlapped*
    - iocp_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: event_overlapped_init_
    functionSourceFile: /src/libevent/event_iocp.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void event_overlapped_init_(struct event_overlapped *o, iocp_callback
      cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/event_iocp.c:61,1
    - Dst: struct event_overlapped*::cb
      Src: /src/libevent/event_iocp.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - o
    - completion_key
    - nBytes
    - ok
    argTypes:
    - OVERLAPPED*
    - ULONG_PTR
    - DWORD
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: handle_entry
    functionSourceFile: /src/libevent/event_iocp.c
    functionUses: 0
    functionsReached:
    - struct event_overlapped*::cb
    - EVUTIL_UPCAST
    linkageType: ''
    returnType: void
    signature: void handle_entry(OVERLAPPED *o, ULONG_PTR completion_key, DWORD nBytes,
      int ok)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GetQueuedCompletionStatus
      Src: /src/libevent/event_iocp.c:79,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/event_iocp.c:81,1
    - Dst: ReleaseSemaphore
      Src: /src/libevent/event_iocp.c:84,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/event_iocp.c:86,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/event_iocp.c:89,1
    - Dst: handle_entry
      Src: /src/libevent/event_iocp.c:92,1
    - Dst: event_warnx
      Src: /src/libevent/event_iocp.c:96,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/event_iocp.c:97,1
    - Dst: ReleaseSemaphore
      Src: /src/libevent/event_iocp.c:99,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/event_iocp.c:100,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - port_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 101
    functionName: loop
    functionSourceFile: /src/libevent/event_iocp.c
    functionUses: 5
    functionsReached:
    - handle_entry
    - GetQueuedCompletionStatus
    - ReleaseSemaphore
    - LeaveCriticalSection
    - EnterCriticalSection
    - event_warnx
    linkageType: ''
    returnType: void
    signature: void loop(void *port_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CreateIoCompletionPort
      Src: /src/libevent/event_iocp.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - port
    - fd
    - key
    argTypes:
    - struct event_iocp_port*
    - evutil_socket_t
    - ev_uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: event_iocp_port_associate_
    functionSourceFile: /src/libevent/event_iocp.c
    functionUses: 2
    functionsReached:
    - CreateIoCompletionPort
    linkageType: ''
    returnType: int
    signature: "int event_iocp_port_associate_(struct event_iocp_port *port, evutil_socket_t
      fd,\n    ev_uintptr_t key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WSAIoctl
      Src: /src/libevent/event_iocp.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - which_fn
    argTypes:
    - SOCKET
    - GUID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 129
    functionName: get_extension_function
    functionSourceFile: /src/libevent/event_iocp.c
    functionUses: 0
    functionsReached:
    - WSAIoctl
    linkageType: ''
    returnType: void
    signature: 'void *

      get_extension_function(SOCKET s, const GUID *which_fn)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/libevent/event_iocp.c:155,1
    - Dst: get_extension_function
      Src: /src/libevent/event_iocp.c:158,1
    - Dst: get_extension_function
      Src: /src/libevent/event_iocp.c:159,1
    - Dst: get_extension_function
      Src: /src/libevent/event_iocp.c:160,1
    - Dst: closesocket
      Src: /src/libevent/event_iocp.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ext
    argTypes:
    - struct win32_extension_fns*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 165
    functionName: init_extension_functions
    functionSourceFile: /src/libevent/event_iocp.c
    functionUses: 0
    functionsReached:
    - closesocket
    - socket
    - get_extension_function
    linkageType: ''
    returnType: void
    signature: void init_extension_functions(struct win32_extension_fns *ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 173
    functionName: event_get_win32_extension_fns_
    functionSourceFile: /src/libevent/event_iocp.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: struct win32_extension_fns
    signature: 'struct win32_extension_fns *

      event_get_win32_extension_fns_(void)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: init_extension_functions
      Src: /src/libevent/event_iocp.c:184,1
    - Dst: mm_calloc
      Src: /src/libevent/event_iocp.c:186,1
    - Dst: mm_calloc
      Src: /src/libevent/event_iocp.c:192,1
    - Dst: CreateIoCompletionPort
      Src: /src/libevent/event_iocp.c:196,1
    - Dst: CreateSemaphore
      Src: /src/libevent/event_iocp.c:202,1
    - Dst: _beginthread
      Src: /src/libevent/event_iocp.c:207,1
    - Dst: InitializeCriticalSectionAndSpinCount
      Src: /src/libevent/event_iocp.c:214,1
    - Dst: CloseHandle
      Src: /src/libevent/event_iocp.c:219,1
    - Dst: mm_free
      Src: /src/libevent/event_iocp.c:221,1
    - Dst: CloseHandle
      Src: /src/libevent/event_iocp.c:223,1
    - Dst: mm_free
      Src: /src/libevent/event_iocp.c:224,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 1
    argNames:
    - n_cpus
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 226
    functionName: event_iocp_port_launch_
    functionSourceFile: /src/libevent/event_iocp.c
    functionUses: 0
    functionsReached:
    - _beginthread
    - mm_free
    - init_extension_functions
    - mm_calloc
    - InitializeCriticalSectionAndSpinCount
    - CreateIoCompletionPort
    - CloseHandle
    - CreateSemaphore
    linkageType: ''
    returnType: struct event_iocp_port
    signature: 'struct event_iocp_port *

      event_iocp_port_launch_(int n_cpus)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeleteCriticalSection
      Src: /src/libevent/event_iocp.c:231,1
    - Dst: CloseHandle
      Src: /src/libevent/event_iocp.c:232,1
    - Dst: CloseHandle
      Src: /src/libevent/event_iocp.c:233,1
    - Dst: mm_free
      Src: /src/libevent/event_iocp.c:234,1
    - Dst: mm_free
      Src: /src/libevent/event_iocp.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct event_iocp_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 236
    functionName: event_iocp_port_unlock_and_free_
    functionSourceFile: /src/libevent/event_iocp.c
    functionUses: 0
    functionsReached:
    - DeleteCriticalSection
    - mm_free
    - CloseHandle
    linkageType: ''
    returnType: void
    signature: void event_iocp_port_unlock_and_free_(struct event_iocp_port *port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PostQueuedCompletionStatus
      Src: /src/libevent/event_iocp.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct event_iocp_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 249
    functionName: event_iocp_notify_all
    functionSourceFile: /src/libevent/event_iocp.c
    functionUses: 0
    functionsReached:
    - PostQueuedCompletionStatus
    linkageType: ''
    returnType: int
    signature: int event_iocp_notify_all(struct event_iocp_port *port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EnterCriticalSection
      Src: /src/libevent/event_iocp.c:257,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/event_iocp.c:259,1
    - Dst: event_iocp_notify_all
      Src: /src/libevent/event_iocp.c:260,1
    - Dst: WaitForSingleObject
      Src: /src/libevent/event_iocp.c:265,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/event_iocp.c:266,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/event_iocp.c:268,1
    - Dst: event_iocp_port_unlock_and_free_
      Src: /src/libevent/event_iocp.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - port
    - waitMsec
    argTypes:
    - struct event_iocp_port*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 275
    functionName: event_iocp_shutdown_
    functionSourceFile: /src/libevent/event_iocp.c
    functionUses: 0
    functionsReached:
    - event_iocp_notify_all
    - LeaveCriticalSection
    - WaitForSingleObject
    - event_iocp_port_unlock_and_free_
    - EnterCriticalSection
    linkageType: ''
    returnType: int
    signature: int event_iocp_shutdown_(struct event_iocp_port *port, long waitMsec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PostQueuedCompletionStatus
      Src: /src/libevent/event_iocp.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - port
    - o
    - key
    - n
    argTypes:
    - struct event_iocp_port*
    - struct event_overlapped*
    - ev_uintptr_t
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 286
    functionName: event_iocp_activate_overlapped_
    functionSourceFile: /src/libevent/event_iocp.c
    functionUses: 0
    functionsReached:
    - PostQueuedCompletionStatus
    linkageType: ''
    returnType: int
    signature: "int event_iocp_activate_overlapped_(\n    struct event_iocp_port *port,
      struct event_overlapped *o,\n    ev_uintptr_t key, ev_uint32_t n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 296
    functionName: event_base_get_iocp_
    functionSourceFile: /src/libevent/event_iocp.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct event_iocp_port
    signature: 'struct event_iocp_port *

      event_base_get_iocp_(struct event_base *base)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: CHAIN_SPACE_PTR
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHAIN_SPACE_PTR(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: CHAIN_SPACE_LEN
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHAIN_SPACE_LEN(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: CHAIN_PINNED
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHAIN_PINNED(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: CHAIN_PINNED_R
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHAIN_PINNED_R(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 136
    functionName: PTR_NOT_FOUND
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTR_NOT_FOUND(ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/buffer.c:164,1
    - Dst: memset
      Src: /src/libevent/buffer.c:167,1
    - Dst: EVBUFFER_CHAIN_EXTRA
      Src: /src/libevent/buffer.c:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 179
    functionName: evbuffer_chain_new
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - memset
    - EVBUFFER_CHAIN_EXTRA
    - mm_malloc
    linkageType: ''
    returnType: struct evbuffer_chain
    signature: 'struct evbuffer_chain *

      evbuffer_chain_new(size_t size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_chain_new
      Src: /src/libevent/buffer.c:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 202
    functionName: evbuffer_chain_new_membuf
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_chain_new
    linkageType: ''
    returnType: struct evbuffer_chain
    signature: 'struct evbuffer_chain *

      evbuffer_chain_new_membuf(size_t size)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:207,1
    - Dst: CHAIN_PINNED
      Src: /src/libevent/buffer.c:213,1
    - Dst: EVBUFFER_CHAIN_EXTRA
      Src: /src/libevent/buffer.c:224,1
    - Dst: EVBUFFER_CHAIN_EXTRA
      Src: /src/libevent/buffer.c:234,1
    - Dst: UnmapViewOfFile
      Src: /src/libevent/buffer.c:240,1
    - Dst: evbuffer_file_segment_free
      Src: /src/libevent/buffer.c:242,1
    - Dst: EVBUFFER_CHAIN_EXTRA
      Src: /src/libevent/buffer.c:247,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:254,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:255,1
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:256,1
    - Dst: evbuffer_chain_free
      Src: /src/libevent/buffer.c:257,1
    - Dst: evbuffer_decref_and_unlock_
      Src: /src/libevent/buffer.c:258,1
    - Dst: mm_free
      Src: /src/libevent/buffer.c:261,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - chain
    argTypes:
    - struct evbuffer_chain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 262
    functionName: evbuffer_chain_free
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached:
    - EVBUFFER_CHAIN_EXTRA
    - mm_free
    - EVUTIL_ASSERT
    - EVBUFFER_LOCK
    - evbuffer_decref_and_unlock_
    - evbuffer_chain_free
    - UnmapViewOfFile
    - CHAIN_PINNED
    - evbuffer_file_segment_free
    linkageType: ''
    returnType: void
    signature: void evbuffer_chain_free(struct evbuffer_chain *chain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_chain_free
      Src: /src/libevent/buffer.c:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - chain
    argTypes:
    - struct evbuffer_chain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 272
    functionName: evbuffer_free_all_chains
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_chain_free
    linkageType: ''
    returnType: void
    signature: void evbuffer_free_all_chains(struct evbuffer_chain *chain)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - chain
    argTypes:
    - struct evbuffer_chain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 283
    functionName: evbuffer_chains_all_empty
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evbuffer_chains_all_empty(struct evbuffer_chain *chain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chain
    argTypes:
    - struct evbuffer_chain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 289
    functionName: evbuffer_chains_all_empty
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evbuffer_chains_all_empty(struct evbuffer_chain *chain)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHAIN_PINNED
      Src: /src/libevent/buffer.c:304,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:307,1
    - Dst: evbuffer_chains_all_empty
      Src: /src/libevent/buffer.c:307,1
    - Dst: evbuffer_free_all_chains
      Src: /src/libevent/buffer.c:308,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 299
    functionDepth: 3
    functionLinenumber: 299
    functionLinenumberEnd: 312
    functionName: evbuffer_free_trailing_empty_chains
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - evbuffer_free_all_chains
    - evbuffer_chains_all_empty
    - CHAIN_PINNED
    linkageType: ''
    returnType: struct evbuffer_chain
    signature: 'struct evbuffer_chain **

      evbuffer_free_trailing_empty_chains(struct evbuffer *buf)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:321,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:324,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:325,1
    - Dst: evbuffer_free_trailing_empty_chains
      Src: /src/libevent/buffer.c:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - chain
    argTypes:
    - struct evbuffer*
    - struct evbuffer_chain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 317
    functionDepth: 4
    functionLinenumber: 317
    functionLinenumberEnd: 336
    functionName: evbuffer_chain_insert
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - evbuffer_free_trailing_empty_chains
    - ASSERT_EVBUFFER_LOCKED
    linkageType: ''
    returnType: void
    signature: "void evbuffer_chain_insert(struct evbuffer *buf,\n    struct evbuffer_chain
      *chain)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_chain_new_membuf
      Src: /src/libevent/buffer.c:342,1
    - Dst: evbuffer_chain_insert
      Src: /src/libevent/buffer.c:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - datlen
    argTypes:
    - struct evbuffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 338
    functionDepth: 5
    functionLinenumber: 338
    functionLinenumberEnd: 346
    functionName: evbuffer_chain_insert_new
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_chain_new_membuf
    - evbuffer_chain_insert
    linkageType: ''
    returnType: struct evbuffer_chain
    signature: 'struct evbuffer_chain *

      evbuffer_chain_insert_new(struct evbuffer *buf, size_t datlen)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - chain
    - flag
    argTypes:
    - struct evbuffer_chain*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 353
    functionName: evbuffer_chain_pin_
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 2
    functionsReached:
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: void
    signature: void evbuffer_chain_pin_(struct evbuffer_chain *chain, unsigned flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:358,1
    - Dst: evbuffer_chain_free
      Src: /src/libevent/buffer.c:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - chain
    - flag
    argTypes:
    - struct evbuffer_chain*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 362
    functionName: evbuffer_chain_unpin_
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached:
    - EVUTIL_ASSERT
    - evbuffer_chain_free
    linkageType: ''
    returnType: void
    signature: void evbuffer_chain_unpin_(struct evbuffer_chain *chain, unsigned flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chain
    argTypes:
    - struct evbuffer_chain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: evbuffer_chain_incref
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evbuffer_chain_incref(struct evbuffer_chain *chain)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/buffer.c:375,1
    - Dst: LIST_INIT
      Src: /src/libevent/buffer.c:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 385
    functionName: evbuffer_new
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 20
    functionsReached:
    - mm_calloc
    - LIST_INIT
    linkageType: ''
    returnType: struct evbuffer
    signature: 'struct evbuffer *

      evbuffer_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:390,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - flags
    argTypes:
    - struct evbuffer*
    - ev_uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 394
    functionName: evbuffer_set_flags
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: int
    signature: int evbuffer_set_flags(struct evbuffer *buf, ev_uint64_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:399,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - flags
    argTypes:
    - struct evbuffer*
    - ev_uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 403
    functionName: evbuffer_clear_flags
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: int
    signature: int evbuffer_clear_flags(struct evbuffer *buf, ev_uint64_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:408,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 411
    functionName: evbuffer_incref_
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 2
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: void
    signature: void evbuffer_incref_(struct evbuffer *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 418
    functionName: evbuffer_incref_and_lock_
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: void
    signature: void evbuffer_incref_and_lock_(struct evbuffer *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:423,1
    - Dst: event_deferred_cb_init_
      Src: /src/libevent/buffer.c:426,1
    - Dst: event_base_get_npriorities
      Src: /src/libevent/buffer.c:427,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - buffer
    - base
    argTypes:
    - struct evbuffer*
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 431
    functionName: evbuffer_defer_callbacks
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    - event_deferred_cb_init_
    - event_base_get_npriorities
    linkageType: ''
    returnType: int
    signature: int evbuffer_defer_callbacks(struct evbuffer *buffer, struct event_base
      *base)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/buffer.c:443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - buf
    - lock
    argTypes:
    - struct evbuffer*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 455
    functionName: evbuffer_enable_locking
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVTHREAD_ALLOC_LOCK
    linkageType: ''
    returnType: int
    signature: int evbuffer_enable_locking(struct evbuffer *buf, void *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:460,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - bev
    argTypes:
    - struct evbuffer*
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 463
    functionName: evbuffer_set_parent_
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: void
    signature: void evbuffer_set_parent_(struct evbuffer *buf, struct bufferevent
      *bev)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:488,1
    - Dst: LIST_EMPTY
      Src: /src/libevent/buffer.c:490,1
    - Dst: LIST_FIRST
      Src: /src/libevent/buffer.c:505,1
    - Dst: LIST_END
      Src: /src/libevent/buffer.c:506,1
    - Dst: LIST_NEXT
      Src: /src/libevent/buffer.c:510,1
    - Dst: struct evbuffer_cb_entry*::cb::cb_obsolete
      Src: /src/libevent/buffer.c:516,1
    - Dst: struct evbuffer_cb_entry*::cb::cb_func
      Src: /src/libevent/buffer.c:519,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 2
    argNames:
    - buffer
    - running_deferred
    argTypes:
    - struct evbuffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 521
    functionName: evbuffer_run_callbacks
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - LIST_END
    - ASSERT_EVBUFFER_LOCKED
    - LIST_FIRST
    - struct evbuffer_cb_entry*::cb::cb_obsolete
    - LIST_NEXT
    - struct evbuffer_cb_entry*::cb::cb_func
    - LIST_EMPTY
    linkageType: ''
    returnType: void
    signature: void evbuffer_run_callbacks(struct evbuffer *buffer, int running_deferred)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LIST_EMPTY
      Src: /src/libevent/buffer.c:526,1
    - Dst: event_deferred_cb_schedule_
      Src: /src/libevent/buffer.c:532,1
    - Dst: evbuffer_incref_and_lock_
      Src: /src/libevent/buffer.c:533,1
    - Dst: bufferevent_incref_
      Src: /src/libevent/buffer.c:535,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:536,1
    - Dst: evbuffer_run_callbacks
      Src: /src/libevent/buffer.c:540,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 541
    functionName: evbuffer_invoke_callbacks_
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached:
    - EVBUFFER_UNLOCK
    - event_deferred_cb_schedule_
    - evbuffer_run_callbacks
    - bufferevent_incref_
    - evbuffer_incref_and_lock_
    - LIST_EMPTY
    linkageType: ''
    returnType: void
    signature: void evbuffer_invoke_callbacks_(struct evbuffer *buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:551,1
    - Dst: evbuffer_run_callbacks
      Src: /src/libevent/buffer.c:553,1
    - Dst: evbuffer_decref_and_unlock_
      Src: /src/libevent/buffer.c:554,1
    - Dst: bufferevent_decref_
      Src: /src/libevent/buffer.c:556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cb
    - arg
    argTypes:
    - struct event_callback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 557
    functionName: evbuffer_deferred_callback
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - bufferevent_decref_
    - EVBUFFER_LOCK
    - evbuffer_decref_and_unlock_
    - evbuffer_run_callbacks
    linkageType: ''
    returnType: void
    signature: void evbuffer_deferred_callback(struct event_callback *cb, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_FIRST
      Src: /src/libevent/buffer.c:564,1
    - Dst: LIST_REMOVE
      Src: /src/libevent/buffer.c:565,1
    - Dst: mm_free
      Src: /src/libevent/buffer.c:566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 568
    functionName: evbuffer_remove_all_callbacks
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - mm_free
    - LIST_FIRST
    - LIST_REMOVE
    linkageType: ''
    returnType: void
    signature: void evbuffer_remove_all_callbacks(struct evbuffer *buffer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:574,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:576,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:579,1
    - Dst: evbuffer_chain_free
      Src: /src/libevent/buffer.c:585,1
    - Dst: evbuffer_remove_all_callbacks
      Src: /src/libevent/buffer.c:587,1
    - Dst: event_deferred_cb_cancel_
      Src: /src/libevent/buffer.c:589,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:591,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/buffer.c:593,1
    - Dst: mm_free
      Src: /src/libevent/buffer.c:594,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 595
    functionName: evbuffer_decref_and_unlock_
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 4
    functionsReached:
    - EVBUFFER_UNLOCK
    - event_deferred_cb_cancel_
    - mm_free
    - ASSERT_EVBUFFER_LOCKED
    - EVUTIL_ASSERT
    - evbuffer_remove_all_callbacks
    - evbuffer_chain_free
    - EVTHREAD_FREE_LOCK
    linkageType: ''
    returnType: void
    signature: void evbuffer_decref_and_unlock_(struct evbuffer *buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:600,1
    - Dst: evbuffer_decref_and_unlock_
      Src: /src/libevent/buffer.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 597
    functionDepth: 3
    functionLinenumber: 597
    functionLinenumberEnd: 602
    functionName: evbuffer_free
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 23
    functionsReached:
    - EVBUFFER_LOCK
    - evbuffer_decref_and_unlock_
    linkageType: ''
    returnType: void
    signature: void evbuffer_free(struct evbuffer *buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:610,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - max
    argTypes:
    - struct evbuffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 614
    functionName: evbuffer_set_max_read
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: int
    signature: int evbuffer_set_max_read(struct evbuffer *buf, size_t max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:618,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 622
    functionName: evbuffer_get_max_read
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: size_t
    signature: size_t evbuffer_get_max_read(struct evbuffer *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 628
    functionName: evbuffer_lock
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: void
    signature: void evbuffer_lock(struct evbuffer *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 634
    functionName: evbuffer_unlock
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    linkageType: ''
    returnType: void
    signature: void evbuffer_unlock(struct evbuffer *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:640,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 644
    functionName: evbuffer_get_length
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 29
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: size_t
    signature: size_t evbuffer_get_length(const struct evbuffer *buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:652,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 658
    functionName: evbuffer_get_contiguous_space
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: size_t
    signature: size_t evbuffer_get_contiguous_space(const struct evbuffer *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:666,1
    - Dst: evbuffer_expand_fast_
      Src: /src/libevent/buffer.c:674,1
    - Dst: evbuffer_add
      Src: /src/libevent/buffer.c:684,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:692,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - buf
    - vec
    - n_vec
    argTypes:
    - struct evbuffer*
    - struct evbuffer_iovec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 694
    functionName: evbuffer_add_iovec
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    - evbuffer_expand_fast_
    - evbuffer_add
    linkageType: ''
    returnType: size_t
    signature: size_t evbuffer_add_iovec(struct evbuffer * buf, struct evbuffer_iovec
      * vec, int n_vec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:703,1
    - Dst: evbuffer_expand_singlechain
      Src: /src/libevent/buffer.c:709,1
    - Dst: CHAIN_SPACE_PTR
      Src: /src/libevent/buffer.c:712,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:713,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:714,1
    - Dst: evbuffer_expand_fast_
      Src: /src/libevent/buffer.c:717,1
    - Dst: evbuffer_read_setup_vecs_
      Src: /src/libevent/buffer.c:719,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:724,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 4
    argNames:
    - buf
    - size
    - vec
    - n_vecs
    argTypes:
    - struct evbuffer*
    - ev_ssize_t
    - struct evbuffer_iovec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 727
    functionName: evbuffer_reserve_space
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - CHAIN_SPACE_LEN
    - EVBUFFER_UNLOCK
    - EVUTIL_ASSERT
    - CHAIN_SPACE_PTR
    - EVBUFFER_LOCK
    - evbuffer_expand_fast_
    - evbuffer_expand_singlechain
    - evbuffer_read_setup_vecs_
    linkageType: ''
    returnType: int
    signature: "int evbuffer_reserve_space(struct evbuffer *buf, ev_ssize_t size,\n
      \   struct evbuffer_iovec *vec, int n_vecs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:735,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 747
    functionName: advance_last_with_data
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - ASSERT_EVBUFFER_LOCKED
    linkageType: ''
    returnType: int
    signature: int advance_last_with_data(struct evbuffer *buf)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:758,1
    - Dst: CHAIN_SPACE_PTR
      Src: /src/libevent/buffer.c:766,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:769,1
    - Dst: advance_last_with_data
      Src: /src/libevent/buffer.c:774,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:782,1
    - Dst: CHAIN_SPACE_PTR
      Src: /src/libevent/buffer.c:792,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:793,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:812,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:815,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 57
    argCount: 3
    argNames:
    - buf
    - vec
    - n_vecs
    argTypes:
    - struct evbuffer*
    - struct evbuffer_iovec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 749
    functionDepth: 3
    functionLinenumber: 749
    functionLinenumberEnd: 817
    functionName: evbuffer_commit_space
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - CHAIN_SPACE_LEN
    - EVBUFFER_UNLOCK
    - CHAIN_SPACE_PTR
    - EVBUFFER_LOCK
    - evbuffer_invoke_callbacks_
    - advance_last_with_data
    linkageType: ''
    returnType: int
    signature: "int evbuffer_commit_space(struct evbuffer *buf,\n    struct evbuffer_iovec
      *vec, int n_vecs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHAIN_PINNED_R
      Src: /src/libevent/buffer.c:822,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 823
    functionName: HAS_PINNED_R
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - CHAIN_PINNED_R
    linkageType: ''
    returnType: int
    signature: int HAS_PINNED_R(struct evbuffer *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - dst
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 833
    functionName: ZERO_CHAIN
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - ASSERT_EVBUFFER_LOCKED
    linkageType: ''
    returnType: void
    signature: void ZERO_CHAIN(struct evbuffer *dst)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:845,1
    - Dst: HAS_PINNED_R
      Src: /src/libevent/buffer.c:847,1
    - Dst: CHAIN_PINNED_R
      Src: /src/libevent/buffer.c:853,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:855,1
    - Dst: CHAIN_PINNED_R
      Src: /src/libevent/buffer.c:855,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:864,1
    - Dst: evbuffer_chain_new_membuf
      Src: /src/libevent/buffer.c:865,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:868,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 3
    argNames:
    - src
    - first
    - last
    argTypes:
    - struct evbuffer*
    - struct evbuffer_chain**
    - struct evbuffer_chain**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 839
    functionDepth: 3
    functionLinenumber: 839
    functionLinenumberEnd: 881
    functionName: PRESERVE_PINNED
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - ASSERT_EVBUFFER_LOCKED
    - EVUTIL_ASSERT
    - evbuffer_chain_new_membuf
    - HAS_PINNED_R
    - memcpy
    - CHAIN_PINNED_R
    linkageType: ''
    returnType: int
    signature: "int PRESERVE_PINNED(struct evbuffer *src, struct evbuffer_chain **first,\n\t\tstruct
      evbuffer_chain **last)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:887,1
    - Dst: ZERO_CHAIN
      Src: /src/libevent/buffer.c:890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - src
    - pinned
    - last
    argTypes:
    - struct evbuffer*
    - struct evbuffer_chain*
    - struct evbuffer_chain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 883
    functionDepth: 2
    functionLinenumber: 883
    functionLinenumberEnd: 898
    functionName: RESTORE_PINNED
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - ZERO_CHAIN
    - ASSERT_EVBUFFER_LOCKED
    linkageType: ''
    returnType: void
    signature: "void RESTORE_PINNED(struct evbuffer *src, struct evbuffer_chain *pinned,\n\t\tstruct
      evbuffer_chain *last)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:903,1
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 912
    functionName: COPY_CHAIN
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - ASSERT_EVBUFFER_LOCKED
    linkageType: ''
    returnType: void
    signature: void COPY_CHAIN(struct evbuffer *dst, struct evbuffer *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:919,1
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:920,1
    - Dst: evbuffer_free_trailing_empty_chains
      Src: /src/libevent/buffer.c:922,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 914
    functionDepth: 4
    functionLinenumber: 914
    functionLinenumberEnd: 931
    functionName: APPEND_CHAIN
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_free_trailing_empty_chains
    - ASSERT_EVBUFFER_LOCKED
    linkageType: ''
    returnType: void
    signature: void APPEND_CHAIN(struct evbuffer *dst, struct evbuffer *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:940,1
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:941,1
    - Dst: evbuffer_chain_new
      Src: /src/libevent/buffer.c:949,1
    - Dst: event_warn
      Src: /src/libevent/buffer.c:951,1
    - Dst: EVBUFFER_CHAIN_EXTRA
      Src: /src/libevent/buffer.c:954,1
    - Dst: evbuffer_incref_
      Src: /src/libevent/buffer.c:958,1
    - Dst: evbuffer_chain_incref
      Src: /src/libevent/buffer.c:961,1
    - Dst: evbuffer_chain_insert
      Src: /src/libevent/buffer.c:969,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 933
    functionDepth: 5
    functionLinenumber: 933
    functionLinenumberEnd: 971
    functionName: APPEND_CHAIN_MULTICAST
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_CHAIN_EXTRA
    - evbuffer_incref_
    - ASSERT_EVBUFFER_LOCKED
    - evbuffer_chain_new
    - event_warn
    - evbuffer_chain_insert
    - evbuffer_chain_incref
    linkageType: ''
    returnType: void
    signature: void APPEND_CHAIN_MULTICAST(struct evbuffer *dst, struct evbuffer *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:976,1
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:977,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 989
    functionName: PREPEND_CHAIN
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - ASSERT_EVBUFFER_LOCKED
    linkageType: ''
    returnType: void
    signature: void PREPEND_CHAIN(struct evbuffer *dst, struct evbuffer *src)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK2
      Src: /src/libevent/buffer.c:998,1
    - Dst: PRESERVE_PINNED
      Src: /src/libevent/buffer.c:1010,1
    - Dst: evbuffer_free_all_chains
      Src: /src/libevent/buffer.c:1018,1
    - Dst: COPY_CHAIN
      Src: /src/libevent/buffer.c:1019,1
    - Dst: APPEND_CHAIN
      Src: /src/libevent/buffer.c:1021,1
    - Dst: RESTORE_PINNED
      Src: /src/libevent/buffer.c:1024,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:1029,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:1030,1
    - Dst: EVBUFFER_UNLOCK2
      Src: /src/libevent/buffer.c:1033,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - outbuf
    - inbuf
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 991
    functionDepth: 5
    functionLinenumber: 991
    functionLinenumberEnd: 1035
    functionName: evbuffer_add_buffer
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 6
    functionsReached:
    - PRESERVE_PINNED
    - EVBUFFER_LOCK2
    - EVBUFFER_UNLOCK2
    - evbuffer_free_all_chains
    - RESTORE_PINNED
    - evbuffer_invoke_callbacks_
    - COPY_CHAIN
    - APPEND_CHAIN
    linkageType: ''
    returnType: int
    signature: int evbuffer_add_buffer(struct evbuffer *outbuf, struct evbuffer *inbuf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK2
      Src: /src/libevent/buffer.c:1044,1
    - Dst: evbuffer_free_all_chains
      Src: /src/libevent/buffer.c:1068,1
    - Dst: APPEND_CHAIN_MULTICAST
      Src: /src/libevent/buffer.c:1070,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:1073,1
    - Dst: EVBUFFER_UNLOCK2
      Src: /src/libevent/buffer.c:1076,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - outbuf
    - inbuf
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1037
    functionDepth: 6
    functionLinenumber: 1037
    functionLinenumberEnd: 1078
    functionName: evbuffer_add_buffer_reference
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_LOCK2
    - EVBUFFER_UNLOCK2
    - evbuffer_free_all_chains
    - evbuffer_invoke_callbacks_
    - APPEND_CHAIN_MULTICAST
    linkageType: ''
    returnType: int
    signature: int evbuffer_add_buffer_reference(struct evbuffer *outbuf, struct evbuffer
      *inbuf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK2
      Src: /src/libevent/buffer.c:1087,1
    - Dst: PRESERVE_PINNED
      Src: /src/libevent/buffer.c:1100,1
    - Dst: evbuffer_free_all_chains
      Src: /src/libevent/buffer.c:1108,1
    - Dst: COPY_CHAIN
      Src: /src/libevent/buffer.c:1109,1
    - Dst: PREPEND_CHAIN
      Src: /src/libevent/buffer.c:1111,1
    - Dst: RESTORE_PINNED
      Src: /src/libevent/buffer.c:1114,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:1119,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:1120,1
    - Dst: EVBUFFER_UNLOCK2
      Src: /src/libevent/buffer.c:1122,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - outbuf
    - inbuf
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1080
    functionDepth: 4
    functionLinenumber: 1080
    functionLinenumberEnd: 1124
    functionName: evbuffer_prepend_buffer
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - PRESERVE_PINNED
    - EVBUFFER_LOCK2
    - EVBUFFER_UNLOCK2
    - PREPEND_CHAIN
    - evbuffer_free_all_chains
    - RESTORE_PINNED
    - evbuffer_invoke_callbacks_
    - COPY_CHAIN
    linkageType: ''
    returnType: int
    signature: int evbuffer_prepend_buffer(struct evbuffer *outbuf, struct evbuffer
      *inbuf)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:1133,1
    - Dst: HAS_PINNED_R
      Src: /src/libevent/buffer.c:1144,1
    - Dst: evbuffer_chain_free
      Src: /src/libevent/buffer.c:1148,1
    - Dst: ZERO_CHAIN
      Src: /src/libevent/buffer.c:1151,1
    - Dst: CHAIN_PINNED_R
      Src: /src/libevent/buffer.c:1170,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:1171,1
    - Dst: evbuffer_chain_free
      Src: /src/libevent/buffer.c:1176,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:1180,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:1187,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:1190,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - struct evbuffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1126
    functionDepth: 3
    functionLinenumber: 1126
    functionLinenumberEnd: 1192
    functionName: evbuffer_drain
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 17
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVUTIL_ASSERT
    - EVBUFFER_LOCK
    - evbuffer_chain_free
    - evbuffer_invoke_callbacks_
    - HAS_PINNED_R
    - ZERO_CHAIN
    - CHAIN_PINNED_R
    linkageType: ''
    returnType: int
    signature: int evbuffer_drain(struct evbuffer *buf, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:1199,1
    - Dst: evbuffer_copyout_from
      Src: /src/libevent/buffer.c:1200,1
    - Dst: evbuffer_drain
      Src: /src/libevent/buffer.c:1202,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:1205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - buf
    - data_out
    - datlen
    argTypes:
    - struct evbuffer*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1195
    functionDepth: 4
    functionLinenumber: 1195
    functionLinenumberEnd: 1207
    functionName: evbuffer_remove
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 3
    functionsReached:
    - evbuffer_copyout_from
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    - evbuffer_drain
    linkageType: ''
    returnType: int
    signature: int evbuffer_remove(struct evbuffer *buf, void *data_out, size_t datlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_copyout_from
      Src: /src/libevent/buffer.c:1212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - data_out
    - datlen
    argTypes:
    - struct evbuffer*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1209
    functionDepth: 1
    functionLinenumber: 1209
    functionLinenumberEnd: 1213
    functionName: evbuffer_copyout
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_copyout_from
    linkageType: ''
    returnType: ev_ssize_t
    signature: ev_ssize_t evbuffer_copyout(struct evbuffer *buf, void *data_out, size_t
      datlen)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:1226,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1257,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:1265,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:1269,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:1270,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1272,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:1278,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 4
    argNames:
    - buf
    - pos
    - data_out
    - datlen
    argTypes:
    - struct evbuffer*
    - struct evbuffer_ptr*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1215
    functionDepth: 1
    functionLinenumber: 1215
    functionLinenumberEnd: 1280
    functionName: evbuffer_copyout_from
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 2
    functionsReached:
    - EVUTIL_ASSERT
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    - memcpy
    linkageType: ''
    returnType: ev_ssize_t
    signature: "ev_ssize_t evbuffer_copyout_from(struct evbuffer *buf, const struct
      evbuffer_ptr *pos,\n    void *data_out, size_t datlen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK2
      Src: /src/libevent/buffer.c:1296,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/buffer.c:1313,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:1323,1
    - Dst: evbuffer_free_trailing_empty_chains
      Src: /src/libevent/buffer.c:1335,1
    - Dst: advance_last_with_data
      Src: /src/libevent/buffer.c:1345,1
    - Dst: evbuffer_add
      Src: /src/libevent/buffer.c:1353,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:1365,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:1366,1
    - Dst: EVBUFFER_UNLOCK2
      Src: /src/libevent/buffer.c:1371,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 3
    argNames:
    - src
    - dst
    - datlen
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1285
    functionDepth: 6
    functionLinenumber: 1285
    functionLinenumberEnd: 1373
    functionName: evbuffer_remove_buffer
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 4
    functionsReached:
    - evbuffer_free_trailing_empty_chains
    - EVBUFFER_LOCK2
    - evbuffer_add
    - EVBUFFER_UNLOCK2
    - EVUTIL_ASSERT
    - evbuffer_invoke_callbacks_
    - advance_last_with_data
    - evbuffer_add_buffer
    linkageType: ''
    returnType: int
    signature: "int evbuffer_remove_buffer(struct evbuffer *src, struct evbuffer *dst,\n
      \   size_t datlen)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:1384,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:1405,1
    - Dst: CHAIN_PINNED
      Src: /src/libevent/buffer.c:1407,1
    - Dst: CHAIN_PINNED
      Src: /src/libevent/buffer.c:1414,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:1416,1
    - Dst: CHAIN_SPACE_PTR
      Src: /src/libevent/buffer.c:1420,1
    - Dst: evbuffer_chain_new_membuf
      Src: /src/libevent/buffer.c:1434,1
    - Dst: event_warn
      Src: /src/libevent/buffer.c:1435,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1451,1
    - Dst: evbuffer_chain_free
      Src: /src/libevent/buffer.c:1460,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1464,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:1485,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 85
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - struct evbuffer*
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1375
    functionDepth: 3
    functionLinenumber: 1375
    functionLinenumberEnd: 1487
    functionName: evbuffer_pullup
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached:
    - CHAIN_SPACE_LEN
    - EVBUFFER_UNLOCK
    - EVUTIL_ASSERT
    - CHAIN_SPACE_PTR
    - EVBUFFER_LOCK
    - event_warn
    - evbuffer_chain_free
    - evbuffer_chain_new_membuf
    - memcpy
    - CHAIN_PINNED
    linkageType: ''
    returnType: unsigned char
    signature: 'unsigned char *

      evbuffer_pullup(struct evbuffer *buf, ev_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_readln
      Src: /src/libevent/buffer.c:1496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1493
    functionDepth: 0
    functionLinenumber: 1493
    functionLinenumberEnd: 1497
    functionName: evbuffer_readline
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 2
    functionsReached:
    - evbuffer_readln
    linkageType: ''
    returnType: char
    signature: 'char *

      evbuffer_readline(struct evbuffer *buffer)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/libevent/buffer.c:1506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - it
    - chr
    argTypes:
    - struct evbuffer_ptr*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1499
    functionDepth: 0
    functionLinenumber: 1499
    functionLinenumberEnd: 1519
    functionName: evbuffer_strchr
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: ev_ssize_t
    signature: ev_ssize_t evbuffer_strchr(struct evbuffer_ptr *it, const char chr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/libevent/buffer.c:1532,1
    - Dst: memchr
      Src: /src/libevent/buffer.c:1533,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1521
    functionDepth: 0
    functionLinenumber: 1521
    functionLinenumberEnd: 1546
    functionName: find_eol_char
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: char
    signature: 'char *

      find_eol_char(char *s, size_t len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_eol_char
      Src: /src/libevent/buffer.c:1555,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - it
    argTypes:
    - struct evbuffer_ptr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1548
    functionDepth: 1
    functionLinenumber: 1548
    functionLinenumberEnd: 1568
    functionName: evbuffer_find_eol_char
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - find_eol_char
    linkageType: ''
    returnType: ev_ssize_t
    signature: ev_ssize_t evbuffer_find_eol_char(struct evbuffer_ptr *it)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - ptr
    - chrset
    argTypes:
    - struct evbuffer_ptr*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1570
    functionDepth: 0
    functionLinenumber: 1570
    functionLinenumberEnd: 1607
    functionName: evbuffer_strspn
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t evbuffer_strspn(\n\tstruct evbuffer_ptr *ptr, const char *chrset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - it
    argTypes:
    - struct evbuffer_ptr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1610
    functionDepth: 0
    functionLinenumber: 1610
    functionLinenumberEnd: 1620
    functionName: evbuffer_getchr
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evbuffer_getchr(struct evbuffer_ptr *it)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PTR_NOT_FOUND
      Src: /src/libevent/buffer.c:1633,1
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:1639,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1642,1
    - Dst: evbuffer_find_eol_char
      Src: /src/libevent/buffer.c:1653,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1655,1
    - Dst: evbuffer_strspn
      Src: /src/libevent/buffer.c:1656,1
    - Dst: evbuffer_search
      Src: /src/libevent/buffer.c:1659,1
    - Dst: evbuffer_strchr
      Src: /src/libevent/buffer.c:1668,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1677,1
    - Dst: evbuffer_ptr_subtract
      Src: /src/libevent/buffer.c:1678,1
    - Dst: evbuffer_getchr
      Src: /src/libevent/buffer.c:1680,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1681,1
    - Dst: evbuffer_strchr
      Src: /src/libevent/buffer.c:1687,1
    - Dst: evbuffer_strchr
      Src: /src/libevent/buffer.c:1692,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:1702,1
    - Dst: PTR_NOT_FOUND
      Src: /src/libevent/buffer.c:1705,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 72
    argCount: 4
    argNames:
    - buffer
    - start
    - eol_len_out
    - eol_style
    argTypes:
    - struct evbuffer*
    - struct evbuffer_ptr*
    - size_t*
    - enum evbuffer_eol_style
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1622
    functionDepth: 2
    functionLinenumber: 1622
    functionLinenumberEnd: 1710
    functionName: evbuffer_search_eol
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - evbuffer_strspn
    - PTR_NOT_FOUND
    - evbuffer_getchr
    - EVBUFFER_LOCK
    - evbuffer_find_eol_char
    - evbuffer_strchr
    - memcpy
    - evbuffer_ptr_subtract
    - evbuffer_search
    linkageType: ''
    returnType: struct evbuffer_ptr
    signature: "struct evbuffer_ptr evbuffer_search_eol(struct evbuffer *buffer,\n
      \   struct evbuffer_ptr *start, size_t *eol_len_out,\n    enum evbuffer_eol_style
      eol_style)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:1721,1
    - Dst: evbuffer_search_eol
      Src: /src/libevent/buffer.c:1727,1
    - Dst: mm_malloc
      Src: /src/libevent/buffer.c:1732,1
    - Dst: event_warn
      Src: /src/libevent/buffer.c:1733,1
    - Dst: evbuffer_remove
      Src: /src/libevent/buffer.c:1737,1
    - Dst: evbuffer_drain
      Src: /src/libevent/buffer.c:1740,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:1743,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - buffer
    - n_read_out
    - eol_style
    argTypes:
    - struct evbuffer*
    - size_t*
    - enum evbuffer_eol_style
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1749
      start: 1712
    functionDepth: 5
    functionLinenumber: 1712
    functionLinenumberEnd: 1749
    functionName: evbuffer_readln
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 7
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    - event_warn
    - mm_malloc
    - evbuffer_remove
    - evbuffer_search_eol
    - evbuffer_drain
    linkageType: ''
    returnType: char
    signature: "char *\nevbuffer_readln(struct evbuffer *buffer, size_t *n_read_out,\n\t\tenum
      evbuffer_eol_style eol_style)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:1763,1
    - Dst: evbuffer_chain_insert_new
      Src: /src/libevent/buffer.c:1782,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:1789,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1795,1
    - Dst: CHAIN_PINNED
      Src: /src/libevent/buffer.c:1801,1
    - Dst: evbuffer_chain_should_realign
      Src: /src/libevent/buffer.c:1802,1
    - Dst: evbuffer_chain_align
      Src: /src/libevent/buffer.c:1804,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1806,1
    - Dst: evbuffer_chain_new_membuf
      Src: /src/libevent/buffer.c:1823,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1828,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1838,1
    - Dst: evbuffer_chain_insert
      Src: /src/libevent/buffer.c:1840,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:1844,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:1847,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 73
    argCount: 3
    argNames:
    - buf
    - data_in
    - datlen
    argTypes:
    - struct evbuffer*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1755
    functionDepth: 6
    functionLinenumber: 1755
    functionLinenumberEnd: 1849
    functionName: evbuffer_add
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 28
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVUTIL_ASSERT
    - evbuffer_chain_should_realign
    - EVBUFFER_LOCK
    - evbuffer_invoke_callbacks_
    - evbuffer_chain_insert_new
    - evbuffer_chain_align
    - evbuffer_chain_new_membuf
    - memcpy
    - evbuffer_chain_insert
    - CHAIN_PINNED
    linkageType: ''
    returnType: int
    signature: int evbuffer_add(struct evbuffer *buf, const void *data_in, size_t
      datlen)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:1857,1
    - Dst: evbuffer_chain_insert_new
      Src: /src/libevent/buffer.c:1873,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:1881,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1891,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1900,1
    - Dst: evbuffer_chain_new_membuf
      Src: /src/libevent/buffer.c:1912,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:1921,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:1924,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:1929,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:1932,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 65
    argCount: 3
    argNames:
    - buf
    - data
    - datlen
    argTypes:
    - struct evbuffer*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1851
    functionDepth: 6
    functionLinenumber: 1851
    functionLinenumberEnd: 1934
    functionName: evbuffer_prepend
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVUTIL_ASSERT
    - EVBUFFER_LOCK
    - evbuffer_invoke_callbacks_
    - evbuffer_chain_insert_new
    - evbuffer_chain_new_membuf
    - memcpy
    linkageType: ''
    returnType: int
    signature: int evbuffer_prepend(struct evbuffer *buf, const void *data, size_t
      datlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:1940,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:1941,1
    - Dst: memmove
      Src: /src/libevent/buffer.c:1942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - chain
    argTypes:
    - struct evbuffer_chain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1944
      start: 1937
    functionDepth: 1
    functionLinenumber: 1937
    functionLinenumberEnd: 1944
    functionName: evbuffer_chain_align
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached:
    - EVUTIL_ASSERT
    - memmove
    linkageType: ''
    returnType: void
    signature: void evbuffer_chain_align(struct evbuffer_chain *chain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - chain
    - datlen
    argTypes:
    - struct evbuffer_chain*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1958
      start: 1951
    functionDepth: 0
    functionLinenumber: 1951
    functionLinenumberEnd: 1958
    functionName: evbuffer_chain_should_realign
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int evbuffer_chain_should_realign(struct evbuffer_chain *chain,\n
      \   size_t datlen)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:1967,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:1974,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:1989,1
    - Dst: evbuffer_chain_should_realign
      Src: /src/libevent/buffer.c:2006,1
    - Dst: evbuffer_chain_align
      Src: /src/libevent/buffer.c:2007,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:2019,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:2024,1
    - Dst: evbuffer_chain_new_membuf
      Src: /src/libevent/buffer.c:2041,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:2047,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2050,1
    - Dst: evbuffer_chain_free
      Src: /src/libevent/buffer.c:2057,1
    - Dst: evbuffer_chain_insert_new
      Src: /src/libevent/buffer.c:2062,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2066,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2067,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:2067,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 62
    argCount: 2
    argNames:
    - buf
    - datlen
    argTypes:
    - struct evbuffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2070
      start: 1962
    functionDepth: 6
    functionLinenumber: 1962
    functionLinenumberEnd: 2070
    functionName: evbuffer_expand_singlechain
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached:
    - CHAIN_SPACE_LEN
    - ASSERT_EVBUFFER_LOCKED
    - EVUTIL_ASSERT
    - evbuffer_chain_should_realign
    - evbuffer_chain_free
    - evbuffer_chain_insert_new
    - evbuffer_chain_align
    - evbuffer_chain_new_membuf
    - memcpy
    linkageType: ''
    returnType: struct evbuffer_chain
    signature: 'struct evbuffer_chain *

      evbuffer_expand_singlechain(struct evbuffer *buf, size_t datlen)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:2081,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2082,1
    - Dst: evbuffer_chain_insert_new
      Src: /src/libevent/buffer.c:2087,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:2101,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2102,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2127,1
    - Dst: evbuffer_chain_new_membuf
      Src: /src/libevent/buffer.c:2129,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2144,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:2150,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2157,1
    - Dst: evbuffer_chain_free
      Src: /src/libevent/buffer.c:2158,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2160,1
    - Dst: evbuffer_chain_new_membuf
      Src: /src/libevent/buffer.c:2161,1
    - Dst: ZERO_CHAIN
      Src: /src/libevent/buffer.c:2164,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 72
    argCount: 3
    argNames:
    - buf
    - datlen
    - n
    argTypes:
    - struct evbuffer*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2181
      start: 2074
    functionDepth: 6
    functionLinenumber: 2074
    functionLinenumberEnd: 2181
    functionName: evbuffer_expand_fast_
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 3
    functionsReached:
    - CHAIN_SPACE_LEN
    - ASSERT_EVBUFFER_LOCKED
    - EVUTIL_ASSERT
    - evbuffer_chain_free
    - evbuffer_chain_insert_new
    - evbuffer_chain_new_membuf
    - ZERO_CHAIN
    linkageType: ''
    returnType: int
    signature: int evbuffer_expand_fast_(struct evbuffer *buf, size_t datlen, int
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:2188,1
    - Dst: evbuffer_expand_singlechain
      Src: /src/libevent/buffer.c:2189,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:2190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - datlen
    argTypes:
    - struct evbuffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2192
      start: 2183
    functionDepth: 7
    functionLinenumber: 2183
    functionLinenumberEnd: 2192
    functionName: evbuffer_expand
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    - evbuffer_expand_singlechain
    linkageType: ''
    returnType: int
    signature: int evbuffer_expand(struct evbuffer *buf, size_t datlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:2254,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2262,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:2263,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2268,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:2270,1
    - Dst: CHAIN_SPACE_PTR
      Src: /src/libevent/buffer.c:2273,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 6
    argNames:
    - buf
    - howmuch
    - vecs
    - n_vecs_avail
    - chainp
    - exact
    argTypes:
    - struct evbuffer*
    - ev_ssize_t
    - struct evbuffer_iovec*
    - int
    - struct evbuffer_chain***
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2281
      start: 2245
    functionDepth: 1
    functionLinenumber: 2245
    functionLinenumberEnd: 2281
    functionName: evbuffer_read_setup_vecs_
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 2
    functionsReached:
    - EVUTIL_ASSERT
    - CHAIN_SPACE_PTR
    - CHAIN_SPACE_LEN
    - ASSERT_EVBUFFER_LOCKED
    linkageType: ''
    returnType: int
    signature: "int evbuffer_read_setup_vecs_(struct evbuffer *buf, ev_ssize_t howmuch,\n
      \   struct evbuffer_iovec *vecs, int n_vecs_avail,\n    struct evbuffer_chain
      ***chainp, int exact)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ioctlsocket
      Src: /src/libevent/buffer.c:2288,1
    - Dst: ioctl
      Src: /src/libevent/buffer.c:2294,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2300
      start: 2283
    functionDepth: 0
    functionLinenumber: 2283
    functionLinenumberEnd: 2300
    functionName: get_n_bytes_readable_on_socket
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - ioctlsocket
    - ioctl
    linkageType: ''
    returnType: int
    signature: int get_n_bytes_readable_on_socket(evutil_socket_t fd)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:2318,1
    - Dst: get_n_bytes_readable_on_socket
      Src: /src/libevent/buffer.c:2325,1
    - Dst: evbuffer_expand_fast_
      Src: /src/libevent/buffer.c:2334,1
    - Dst: evbuffer_read_setup_vecs_
      Src: /src/libevent/buffer.c:2340,1
    - Dst: evbuffer_read_setup_vecs_
      Src: /src/libevent/buffer.c:2346,1
    - Dst: WSABUF_FROM_EVBUFFER_IOV
      Src: /src/libevent/buffer.c:2350,1
    - Dst: WSARecv
      Src: /src/libevent/buffer.c:2357,1
    - Dst: WSAGetLastError
      Src: /src/libevent/buffer.c:2360,1
    - Dst: read
      Src: /src/libevent/buffer.c:2370,1
    - Dst: readv
      Src: /src/libevent/buffer.c:2372,1
    - Dst: evbuffer_expand_singlechain
      Src: /src/libevent/buffer.c:2380,1
    - Dst: read
      Src: /src/libevent/buffer.c:2389,1
    - Dst: recv
      Src: /src/libevent/buffer.c:2391,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:2409,1
    - Dst: advance_last_with_data
      Src: /src/libevent/buffer.c:2426,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:2432,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:2435,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 74
    argCount: 3
    argNames:
    - buf
    - fd
    - howmuch
    argTypes:
    - struct evbuffer*
    - evutil_socket_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2437
      start: 2304
    functionDepth: 7
    functionLinenumber: 2304
    functionLinenumberEnd: 2437
    functionName: evbuffer_read
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached:
    - WSAGetLastError
    - CHAIN_SPACE_LEN
    - recv
    - EVBUFFER_UNLOCK
    - WSARecv
    - EVBUFFER_LOCK
    - evbuffer_expand_fast_
    - get_n_bytes_readable_on_socket
    - WSABUF_FROM_EVBUFFER_IOV
    - readv
    - evbuffer_expand_singlechain
    - advance_last_with_data
    - evbuffer_invoke_callbacks_
    - read
    - evbuffer_read_setup_vecs_
    linkageType: ''
    returnType: int
    signature: int evbuffer_read(struct evbuffer *buf, evutil_socket_t fd, int howmuch)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:2451,1
    - Dst: WSASend
      Src: /src/libevent/buffer.c:2479,1
    - Dst: write
      Src: /src/libevent/buffer.c:2487,1
    - Dst: writev
      Src: /src/libevent/buffer.c:2489,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - buffer
    - fd
    - howmuch
    argTypes:
    - struct evbuffer*
    - evutil_socket_t
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2492
      start: 2440
    functionDepth: 1
    functionLinenumber: 2440
    functionLinenumberEnd: 2492
    functionName: evbuffer_write_iovec
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - writev
    - WSASend
    - write
    - ASSERT_EVBUFFER_LOCKED
    linkageType: ''
    returnType: int
    signature: "int evbuffer_write_iovec(struct evbuffer *buffer, evutil_socket_t
      fd,\n    ev_ssize_t howmuch)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_CHAIN_EXTRA
      Src: /src/libevent/buffer.c:2502,1
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:2513,1
    - Dst: sendfile
      Src: /src/libevent/buffer.c:2516,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/buffer.c:2517,1
    - Dst: sendfile
      Src: /src/libevent/buffer.c:2522,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/buffer.c:2523,1
    - Dst: sendfile
      Src: /src/libevent/buffer.c:2528,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/buffer.c:2529,1
    - Dst: sendfile
      Src: /src/libevent/buffer.c:2537,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/buffer.c:2538,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 3
    argNames:
    - buffer
    - dest_fd
    - howmuch
    argTypes:
    - struct evbuffer*
    - evutil_socket_t
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2548
      start: 2496
    functionDepth: 1
    functionLinenumber: 2496
    functionLinenumberEnd: 2548
    functionName: evbuffer_write_sendfile
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_CHAIN_EXTRA
    - EVUTIL_ERR_RW_RETRIABLE
    - sendfile
    - ASSERT_EVBUFFER_LOCKED
    linkageType: ''
    returnType: int
    signature: "int evbuffer_write_sendfile(struct evbuffer *buffer, evutil_socket_t
      dest_fd,\n    ev_ssize_t howmuch)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:2557,1
    - Dst: evbuffer_write_sendfile
      Src: /src/libevent/buffer.c:2570,1
    - Dst: evbuffer_write_iovec
      Src: /src/libevent/buffer.c:2574,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/buffer.c:2578,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2579,1
    - Dst: send
      Src: /src/libevent/buffer.c:2580,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/buffer.c:2582,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2583,1
    - Dst: write
      Src: /src/libevent/buffer.c:2584,1
    - Dst: evbuffer_drain
      Src: /src/libevent/buffer.c:2592,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:2595,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - buffer
    - fd
    - howmuch
    argTypes:
    - struct evbuffer*
    - evutil_socket_t
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2597
      start: 2551
    functionDepth: 4
    functionLinenumber: 2551
    functionLinenumberEnd: 2597
    functionName: evbuffer_write_atmost
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - evbuffer_write_sendfile
    - evbuffer_pullup
    - EVUTIL_ASSERT
    - EVBUFFER_LOCK
    - write
    - evbuffer_drain
    - evbuffer_write_iovec
    - send
    linkageType: ''
    returnType: int
    signature: "int evbuffer_write_atmost(struct evbuffer *buffer, evutil_socket_t
      fd,\n    ev_ssize_t howmuch)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_write_atmost
      Src: /src/libevent/buffer.c:2602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - fd
    argTypes:
    - struct evbuffer*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2603
      start: 2599
    functionDepth: 5
    functionLinenumber: 2599
    functionLinenumberEnd: 2603
    functionName: evbuffer_write
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached:
    - evbuffer_write_atmost
    linkageType: ''
    returnType: int
    signature: int evbuffer_write(struct evbuffer *buffer, evutil_socket_t fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:2611,1
    - Dst: evbuffer_search
      Src: /src/libevent/buffer.c:2613,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/buffer.c:2617,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:2621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - buffer
    - what
    - len
    argTypes:
    - struct evbuffer*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2623
      start: 2605
    functionDepth: 4
    functionLinenumber: 2605
    functionLinenumberEnd: 2623
    functionName: evbuffer_find
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_pullup
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    - evbuffer_search
    linkageType: ''
    returnType: unsigned char
    signature: 'unsigned char *

      evbuffer_find(struct evbuffer *buffer, const unsigned char *what, size_t len)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/buffer.c:2646,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - buf
    - pos
    - howfar
    argTypes:
    - struct evbuffer*
    - struct evbuffer_ptr*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2648
      start: 2630
    functionDepth: 1
    functionLinenumber: 2630
    functionLinenumberEnd: 2648
    functionName: evbuffer_ptr_subtract
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached:
    - evbuffer_ptr_set
    linkageType: ''
    returnType: int
    signature: "int evbuffer_ptr_subtract(struct evbuffer *buf, struct evbuffer_ptr
      *pos,\n    size_t howfar)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:2658,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:2670,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2679,1
    - Dst: PTR_NOT_FOUND
      Src: /src/libevent/buffer.c:2693,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:2697,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 4
    argNames:
    - buf
    - pos
    - position
    - how
    argTypes:
    - struct evbuffer*
    - struct evbuffer_ptr*
    - size_t
    - enum evbuffer_ptr_how
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2700
      start: 2650
    functionDepth: 1
    functionLinenumber: 2650
    functionLinenumberEnd: 2700
    functionName: evbuffer_ptr_set
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached:
    - EVUTIL_ASSERT
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    - PTR_NOT_FOUND
    linkageType: ''
    returnType: int
    signature: "int evbuffer_ptr_set(struct evbuffer *buf, struct evbuffer_ptr *pos,\n
      \   size_t position, enum evbuffer_ptr_how how)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EVBUFFER_LOCKED
      Src: /src/libevent/buffer.c:2714,1
    - Dst: memcmp
      Src: /src/libevent/buffer.c:2729,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - buf
    - pos
    - mem
    - len
    argTypes:
    - struct evbuffer*
    - struct evbuffer_ptr*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2740
      start: 2706
    functionDepth: 1
    functionLinenumber: 2706
    functionLinenumberEnd: 2740
    functionName: evbuffer_ptr_memcmp
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - memcmp
    - ASSERT_EVBUFFER_LOCKED
    linkageType: ''
    returnType: int
    signature: "int evbuffer_ptr_memcmp(const struct evbuffer *buf, const struct evbuffer_ptr
      *pos,\n    const char *mem, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_search_range
      Src: /src/libevent/buffer.c:2745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buffer
    - what
    - len
    - start
    argTypes:
    - struct evbuffer*
    - char*
    - size_t
    - struct evbuffer_ptr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2746
      start: 2742
    functionDepth: 1
    functionLinenumber: 2742
    functionLinenumberEnd: 2746
    functionName: evbuffer_search
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 2
    functionsReached:
    - evbuffer_search_range
    linkageType: ''
    returnType: struct evbuffer_ptr
    signature: struct evbuffer_ptr evbuffer_search(struct evbuffer *buffer, const
      char *what, size_t len, const struct evbuffer_ptr *start)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:2756,1
    - Dst: memcpy
      Src: /src/libevent/buffer.c:2759,1
    - Dst: memchr
      Src: /src/libevent/buffer.c:2779,1
    - Dst: evbuffer_ptr_memcmp
      Src: /src/libevent/buffer.c:2784,1
    - Dst: PTR_NOT_FOUND
      Src: /src/libevent/buffer.c:2806,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:2808,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 5
    argNames:
    - buffer
    - what
    - len
    - start
    - end
    argTypes:
    - struct evbuffer*
    - char*
    - size_t
    - struct evbuffer_ptr*
    - struct evbuffer_ptr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2810
      start: 2748
    functionDepth: 2
    functionLinenumber: 2748
    functionLinenumberEnd: 2810
    functionName: evbuffer_search_range
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached:
    - EVBUFFER_UNLOCK
    - PTR_NOT_FOUND
    - EVBUFFER_LOCK
    - evbuffer_ptr_memcmp
    - memcpy
    - memchr
    linkageType: ''
    returnType: struct evbuffer_ptr
    signature: struct evbuffer_ptr evbuffer_search_range(struct evbuffer *buffer,
      const char *what, size_t len, const struct evbuffer_ptr *start, const struct
      evbuffer_ptr *end)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:2825,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:2865,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 5
    argNames:
    - buffer
    - len
    - start_at
    - vec
    - n_vec
    argTypes:
    - struct evbuffer*
    - ev_ssize_t
    - struct evbuffer_ptr*
    - struct evbuffer_iovec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2868
      start: 2812
    functionDepth: 1
    functionLinenumber: 2812
    functionLinenumberEnd: 2868
    functionName: evbuffer_peek
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: int
    signature: "int evbuffer_peek(struct evbuffer *buffer, ev_ssize_t len,\n    struct
      evbuffer_ptr *start_at,\n    struct evbuffer_iovec *vec, int n_vec)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:2881,1
    - Dst: evbuffer_expand_singlechain
      Src: /src/libevent/buffer.c:2888,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:2895,1
    - Dst: CHAIN_SPACE_PTR
      Src: /src/libevent/buffer.c:2898,1
    - Dst: CHAIN_SPACE_LEN
      Src: /src/libevent/buffer.c:2899,1
    - Dst: va_copy
      Src: /src/libevent/buffer.c:2904,1
    - Dst: evutil_vsnprintf
      Src: /src/libevent/buffer.c:2906,1
    - Dst: va_end
      Src: /src/libevent/buffer.c:2908,1
    - Dst: advance_last_with_data
      Src: /src/libevent/buffer.c:2920,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:2921,1
    - Dst: evbuffer_expand_singlechain
      Src: /src/libevent/buffer.c:2925,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:2931,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 3
    argNames:
    - buf
    - fmt
    - ap
    argTypes:
    - struct evbuffer*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2933
      start: 2871
    functionDepth: 7
    functionLinenumber: 2871
    functionLinenumberEnd: 2933
    functionName: evbuffer_add_vprintf
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 3
    functionsReached:
    - CHAIN_SPACE_LEN
    - EVBUFFER_UNLOCK
    - va_copy
    - EVUTIL_ASSERT
    - CHAIN_SPACE_PTR
    - EVBUFFER_LOCK
    - evbuffer_expand_singlechain
    - evbuffer_invoke_callbacks_
    - advance_last_with_data
    - va_end
    - evutil_vsnprintf
    linkageType: ''
    returnType: int
    signature: int evbuffer_add_vprintf(struct evbuffer *buf, const char *fmt, va_list
      ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dst
    - ','
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2903
      start: 2902
    functionDepth: 0
    functionLinenumber: 2902
    functionLinenumberEnd: 2903
    functionName: va_copy
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: va_copy(dst, src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libevent/buffer.c:2941,1
    - Dst: evbuffer_add_vprintf
      Src: /src/libevent/buffer.c:2942,1
    - Dst: va_end
      Src: /src/libevent/buffer.c:2943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - fmt
    argTypes:
    - struct evbuffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2946
      start: 2935
    functionDepth: 8
    functionLinenumber: 2935
    functionLinenumberEnd: 2946
    functionName: evbuffer_add_printf
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 17
    functionsReached:
    - va_end
    - evbuffer_add_vprintf
    - va_start
    linkageType: ''
    returnType: int
    signature: int evbuffer_add_printf(struct evbuffer *buf, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_add_reference_with_offset
      Src: /src/libevent/buffer.c:2953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - outbuf
    - data
    - datlen
    - cleanupfn
    - extra
    argTypes:
    - struct evbuffer*
    - void*
    - size_t
    - evbuffer_ref_cleanup_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2954
      start: 2948
    functionDepth: 1
    functionLinenumber: 2948
    functionLinenumberEnd: 2954
    functionName: evbuffer_add_reference
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_reference_with_offset
    linkageType: ''
    returnType: int
    signature: "int evbuffer_add_reference(struct evbuffer *outbuf,\n    const void
      *data, size_t datlen,\n    evbuffer_ref_cleanup_cb cleanupfn, void *extra)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_chain_new
      Src: /src/libevent/buffer.c:2965,1
    - Dst: EVBUFFER_CHAIN_EXTRA
      Src: /src/libevent/buffer.c:2974,1
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:2978,1
    - Dst: mm_free
      Src: /src/libevent/buffer.c:2982,1
    - Dst: evbuffer_chain_insert
      Src: /src/libevent/buffer.c:2985,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:2988,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:2992,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 6
    argNames:
    - outbuf
    - data
    - offset
    - datlen
    - cleanupfn
    - extra
    argTypes:
    - struct evbuffer*
    - void*
    - size_t
    - size_t
    - evbuffer_ref_cleanup_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2995
      start: 2956
    functionDepth: 5
    functionLinenumber: 2956
    functionLinenumberEnd: 2995
    functionName: evbuffer_add_reference_with_offset
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_CHAIN_EXTRA
    - mm_free
    - evbuffer_chain_new
    - EVBUFFER_LOCK
    - evbuffer_invoke_callbacks_
    - evbuffer_chain_insert
    linkageType: ''
    returnType: int
    signature: "int evbuffer_add_reference_with_offset(struct evbuffer *outbuf, const
      void *data,\n\tsize_t offset, size_t datlen, evbuffer_ref_cleanup_cb cleanupfn,\n\tvoid
      *extra)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/buffer.c:3005,1
    - Dst: evutil_fd_filesize
      Src: /src/libevent/buffer.c:3015,1
    - Dst: "offset < 0 || length < 0 ||\n\t    ((ev_uint64_t)length > EVBUFFER_CHAIN_MAX)
        ||\n\t    (ev_uint64_t)offset >"
      Src: /src/libevent/buffer.c:3021,1
    - Dst: evbuffer_file_segment_materialize
      Src: /src/libevent/buffer.c:3033,1
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/buffer.c:3040,1
    - Dst: mm_free
      Src: /src/libevent/buffer.c:3044,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 4
    argNames:
    - fd
    - offset
    - length
    - flags
    argTypes:
    - int
    - ev_off_t
    - ev_off_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3046
      start: 3000
    functionDepth: 1
    functionLinenumber: 3000
    functionLinenumberEnd: 3046
    functionName: evbuffer_file_segment_new
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVTHREAD_ALLOC_LOCK
    - mm_free
    - evutil_fd_filesize
    - evbuffer_file_segment_materialize
    - mm_calloc
    - "offset < 0 || length < 0 ||\n\t    ((ev_uint64_t)length > EVBUFFER_CHAIN_MAX)
      ||\n\t    (ev_uint64_t)offset >"
    linkageType: ''
    returnType: struct evbuffer_file_segment
    signature: "struct evbuffer_file_segment *\nevbuffer_file_segment_new(\n\tint
      fd, ev_off_t offset, ev_off_t length, unsigned flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/libevent/buffer.c:3053,1
    - Dst: sysconf
      Src: /src/libevent/buffer.c:3055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3059
      start: 3049
    functionDepth: 0
    functionLinenumber: 3049
    functionLinenumberEnd: 3059
    functionName: get_page_size
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - sysconf
    linkageType: ''
    returnType: long
    signature: long get_page_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:3204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - seg
    - cb
    - arg
    argTypes:
    - struct evbuffer_file_segment*
    - evbuffer_file_segment_cleanup_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3207
      start: 3201
    functionDepth: 1
    functionLinenumber: 3201
    functionLinenumberEnd: 3207
    functionName: evbuffer_file_segment_add_cleanup_cb
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: void
    signature: "void evbuffer_file_segment_add_cleanup_cb(struct evbuffer_file_segment
      *seg,\n\tevbuffer_file_segment_cleanup_cb cb, void* arg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/buffer.c:3213,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/buffer.c:3215,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/buffer.c:3218,1
    - Dst: CloseHandle
      Src: /src/libevent/buffer.c:3222,1
    - Dst: get_page_size
      Src: /src/libevent/buffer.c:3225,1
    - Dst: munmap
      Src: /src/libevent/buffer.c:3226,1
    - Dst: event_warn
      Src: /src/libevent/buffer.c:3227,1
    - Dst: mm_free
      Src: /src/libevent/buffer.c:3230,1
    - Dst: close
      Src: /src/libevent/buffer.c:3234,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/buffer.c:3244,1
    - Dst: mm_free
      Src: /src/libevent/buffer.c:3245,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - seg
    argTypes:
    - struct evbuffer_file_segment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3246
      start: 3209
    functionDepth: 1
    functionLinenumber: 3209
    functionLinenumberEnd: 3246
    functionName: evbuffer_file_segment_free
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 1
    functionsReached:
    - close
    - mm_free
    - EVLOCK_UNLOCK
    - EVUTIL_ASSERT
    - CloseHandle
    - event_warn
    - get_page_size
    - EVTHREAD_FREE_LOCK
    - munmap
    - EVLOCK_LOCK
    linkageType: ''
    returnType: void
    signature: void evbuffer_file_segment_free(struct evbuffer_file_segment *seg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:3256,1
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/buffer.c:3257,1
    - Dst: evbuffer_file_segment_materialize
      Src: /src/libevent/buffer.c:3261,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/buffer.c:3262,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/buffer.c:3266,1
    - Dst: evbuffer_chain_new
      Src: /src/libevent/buffer.c:3281,1
    - Dst: EVBUFFER_CHAIN_EXTRA
      Src: /src/libevent/buffer.c:3284,1
    - Dst: memset
      Src: /src/libevent/buffer.c:3299,1
    - Dst: GetSystemInfo
      Src: /src/libevent/buffer.c:3300,1
    - Dst: MapViewOfFile
      Src: /src/libevent/buffer.c:3304,1
    - Dst: mm_free
      Src: /src/libevent/buffer.c:3311,1
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/buffer.c:3329,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/buffer.c:3331,1
    - Dst: evbuffer_chain_insert
      Src: /src/libevent/buffer.c:3334,1
    - Dst: evbuffer_invoke_callbacks_
      Src: /src/libevent/buffer.c:3336,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:3338,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:3342,1
    - Dst: evbuffer_file_segment_free
      Src: /src/libevent/buffer.c:3343,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 76
    argCount: 4
    argNames:
    - buf
    - seg
    - offset
    - length
    argTypes:
    - struct evbuffer*
    - struct evbuffer_file_segment*
    - ev_off_t
    - ev_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3345
      start: 3248
    functionDepth: 5
    functionLinenumber: 3248
    functionLinenumberEnd: 3345
    functionName: evbuffer_add_file_segment
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_CHAIN_EXTRA
    - mm_free
    - evbuffer_file_segment_materialize
    - EVLOCK_UNLOCK
    - GetSystemInfo
    - evbuffer_chain_new
    - EVBUFFER_LOCK
    - MapViewOfFile
    - evbuffer_invoke_callbacks_
    - memset
    - evbuffer_chain_insert
    - EVLOCK_LOCK
    - evbuffer_file_segment_free
    linkageType: ''
    returnType: int
    signature: "int evbuffer_add_file_segment(struct evbuffer *buf,\n    struct evbuffer_file_segment
      *seg, ev_off_t offset, ev_off_t length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_file_segment_new
      Src: /src/libevent/buffer.c:3354,1
    - Dst: evbuffer_add_file_segment
      Src: /src/libevent/buffer.c:3357,1
    - Dst: evbuffer_file_segment_free
      Src: /src/libevent/buffer.c:3359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - buf
    - fd
    - offset
    - length
    argTypes:
    - struct evbuffer*
    - int
    - ev_off_t
    - ev_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3361
      start: 3347
    functionDepth: 6
    functionLinenumber: 3347
    functionLinenumberEnd: 3361
    functionName: evbuffer_add_file
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_file_segment
    - evbuffer_file_segment_free
    - evbuffer_file_segment_new
    linkageType: ''
    returnType: int
    signature: int evbuffer_add_file(struct evbuffer *buf, int fd, ev_off_t offset,
      ev_off_t length)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:3366,1
    - Dst: LIST_EMPTY
      Src: /src/libevent/buffer.c:3368,1
    - Dst: evbuffer_remove_all_callbacks
      Src: /src/libevent/buffer.c:3369,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/buffer.c:3373,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:3375,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:3381,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - buffer
    - cb
    - cbarg
    argTypes:
    - struct evbuffer*
    - evbuffer_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3383
      start: 3363
    functionDepth: 2
    functionLinenumber: 3363
    functionLinenumberEnd: 3383
    functionName: evbuffer_setcb
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - evbuffer_add_cb
    - evbuffer_remove_all_callbacks
    - EVBUFFER_LOCK
    - LIST_EMPTY
    linkageType: ''
    returnType: int
    signature: int evbuffer_setcb(struct evbuffer *buffer, evbuffer_cb cb, void *cbarg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/buffer.c:3389,1
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:3391,1
    - Dst: LIST_INSERT_HEAD
      Src: /src/libevent/buffer.c:3395,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:3396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - buffer
    - cb
    - cbarg
    argTypes:
    - struct evbuffer*
    - evbuffer_cb_func
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3398
      start: 3385
    functionDepth: 1
    functionLinenumber: 3385
    functionLinenumberEnd: 3398
    functionName: evbuffer_add_cb
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 2
    functionsReached:
    - EVBUFFER_UNLOCK
    - mm_calloc
    - EVBUFFER_LOCK
    - LIST_INSERT_HEAD
    linkageType: ''
    returnType: struct evbuffer_cb_entry
    signature: 'struct evbuffer_cb_entry *

      evbuffer_add_cb(struct evbuffer *buffer, evbuffer_cb_func cb, void *cbarg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:3404,1
    - Dst: LIST_REMOVE
      Src: /src/libevent/buffer.c:3405,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:3406,1
    - Dst: mm_free
      Src: /src/libevent/buffer.c:3407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - buffer
    - ent
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3409
      start: 3400
    functionDepth: 1
    functionLinenumber: 3400
    functionLinenumberEnd: 3409
    functionName: evbuffer_remove_cb_entry
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    - mm_free
    - LIST_REMOVE
    linkageType: ''
    returnType: int
    signature: "int evbuffer_remove_cb_entry(struct evbuffer *buffer,\n\t\t\t struct
      evbuffer_cb_entry *ent)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:3416,1
    - Dst: LIST_FOREACH
      Src: /src/libevent/buffer.c:3417,1
    - Dst: evbuffer_remove_cb_entry
      Src: /src/libevent/buffer.c:3419,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:3424,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - buffer
    - cb
    - cbarg
    argTypes:
    - struct evbuffer*
    - evbuffer_cb_func
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3426
      start: 3411
    functionDepth: 2
    functionLinenumber: 3411
    functionLinenumberEnd: 3426
    functionName: evbuffer_remove_cb
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - LIST_FOREACH
    - EVBUFFER_LOCK
    - evbuffer_remove_cb_entry
    - EVBUFFER_UNLOCK
    linkageType: ''
    returnType: int
    signature: int evbuffer_remove_cb(struct evbuffer *buffer, evbuffer_cb_func cb,
      void *cbarg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:3434,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:3436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - buffer
    - cb
    - flags
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_entry*
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3438
      start: 3428
    functionDepth: 1
    functionLinenumber: 3428
    functionLinenumberEnd: 3438
    functionName: evbuffer_cb_set_flags
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: int
    signature: "int evbuffer_cb_set_flags(struct evbuffer *buffer,\n\t\t      struct
      evbuffer_cb_entry *cb, ev_uint32_t flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:3446,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:3448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - buffer
    - cb
    - flags
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_entry*
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3450
      start: 3440
    functionDepth: 1
    functionLinenumber: 3440
    functionLinenumberEnd: 3450
    functionName: evbuffer_cb_clear_flags
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: int
    signature: "int evbuffer_cb_clear_flags(struct evbuffer *buffer,\n\t\t      struct
      evbuffer_cb_entry *cb, ev_uint32_t flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:3455,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:3460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - buffer
    - start
    argTypes:
    - struct evbuffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3462
      start: 3452
    functionDepth: 1
    functionLinenumber: 3452
    functionLinenumberEnd: 3462
    functionName: evbuffer_freeze
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 5
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: int
    signature: int evbuffer_freeze(struct evbuffer *buffer, int start)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:3467,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:3472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - buffer
    - start
    argTypes:
    - struct evbuffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3474
      start: 3464
    functionDepth: 1
    functionLinenumber: 3464
    functionLinenumberEnd: 3474
    functionName: evbuffer_unfreeze
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 6
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: int
    signature: int evbuffer_unfreeze(struct evbuffer *buffer, int start)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/buffer.c:3481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buffer
    - cb
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3484
      start: 3477
    functionDepth: 2
    functionLinenumber: 3477
    functionLinenumberEnd: 3484
    functionName: evbuffer_cb_suspend
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_get_length
    linkageType: ''
    returnType: void
    signature: void evbuffer_cb_suspend(struct evbuffer *buffer, struct evbuffer_cb_entry
      *cb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct evbuffer_cb_entry*::cb
      Src: /src/libevent/buffer.c:3496,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/buffer.c:3496,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - buffer
    - cb
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3499
      start: 3486
    functionDepth: 2
    functionLinenumber: 3486
    functionLinenumberEnd: 3499
    functionName: evbuffer_cb_unsuspend
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - struct evbuffer_cb_entry*::cb
    - evbuffer_get_length
    linkageType: ''
    returnType: void
    signature: void evbuffer_cb_unsuspend(struct evbuffer *buffer, struct evbuffer_cb_entry
      *cb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVBUFFER_LOCK
      Src: /src/libevent/buffer.c:3507,1
    - Dst: EVBUFFER_UNLOCK
      Src: /src/libevent/buffer.c:3517,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - buffer
    - cbs
    - max_cbs
    argTypes:
    - struct evbuffer*
    - struct event_callback**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3519
      start: 3502
    functionDepth: 1
    functionLinenumber: 3502
    functionLinenumberEnd: 3519
    functionName: evbuffer_get_callbacks_
    functionSourceFile: /src/libevent/buffer.c
    functionUses: 0
    functionsReached:
    - EVBUFFER_UNLOCK
    - EVBUFFER_LOCK
    linkageType: ''
    returnType: int
    signature: "int evbuffer_get_callbacks_(struct evbuffer *buffer, struct event_callback
      **cbs,\n    int max_cbs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/evthread_pthread.c:52,1
    - Dst: pthread_mutex_init
      Src: /src/libevent/evthread_pthread.c:57,1
    - Dst: mm_free
      Src: /src/libevent/evthread_pthread.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - locktype
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: evthread_posix_lock_alloc
    functionSourceFile: /src/libevent/evthread_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_init
    - mm_free
    - mm_malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      evthread_posix_lock_alloc(unsigned locktype)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_destroy
      Src: /src/libevent/evthread_pthread.c:68,1
    - Dst: mm_free
      Src: /src/libevent/evthread_pthread.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lock_
    - locktype
    argTypes:
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: evthread_posix_lock_free
    functionSourceFile: /src/libevent/evthread_pthread.c
    functionUses: 0
    functionsReached:
    - mm_free
    - pthread_mutex_destroy
    linkageType: ''
    returnType: void
    signature: void evthread_posix_lock_free(void *lock_, unsigned locktype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_trylock
      Src: /src/libevent/evthread_pthread.c:77,1
    - Dst: pthread_mutex_lock
      Src: /src/libevent/evthread_pthread.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mode
    - lock_
    argTypes:
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 80
    functionName: evthread_posix_lock
    functionSourceFile: /src/libevent/evthread_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_trylock
    linkageType: ''
    returnType: int
    signature: int evthread_posix_lock(unsigned mode, void *lock_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/libevent/evthread_pthread.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mode
    - lock_
    argTypes:
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: evthread_posix_unlock
    functionSourceFile: /src/libevent/evthread_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: int
    signature: int evthread_posix_unlock(unsigned mode, void *lock_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/evthread_pthread.c:101,1
    - Dst: pthread_self
      Src: /src/libevent/evthread_pthread.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 105
    functionName: evthread_posix_get_id
    functionSourceFile: /src/libevent/evthread_pthread.c
    functionUses: 0
    functionsReached:
    - memset
    - pthread_self
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long evthread_posix_get_id(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/evthread_pthread.c:110,1
    - Dst: pthread_cond_init
      Src: /src/libevent/evthread_pthread.c:113,1
    - Dst: mm_free
      Src: /src/libevent/evthread_pthread.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - condflags
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 118
    functionName: evthread_posix_cond_alloc
    functionSourceFile: /src/libevent/evthread_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_cond_init
    - mm_free
    - mm_malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      evthread_posix_cond_alloc(unsigned condflags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_cond_destroy
      Src: /src/libevent/evthread_pthread.c:124,1
    - Dst: mm_free
      Src: /src/libevent/evthread_pthread.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cond_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: evthread_posix_cond_free
    functionSourceFile: /src/libevent/evthread_pthread.c
    functionUses: 0
    functionsReached:
    - mm_free
    - pthread_cond_destroy
    linkageType: ''
    returnType: void
    signature: void evthread_posix_cond_free(void *cond_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_cond_broadcast
      Src: /src/libevent/evthread_pthread.c:134,1
    - Dst: pthread_cond_signal
      Src: /src/libevent/evthread_pthread.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cond_
    - broadcast
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 138
    functionName: evthread_posix_cond_signal
    functionSourceFile: /src/libevent/evthread_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_cond_signal
    - pthread_cond_broadcast
    linkageType: ''
    returnType: int
    signature: int evthread_posix_cond_signal(void *cond_, int broadcast)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/evthread_pthread.c:150,1
    - Dst: evutil_timeradd
      Src: /src/libevent/evthread_pthread.c:151,1
    - Dst: pthread_cond_timedwait
      Src: /src/libevent/evthread_pthread.c:154,1
    - Dst: pthread_cond_wait
      Src: /src/libevent/evthread_pthread.c:162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - cond_
    - lock_
    - tv
    argTypes:
    - void*
    - void*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 165
    functionName: evthread_posix_cond_wait
    functionSourceFile: /src/libevent/evthread_pthread.c
    functionUses: 0
    functionsReached:
    - pthread_cond_timedwait
    - evutil_gettimeofday
    - evutil_timeradd
    - pthread_cond_wait
    linkageType: ''
    returnType: int
    signature: int evthread_posix_cond_wait(void *cond_, void *lock_, const struct
      timeval *tv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/libevent/evthread_pthread.c:186,1
    - Dst: pthread_mutex_unlock
      Src: /src/libevent/evthread_pthread.c:188,1
    - Dst: pthread_mutexattr_init
      Src: /src/libevent/evthread_pthread.c:192,1
    - Dst: pthread_mutexattr_init
      Src: /src/libevent/evthread_pthread.c:196,1
    - Dst: pthread_mutexattr_settype
      Src: /src/libevent/evthread_pthread.c:198,1
    - Dst: pthread_mutexattr_setprotocol
      Src: /src/libevent/evthread_pthread.c:204,1
    - Dst: pthread_mutexattr_setprotocol
      Src: /src/libevent/evthread_pthread.c:206,1
    - Dst: evthread_set_lock_callbacks
      Src: /src/libevent/evthread_pthread.c:213,1
    - Dst: evthread_set_condition_callbacks
      Src: /src/libevent/evthread_pthread.c:214,1
    - Dst: evthread_set_id_callback
      Src: /src/libevent/evthread_pthread.c:215,1
    - Dst: pthread_mutex_unlock
      Src: /src/libevent/evthread_pthread.c:218,1
    - Dst: pthread_mutex_unlock
      Src: /src/libevent/evthread_pthread.c:221,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 223
    functionName: evthread_use_pthreads_with_flags
    functionSourceFile: /src/libevent/evthread_pthread.c
    functionUses: 0
    functionsReached:
    - evthread_set_lock_callbacks
    - pthread_mutexattr_setprotocol
    - pthread_mutex_lock
    - evthread_set_id_callback
    - pthread_mutex_unlock
    - pthread_mutexattr_settype
    - evthread_set_condition_callbacks
    - pthread_mutexattr_init
    linkageType: ''
    returnType: int
    signature: int evthread_use_pthreads_with_flags(int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evthread_use_pthreads_with_flags
      Src: /src/libevent/evthread_pthread.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: evthread_use_pthreads
    functionSourceFile: /src/libevent/evthread_pthread.c
    functionUses: 0
    functionsReached:
    - evthread_use_pthreads_with_flags
    linkageType: ''
    returnType: int
    signature: int evthread_use_pthreads(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/bufferevent_openssl.c:70,1
    - Dst: ERR_get_error
      Src: /src/libevent/bufferevent_openssl.c:72,1
    - Dst: ERR_reason_error_string
      Src: /src/libevent/bufferevent_openssl.c:73,1
    - Dst: ERR_lib_error_string
      Src: /src/libevent/bufferevent_openssl.c:74,1
    - Dst: ERR_func_error_string
      Src: /src/libevent/bufferevent_openssl.c:75,1
    - Dst: printf
      Src: /src/libevent/bufferevent_openssl.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 79
    functionName: print_err
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - ERR_lib_error_string
    - ERR_get_error
    - ERR_reason_error_string
    - printf
    - ERR_func_error_string
    linkageType: ''
    returnType: void
    signature: void print_err(int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: print_err
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void print_err(int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_init
      Src: /src/libevent/bufferevent_openssl.c:91,1
    - Dst: BIO_set_data
      Src: /src/libevent/bufferevent_openssl.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: bio_bufferevent_new
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int bio_bufferevent_new(BIO *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_shutdown
      Src: /src/libevent/bufferevent_openssl.c:102,1
    - Dst: BIO_get_init
      Src: /src/libevent/bufferevent_openssl.c:103,1
    - Dst: BIO_get_data
      Src: /src/libevent/bufferevent_openssl.c:103,1
    - Dst: bufferevent_free
      Src: /src/libevent/bufferevent_openssl.c:104,1
    - Dst: BIO_get_data
      Src: /src/libevent/bufferevent_openssl.c:104,1
    - Dst: BIO_free
      Src: /src/libevent/bufferevent_openssl.c:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: bio_bufferevent_free
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_get_init
    - bufferevent_free
    - BIO_get_data
    - BIO_free
    - BIO_get_shutdown
    linkageType: ''
    returnType: int
    signature: int bio_bufferevent_free(BIO *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/libevent/bufferevent_openssl.c:117,1
    - Dst: BIO_get_data
      Src: /src/libevent/bufferevent_openssl.c:121,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/bufferevent_openssl.c:124,1
    - Dst: BIO_get_data
      Src: /src/libevent/bufferevent_openssl.c:124,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_openssl.c:125,1
    - Dst: BIO_set_retry_read
      Src: /src/libevent/bufferevent_openssl.c:127,1
    - Dst: evbuffer_remove
      Src: /src/libevent/bufferevent_openssl.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - b
    - out
    - outlen
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 111
    functionDepth: 5
    functionLinenumber: 111
    functionLinenumberEnd: 134
    functionName: bio_bufferevent_read
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_set_retry_read
    - bufferevent_get_input
    - BIO_clear_retry_flags
    - evbuffer_remove
    - evbuffer_get_length
    - BIO_get_data
    linkageType: ''
    returnType: int
    signature: int bio_bufferevent_read(BIO *b, char *out, int outlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/libevent/bufferevent_openssl.c:140,1
    - Dst: BIO_clear_retry_flags
      Src: /src/libevent/bufferevent_openssl.c:144,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/bufferevent_openssl.c:149,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_openssl.c:150,1
    - Dst: BIO_set_retry_write
      Src: /src/libevent/bufferevent_openssl.c:157,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_openssl.c:163,1
    - Dst: evbuffer_add
      Src: /src/libevent/bufferevent_openssl.c:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - b
    - in
    - inlen
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 137
    functionDepth: 7
    functionLinenumber: 137
    functionLinenumberEnd: 166
    functionName: bio_bufferevent_write
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_output
    - BIO_set_retry_write
    - evbuffer_add
    - EVUTIL_ASSERT
    - BIO_clear_retry_flags
    - evbuffer_get_length
    - BIO_get_data
    linkageType: ''
    returnType: int
    signature: int bio_bufferevent_write(BIO *b, const char *in, int inlen)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/libevent/bufferevent_openssl.c:172,1
    - Dst: BIO_get_shutdown
      Src: /src/libevent/bufferevent_openssl.c:177,1
    - Dst: BIO_set_shutdown
      Src: /src/libevent/bufferevent_openssl.c:180,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_openssl.c:183,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/bufferevent_openssl.c:183,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_openssl.c:186,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/bufferevent_openssl.c:186,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 199
    functionName: bio_bufferevent_ctrl
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_output
    - bufferevent_get_input
    - BIO_set_shutdown
    - evbuffer_get_length
    - BIO_get_data
    - BIO_get_shutdown
    linkageType: ''
    returnType: long
    signature: long bio_bufferevent_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bio_bufferevent_write
      Src: /src/libevent/bufferevent_openssl.c:205,1
    - Dst: strlen
      Src: /src/libevent/bufferevent_openssl.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - s
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: bio_bufferevent_puts
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - strlen
    - bio_bufferevent_write
    linkageType: ''
    returnType: int
    signature: int bio_bufferevent_puts(BIO *b, const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_new
      Src: /src/libevent/bufferevent_openssl.c:216,1
    - Dst: BIO_meth_set_write
      Src: /src/libevent/bufferevent_openssl.c:219,1
    - Dst: BIO_meth_set_read
      Src: /src/libevent/bufferevent_openssl.c:220,1
    - Dst: BIO_meth_set_puts
      Src: /src/libevent/bufferevent_openssl.c:221,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/libevent/bufferevent_openssl.c:222,1
    - Dst: BIO_meth_set_create
      Src: /src/libevent/bufferevent_openssl.c:223,1
    - Dst: BIO_meth_set_destroy
      Src: /src/libevent/bufferevent_openssl.c:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 227
    functionName: BIO_s_bufferevent
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_meth_new
    - BIO_meth_set_destroy
    - BIO_meth_set_ctrl
    - BIO_meth_set_puts
    - BIO_meth_set_read
    - BIO_meth_set_write
    - BIO_meth_set_create
    linkageType: ''
    returnType: BIO_METHOD
    signature: 'BIO_METHOD *

      BIO_s_bufferevent(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/libevent/bufferevent_openssl.c:237,1
    - Dst: BIO_s_bufferevent
      Src: /src/libevent/bufferevent_openssl.c:237,1
    - Dst: BIO_set_init
      Src: /src/libevent/bufferevent_openssl.c:239,1
    - Dst: BIO_set_data
      Src: /src/libevent/bufferevent_openssl.c:240,1
    - Dst: BIO_set_shutdown
      Src: /src/libevent/bufferevent_openssl.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - bufferevent
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 245
    functionName: BIO_new_bufferevent
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - BIO_new
    - BIO_set_shutdown
    - BIO_s_bufferevent
    - BIO_set_data
    linkageType: ''
    returnType: BIO
    signature: 'BIO *

      BIO_new_bufferevent(struct bufferevent *bufferevent)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_shutdown
      Src: /src/libevent/bufferevent_openssl.c:257,1
    - Dst: ERR_peek_error
      Src: /src/libevent/bufferevent_openssl.c:264,1
    - Dst: bufferevent_ssl_put_error
      Src: /src/libevent/bufferevent_openssl.c:266,1
    - Dst: SSL_is_init_finished
      Src: /src/libevent/bufferevent_openssl.c:270,1
    - Dst: bufferevent_ssl_put_error
      Src: /src/libevent/bufferevent_openssl.c:272,1
    - Dst: bufferevent_ssl_put_error
      Src: /src/libevent/bufferevent_openssl.c:276,1
    - Dst: event_warnx
      Src: /src/libevent/bufferevent_openssl.c:285,1
    - Dst: ERR_get_error
      Src: /src/libevent/bufferevent_openssl.c:289,1
    - Dst: bufferevent_ssl_put_error
      Src: /src/libevent/bufferevent_openssl.c:290,1
    - Dst: bufferevent_ssl_stop_reading
      Src: /src/libevent/bufferevent_openssl.c:296,1
    - Dst: bufferevent_ssl_stop_writing
      Src: /src/libevent/bufferevent_openssl.c:297,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_openssl.c:301,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 4
    argNames:
    - bev_ssl
    - when
    - errcode
    - ret
    argTypes:
    - struct bufferevent_ssl*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 302
    functionName: conn_closed
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - ERR_peek_error
    - bufferevent_ssl_put_error
    - ERR_get_error
    - bufferevent_ssl_stop_reading
    - bufferevent_ssl_stop_writing
    - bufferevent_run_eventcb_
    - SSL_is_init_finished
    - SSL_get_shutdown
    - event_warnx
    linkageType: ''
    returnType: void
    signature: void conn_closed(struct bufferevent_ssl *bev_ssl, int when, int errcode,
      int ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_wbio
      Src: /src/libevent/bufferevent_openssl.c:309,1
    - Dst: BIO_number_written
      Src: /src/libevent/bufferevent_openssl.c:310,1
    - Dst: SSL_get_rbio
      Src: /src/libevent/bufferevent_openssl.c:311,1
    - Dst: BIO_number_read
      Src: /src/libevent/bufferevent_openssl.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 313
    functionName: init_bio_counts
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_wbio
    - BIO_number_written
    - SSL_get_rbio
    - BIO_number_read
    linkageType: ''
    returnType: void
    signature: void init_bio_counts(struct bufferevent_ssl *bev_ssl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_number_written
      Src: /src/libevent/bufferevent_openssl.c:318,1
    - Dst: SSL_get_wbio
      Src: /src/libevent/bufferevent_openssl.c:318,1
    - Dst: BIO_number_read
      Src: /src/libevent/bufferevent_openssl.c:319,1
    - Dst: SSL_get_rbio
      Src: /src/libevent/bufferevent_openssl.c:319,1
    - Dst: bufferevent_decrement_write_buckets_
      Src: /src/libevent/bufferevent_openssl.c:324,1
    - Dst: bufferevent_decrement_read_buckets_
      Src: /src/libevent/bufferevent_openssl.c:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 329
    functionName: decrement_buckets
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_number_written
    - SSL_get_rbio
    - SSL_get_wbio
    - bufferevent_decrement_read_buckets_
    - bufferevent_decrement_write_buckets_
    - BIO_number_read
    linkageType: ''
    returnType: void
    signature: void decrement_buckets(struct bufferevent_ssl *bev_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_set_mode
      Src: /src/libevent/bufferevent_openssl.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 339
    functionName: SSL_init
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - SSL_set_mode
    linkageType: ''
    returnType: void
    signature: 'void *

      SSL_init(void *ssl)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_free
      Src: /src/libevent/bufferevent_openssl.c:345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ssl
    - flags
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 346
    functionName: SSL_context_free
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - SSL_free
    linkageType: ''
    returnType: void
    signature: void SSL_context_free(void *ssl, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 353
    functionName: SSL_handshake_is_ok
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_handshake_is_ok(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 359
    functionName: SSL_is_want_read
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_is_want_read(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 365
    functionName: SSL_is_want_write
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_is_want_write(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_read
      Src: /src/libevent/bufferevent_openssl.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ssl
    - buf
    - len
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 371
    functionName: openssl_read
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - SSL_read
    linkageType: ''
    returnType: int
    signature: int openssl_read(void *ssl, unsigned char *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_write
      Src: /src/libevent/bufferevent_openssl.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ssl
    - buf
    - len
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 377
    functionName: openssl_write
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - SSL_write
    linkageType: ''
    returnType: int
    signature: int openssl_write(void *ssl, const unsigned char *buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_wbio
      Src: /src/libevent/bufferevent_openssl.c:383,1
    - Dst: BIO_get_fd
      Src: /src/libevent/bufferevent_openssl.c:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 387
    functionName: be_openssl_get_fd
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_wbio
    - BIO_get_fd
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t be_openssl_get_fd(struct bufferevent_ssl *bev_ssl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_socket
      Src: /src/libevent/bufferevent_openssl.c:394,1
    - Dst: SSL_set_bio
      Src: /src/libevent/bufferevent_openssl.c:395,1
    - Dst: BIO_new_bufferevent
      Src: /src/libevent/bufferevent_openssl.c:398,1
    - Dst: SSL_set_bio
      Src: /src/libevent/bufferevent_openssl.c:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bev_ssl
    - fd
    argTypes:
    - struct bufferevent_ssl*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 389
    functionDepth: 3
    functionLinenumber: 389
    functionLinenumberEnd: 403
    functionName: be_openssl_bio_set_fd
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_new_socket
    - SSL_set_bio
    - BIO_new_bufferevent
    linkageType: ''
    returnType: int
    signature: int be_openssl_bio_set_fd(struct bufferevent_ssl *bev_ssl, evutil_socket_t
      fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_pending
      Src: /src/libevent/bufferevent_openssl.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: SSL_pending_wrap
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - SSL_pending
    linkageType: ''
    returnType: size_t
    signature: size_t SSL_pending_wrap(void *ssl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_bufferevent
      Src: /src/libevent/bufferevent_openssl.c:447,1
    - Dst: SSL_set_bio
      Src: /src/libevent/bufferevent_openssl.c:450,1
    - Dst: bufferevent_ssl_new_impl
      Src: /src/libevent/bufferevent_openssl.c:452,1
    - Dst: SSL_free
      Src: /src/libevent/bufferevent_openssl.c:458,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - base
    - underlying
    - ssl
    - state
    - options
    argTypes:
    - struct event_base*
    - struct bufferevent*
    - SSL*
    - enum bufferevent_ssl_state
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 435
    functionDepth: 3
    functionLinenumber: 435
    functionLinenumberEnd: 460
    functionName: bufferevent_openssl_filter_new
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - SSL_free
    - bufferevent_ssl_new_impl
    - SSL_set_bio
    - BIO_new_bufferevent
    linkageType: ''
    returnType: struct bufferevent
    signature: "struct bufferevent *\nbufferevent_openssl_filter_new(struct event_base
      *base,\n    struct bufferevent *underlying,\n    SSL *ssl,\n    enum bufferevent_ssl_state
      state,\n    int options)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_wbio
      Src: /src/libevent/bufferevent_openssl.c:470,1
    - Dst: BIO_get_fd
      Src: /src/libevent/bufferevent_openssl.c:474,1
    - Dst: BIO_set_close
      Src: /src/libevent/bufferevent_openssl.c:488,1
    - Dst: BIO_new_socket
      Src: /src/libevent/bufferevent_openssl.c:493,1
    - Dst: SSL_set_bio
      Src: /src/libevent/bufferevent_openssl.c:494,1
    - Dst: bufferevent_ssl_new_impl
      Src: /src/libevent/bufferevent_openssl.c:500,1
    - Dst: SSL_free
      Src: /src/libevent/bufferevent_openssl.c:505,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 5
    argNames:
    - base
    - fd
    - ssl
    - state
    - options
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - SSL*
    - enum bufferevent_ssl_state
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 507
    functionName: bufferevent_openssl_socket_new
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_new_impl
    - BIO_get_fd
    - BIO_new_socket
    - SSL_set_bio
    - SSL_free
    - SSL_get_wbio
    - BIO_set_close
    linkageType: ''
    returnType: struct bufferevent
    signature: "struct bufferevent *\nbufferevent_openssl_socket_new(struct event_base
      *base,\n    evutil_socket_t fd,\n    SSL *ssl,\n    enum bufferevent_ssl_state
      state,\n    int options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_renegotiate_impl
      Src: /src/libevent/bufferevent_openssl.c:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 513
    functionName: bufferevent_ssl_renegotiate
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_renegotiate_impl
    linkageType: ''
    returnType: int
    signature: int bufferevent_ssl_renegotiate(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_openssl.c:518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 522
    functionName: bufferevent_openssl_get_ssl
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_upcast
    linkageType: ''
    returnType: SSL
    signature: 'SSL *

      bufferevent_openssl_get_ssl(struct bufferevent *bufev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_get_allow_dirty_shutdown
      Src: /src/libevent/bufferevent_openssl.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 528
    functionName: bufferevent_openssl_get_allow_dirty_shutdown
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_get_allow_dirty_shutdown
    linkageType: ''
    returnType: int
    signature: int bufferevent_openssl_get_allow_dirty_shutdown(struct bufferevent
      *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_set_allow_dirty_shutdown
      Src: /src/libevent/bufferevent_openssl.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bev
    - allow_dirty_shutdown
    argTypes:
    - struct bufferevent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 535
    functionName: bufferevent_openssl_set_allow_dirty_shutdown
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_set_allow_dirty_shutdown
    linkageType: ''
    returnType: void
    signature: "void bufferevent_openssl_set_allow_dirty_shutdown(\n\tstruct bufferevent
      *bev, int allow_dirty_shutdown)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_openssl.c:540,1
    - Dst: bufferevent_get_ssl_error
      Src: /src/libevent/bufferevent_openssl.c:543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 544
    functionName: bufferevent_get_openssl_error
    functionSourceFile: /src/libevent/bufferevent_openssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_ssl_error
    - bufferevent_ssl_upcast
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long bufferevent_get_openssl_error(struct bufferevent *bufev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - which
    argTypes:
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: event_enable_debug_logging
    functionSourceFile: /src/libevent/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_enable_debug_logging(ev_uint32_t which)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cb
    argTypes:
    - event_fatal_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: event_set_fatal_callback
    functionSourceFile: /src/libevent/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_set_fatal_callback(event_fatal_cb cb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fatal_fn
      Src: /src/libevent/log.c:93,1
    - Dst: exit
      Src: /src/libevent/log.c:94,1
    - Dst: abort
      Src: /src/libevent/log.c:96,1
    - Dst: exit
      Src: /src/libevent/log.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - errcode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: event_exit
    functionSourceFile: /src/libevent/log.c
    functionUses: 0
    functionsReached:
    - fatal_fn
    - abort
    - exit
    linkageType: ''
    returnType: void
    signature: void event_exit(int errcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libevent/log.c:106,1
    - Dst: event_logv_
      Src: /src/libevent/log.c:107,1
    - Dst: strerror
      Src: /src/libevent/log.c:107,1
    - Dst: va_end
      Src: /src/libevent/log.c:108,1
    - Dst: event_exit
      Src: /src/libevent/log.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - eval
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 110
    functionName: event_err
    functionSourceFile: /src/libevent/log.c
    functionUses: 1
    functionsReached:
    - event_logv_
    - event_exit
    - strerror
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void event_err(int eval, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libevent/log.c:117,1
    - Dst: event_logv_
      Src: /src/libevent/log.c:118,1
    - Dst: strerror
      Src: /src/libevent/log.c:118,1
    - Dst: va_end
      Src: /src/libevent/log.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: event_warn
    functionSourceFile: /src/libevent/log.c
    functionUses: 44
    functionsReached:
    - va_end
    - event_logv_
    - strerror
    - va_start
    linkageType: ''
    returnType: void
    signature: void event_warn(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_socket_geterror
      Src: /src/libevent/log.c:126,1
    - Dst: va_start
      Src: /src/libevent/log.c:128,1
    - Dst: event_logv_
      Src: /src/libevent/log.c:129,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/log.c:129,1
    - Dst: va_end
      Src: /src/libevent/log.c:130,1
    - Dst: event_exit
      Src: /src/libevent/log.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - eval
    - sock
    - fmt
    argTypes:
    - int
    - evutil_socket_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 132
    functionName: event_sock_err
    functionSourceFile: /src/libevent/log.c
    functionUses: 0
    functionsReached:
    - event_logv_
    - event_exit
    - evutil_socket_error_to_string
    - va_end
    - va_start
    - evutil_socket_geterror
    linkageType: ''
    returnType: void
    signature: void event_sock_err(int eval, evutil_socket_t sock, const char *fmt,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_socket_geterror
      Src: /src/libevent/log.c:138,1
    - Dst: va_start
      Src: /src/libevent/log.c:140,1
    - Dst: event_logv_
      Src: /src/libevent/log.c:141,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/log.c:141,1
    - Dst: va_end
      Src: /src/libevent/log.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sock
    - fmt
    argTypes:
    - evutil_socket_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 143
    functionName: event_sock_warn
    functionSourceFile: /src/libevent/log.c
    functionUses: 7
    functionsReached:
    - event_logv_
    - evutil_socket_error_to_string
    - va_end
    - va_start
    - evutil_socket_geterror
    linkageType: ''
    returnType: void
    signature: void event_sock_warn(evutil_socket_t sock, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libevent/log.c:150,1
    - Dst: event_logv_
      Src: /src/libevent/log.c:151,1
    - Dst: va_end
      Src: /src/libevent/log.c:152,1
    - Dst: event_exit
      Src: /src/libevent/log.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - eval
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 154
    functionName: event_errx
    functionSourceFile: /src/libevent/log.c
    functionUses: 4
    functionsReached:
    - va_end
    - event_logv_
    - va_start
    - event_exit
    linkageType: ''
    returnType: void
    signature: void event_errx(int eval, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libevent/log.c:161,1
    - Dst: event_logv_
      Src: /src/libevent/log.c:162,1
    - Dst: va_end
      Src: /src/libevent/log.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 164
    functionName: event_warnx
    functionSourceFile: /src/libevent/log.c
    functionUses: 13
    functionsReached:
    - va_end
    - event_logv_
    - va_start
    linkageType: ''
    returnType: void
    signature: void event_warnx(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libevent/log.c:171,1
    - Dst: event_logv_
      Src: /src/libevent/log.c:172,1
    - Dst: va_end
      Src: /src/libevent/log.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 174
    functionName: event_msgx
    functionSourceFile: /src/libevent/log.c
    functionUses: 0
    functionsReached:
    - va_end
    - event_logv_
    - va_start
    linkageType: ''
    returnType: void
    signature: void event_msgx(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libevent/log.c:181,1
    - Dst: event_logv_
      Src: /src/libevent/log.c:182,1
    - Dst: va_end
      Src: /src/libevent/log.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 184
    functionName: event_debugx_
    functionSourceFile: /src/libevent/log.c
    functionUses: 0
    functionsReached:
    - va_end
    - event_logv_
    - va_start
    linkageType: ''
    returnType: void
    signature: void event_debugx_(const char *fmt, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: event_debug_get_logging_mask_
      Src: /src/libevent/log.c:192,1
    - Dst: evutil_vsnprintf
      Src: /src/libevent/log.c:196,1
    - Dst: strlen
      Src: /src/libevent/log.c:201,1
    - Dst: evutil_snprintf
      Src: /src/libevent/log.c:203,1
    - Dst: event_log
      Src: /src/libevent/log.c:207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - severity
    - errstr
    - fmt
    - ap
    argTypes:
    - int
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 208
    functionName: event_logv_
    functionSourceFile: /src/libevent/log.c
    functionUses: 9
    functionsReached:
    - event_log
    - event_debug_get_logging_mask_
    - evutil_vsnprintf
    - evutil_snprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: void event_logv_(int severity, const char *errstr, const char *fmt,
      va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cb
    argTypes:
    - event_log_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 216
    functionName: event_set_log_callback
    functionSourceFile: /src/libevent/log.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_set_log_callback(event_log_cb cb)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: log_fn
      Src: /src/libevent/log.c:222,1
    - Dst: fprintf
      Src: /src/libevent/log.c:242,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - severity
    - msg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 244
    functionName: event_log
    functionSourceFile: /src/libevent/log.c
    functionUses: 1
    functionsReached:
    - log_fn
    - fprintf
    linkageType: ''
    returnType: void
    signature: void event_log(int severity, const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 115
    functionName: arc4_init
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arc4_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - dat
    - datlen
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 132
    functionName: arc4_addrandom
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arc4_addrandom(const unsigned char *dat, int datlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libevent/arc4random.c:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 151
    functionName: read_all
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t read_all(int fd, unsigned char *buf, size_t count)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CryptAcquireContext
      Src: /src/libevent/arc4random.c:166,1
    - Dst: GetLastError
      Src: /src/libevent/arc4random.c:168,1
    - Dst: CryptGenRandom
      Src: /src/libevent/arc4random.c:173,1
    - Dst: BCryptGenRandom
      Src: /src/libevent/arc4random.c:176,1
    - Dst: arc4_addrandom
      Src: /src/libevent/arc4random.c:180,1
    - Dst: evutil_memclear_
      Src: /src/libevent/arc4random.c:181,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 183
    functionName: arc4_seed_win32
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - arc4_addrandom
    - BCryptGenRandom
    - evutil_memclear_
    - CryptGenRandom
    - CryptAcquireContext
    linkageType: ''
    returnType: int
    signature: int arc4_seed_win32(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getrandom
      Src: /src/libevent/arc4random.c:196,1
    - Dst: arc4_addrandom
      Src: /src/libevent/arc4random.c:200,1
    - Dst: evutil_memclear_
      Src: /src/libevent/arc4random.c:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 203
    functionName: arc4_seed_getrandom
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - getrandom
    - evutil_memclear_
    - arc4_addrandom
    linkageType: ''
    returnType: int
    signature: int arc4_seed_getrandom(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/arc4random.c:221,1
    - Dst: sysctl
      Src: /src/libevent/arc4random.c:224,1
    - Dst: sysctl
      Src: /src/libevent/arc4random.c:229,1
    - Dst: arc4_addrandom
      Src: /src/libevent/arc4random.c:240,1
    - Dst: evutil_memclear_
      Src: /src/libevent/arc4random.c:241,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 243
    functionName: arc4_seed_sysctl_bsd
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - memset
    - arc4_addrandom
    - evutil_memclear_
    - sysctl
    linkageType: ''
    returnType: int
    signature: int arc4_seed_sysctl_bsd(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evutil_open_closeonexec_
      Src: /src/libevent/arc4random.c:261,1
    - Dst: read
      Src: /src/libevent/arc4random.c:264,1
    - Dst: close
      Src: /src/libevent/arc4random.c:265,1
    - Dst: memset
      Src: /src/libevent/arc4random.c:268,1
    - Dst: EVUTIL_ISXDIGIT_
      Src: /src/libevent/arc4random.c:270,1
    - Dst: evutil_hex_char_to_int_
      Src: /src/libevent/arc4random.c:271,1
    - Dst: arc4_addrandom
      Src: /src/libevent/arc4random.c:282,1
    - Dst: evutil_memclear_
      Src: /src/libevent/arc4random.c:285,1
    - Dst: evutil_memclear_
      Src: /src/libevent/arc4random.c:286,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 288
    functionName: arc4_seed_proc_sys_kernel_random_uuid
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - close
    - arc4_addrandom
    - evutil_hex_char_to_int_
    - evutil_open_closeonexec_
    - evutil_memclear_
    - memset
    - read
    - EVUTIL_ISXDIGIT_
    linkageType: ''
    returnType: int
    signature: int arc4_seed_proc_sys_kernel_random_uuid(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evutil_open_closeonexec_
      Src: /src/libevent/arc4random.c:301,1
    - Dst: read_all
      Src: /src/libevent/arc4random.c:304,1
    - Dst: close
      Src: /src/libevent/arc4random.c:305,1
    - Dst: arc4_addrandom
      Src: /src/libevent/arc4random.c:308,1
    - Dst: evutil_memclear_
      Src: /src/libevent/arc4random.c:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - fname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 311
    functionName: arc4_seed_urandom_helper_
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - close
    - arc4_addrandom
    - evutil_open_closeonexec_
    - evutil_memclear_
    - read_all
    linkageType: ''
    returnType: int
    signature: int arc4_seed_urandom_helper_(const char *fname)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: arc4_seed_urandom_helper_
      Src: /src/libevent/arc4random.c:322,1
    - Dst: arc4_seed_urandom_helper_
      Src: /src/libevent/arc4random.c:325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 331
    functionName: arc4_seed_urandom
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - arc4_seed_urandom_helper_
    linkageType: ''
    returnType: int
    signature: int arc4_seed_urandom(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: arc4_seed_win32
      Src: /src/libevent/arc4random.c:342,1
    - Dst: arc4_seed_getrandom
      Src: /src/libevent/arc4random.c:346,1
    - Dst: arc4_seed_urandom
      Src: /src/libevent/arc4random.c:350,1
    - Dst: arc4_seed_proc_sys_kernel_random_uuid
      Src: /src/libevent/arc4random.c:355,1
    - Dst: arc4_seed_sysctl_bsd
      Src: /src/libevent/arc4random.c:359,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 334
    functionDepth: 4
    functionLinenumber: 334
    functionLinenumberEnd: 363
    functionName: arc4_seed
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - arc4_seed_proc_sys_kernel_random_uuid
    - arc4_seed_urandom
    - arc4_seed_win32
    - arc4_seed_getrandom
    - arc4_seed_sysctl_bsd
    linkageType: ''
    returnType: int
    signature: int arc4_seed(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: arc4_init
      Src: /src/libevent/arc4random.c:374,1
    - Dst: arc4_seed
      Src: /src/libevent/arc4random.c:378,1
    - Dst: arc4_getbyte
      Src: /src/libevent/arc4random.c:400,1
    - Dst: arc4_getword
      Src: /src/libevent/arc4random.c:402,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 367
    functionDepth: 5
    functionLinenumber: 367
    functionLinenumberEnd: 407
    functionName: arc4_stir
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - arc4_init
    - arc4_seed
    - arc4_getbyte
    - arc4_getword
    linkageType: ''
    returnType: int
    signature: int arc4_stir(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/libevent/arc4random.c:413,1
    - Dst: arc4_stir
      Src: /src/libevent/arc4random.c:418,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 410
    functionDepth: 6
    functionLinenumber: 410
    functionLinenumberEnd: 420
    functionName: arc4_stir_if_needed
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - arc4_stir
    - getpid
    linkageType: ''
    returnType: void
    signature: void arc4_stir_if_needed(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 434
    functionName: arc4_getbyte
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char arc4_getbyte(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arc4_getbyte
      Src: /src/libevent/arc4random.c:441,1
    - Dst: arc4_getbyte
      Src: /src/libevent/arc4random.c:442,1
    - Dst: arc4_getbyte
      Src: /src/libevent/arc4random.c:443,1
    - Dst: arc4_getbyte
      Src: /src/libevent/arc4random.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 447
    functionName: arc4_getword
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 1
    functionsReached:
    - arc4_getbyte
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int arc4_getword(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARC4_LOCK_
      Src: /src/libevent/arc4random.c:454,1
    - Dst: arc4_stir
      Src: /src/libevent/arc4random.c:455,1
    - Dst: ARC4_UNLOCK_
      Src: /src/libevent/arc4random.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 450
    functionDepth: 6
    functionLinenumber: 450
    functionLinenumberEnd: 458
    functionName: arc4random_stir
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - ARC4_LOCK_
    - arc4_stir
    - ARC4_UNLOCK_
    linkageType: ''
    returnType: ARC4RANDOM_EXPORT
    signature: ARC4RANDOM_EXPORT arc4random_stir(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARC4_LOCK_
      Src: /src/libevent/arc4random.c:466,1
    - Dst: arc4_stir
      Src: /src/libevent/arc4random.c:468,1
    - Dst: arc4_addrandom
      Src: /src/libevent/arc4random.c:474,1
    - Dst: ARC4_UNLOCK_
      Src: /src/libevent/arc4random.c:476,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dat
    - datlen
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 462
    functionDepth: 6
    functionLinenumber: 462
    functionLinenumberEnd: 477
    functionName: arc4random_addrandom
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - ARC4_LOCK_
    - arc4_addrandom
    - arc4_stir
    - ARC4_UNLOCK_
    linkageType: ''
    returnType: ARC4RANDOM_EXPORT
    signature: ARC4RANDOM_EXPORT arc4random_addrandom(const unsigned char *dat, int
      datlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARC4_LOCK_
      Src: /src/libevent/arc4random.c:485,1
    - Dst: arc4_stir_if_needed
      Src: /src/libevent/arc4random.c:487,1
    - Dst: arc4_getword
      Src: /src/libevent/arc4random.c:488,1
    - Dst: ARC4_UNLOCK_
      Src: /src/libevent/arc4random.c:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 481
    functionDepth: 7
    functionLinenumber: 481
    functionLinenumberEnd: 491
    functionName: ARC4RANDOM_UINT32::arc4random
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - ARC4_LOCK_
    - ARC4_UNLOCK_
    - arc4_stir_if_needed
    - arc4_getword
    linkageType: ''
    returnType: ARC4RANDOM_EXPORT
    signature: 'ARC4RANDOM_EXPORT ARC4RANDOM_UINT32

      arc4random(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARC4_LOCK_
      Src: /src/libevent/arc4random.c:499,1
    - Dst: arc4_stir_if_needed
      Src: /src/libevent/arc4random.c:500,1
    - Dst: arc4_stir
      Src: /src/libevent/arc4random.c:503,1
    - Dst: arc4_getbyte
      Src: /src/libevent/arc4random.c:504,1
    - Dst: ARC4_UNLOCK_
      Src: /src/libevent/arc4random.c:506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - buf_
    - n
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 495
    functionDepth: 7
    functionLinenumber: 495
    functionLinenumberEnd: 507
    functionName: arc4random_buf
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - arc4_stir
    - ARC4_UNLOCK_
    - ARC4_LOCK_
    - arc4_stir_if_needed
    - arc4_getbyte
    linkageType: ''
    returnType: ARC4RANDOM_EXPORT
    signature: ARC4RANDOM_EXPORT arc4random_buf(void *buf_, size_t n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: arc4random
      Src: /src/libevent/arc4random.c:539,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - upper_bound
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 545
    functionName: arc4random_uniform
    functionSourceFile: /src/libevent/arc4random.c
    functionUses: 0
    functionsReached:
    - arc4random
    linkageType: ''
    returnType: ARC4RANDOM_EXPORT unsigned
    signature: ARC4RANDOM_EXPORT unsigned arc4random_uniform(unsigned int upper_bound)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: ev_token_bucket_decrement_read
    functionSourceFile: /src/libevent/ratelim-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ev_token_bucket_decrement_read(b,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: ev_token_bucket_decrement_write
    functionSourceFile: /src/libevent/ratelim-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ev_token_bucket_decrement_write(b,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_async.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bev
    - what
    - options
    argTypes:
    - struct bufferevent*
    - short
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: be_async_run_eventcb
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - bufferevent_run_eventcb_
    linkageType: ''
    returnType: void
    signature: void be_async_run_eventcb(struct bufferevent *bev, short what, int
      options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_trigger_nolock_
      Src: /src/libevent/bufferevent_async.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bev
    - what
    - options
    argTypes:
    - struct bufferevent*
    - short
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: be_async_trigger_nolock
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - bufferevent_trigger_nolock_
    linkageType: ''
    returnType: void
    signature: void be_async_trigger_nolock(struct bufferevent *bev, short what, int
      options)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: fatal_error
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fatal_error(int err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_IS_ASYNC
      Src: /src/libevent/bufferevent_async.c:129,1
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/bufferevent_async.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: upcast
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 13
    functionsReached:
    - EVUTIL_UPCAST
    - BEV_IS_ASYNC
    linkageType: ''
    returnType: struct bufferevent_async
    signature: 'struct bufferevent_async *

      upcast(struct bufferevent *bev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/bufferevent_async.c:139,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_async.c:140,1
    - Dst: BEV_IS_ASYNC
      Src: /src/libevent/bufferevent_async.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - eo
    argTypes:
    - struct event_overlapped*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 142
    functionName: upcast_connect
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - EVUTIL_UPCAST
    - BEV_IS_ASYNC
    linkageType: ''
    returnType: struct bufferevent_async
    signature: 'struct bufferevent_async *

      upcast_connect(struct event_overlapped *eo)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/bufferevent_async.c:148,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_async.c:149,1
    - Dst: BEV_IS_ASYNC
      Src: /src/libevent/bufferevent_async.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - eo
    argTypes:
    - struct event_overlapped*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 151
    functionName: upcast_read
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - EVUTIL_UPCAST
    - BEV_IS_ASYNC
    linkageType: ''
    returnType: struct bufferevent_async
    signature: 'struct bufferevent_async *

      upcast_read(struct event_overlapped *eo)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/bufferevent_async.c:157,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_async.c:158,1
    - Dst: BEV_IS_ASYNC
      Src: /src/libevent/bufferevent_async.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - eo
    argTypes:
    - struct event_overlapped*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: upcast_write
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - EVUTIL_UPCAST
    - BEV_IS_ASYNC
    linkageType: ''
    returnType: struct bufferevent_async
    signature: 'struct bufferevent_async *

      upcast_write(struct event_overlapped *eo)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_del_virtual_
      Src: /src/libevent/bufferevent_async.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - beva
    argTypes:
    - struct bufferevent_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 171
    functionName: bev_async_del_write
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - event_base_del_virtual_
    linkageType: ''
    returnType: void
    signature: void bev_async_del_write(struct bufferevent_async *beva)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_del_virtual_
      Src: /src/libevent/bufferevent_async.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - beva
    argTypes:
    - struct bufferevent_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 182
    functionName: bev_async_del_read
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - event_base_del_virtual_
    linkageType: ''
    returnType: void
    signature: void bev_async_del_read(struct bufferevent_async *beva)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_add_virtual_
      Src: /src/libevent/bufferevent_async.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - beva
    argTypes:
    - struct bufferevent_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 193
    functionName: bev_async_add_write
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - event_base_add_virtual_
    linkageType: ''
    returnType: void
    signature: void bev_async_add_write(struct bufferevent_async *beva)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_add_virtual_
      Src: /src/libevent/bufferevent_async.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - beva
    argTypes:
    - struct bufferevent_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 204
    functionName: bev_async_add_read
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - event_base_add_virtual_
    linkageType: ''
    returnType: void
    signature: void bev_async_add_read(struct bufferevent_async *beva)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_async.c:218,1
    - Dst: bev_async_del_write
      Src: /src/libevent/bufferevent_async.c:219,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_async.c:223,1
    - Dst: bufferevent_get_write_max_
      Src: /src/libevent/bufferevent_async.c:227,1
    - Dst: bev_async_del_write
      Src: /src/libevent/bufferevent_async.c:232,1
    - Dst: bufferevent_incref_
      Src: /src/libevent/bufferevent_async.c:237,1
    - Dst: evbuffer_launch_write_
      Src: /src/libevent/bufferevent_async.c:238,1
    - Dst: bufferevent_decref_
      Src: /src/libevent/bufferevent_async.c:240,1
    - Dst: be_async_run_eventcb
      Src: /src/libevent/bufferevent_async.c:242,1
    - Dst: bufferevent_decrement_write_buckets_
      Src: /src/libevent/bufferevent_async.c:245,1
    - Dst: bev_async_add_write
      Src: /src/libevent/bufferevent_async.c:246,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - beva
    argTypes:
    - struct bufferevent_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 248
    functionName: bev_async_consider_writing
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - bev_async_add_write
    - bufferevent_get_write_max_
    - evbuffer_launch_write_
    - bufferevent_incref_
    - bufferevent_decrement_write_buckets_
    - bev_async_del_write
    - evbuffer_get_length
    - bufferevent_decref_
    - be_async_run_eventcb
    linkageType: ''
    returnType: void
    signature: void bev_async_consider_writing(struct bufferevent_async *beva)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: bev_async_del_read
      Src: /src/libevent/bufferevent_async.c:264,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_async.c:269,1
    - Dst: bev_async_del_read
      Src: /src/libevent/bufferevent_async.c:273,1
    - Dst: bufferevent_get_read_max_
      Src: /src/libevent/bufferevent_async.c:283,1
    - Dst: bev_async_del_read
      Src: /src/libevent/bufferevent_async.c:288,1
    - Dst: bufferevent_incref_
      Src: /src/libevent/bufferevent_async.c:292,1
    - Dst: evbuffer_launch_read_
      Src: /src/libevent/bufferevent_async.c:293,1
    - Dst: be_async_run_eventcb
      Src: /src/libevent/bufferevent_async.c:295,1
    - Dst: bufferevent_decref_
      Src: /src/libevent/bufferevent_async.c:296,1
    - Dst: bufferevent_decrement_read_buckets_
      Src: /src/libevent/bufferevent_async.c:299,1
    - Dst: bev_async_add_read
      Src: /src/libevent/bufferevent_async.c:300,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 1
    argNames:
    - beva
    argTypes:
    - struct bufferevent_async*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 304
    functionName: bev_async_consider_reading
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - bev_async_add_read
    - bev_async_del_read
    - bufferevent_incref_
    - bufferevent_decrement_read_buckets_
    - bufferevent_get_read_max_
    - evbuffer_get_length
    - evbuffer_launch_read_
    - bufferevent_decref_
    - be_async_run_eventcb
    linkageType: ''
    returnType: void
    signature: void bev_async_consider_reading(struct bufferevent_async *beva)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_async.c:312,1
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent_async.c:317,1
    - Dst: bev_async_consider_writing
      Src: /src/libevent/bufferevent_async.c:320,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_async.c:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - cbinfo
    - arg
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 306
    functionDepth: 4
    functionLinenumber: 306
    functionLinenumberEnd: 323
    functionName: be_async_outbuf_callback
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - upcast
    - bufferevent_incref_and_lock_
    - bufferevent_decref_and_unlock_
    - bev_async_consider_writing
    linkageType: ''
    returnType: void
    signature: "void be_async_outbuf_callback(struct evbuffer *buf,\n    const struct
      evbuffer_cb_info *cbinfo,\n    void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_async.c:331,1
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent_async.c:336,1
    - Dst: bev_async_consider_reading
      Src: /src/libevent/bufferevent_async.c:339,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_async.c:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - cbinfo
    - arg
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 325
    functionDepth: 4
    functionLinenumber: 325
    functionLinenumberEnd: 342
    functionName: be_async_inbuf_callback
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - upcast
    - bufferevent_incref_and_lock_
    - bufferevent_decref_and_unlock_
    - bev_async_consider_reading
    linkageType: ''
    returnType: void
    signature: "void be_async_inbuf_callback(struct evbuffer *buf,\n    const struct
      evbuffer_cb_info *cbinfo,\n    void *arg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_async.c:347,1
    - Dst: BEV_RESET_GENERIC_READ_TIMEOUT
      Src: /src/libevent/bufferevent_async.c:358,1
    - Dst: BEV_RESET_GENERIC_WRITE_TIMEOUT
      Src: /src/libevent/bufferevent_async.c:360,1
    - Dst: bev_async_consider_reading
      Src: /src/libevent/bufferevent_async.c:366,1
    - Dst: bev_async_consider_writing
      Src: /src/libevent/bufferevent_async.c:368,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - buf
    - what
    argTypes:
    - struct bufferevent*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 344
    functionDepth: 4
    functionLinenumber: 344
    functionLinenumberEnd: 370
    functionName: be_async_enable
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - upcast
    - bev_async_consider_reading
    - bev_async_consider_writing
    - BEV_RESET_GENERIC_READ_TIMEOUT
    - BEV_RESET_GENERIC_WRITE_TIMEOUT
    linkageType: ''
    returnType: int
    signature: int be_async_enable(struct bufferevent *buf, short what)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_async.c:375,1
    - Dst: BEV_DEL_GENERIC_READ_TIMEOUT
      Src: /src/libevent/bufferevent_async.c:381,1
    - Dst: bev_async_del_read
      Src: /src/libevent/bufferevent_async.c:382,1
    - Dst: BEV_DEL_GENERIC_WRITE_TIMEOUT
      Src: /src/libevent/bufferevent_async.c:385,1
    - Dst: bev_async_del_write
      Src: /src/libevent/bufferevent_async.c:386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bev
    - what
    argTypes:
    - struct bufferevent*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 390
    functionName: be_async_disable
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - BEV_DEL_GENERIC_READ_TIMEOUT
    - upcast
    - BEV_DEL_GENERIC_WRITE_TIMEOUT
    - bev_async_del_read
    - bev_async_del_write
    linkageType: ''
    returnType: int
    signature: int be_async_disable(struct bufferevent *bev, short what)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_async.c:395,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_async.c:396,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_async.c:399,1
    - Dst: upcast
      Src: /src/libevent/bufferevent_async.c:399,1
    - Dst: upcast
      Src: /src/libevent/bufferevent_async.c:400,1
    - Dst: bev_async_del_read
      Src: /src/libevent/bufferevent_async.c:402,1
    - Dst: bev_async_del_write
      Src: /src/libevent/bufferevent_async.c:403,1
    - Dst: evbuffer_overlapped_get_fd_
      Src: /src/libevent/bufferevent_async.c:405,1
    - Dst: evutil_closesocket
      Src: /src/libevent/bufferevent_async.c:408,1
    - Dst: evbuffer_overlapped_set_fd_
      Src: /src/libevent/bufferevent_async.c:409,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 392
    functionDepth: 3
    functionLinenumber: 392
    functionLinenumberEnd: 411
    functionName: be_async_destruct
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - evutil_closesocket
    - EVUTIL_ASSERT
    - upcast
    - bev_async_del_read
    - evbuffer_overlapped_set_fd_
    - bev_async_del_write
    - BEV_UPCAST
    - evbuffer_overlapped_get_fd_
    linkageType: ''
    returnType: void
    signature: void be_async_destruct(struct bufferevent *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_overlapped_get_fd_
      Src: /src/libevent/bufferevent_async.c:421,1
    - Dst: WSAGetOverlappedResult
      Src: /src/libevent/bufferevent_async.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bev
    - eo
    argTypes:
    - struct bufferevent*
    - struct event_overlapped*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 415
    functionDepth: 3
    functionLinenumber: 415
    functionLinenumberEnd: 423
    functionName: bev_async_set_wsa_error
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - evbuffer_overlapped_get_fd_
    - WSAGetOverlappedResult
    linkageType: ''
    returnType: void
    signature: void bev_async_set_wsa_error(struct bufferevent *bev, struct event_overlapped
      *eo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bev
    - what
    - mode
    argTypes:
    - struct bufferevent*
    - short
    - enum bufferevent_flush_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 430
    functionName: be_async_flush
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int be_async_flush(struct bufferevent *bev, short what,\n    enum
      bufferevent_flush_mode mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: upcast_connect
      Src: /src/libevent/bufferevent_async.c:436,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_async.c:440,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_async.c:442,1
    - Dst: evbuffer_overlapped_get_fd_
      Src: /src/libevent/bufferevent_async.c:444,1
    - Dst: setsockopt
      Src: /src/libevent/bufferevent_async.c:446,1
    - Dst: bufferevent_async_set_connected_
      Src: /src/libevent/bufferevent_async.c:449,1
    - Dst: bev_async_set_wsa_error
      Src: /src/libevent/bufferevent_async.c:451,1
    - Dst: be_async_run_eventcb
      Src: /src/libevent/bufferevent_async.c:453,1
    - Dst: event_base_del_virtual_
      Src: /src/libevent/bufferevent_async.c:455,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_async.c:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - eo
    - key
    - nbytes
    - ok
    argTypes:
    - struct event_overlapped*
    - ev_uintptr_t
    - ev_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 432
    functionDepth: 4
    functionLinenumber: 432
    functionLinenumberEnd: 458
    functionName: connect_complete
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - upcast_connect
    - event_base_del_virtual_
    - setsockopt
    - EVUTIL_ASSERT
    - bufferevent_async_set_connected_
    - bev_async_set_wsa_error
    - evbuffer_overlapped_get_fd_
    - BEV_LOCK
    - bufferevent_decref_and_unlock_
    - be_async_run_eventcb
    linkageType: ''
    returnType: void
    signature: "void connect_complete(struct event_overlapped *eo, ev_uintptr_t key,\n
      \   ev_ssize_t nbytes, int ok)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: upcast_read
      Src: /src/libevent/bufferevent_async.c:464,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_async.c:468,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_async.c:469,1
    - Dst: evbuffer_commit_read_
      Src: /src/libevent/bufferevent_async.c:472,1
    - Dst: bufferevent_decrement_read_buckets_
      Src: /src/libevent/bufferevent_async.c:475,1
    - Dst: bev_async_set_wsa_error
      Src: /src/libevent/bufferevent_async.c:478,1
    - Dst: BEV_RESET_GENERIC_READ_TIMEOUT
      Src: /src/libevent/bufferevent_async.c:482,1
    - Dst: be_async_trigger_nolock
      Src: /src/libevent/bufferevent_async.c:483,1
    - Dst: bev_async_consider_reading
      Src: /src/libevent/bufferevent_async.c:484,1
    - Dst: be_async_run_eventcb
      Src: /src/libevent/bufferevent_async.c:488,1
    - Dst: be_async_run_eventcb
      Src: /src/libevent/bufferevent_async.c:492,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_async.c:496,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - eo
    - key
    - nbytes
    - ok
    argTypes:
    - struct event_overlapped*
    - ev_uintptr_t
    - ev_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 460
    functionDepth: 4
    functionLinenumber: 460
    functionLinenumberEnd: 497
    functionName: read_complete
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - bev_async_consider_reading
    - upcast_read
    - bufferevent_decrement_read_buckets_
    - evbuffer_commit_read_
    - bev_async_set_wsa_error
    - BEV_RESET_GENERIC_READ_TIMEOUT
    - be_async_trigger_nolock
    - BEV_LOCK
    - bufferevent_decref_and_unlock_
    - be_async_run_eventcb
    linkageType: ''
    returnType: void
    signature: "void read_complete(struct event_overlapped *eo, ev_uintptr_t key,\n
      \   ev_ssize_t nbytes, int ok)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: upcast_write
      Src: /src/libevent/bufferevent_async.c:503,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_async.c:508,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_async.c:509,1
    - Dst: evbuffer_commit_write_
      Src: /src/libevent/bufferevent_async.c:512,1
    - Dst: bufferevent_decrement_write_buckets_
      Src: /src/libevent/bufferevent_async.c:516,1
    - Dst: bev_async_set_wsa_error
      Src: /src/libevent/bufferevent_async.c:521,1
    - Dst: BEV_RESET_GENERIC_WRITE_TIMEOUT
      Src: /src/libevent/bufferevent_async.c:525,1
    - Dst: be_async_trigger_nolock
      Src: /src/libevent/bufferevent_async.c:526,1
    - Dst: bev_async_consider_writing
      Src: /src/libevent/bufferevent_async.c:527,1
    - Dst: be_async_run_eventcb
      Src: /src/libevent/bufferevent_async.c:531,1
    - Dst: be_async_run_eventcb
      Src: /src/libevent/bufferevent_async.c:535,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_async.c:539,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - eo
    - key
    - nbytes
    - ok
    argTypes:
    - struct event_overlapped*
    - ev_uintptr_t
    - ev_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 499
    functionDepth: 4
    functionLinenumber: 499
    functionLinenumberEnd: 540
    functionName: write_complete
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - upcast_write
    - evbuffer_commit_write_
    - EVUTIL_ASSERT
    - bev_async_consider_writing
    - bev_async_set_wsa_error
    - BEV_RESET_GENERIC_WRITE_TIMEOUT
    - bufferevent_decrement_write_buckets_
    - be_async_trigger_nolock
    - BEV_LOCK
    - bufferevent_decref_and_unlock_
    - be_async_run_eventcb
    linkageType: ''
    returnType: void
    signature: "void write_complete(struct event_overlapped *eo, ev_uintptr_t key,\n
      \   ev_ssize_t nbytes, int ok)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: event_base_get_iocp_
      Src: /src/libevent/bufferevent_async.c:552,1
    - Dst: event_iocp_port_associate_
      Src: /src/libevent/bufferevent_async.c:555,1
    - Dst: fatal_error
      Src: /src/libevent/bufferevent_async.c:556,1
    - Dst: GetLastError
      Src: /src/libevent/bufferevent_async.c:556,1
    - Dst: mm_calloc
      Src: /src/libevent/bufferevent_async.c:560,1
    - Dst: evbuffer_overlapped_new_
      Src: /src/libevent/bufferevent_async.c:564,1
    - Dst: mm_free
      Src: /src/libevent/bufferevent_async.c:565,1
    - Dst: evbuffer_overlapped_new_
      Src: /src/libevent/bufferevent_async.c:568,1
    - Dst: evbuffer_free
      Src: /src/libevent/bufferevent_async.c:569,1
    - Dst: mm_free
      Src: /src/libevent/bufferevent_async.c:570,1
    - Dst: bufferevent_init_common_
      Src: /src/libevent/bufferevent_async.c:574,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/bufferevent_async.c:578,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/bufferevent_async.c:579,1
    - Dst: event_overlapped_init_
      Src: /src/libevent/bufferevent_async.c:581,1
    - Dst: event_overlapped_init_
      Src: /src/libevent/bufferevent_async.c:582,1
    - Dst: event_overlapped_init_
      Src: /src/libevent/bufferevent_async.c:583,1
    - Dst: bufferevent_init_generic_timeout_cbs_
      Src: /src/libevent/bufferevent_async.c:585,1
    - Dst: bufferevent_free
      Src: /src/libevent/bufferevent_async.c:591,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - base
    - fd
    - options
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 542
    functionDepth: 4
    functionLinenumber: 542
    functionLinenumberEnd: 593
    functionName: bufferevent_async_new_
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - event_overlapped_init_
    - event_iocp_port_associate_
    - evbuffer_overlapped_new_
    - mm_free
    - bufferevent_init_common_
    - evbuffer_add_cb
    - bufferevent_init_generic_timeout_cbs_
    - mm_calloc
    - evbuffer_free
    - bufferevent_free
    - event_base_get_iocp_
    - fatal_error
    linkageType: ''
    returnType: struct bufferevent
    signature: "struct bufferevent *\nbufferevent_async_new_(struct event_base *base,\n
      \   evutil_socket_t fd, int options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_async.c:598,1
    - Dst: be_async_enable
      Src: /src/libevent/bufferevent_async.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 595
    functionDepth: 5
    functionLinenumber: 595
    functionLinenumberEnd: 602
    functionName: bufferevent_async_set_connected_
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 1
    functionsReached:
    - upcast
    - be_async_enable
    linkageType: ''
    returnType: void
    signature: void bufferevent_async_set_connected_(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_get_win32_extension_fns_
      Src: /src/libevent/bufferevent_async.c:608,1
    - Dst: BEV_IS_ASYNC
      Src: /src/libevent/bufferevent_async.c:610,1
    - Dst: event_base_get_iocp_
      Src: /src/libevent/bufferevent_async.c:611,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 616
    functionName: bufferevent_async_can_connect_
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - event_base_get_iocp_
    - BEV_IS_ASYNC
    - event_get_win32_extension_fns_
    linkageType: ''
    returnType: int
    signature: int bufferevent_async_can_connect_(struct bufferevent *bev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_async.c:623,1
    - Dst: event_get_win32_extension_fns_
      Src: /src/libevent/bufferevent_async.c:626,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_async.c:628,1
    - Dst: memset
      Src: /src/libevent/bufferevent_async.c:634,1
    - Dst: bind
      Src: /src/libevent/bufferevent_async.c:647,1
    - Dst: WSAGetLastError
      Src: /src/libevent/bufferevent_async.c:648,1
    - Dst: event_base_add_virtual_
      Src: /src/libevent/bufferevent_async.c:651,1
    - Dst: bufferevent_incref_
      Src: /src/libevent/bufferevent_async.c:652,1
    - Dst: struct win32_extension_fns*::ConnectEx
      Src: /src/libevent/bufferevent_async.c:653,1
    - Dst: WSAGetLastError
      Src: /src/libevent/bufferevent_async.c:655,1
    - Dst: event_base_del_virtual_
      Src: /src/libevent/bufferevent_async.c:658,1
    - Dst: bufferevent_decref_
      Src: /src/libevent/bufferevent_async.c:659,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 4
    argNames:
    - bev
    - fd
    - sa
    - socklen
    argTypes:
    - struct bufferevent*
    - evutil_socket_t
    - struct sockaddr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 662
    functionName: bufferevent_async_connect_
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - event_base_del_virtual_
    - EVUTIL_ASSERT
    - upcast
    - event_base_add_virtual_
    - bufferevent_incref_
    - event_get_win32_extension_fns_
    - memset
    - bind
    - struct win32_extension_fns*::ConnectEx
    - bufferevent_decref_
    linkageType: ''
    returnType: int
    signature: "int bufferevent_async_connect_(struct bufferevent *bev, evutil_socket_t
      fd,\n\tconst struct sockaddr *sa, int socklen)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_overlapped_get_fd_
      Src: /src/libevent/bufferevent_async.c:670,1
    - Dst: upcast
      Src: /src/libevent/bufferevent_async.c:673,1
    - Dst: evbuffer_overlapped_get_fd_
      Src: /src/libevent/bufferevent_async.c:676,1
    - Dst: event_base_get_iocp_
      Src: /src/libevent/bufferevent_async.c:678,1
    - Dst: event_iocp_port_associate_
      Src: /src/libevent/bufferevent_async.c:680,1
    - Dst: fatal_error
      Src: /src/libevent/bufferevent_async.c:681,1
    - Dst: GetLastError
      Src: /src/libevent/bufferevent_async.c:681,1
    - Dst: evbuffer_overlapped_set_fd_
      Src: /src/libevent/bufferevent_async.c:684,1
    - Dst: evbuffer_overlapped_set_fd_
      Src: /src/libevent/bufferevent_async.c:685,1
    - Dst: upcast
      Src: /src/libevent/bufferevent_async.c:690,1
    - Dst: evbuffer_overlapped_get_fd_
      Src: /src/libevent/bufferevent_async.c:691,1
    - Dst: closesocket
      Src: /src/libevent/bufferevent_async.c:694,1
    - Dst: evbuffer_overlapped_set_fd_
      Src: /src/libevent/bufferevent_async.c:695,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - bev
    - op
    - data
    argTypes:
    - struct bufferevent*
    - enum bufferevent_ctrl_op
    - union bufferevent_ctrl_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 664
    functionDepth: 3
    functionLinenumber: 664
    functionLinenumberEnd: 704
    functionName: be_async_ctrl
    functionSourceFile: /src/libevent/bufferevent_async.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - event_iocp_port_associate_
    - upcast
    - evbuffer_overlapped_set_fd_
    - event_base_get_iocp_
    - fatal_error
    - closesocket
    - evbuffer_overlapped_get_fd_
    linkageType: ''
    returnType: int
    signature: "int be_async_ctrl(struct bufferevent *bev, enum bufferevent_ctrl_op
      op,\n    union bufferevent_ctrl_data *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct event_debug_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 203
    functionName: hash_debug_entry
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned hash_debug_entry(const struct event_debug_entry *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct event_debug_entry*
    - struct event_debug_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: eq_debug_entry
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int eq_debug_entry(const struct event_debug_entry *a,\n    const struct
      event_debug_entry *b)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/event.c:247,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/event.c:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 253
    functionName: event_debug_mode_too_late_set
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVLOCK_LOCK
    - EVLOCK_UNLOCK
    linkageType: ''
    returnType: void
    signature: void event_debug_mode_too_late_set(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/event.c:264,1
    - Dst: HT_FIND
      Src: /src/libevent/event.c:265,1
    - Dst: mm_malloc
      Src: /src/libevent/event.c:269,1
    - Dst: event_err
      Src: /src/libevent/event.c:271,1
    - Dst: HT_INSERT
      Src: /src/libevent/event.c:275,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/event.c:277,1
    - Dst: event_debug_mode_too_late_set
      Src: /src/libevent/event.c:280,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 281
    functionName: event_debug_note_setup_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - HT_INSERT
    - event_debug_mode_too_late_set
    - EVLOCK_UNLOCK
    - HT_FIND
    - mm_malloc
    - event_err
    - EVLOCK_LOCK
    linkageType: ''
    returnType: void
    signature: void event_debug_note_setup_(const struct event *ev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/event.c:291,1
    - Dst: HT_REMOVE
      Src: /src/libevent/event.c:292,1
    - Dst: mm_free
      Src: /src/libevent/event.c:294,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/event.c:295,1
    - Dst: event_debug_mode_too_late_set
      Src: /src/libevent/event.c:298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 299
    functionName: event_debug_note_teardown_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - HT_REMOVE
    - mm_free
    - event_debug_mode_too_late_set
    - EVLOCK_UNLOCK
    - EVLOCK_LOCK
    linkageType: ''
    returnType: void
    signature: void event_debug_note_teardown_(const struct event *ev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/event.c:309,1
    - Dst: HT_FIND
      Src: /src/libevent/event.c:310,1
    - Dst: event_errx
      Src: /src/libevent/event.c:314,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/event.c:319,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/event.c:321,1
    - Dst: event_debug_mode_too_late_set
      Src: /src/libevent/event.c:324,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 325
    functionName: event_debug_note_add_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_debug_mode_too_late_set
    - EVLOCK_UNLOCK
    - HT_FIND
    - event_errx
    - EV_SOCK_ARG
    - EVLOCK_LOCK
    linkageType: ''
    returnType: void
    signature: void event_debug_note_add_(const struct event *ev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/event.c:335,1
    - Dst: HT_FIND
      Src: /src/libevent/event.c:336,1
    - Dst: event_errx
      Src: /src/libevent/event.c:340,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/event.c:345,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/event.c:347,1
    - Dst: event_debug_mode_too_late_set
      Src: /src/libevent/event.c:350,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 351
    functionName: event_debug_note_del_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_debug_mode_too_late_set
    - EVLOCK_UNLOCK
    - HT_FIND
    - event_errx
    - EV_SOCK_ARG
    - EVLOCK_LOCK
    linkageType: ''
    returnType: void
    signature: void event_debug_note_del_(const struct event *ev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/event.c:361,1
    - Dst: HT_FIND
      Src: /src/libevent/event.c:362,1
    - Dst: event_errx
      Src: /src/libevent/event.c:364,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/event.c:369,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/event.c:371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 372
    functionName: event_debug_assert_is_setup_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVLOCK_UNLOCK
    - HT_FIND
    - event_errx
    - EV_SOCK_ARG
    - EVLOCK_LOCK
    linkageType: ''
    returnType: void
    signature: void event_debug_assert_is_setup_(const struct event *ev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/event.c:382,1
    - Dst: HT_FIND
      Src: /src/libevent/event.c:383,1
    - Dst: event_errx
      Src: /src/libevent/event.c:385,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/event.c:390,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/event.c:392,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 393
    functionName: event_debug_assert_not_added_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVLOCK_UNLOCK
    - HT_FIND
    - event_errx
    - EV_SOCK_ARG
    - EVLOCK_LOCK
    linkageType: ''
    returnType: void
    signature: void event_debug_assert_not_added_(const struct event *ev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/libevent/event.c:404,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:405,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 409
    functionName: event_debug_assert_socket_nonblocking_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - fcntl
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: void
    signature: void event_debug_assert_socket_nonblocking_(evutil_socket_t fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 411
    functionName: event_debug_note_setup_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_debug_note_setup_(const struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 412
    functionName: event_debug_note_teardown_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_debug_note_teardown_(const struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 413
    functionName: event_debug_note_add_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_debug_note_add_(const struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 414
    functionName: event_debug_note_del_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_debug_note_del_(const struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 415
    functionName: event_debug_assert_is_setup_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_debug_assert_is_setup_(const struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 416
    functionName: event_debug_assert_not_added_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_debug_assert_not_added_(const struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 417
    functionName: event_debug_assert_socket_nonblocking_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_debug_assert_socket_nonblocking_(evutil_socket_t fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 422
    functionName: EVENT_BASE_ASSERT_LOCKED
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_BASE_ASSERT_LOCKED(base)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:435,1
    - Dst: evutil_gettime_monotonic_
      Src: /src/libevent/event.c:442,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/event.c:449,1
    - Dst: evutil_timersub
      Src: /src/libevent/event.c:450,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - base
    - tp
    argTypes:
    - struct event_base*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 455
    functionName: gettime
    functionSourceFile: /src/libevent/event.c
    functionUses: 2
    functionsReached:
    - evutil_timersub
    - evutil_gettimeofday
    - evutil_gettime_monotonic_
    - EVENT_BASE_ASSERT_LOCKED
    linkageType: ''
    returnType: int
    signature: int gettime(struct event_base *base, struct timeval *tp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/event.c:464,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:467,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/event.c:469,1
    - Dst: evutil_timeradd
      Src: /src/libevent/event.c:471,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - base
    - tv
    argTypes:
    - struct event_base*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 476
    functionName: event_base_gettimeofday_cached
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - EVBASE_ACQUIRE_LOCK
    - evutil_timeradd
    - EVBASE_RELEASE_LOCK
    linkageType: ''
    returnType: int
    signature: int event_base_gettimeofday_cached(struct event_base *base, struct
      timeval *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 483
    functionName: clear_time_cache
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear_time_cache(struct event_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gettime
      Src: /src/libevent/event.c:491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 486
    functionDepth: 2
    functionLinenumber: 486
    functionLinenumberEnd: 492
    functionName: update_time_cache
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - gettime
    linkageType: ''
    returnType: void
    signature: void update_time_cache(struct event_base *base)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:504,1
    - Dst: update_time_cache
      Src: /src/libevent/event.c:506,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:507,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 494
    functionDepth: 3
    functionLinenumber: 494
    functionLinenumberEnd: 509
    functionName: event_base_update_cache_time
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_ACQUIRE_LOCK
    - EVBASE_RELEASE_LOCK
    - update_time_cache
    linkageType: ''
    returnType: int
    signature: int event_base_update_cache_time(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:514,1
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/event.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - evcb
    argTypes:
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 516
    functionName: event_callback_to_event
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - EVUTIL_UPCAST
    linkageType: ''
    returnType: struct event
    signature: 'struct event *

      event_callback_to_event(struct event_callback *evcb)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 522
    functionName: event_to_event_callback
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct event_callback
    signature: 'struct event_callback *

      event_to_event_callback(struct event *ev)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_new_with_config
      Src: /src/libevent/event.c:527,1
    - Dst: event_errx
      Src: /src/libevent/event.c:530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 524
    functionDepth: 2
    functionLinenumber: 524
    functionLinenumberEnd: 537
    functionName: event_init
    functionSourceFile: /src/libevent/event.c
    functionUses: 17
    functionsReached:
    - event_base_new_with_config
    - event_errx
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      event_init(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_config_new
      Src: /src/libevent/event.c:543,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/event.c:545,1
    - Dst: event_config_free
      Src: /src/libevent/event.c:546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 549
    functionName: event_base_new
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_config_free
    - event_base_new_with_config
    - event_config_new
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      event_base_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/event.c:559,1
    - Dst: strcmp
      Src: /src/libevent/event.c:561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - cfg
    - method
    argTypes:
    - struct event_config*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 566
    functionName: event_config_is_avoided_method
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - strcmp
    - TAILQ_FOREACH
    linkageType: ''
    returnType: int
    signature: "int event_config_is_avoided_method(const struct event_config *cfg,\n
      \   const char *method)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_snprintf
      Src: /src/libevent/event.c:575,1
    - Dst: EVUTIL_TOUPPER_
      Src: /src/libevent/event.c:577,1
    - Dst: evutil_getenv_
      Src: /src/libevent/event.c:580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 569
    functionDepth: 2
    functionLinenumber: 569
    functionLinenumberEnd: 581
    functionName: event_is_method_disabled
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - evutil_snprintf
    - evutil_getenv_
    - EVUTIL_TOUPPER_
    linkageType: ''
    returnType: int
    signature: int event_is_method_disabled(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 587
    functionName: event_base_get_features
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int event_base_get_features(const struct event_base *base)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_errx
      Src: /src/libevent/event.c:594,1
    - Dst: event_errx
      Src: /src/libevent/event.c:596,1
    - Dst: HT_INIT
      Src: /src/libevent/event.c:601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 589
    functionDepth: 2
    functionLinenumber: 589
    functionLinenumberEnd: 603
    functionName: event_enable_debug_mode
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_errx
    - HT_INIT
    linkageType: ''
    returnType: void
    signature: void event_enable_debug_mode(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/event.c:611,1
    - Dst: HT_START
      Src: /src/libevent/event.c:612,1
    - Dst: HT_NEXT_RMV
      Src: /src/libevent/event.c:614,1
    - Dst: mm_free
      Src: /src/libevent/event.c:615,1
    - Dst: HT_CLEAR
      Src: /src/libevent/event.c:617,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/event.c:618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 622
    functionName: event_disable_debug_mode
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - mm_free
    - HT_NEXT_RMV
    - EVLOCK_UNLOCK
    - HT_START
    - HT_CLEAR
    - EVLOCK_LOCK
    linkageType: ''
    returnType: void
    signature: void event_disable_debug_mode(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/event.c:632,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/event.c:635,1
    - Dst: mm_calloc
      Src: /src/libevent/event.c:638,1
    - Dst: event_warn
      Src: /src/libevent/event.c:639,1
    - Dst: evutil_getenv_
      Src: /src/libevent/event.c:655,1
    - Dst: evutil_configure_monotonic_time_
      Src: /src/libevent/event.c:661,1
    - Dst: gettime
      Src: /src/libevent/event.c:663,1
    - Dst: min_heap_ctor_
      Src: /src/libevent/event.c:666,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/event.c:673,1
    - Dst: evmap_io_initmap_
      Src: /src/libevent/event.c:675,1
    - Dst: evmap_signal_initmap_
      Src: /src/libevent/event.c:676,1
    - Dst: event_changelist_init_
      Src: /src/libevent/event.c:677,1
    - Dst: memcpy
      Src: /src/libevent/event.c:682,1
    - Dst: event_config_is_avoided_method
      Src: /src/libevent/event.c:702,1
    - Dst: event_is_method_disabled
      Src: /src/libevent/event.c:712,1
    - Dst: struct event_base*::evsel::init
      Src: /src/libevent/event.c:717,1
    - Dst: event_warnx
      Src: /src/libevent/event.c:721,1
    - Dst: event_base_free
      Src: /src/libevent/event.c:724,1
    - Dst: evutil_getenv_
      Src: /src/libevent/event.c:728,1
    - Dst: event_msgx
      Src: /src/libevent/event.c:729,1
    - Dst: event_base_priority_init
      Src: /src/libevent/event.c:732,1
    - Dst: event_base_free
      Src: /src/libevent/event.c:733,1
    - Dst: EVTHREAD_LOCKING_ENABLED
      Src: /src/libevent/event.c:744,1
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/event.c:747,1
    - Dst: EVTHREAD_ALLOC_COND
      Src: /src/libevent/event.c:748,1
    - Dst: evthread_make_base_notifiable
      Src: /src/libevent/event.c:749,1
    - Dst: event_warnx
      Src: /src/libevent/event.c:751,1
    - Dst: event_base_free
      Src: /src/libevent/event.c:752,1
    - Dst: event_base_start_iocp_
      Src: /src/libevent/event.c:760,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/event.c:765,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 86
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - struct event_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 624
    functionDepth: 3
    functionLinenumber: 624
    functionLinenumberEnd: 768
    functionName: event_base_new_with_config
    functionSourceFile: /src/libevent/event.c
    functionUses: 2
    functionsReached:
    - event_config_is_avoided_method
    - evutil_configure_monotonic_time_
    - event_changelist_init_
    - event_base_start_iocp_
    - event_base_free
    - event_base_priority_init
    - event_is_method_disabled
    - min_heap_ctor_
    - struct event_base*::evsel::init
    - EVTHREAD_ALLOC_COND
    - event_msgx
    - evmap_io_initmap_
    - memcpy
    - event_warnx
    - EVLOCK_LOCK
    - TAILQ_INIT
    - EVTHREAD_LOCKING_ENABLED
    - evmap_signal_initmap_
    - EVTHREAD_ALLOC_LOCK
    - evutil_getenv_
    - EVLOCK_UNLOCK
    - mm_calloc
    - event_warn
    - gettime
    - evthread_make_base_notifiable
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      event_base_new_with_config(const struct event_config *cfg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_iocp_port_launch_
      Src: /src/libevent/event.c:776,1
    - Dst: event_warnx
      Src: /src/libevent/event.c:778,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - base
    - n_cpus
    argTypes:
    - struct event_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 770
    functionDepth: 3
    functionLinenumber: 770
    functionLinenumberEnd: 785
    functionName: event_base_start_iocp_
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - event_warnx
    - event_iocp_port_launch_
    linkageType: ''
    returnType: int
    signature: int event_base_start_iocp_(struct event_base *base, int n_cpus)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_iocp_shutdown_
      Src: /src/libevent/event.c:795,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 787
    functionDepth: 3
    functionLinenumber: 787
    functionLinenumberEnd: 799
    functionName: event_base_stop_iocp_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - event_iocp_shutdown_
    linkageType: ''
    returnType: void
    signature: void event_base_stop_iocp_(struct event_base *base)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: event_callback_to_event
      Src: /src/libevent/event.c:809,1
    - Dst: event_del_
      Src: /src/libevent/event.c:811,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:815,1
    - Dst: event_callback_cancel_nolock_
      Src: /src/libevent/event.c:816,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:817,1
    - Dst: event_callback_to_event
      Src: /src/libevent/event.c:825,1
    - Dst: struct event*::ev_evcallback::evcb_cb_union::evcb_evfinalize
      Src: /src/libevent/event.c:826,1
    - Dst: mm_free
      Src: /src/libevent/event.c:828,1
    - Dst: struct event_callback*::evcb_cb_union::evcb_cbfinalize
      Src: /src/libevent/event.c:832,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - base
    - evcb
    - run_finalizers
    argTypes:
    - struct event_base*
    - struct event_callback*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 801
    functionDepth: 2
    functionLinenumber: 801
    functionLinenumberEnd: 839
    functionName: event_base_cancel_single_callback_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - struct event*::ev_evcallback::evcb_cb_union::evcb_evfinalize
    - mm_free
    - EVBASE_RELEASE_LOCK
    - event_callback_cancel_nolock_
    - event_del_
    - event_callback_to_event
    - EVBASE_ACQUIRE_LOCK
    - struct event_callback*::evcb_cb_union::evcb_cbfinalize
    linkageType: ''
    returnType: int
    signature: "int event_base_cancel_single_callback_(struct event_base *base,\n
      \   struct event_callback *evcb,\n    int run_finalizers)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/event.c:847,1
    - Dst: TAILQ_NEXT
      Src: /src/libevent/event.c:848,1
    - Dst: event_base_cancel_single_callback_
      Src: /src/libevent/event.c:849,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/event.c:856,1
    - Dst: event_base_cancel_single_callback_
      Src: /src/libevent/event.c:857,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - base
    - run_finalizers
    argTypes:
    - struct event_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 841
    functionDepth: 3
    functionLinenumber: 841
    functionLinenumberEnd: 862
    functionName: event_base_free_queues_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - TAILQ_NEXT
    - TAILQ_FIRST
    - event_base_cancel_single_callback_
    linkageType: ''
    returnType: int
    signature: int event_base_free_queues_(struct event_base *base, int run_finalizers)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: event_warnx
      Src: /src/libevent/event.c:880,1
    - Dst: event_base_stop_iocp_
      Src: /src/libevent/event.c:886,1
    - Dst: event_del
      Src: /src/libevent/event.c:891,1
    - Dst: EVUTIL_CLOSESOCKET
      Src: /src/libevent/event.c:892,1
    - Dst: EVUTIL_CLOSESOCKET
      Src: /src/libevent/event.c:894,1
    - Dst: event_debug_unassign
      Src: /src/libevent/event.c:897,1
    - Dst: evmap_delete_all_
      Src: /src/libevent/event.c:901,1
    - Dst: min_heap_top_
      Src: /src/libevent/event.c:903,1
    - Dst: event_del
      Src: /src/libevent/event.c:904,1
    - Dst: event_del
      Src: /src/libevent/event.c:910,1
    - Dst: event_debug_unassign
      Src: /src/libevent/event.c:911,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/event.c:912,1
    - Dst: TAILQ_NEXT
      Src: /src/libevent/event.c:913,1
    - Dst: event_del
      Src: /src/libevent/event.c:916,1
    - Dst: mm_free
      Src: /src/libevent/event.c:921,1
    - Dst: mm_free
      Src: /src/libevent/event.c:924,1
    - Dst: event_base_free_queues_
      Src: /src/libevent/event.c:935,1
    - Dst: event_debug
      Src: /src/libevent/event.c:936,1
    - Dst: event_debug
      Src: /src/libevent/event.c:944,1
    - Dst: LIST_FIRST
      Src: /src/libevent/event.c:947,1
    - Dst: LIST_FIRST
      Src: /src/libevent/event.c:948,1
    - Dst: LIST_REMOVE
      Src: /src/libevent/event.c:949,1
    - Dst: mm_free
      Src: /src/libevent/event.c:950,1
    - Dst: struct event_base*::evsel::dealloc
      Src: /src/libevent/event.c:954,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:957,1
    - Dst: TAILQ_EMPTY
      Src: /src/libevent/event.c:957,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:959,1
    - Dst: min_heap_empty_
      Src: /src/libevent/event.c:959,1
    - Dst: min_heap_dtor_
      Src: /src/libevent/event.c:960,1
    - Dst: mm_free
      Src: /src/libevent/event.c:962,1
    - Dst: evmap_io_clear_
      Src: /src/libevent/event.c:964,1
    - Dst: evmap_signal_clear_
      Src: /src/libevent/event.c:965,1
    - Dst: event_changelist_freemem_
      Src: /src/libevent/event.c:966,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/event.c:968,1
    - Dst: EVTHREAD_FREE_COND
      Src: /src/libevent/event.c:969,1
    - Dst: TAILQ_EMPTY
      Src: /src/libevent/event.c:973,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/event.c:974,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/event.c:975,1
    - Dst: mm_free
      Src: /src/libevent/event.c:976,1
    - Dst: mm_free
      Src: /src/libevent/event.c:983,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 71
    argCount: 2
    argNames:
    - base
    - run_finalizers
    argTypes:
    - struct event_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 864
    functionDepth: 4
    functionLinenumber: 864
    functionLinenumberEnd: 984
    functionName: event_base_free_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_del
    - event_debug_unassign
    - LIST_FIRST
    - evmap_io_clear_
    - struct event_base*::evsel::dealloc
    - EVUTIL_CLOSESOCKET
    - min_heap_top_
    - EVTHREAD_FREE_LOCK
    - event_warnx
    - min_heap_empty_
    - event_changelist_freemem_
    - evmap_delete_all_
    - mm_free
    - EVUTIL_ASSERT
    - event_base_free_queues_
    - TAILQ_FIRST
    - TAILQ_NEXT
    - event_debug
    - TAILQ_REMOVE
    - EVTHREAD_FREE_COND
    - event_base_stop_iocp_
    - evmap_signal_clear_
    - LIST_REMOVE
    - TAILQ_EMPTY
    - min_heap_dtor_
    linkageType: ''
    returnType: void
    signature: void event_base_free_(struct event_base *base, int run_finalizers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_free_
      Src: /src/libevent/event.c:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 986
    functionDepth: 5
    functionLinenumber: 986
    functionLinenumberEnd: 990
    functionName: event_base_free_nofinalize
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_base_free_
    linkageType: ''
    returnType: void
    signature: void event_base_free_nofinalize(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_free_
      Src: /src/libevent/event.c:995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 992
    functionDepth: 5
    functionLinenumber: 992
    functionLinenumberEnd: 996
    functionName: event_base_free
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - event_base_free_
    linkageType: ''
    returnType: void
    signature: void event_base_free(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - b
    - fd
    - old
    - events
    - fdinfo
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 1001
    functionDepth: 0
    functionLinenumber: 1001
    functionLinenumberEnd: 1006
    functionName: nil_backend_del
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int nil_backend_del(struct event_base *b, evutil_socket_t fd, short
      old,\n    short events, void *fdinfo)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1026,1
    - Dst: event_del_nolock_
      Src: /src/libevent/event.c:1050,1
    - Dst: event_debug_unassign
      Src: /src/libevent/event.c:1051,1
    - Dst: memset
      Src: /src/libevent/event.c:1052,1
    - Dst: EVUTIL_CLOSESOCKET
      Src: /src/libevent/event.c:1057,1
    - Dst: EVUTIL_CLOSESOCKET
      Src: /src/libevent/event.c:1059,1
    - Dst: event_del_nolock_
      Src: /src/libevent/event.c:1065,1
    - Dst: EVUTIL_CLOSESOCKET
      Src: /src/libevent/event.c:1066,1
    - Dst: EVUTIL_CLOSESOCKET
      Src: /src/libevent/event.c:1068,1
    - Dst: event_debug_unassign
      Src: /src/libevent/event.c:1071,1
    - Dst: struct event_base*::evsel::dealloc
      Src: /src/libevent/event.c:1088,1
    - Dst: struct eventop*::init
      Src: /src/libevent/event.c:1089,1
    - Dst: event_errx
      Src: /src/libevent/event.c:1091,1
    - Dst: event_changelist_freemem_
      Src: /src/libevent/event.c:1100,1
    - Dst: evmap_reinit_
      Src: /src/libevent/event.c:1105,1
    - Dst: evsig_init_
      Src: /src/libevent/event.c:1108,1
    - Dst: event_add_nolock_
      Src: /src/libevent/event.c:1110,1
    - Dst: evthread_make_base_notifiable_nolock_
      Src: /src/libevent/event.c:1119,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1122,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1018
    functionDepth: 2
    functionLinenumber: 1018
    functionLinenumberEnd: 1124
    functionName: event_reinit
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - event_changelist_freemem_
    - evsig_init_
    - struct event_base*::evsel::dealloc
    - event_add_nolock_
    - event_debug_unassign
    - EVBASE_RELEASE_LOCK
    - EVUTIL_CLOSESOCKET
    - event_errx
    - memset
    - evthread_make_base_notifiable_nolock_
    - evmap_reinit_
    - EVBASE_ACQUIRE_LOCK
    - struct eventop*::init
    - event_del_nolock_
    linkageType: ''
    returnType: int
    signature: int event_reinit(struct event_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1133,1
    - Dst: evutil_gettime_monotonic_
      Src: /src/libevent/event.c:1134,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - base
    - tv
    argTypes:
    - struct event_base*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1127
    functionDepth: 1
    functionLinenumber: 1127
    functionLinenumberEnd: 1139
    functionName: event_gettime_monotonic
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_ACQUIRE_LOCK
    - evutil_gettime_monotonic_
    - EVBASE_RELEASE_LOCK
    linkageType: ''
    returnType: int
    signature: int event_gettime_monotonic(struct event_base *base, struct timeval
      *tv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/event.c:1155,1
    - Dst: mm_free
      Src: /src/libevent/event.c:1166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1141
    functionDepth: 1
    functionLinenumber: 1141
    functionLinenumberEnd: 1171
    functionName: event_get_supported_methods
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - mm_free
    linkageType: ''
    returnType: char
    signature: 'char **

      event_get_supported_methods(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/event.c:1176,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/event.c:1181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1173
    functionDepth: 1
    functionLinenumber: 1173
    functionLinenumberEnd: 1187
    functionName: event_config_new
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - mm_calloc
    - TAILQ_INIT
    linkageType: ''
    returnType: struct event_config
    signature: 'struct event_config *

      event_config_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/event.c:1193,1
    - Dst: mm_free
      Src: /src/libevent/event.c:1194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct event_config_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1189
    functionDepth: 1
    functionLinenumber: 1189
    functionLinenumberEnd: 1195
    functionName: event_config_entry_free
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - mm_free
    linkageType: ''
    returnType: void
    signature: void event_config_entry_free(struct event_config_entry *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/event.c:1202,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/event.c:1203,1
    - Dst: event_config_entry_free
      Src: /src/libevent/event.c:1204,1
    - Dst: mm_free
      Src: /src/libevent/event.c:1206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - struct event_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1197
    functionDepth: 2
    functionLinenumber: 1197
    functionLinenumberEnd: 1207
    functionName: event_config_free
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - event_config_entry_free
    - mm_free
    - TAILQ_FIRST
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void event_config_free(struct event_config *cfg)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cfg
    - flag
    argTypes:
    - struct event_config*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1209
    functionDepth: 0
    functionLinenumber: 1209
    functionLinenumberEnd: 1216
    functionName: event_config_set_flag
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int event_config_set_flag(struct event_config *cfg, int flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/event.c:1221,1
    - Dst: mm_strdup
      Src: /src/libevent/event.c:1225,1
    - Dst: mm_free
      Src: /src/libevent/event.c:1226,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/event.c:1230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - cfg
    - method
    argTypes:
    - struct event_config*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1218
    functionDepth: 1
    functionLinenumber: 1218
    functionLinenumberEnd: 1233
    functionName: event_config_avoid_method
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - mm_free
    - TAILQ_INSERT_TAIL
    - mm_malloc
    - mm_strdup
    linkageType: ''
    returnType: int
    signature: int event_config_avoid_method(struct event_config *cfg, const char
      *method)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cfg
    - features
    argTypes:
    - struct event_config*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1235
    functionDepth: 0
    functionLinenumber: 1235
    functionLinenumberEnd: 1243
    functionName: event_config_require_features
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int event_config_require_features(struct event_config *cfg,\n    int
      features)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cfg
    - cpus
    argTypes:
    - struct event_config*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1245
    functionDepth: 0
    functionLinenumber: 1245
    functionLinenumberEnd: 1252
    functionName: event_config_set_num_cpus_hint
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int event_config_set_num_cpus_hint(struct event_config *cfg, int cpus)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libevent/event.c:1259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - cfg
    - max_interval
    - max_callbacks
    - min_priority
    argTypes:
    - struct event_config*
    - struct timeval*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1254
    functionDepth: 0
    functionLinenumber: 1254
    functionLinenumberEnd: 1269
    functionName: event_config_set_max_dispatch_interval
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int event_config_set_max_dispatch_interval(struct event_config *cfg,\n
      \   const struct timeval *max_interval, int max_callbacks, int min_priority)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_priority_init
      Src: /src/libevent/event.c:1274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - npriorities
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1271
    functionDepth: 1
    functionLinenumber: 1271
    functionLinenumberEnd: 1275
    functionName: event_priority_init
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_base_priority_init
    linkageType: ''
    returnType: int
    signature: int event_priority_init(int npriorities)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1283,1
    - Dst: N_ACTIVE_CALLBACKS
      Src: /src/libevent/event.c:1285,1
    - Dst: mm_free
      Src: /src/libevent/event.c:1293,1
    - Dst: mm_calloc
      Src: /src/libevent/event.c:1299,1
    - Dst: event_warn
      Src: /src/libevent/event.c:1301,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/event.c:1307,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1313,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - base
    - npriorities
    argTypes:
    - struct event_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1277
    functionDepth: 2
    functionLinenumber: 1277
    functionLinenumberEnd: 1315
    functionName: event_base_priority_init
    functionSourceFile: /src/libevent/event.c
    functionUses: 2
    functionsReached:
    - mm_free
    - EVBASE_RELEASE_LOCK
    - mm_calloc
    - N_ACTIVE_CALLBACKS
    - event_warn
    - EVBASE_ACQUIRE_LOCK
    - TAILQ_INIT
    linkageType: ''
    returnType: int
    signature: int event_base_priority_init(struct event_base *base, int npriorities)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1325,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1317
    functionDepth: 1
    functionLinenumber: 1317
    functionLinenumberEnd: 1329
    functionName: event_base_get_npriorities
    functionSourceFile: /src/libevent/event.c
    functionUses: 2
    functionsReached:
    - EVBASE_ACQUIRE_LOCK
    - EVBASE_RELEASE_LOCK
    linkageType: ''
    returnType: int
    signature: int event_base_get_npriorities(struct event_base *base)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1336,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1347,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - base
    - type
    argTypes:
    - struct event_base*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1331
    functionDepth: 1
    functionLinenumber: 1331
    functionLinenumberEnd: 1350
    functionName: event_base_get_num_events
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_ACQUIRE_LOCK
    - EVBASE_RELEASE_LOCK
    linkageType: ''
    returnType: int
    signature: int event_base_get_num_events(struct event_base *base, unsigned int
      type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1357,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1377,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - base
    - type
    - clear
    argTypes:
    - struct event_base*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1352
    functionDepth: 1
    functionLinenumber: 1352
    functionLinenumberEnd: 1380
    functionName: event_base_get_max_events
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_ACQUIRE_LOCK
    - EVBASE_RELEASE_LOCK
    linkageType: ''
    returnType: int
    signature: int event_base_get_max_events(struct event_base *base, unsigned int
      type, int clear)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1383
    functionDepth: 0
    functionLinenumber: 1383
    functionLinenumberEnd: 1388
    functionName: event_haveevents
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int event_haveevents(struct event_base *base)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1411,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1419,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1421,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - base
    - ev
    argTypes:
    - struct event_base*
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1391
    functionDepth: 1
    functionLinenumber: 1391
    functionLinenumberEnd: 1434
    functionName: event_signal_closure
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_ACQUIRE_LOCK
    - EVBASE_RELEASE_LOCK
    linkageType: ''
    returnType: void
    signature: void event_signal_closure(struct event_base *base, struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1456
    functionDepth: 0
    functionLinenumber: 1456
    functionLinenumberEnd: 1458
    functionName: COMMON_TIMEOUT_IDX
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMMON_TIMEOUT_IDX(tv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMMON_TIMEOUT_IDX
      Src: /src/libevent/event.c:1467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tv
    - base
    argTypes:
    - struct timeval*
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1460
    functionDepth: 1
    functionLinenumber: 1460
    functionLinenumberEnd: 1469
    functionName: is_common_timeout
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - COMMON_TIMEOUT_IDX
    linkageType: ''
    returnType: int
    signature: "int is_common_timeout(const struct timeval *tv,\n    const struct
      event_base *base)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tv1
    - tv2
    argTypes:
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1473
    functionDepth: 0
    functionLinenumber: 1473
    functionLinenumberEnd: 1478
    functionName: is_same_common_timeout
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_same_common_timeout(const struct timeval *tv1, const struct
      timeval *tv2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COMMON_TIMEOUT_IDX
      Src: /src/libevent/event.c:1485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - base
    - tv
    argTypes:
    - struct event_base*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1482
    functionDepth: 1
    functionLinenumber: 1482
    functionLinenumberEnd: 1486
    functionName: get_common_timeout_list
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - COMMON_TIMEOUT_IDX
    linkageType: ''
    returnType: struct common_timeout_list
    signature: 'struct common_timeout_list *

      get_common_timeout_list(struct event_base *base, const struct timeval *tv)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_common_timeout_list
      Src: /src/libevent/event.c:1494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - tv
    - base
    argTypes:
    - struct timeval*
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1489
    functionDepth: 2
    functionLinenumber: 1489
    functionLinenumberEnd: 1497
    functionName: common_timeout_ok
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - get_common_timeout_list
    linkageType: ''
    returnType: int
    signature: "int common_timeout_ok(const struct timeval *tv,\n    struct event_base
      *base)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_add_nolock_
      Src: /src/libevent/event.c:1508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctl
    - now
    - head
    argTypes:
    - struct common_timeout_list*
    - struct timeval*
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1502
    functionDepth: 1
    functionLinenumber: 1502
    functionLinenumberEnd: 1509
    functionName: common_timeout_schedule
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_add_nolock_
    linkageType: ''
    returnType: void
    signature: "void common_timeout_schedule(struct common_timeout_list *ctl,\n    const
      struct timeval *now, struct event *head)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1521,1
    - Dst: gettime
      Src: /src/libevent/event.c:1522,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/event.c:1525,1
    - Dst: event_del_nolock_
      Src: /src/libevent/event.c:1532,1
    - Dst: event_queue_remove_timeout
      Src: /src/libevent/event.c:1534,1
    - Dst: event_active_nolock_
      Src: /src/libevent/event.c:1535,1
    - Dst: common_timeout_schedule
      Src: /src/libevent/event.c:1538,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1539,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1514
    functionDepth: 2
    functionLinenumber: 1514
    functionLinenumberEnd: 1540
    functionName: common_timeout_callback
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - event_active_nolock_
    - TAILQ_FIRST
    - common_timeout_schedule
    - gettime
    - event_queue_remove_timeout
    - EVBASE_ACQUIRE_LOCK
    - event_del_nolock_
    linkageType: ''
    returnType: void
    signature: void common_timeout_callback(evutil_socket_t fd, short what, void *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1553,1
    - Dst: memcpy
      Src: /src/libevent/event.c:1555,1
    - Dst: is_common_timeout
      Src: /src/libevent/event.c:1556,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1568,1
    - Dst: is_common_timeout
      Src: /src/libevent/event.c:1568,1
    - Dst: event_warnx
      Src: /src/libevent/event.c:1574,1
    - Dst: mm_realloc
      Src: /src/libevent/event.c:1583,1
    - Dst: event_warn
      Src: /src/libevent/event.c:1586,1
    - Dst: mm_calloc
      Src: /src/libevent/event.c:1592,1
    - Dst: event_warn
      Src: /src/libevent/event.c:1594,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/event.c:1597,1
    - Dst: evtimer_assign
      Src: /src/libevent/event.c:1602,1
    - Dst: event_priority_set
      Src: /src/libevent/event.c:1605,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1612,1
    - Dst: is_common_timeout
      Src: /src/libevent/event.c:1612,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1614,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 2
    argNames:
    - base
    - duration
    argTypes:
    - struct event_base*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1544
    functionDepth: 2
    functionLinenumber: 1544
    functionLinenumberEnd: 1616
    functionName: event_base_init_common_timeout
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - evtimer_assign
    - is_common_timeout
    - EVBASE_RELEASE_LOCK
    - EVUTIL_ASSERT
    - event_priority_set
    - mm_calloc
    - mm_realloc
    - event_warn
    - memcpy
    - event_warnx
    - EVBASE_ACQUIRE_LOCK
    - TAILQ_INIT
    linkageType: ''
    returnType: struct timeval
    signature: "struct timeval *\nevent_base_init_common_timeout(struct event_base
      *base,\n    const struct timeval *duration)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1637,1
    - Dst: is_same_common_timeout
      Src: /src/libevent/event.c:1637,1
    - Dst: gettime
      Src: /src/libevent/event.c:1639,1
    - Dst: is_common_timeout
      Src: /src/libevent/event.c:1640,1
    - Dst: evutil_timeradd
      Src: /src/libevent/event.c:1658,1
    - Dst: evutil_timercmp
      Src: /src/libevent/event.c:1659,1
    - Dst: evutil_timeradd
      Src: /src/libevent/event.c:1665,1
    - Dst: event_add_nolock_
      Src: /src/libevent/event.c:1668,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1678,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 2
    argNames:
    - base
    - ev
    argTypes:
    - struct event_base*
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1682
      start: 1619
    functionDepth: 2
    functionLinenumber: 1619
    functionLinenumberEnd: 1682
    functionName: event_persist_closure
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - is_common_timeout
    - event_add_nolock_
    - EVBASE_RELEASE_LOCK
    - EVUTIL_ASSERT
    - is_same_common_timeout
    - evutil_timercmp
    - gettime
    - evutil_timeradd
    linkageType: ''
    returnType: void
    signature: void event_persist_closure(struct event_base *base, struct event *ev)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1699,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/event.c:1701,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/event.c:1701,1
    - Dst: event_callback_to_event
      Src: /src/libevent/event.c:1704,1
    - Dst: event_queue_remove_active
      Src: /src/libevent/event.c:1707,1
    - Dst: event_del_nolock_
      Src: /src/libevent/event.c:1709,1
    - Dst: event_debug
      Src: /src/libevent/event.c:1710,1
    - Dst: event_queue_remove_active
      Src: /src/libevent/event.c:1718,1
    - Dst: event_debug
      Src: /src/libevent/event.c:1719,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1725,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/event.c:1725,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1738,1
    - Dst: event_signal_closure
      Src: /src/libevent/event.c:1739,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1742,1
    - Dst: event_persist_closure
      Src: /src/libevent/event.c:1743,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1748,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1751,1
    - Dst: evcb_callback
      Src: /src/libevent/event.c:1752,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1757,1
    - Dst: evcb_selfcb
      Src: /src/libevent/event.c:1758,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1765,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1768,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1769,1
    - Dst: event_debug_note_teardown_
      Src: /src/libevent/event.c:1770,1
    - Dst: evcb_evfinalize
      Src: /src/libevent/event.c:1771,1
    - Dst: mm_free
      Src: /src/libevent/event.c:1773,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1779,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1780,1
    - Dst: evcb_cbfinalize
      Src: /src/libevent/event.c:1781,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1785,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1788,1
    - Dst: EVTHREAD_COND_BROADCAST
      Src: /src/libevent/event.c:1793,1
    - Dst: update_time_cache
      Src: /src/libevent/event.c:1803,1
    - Dst: gettime
      Src: /src/libevent/event.c:1804,1
    - Dst: evutil_timercmp
      Src: /src/libevent/event.c:1805,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 83
    argCount: 4
    argNames:
    - base
    - activeq
    - max_to_process
    - endtime
    argTypes:
    - struct event_base*
    - struct evcallback_list*
    - int
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1812
      start: 1691
    functionDepth: 3
    functionLinenumber: 1691
    functionLinenumberEnd: 1812
    functionName: event_process_active_single_queue
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_queue_remove_active
    - evcb_cbfinalize
    - evcb_evfinalize
    - evcb_selfcb
    - EVBASE_RELEASE_LOCK
    - evcb_callback
    - event_signal_closure
    - event_callback_to_event
    - event_persist_closure
    - mm_free
    - event_del_nolock_
    - EVUTIL_ASSERT
    - TAILQ_FIRST
    - event_debug
    - EVBASE_ACQUIRE_LOCK
    - event_debug_note_teardown_
    - EVTHREAD_COND_BROADCAST
    - evutil_timercmp
    - gettime
    - update_time_cache
    linkageType: ''
    returnType: int
    signature: "int event_process_active_single_queue(struct event_base *base,\n    struct
      evcallback_list *activeq,\n    int max_to_process, const struct timeval *endtime)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: update_time_cache
      Src: /src/libevent/event.c:1831,1
    - Dst: gettime
      Src: /src/libevent/event.c:1832,1
    - Dst: evutil_timeradd
      Src: /src/libevent/event.c:1833,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/event.c:1840,1
    - Dst: event_process_active_single_queue
      Src: /src/libevent/event.c:1844,1
    - Dst: event_process_active_single_queue
      Src: /src/libevent/event.c:1847,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1820
    functionDepth: 4
    functionLinenumber: 1820
    functionLinenumberEnd: 1863
    functionName: event_process_active
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - event_process_active_single_queue
    - gettime
    - evutil_timeradd
    - update_time_cache
    linkageType: ''
    returnType: int
    signature: int event_process_active(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_loop
      Src: /src/libevent/event.c:1872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1869
    functionDepth: 1
    functionLinenumber: 1869
    functionLinenumberEnd: 1873
    functionName: event_dispatch
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_loop
    linkageType: ''
    returnType: int
    signature: int event_dispatch(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loop
      Src: /src/libevent/event.c:1878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - event_base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1875
    functionDepth: 1
    functionLinenumber: 1875
    functionLinenumberEnd: 1879
    functionName: event_base_dispatch
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_base_loop
    linkageType: ''
    returnType: int
    signature: int event_base_dispatch(struct event_base *event_base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1886
      start: 1881
    functionDepth: 1
    functionLinenumber: 1881
    functionLinenumberEnd: 1886
    functionName: event_base_get_method
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: char
    signature: 'char *

      event_base_get_method(const struct event_base *base)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:1891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1893
      start: 1888
    functionDepth: 1
    functionLinenumber: 1888
    functionLinenumberEnd: 1893
    functionName: event_base_get_signal_method
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: char
    signature: 'char *

      event_base_get_signal_method(const struct event_base *base)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1897
    functionDepth: 0
    functionLinenumber: 1897
    functionLinenumberEnd: 1902
    functionName: event_loopexit_cb
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_loopexit_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_once
      Src: /src/libevent/event.c:1907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tv
    argTypes:
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1909
      start: 1904
    functionDepth: 1
    functionLinenumber: 1904
    functionLinenumberEnd: 1909
    functionName: event_loopexit
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_once
    linkageType: ''
    returnType: int
    signature: int event_loopexit(const struct timeval *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_once
      Src: /src/libevent/event.c:1914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - event_base
    - tv
    argTypes:
    - struct event_base*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1911
    functionDepth: 1
    functionLinenumber: 1911
    functionLinenumberEnd: 1916
    functionName: event_base_loopexit
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_base_once
    linkageType: ''
    returnType: int
    signature: int event_base_loopexit(struct event_base *event_base, const struct
      timeval *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopbreak
      Src: /src/libevent/event.c:1921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1922
      start: 1918
    functionDepth: 1
    functionLinenumber: 1918
    functionLinenumberEnd: 1922
    functionName: event_loopbreak
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_base_loopbreak
    linkageType: ''
    returnType: int
    signature: int event_loopbreak(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1931,1
    - Dst: EVBASE_NEED_NOTIFY
      Src: /src/libevent/event.c:1934,1
    - Dst: evthread_notify_base
      Src: /src/libevent/event.c:1935,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1939,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - event_base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1941
      start: 1924
    functionDepth: 1
    functionLinenumber: 1924
    functionLinenumberEnd: 1941
    functionName: event_base_loopbreak
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - EVBASE_NEED_NOTIFY
    - EVBASE_ACQUIRE_LOCK
    - evthread_notify_base
    - EVBASE_RELEASE_LOCK
    linkageType: ''
    returnType: int
    signature: int event_base_loopbreak(struct event_base *event_base)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1950,1
    - Dst: EVBASE_NEED_NOTIFY
      Src: /src/libevent/event.c:1953,1
    - Dst: evthread_notify_base
      Src: /src/libevent/event.c:1954,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1958,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - event_base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1960
      start: 1943
    functionDepth: 1
    functionLinenumber: 1943
    functionLinenumberEnd: 1960
    functionName: event_base_loopcontinue
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_NEED_NOTIFY
    - EVBASE_ACQUIRE_LOCK
    - evthread_notify_base
    - EVBASE_RELEASE_LOCK
    linkageType: ''
    returnType: int
    signature: int event_base_loopcontinue(struct event_base *event_base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1966,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - event_base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1962
    functionDepth: 1
    functionLinenumber: 1962
    functionLinenumberEnd: 1970
    functionName: event_base_got_break
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_ACQUIRE_LOCK
    - EVBASE_RELEASE_LOCK
    linkageType: ''
    returnType: int
    signature: int event_base_got_break(struct event_base *event_base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:1976,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:1978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - event_base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1980
      start: 1972
    functionDepth: 1
    functionLinenumber: 1972
    functionLinenumberEnd: 1980
    functionName: event_base_got_exit
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_ACQUIRE_LOCK
    - EVBASE_RELEASE_LOCK
    linkageType: ''
    returnType: int
    signature: int event_base_got_exit(struct event_base *event_base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loop
      Src: /src/libevent/event.c:1987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1984
    functionDepth: 1
    functionLinenumber: 1984
    functionLinenumberEnd: 1988
    functionName: event_loop
    functionSourceFile: /src/libevent/event.c
    functionUses: 2
    functionsReached:
    - event_base_loop
    linkageType: ''
    returnType: int
    signature: int event_loop(int flags)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:2002,1
    - Dst: event_warnx
      Src: /src/libevent/event.c:2005,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2007,1
    - Dst: clear_time_cache
      Src: /src/libevent/event.c:2013,1
    - Dst: evsig_set_base_
      Src: /src/libevent/event.c:2016,1
    - Dst: EVTHREAD_GET_ID
      Src: /src/libevent/event.c:2021,1
    - Dst: N_ACTIVE_CALLBACKS
      Src: /src/libevent/event.c:2042,1
    - Dst: timeout_next
      Src: /src/libevent/event.c:2043,1
    - Dst: evutil_timerclear
      Src: /src/libevent/event.c:2049,1
    - Dst: event_haveevents
      Src: /src/libevent/event.c:2054,1
    - Dst: N_ACTIVE_CALLBACKS
      Src: /src/libevent/event.c:2054,1
    - Dst: event_debug
      Src: /src/libevent/event.c:2055,1
    - Dst: event_queue_make_later_events_active
      Src: /src/libevent/event.c:2060,1
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/event.c:2064,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2065,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:2067,1
    - Dst: clear_time_cache
      Src: /src/libevent/event.c:2070,1
    - Dst: struct eventop*::dispatch
      Src: /src/libevent/event.c:2072,1
    - Dst: event_debug
      Src: /src/libevent/event.c:2075,1
    - Dst: update_time_cache
      Src: /src/libevent/event.c:2081,1
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/event.c:2085,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2086,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:2088,1
    - Dst: timeout_process
      Src: /src/libevent/event.c:2091,1
    - Dst: N_ACTIVE_CALLBACKS
      Src: /src/libevent/event.c:2093,1
    - Dst: event_process_active
      Src: /src/libevent/event.c:2094,1
    - Dst: N_ACTIVE_CALLBACKS
      Src: /src/libevent/event.c:2096,1
    - Dst: event_debug
      Src: /src/libevent/event.c:2102,1
    - Dst: clear_time_cache
      Src: /src/libevent/event.c:2105,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2108,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 71
    argCount: 2
    argNames:
    - base
    - flags
    argTypes:
    - struct event_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2111
      start: 1990
    functionDepth: 5
    functionLinenumber: 1990
    functionLinenumberEnd: 2111
    functionName: event_base_loop
    functionSourceFile: /src/libevent/event.c
    functionUses: 3
    functionsReached:
    - event_queue_make_later_events_active
    - EVBASE_RELEASE_LOCK
    - evutil_timerclear
    - event_haveevents
    - TAILQ_FOREACH
    - evsig_set_base_
    - N_ACTIVE_CALLBACKS
    - event_process_active
    - timeout_next
    - EVTHREAD_GET_ID
    - clear_time_cache
    - event_debug
    - event_warnx
    - EVBASE_ACQUIRE_LOCK
    - struct eventop*::dispatch
    - timeout_process
    - update_time_cache
    linkageType: ''
    returnType: int
    signature: int event_base_loop(struct event_base *base, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:2121,1
    - Dst: LIST_REMOVE
      Src: /src/libevent/event.c:2122,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2123,1
    - Dst: event_debug_unassign
      Src: /src/libevent/event.c:2124,1
    - Dst: mm_free
      Src: /src/libevent/event.c:2125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2115
    functionDepth: 1
    functionLinenumber: 2115
    functionLinenumberEnd: 2126
    functionName: event_once_cb
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - mm_free
    - event_debug_unassign
    - EVBASE_RELEASE_LOCK
    - LIST_REMOVE
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: void
    signature: void event_once_cb(evutil_socket_t fd, short events, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_once
      Src: /src/libevent/event.c:2134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fd
    - events
    - arg
    - tv
    argTypes:
    - evutil_socket_t
    - short
    - void*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2135
      start: 2129
    functionDepth: 1
    functionLinenumber: 2129
    functionLinenumberEnd: 2135
    functionName: event_once
    functionSourceFile: /src/libevent/event.c
    functionUses: 6
    functionsReached:
    - event_base_once
    linkageType: ''
    returnType: int
    signature: "int event_once(evutil_socket_t fd, short events,\n    void (*callback)(evutil_socket_t,
      short, void *),\n    void *arg, const struct timeval *tv)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/event.c:2155,1
    - Dst: evtimer_assign
      Src: /src/libevent/event.c:2162,1
    - Dst: evutil_timerisset
      Src: /src/libevent/event.c:2164,1
    - Dst: event_assign
      Src: /src/libevent/event.c:2174,1
    - Dst: mm_free
      Src: /src/libevent/event.c:2177,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:2182,1
    - Dst: event_active_nolock_
      Src: /src/libevent/event.c:2184,1
    - Dst: event_add_nolock_
      Src: /src/libevent/event.c:2186,1
    - Dst: mm_free
      Src: /src/libevent/event.c:2189,1
    - Dst: LIST_INSERT_HEAD
      Src: /src/libevent/event.c:2192,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2194,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 5
    argNames:
    - base
    - fd
    - events
    - arg
    - tv
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - short
    - void*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2197
      start: 2138
    functionDepth: 1
    functionLinenumber: 2138
    functionLinenumberEnd: 2197
    functionName: event_base_once
    functionSourceFile: /src/libevent/event.c
    functionUses: 2
    functionsReached:
    - evtimer_assign
    - mm_free
    - evutil_timerisset
    - event_add_nolock_
    - EVBASE_RELEASE_LOCK
    - event_active_nolock_
    - mm_calloc
    - event_assign
    - EVBASE_ACQUIRE_LOCK
    - LIST_INSERT_HEAD
    linkageType: ''
    returnType: int
    signature: "int event_base_once(struct event_base *base, evutil_socket_t fd, short
      events,\n    void (*callback)(evutil_socket_t, short, void *),\n    void *arg,
      const struct timeval *tv)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: event_debug_assert_socket_nonblocking_
      Src: /src/libevent/event.c:2212,1
    - Dst: event_debug_assert_not_added_
      Src: /src/libevent/event.c:2213,1
    - Dst: event_warnx
      Src: /src/libevent/event.c:2228,1
    - Dst: evutil_timerclear
      Src: /src/libevent/event.c:2235,1
    - Dst: min_heap_elem_init_
      Src: /src/libevent/event.c:2242,1
    - Dst: event_debug_note_setup_
      Src: /src/libevent/event.c:2249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 5
    argNames:
    - ev
    - base
    - fd
    - events
    - arg
    argTypes:
    - struct event*
    - struct event_base*
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2252
      start: 2204
    functionDepth: 3
    functionLinenumber: 2204
    functionLinenumberEnd: 2252
    functionName: event_assign
    functionSourceFile: /src/libevent/event.c
    functionUses: 8
    functionsReached:
    - evutil_timerclear
    - event_debug_note_setup_
    - event_debug_assert_socket_nonblocking_
    - event_warnx
    - event_debug_assert_not_added_
    - min_heap_elem_init_
    linkageType: ''
    returnType: void
    signature: void event_assign(struct event *ev, struct event_base *base, evutil_socket_t
      fd, short events, void (*callback)(evutil_socket_t, short, void *), void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_debug_assert_is_setup_
      Src: /src/libevent/event.c:2261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - base
    - ev
    argTypes:
    - struct event_base*
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2267
      start: 2254
    functionDepth: 3
    functionLinenumber: 2254
    functionLinenumberEnd: 2267
    functionName: event_base_set
    functionSourceFile: /src/libevent/event.c
    functionUses: 2
    functionsReached:
    - event_debug_assert_is_setup_
    linkageType: ''
    returnType: int
    signature: int event_base_set(struct event_base *base, struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_assign
      Src: /src/libevent/event.c:2274,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:2275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ev
    - fd
    - events
    - arg
    argTypes:
    - struct event*
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2276
      start: 2269
    functionDepth: 4
    functionLinenumber: 2269
    functionLinenumberEnd: 2276
    functionName: event_set
    functionSourceFile: /src/libevent/event.c
    functionUses: 4
    functionsReached:
    - event_assign
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: void
    signature: "void event_set(struct event *ev, evutil_socket_t fd, short events,\n\t
      \ void (*callback)(evutil_socket_t, short, void *), void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2282
      start: 2278
    functionDepth: 0
    functionLinenumber: 2278
    functionLinenumberEnd: 2282
    functionName: event_self_cbarg
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      event_self_cbarg(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:2288,1
    - Dst: EVBASE_IN_THREAD
      Src: /src/libevent/event.c:2289,1
    - Dst: event_callback_to_event
      Src: /src/libevent/event.c:2292,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2296
      start: 2284
    functionDepth: 2
    functionLinenumber: 2284
    functionLinenumberEnd: 2296
    functionName: event_base_get_running_event
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_callback_to_event
    - EVBASE_IN_THREAD
    - EVBASE_ACQUIRE_LOCK
    - EVBASE_RELEASE_LOCK
    linkageType: ''
    returnType: struct event
    signature: 'struct event *

      event_base_get_running_event(struct event_base *base)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/event.c:2302,1
    - Dst: event_assign
      Src: /src/libevent/event.c:2305,1
    - Dst: mm_free
      Src: /src/libevent/event.c:2306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - base
    - fd
    - events
    - arg
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2311
      start: 2298
    functionDepth: 4
    functionLinenumber: 2298
    functionLinenumberEnd: 2311
    functionName: event_new
    functionSourceFile: /src/libevent/event.c
    functionUses: 9
    functionsReached:
    - event_assign
    - mm_free
    - mm_malloc
    linkageType: ''
    returnType: struct event
    signature: 'struct event *

      event_new(struct event_base *base, evutil_socket_t fd, short events, void (*cb)(evutil_socket_t,
      short, void *), void *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_del
      Src: /src/libevent/event.c:2321,1
    - Dst: event_debug_note_teardown_
      Src: /src/libevent/event.c:2322,1
    - Dst: mm_free
      Src: /src/libevent/event.c:2323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2325
      start: 2313
    functionDepth: 3
    functionLinenumber: 2313
    functionLinenumberEnd: 2325
    functionName: event_free
    functionSourceFile: /src/libevent/event.c
    functionUses: 21
    functionsReached:
    - event_debug_note_teardown_
    - mm_free
    - event_del
    linkageType: ''
    returnType: void
    signature: void event_free(struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_debug_assert_not_added_
      Src: /src/libevent/event.c:2330,1
    - Dst: event_debug_note_teardown_
      Src: /src/libevent/event.c:2331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2327
    functionDepth: 3
    functionLinenumber: 2327
    functionLinenumberEnd: 2334
    functionName: event_debug_unassign
    functionSourceFile: /src/libevent/event.c
    functionUses: 9
    functionsReached:
    - event_debug_note_teardown_
    - event_debug_assert_not_added_
    linkageType: ''
    returnType: void
    signature: void event_debug_unassign(struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_del_nolock_
      Src: /src/libevent/event.c:2343,1
    - Dst: event_active_nolock_
      Src: /src/libevent/event.c:2346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - base
    - flags
    - ev
    - cb
    argTypes:
    - struct event_base*
    - unsigned
    - struct event*
    - event_finalize_callback_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2349
      start: 2337
    functionDepth: 1
    functionLinenumber: 2337
    functionLinenumberEnd: 2349
    functionName: event_finalize_nolock_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_active_nolock_
    - event_del_nolock_
    linkageType: ''
    returnType: int
    signature: int event_finalize_nolock_(struct event_base *base, unsigned flags,
      struct event *ev, event_finalize_callback_fn cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_FAILURE_CHECK
      Src: /src/libevent/event.c:2356,1
    - Dst: event_warnx
      Src: /src/libevent/event.c:2357,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:2361,1
    - Dst: event_finalize_nolock_
      Src: /src/libevent/event.c:2362,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - flags
    - ev
    - cb
    argTypes:
    - unsigned
    - struct event*
    - event_finalize_callback_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2365
      start: 2351
    functionDepth: 2
    functionLinenumber: 2351
    functionLinenumberEnd: 2365
    functionName: event_finalize_impl_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - event_warnx
    - EVBASE_ACQUIRE_LOCK
    - EVUTIL_FAILURE_CHECK
    - event_finalize_nolock_
    linkageType: ''
    returnType: int
    signature: int event_finalize_impl_(unsigned flags, struct event *ev, event_finalize_callback_fn
      cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_finalize_impl_
      Src: /src/libevent/event.c:2370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - flags
    - ev
    - cb
    argTypes:
    - unsigned
    - struct event*
    - event_finalize_callback_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2371
      start: 2367
    functionDepth: 3
    functionLinenumber: 2367
    functionLinenumberEnd: 2371
    functionName: event_finalize
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_finalize_impl_
    linkageType: ''
    returnType: int
    signature: int event_finalize(unsigned flags, struct event *ev, event_finalize_callback_fn
      cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_finalize_impl_
      Src: /src/libevent/event.c:2376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - flags
    - ev
    - cb
    argTypes:
    - unsigned
    - struct event*
    - event_finalize_callback_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2373
    functionDepth: 3
    functionLinenumber: 2373
    functionLinenumberEnd: 2377
    functionName: event_free_finalize
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_finalize_impl_
    linkageType: ''
    returnType: int
    signature: int event_free_finalize(unsigned flags, struct event *ev, event_finalize_callback_fn
      cb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_callback_to_event
      Src: /src/libevent/event.c:2384,1
    - Dst: event_del_nolock_
      Src: /src/libevent/event.c:2385,1
    - Dst: event_callback_cancel_nolock_
      Src: /src/libevent/event.c:2387,1
    - Dst: event_callback_activate_nolock_
      Src: /src/libevent/event.c:2392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - base
    - flags
    - evcb
    argTypes:
    - struct event_base*
    - unsigned
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2394
      start: 2379
    functionDepth: 2
    functionLinenumber: 2379
    functionLinenumberEnd: 2394
    functionName: event_callback_finalize_nolock_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_callback_cancel_nolock_
    - event_callback_to_event
    - event_callback_activate_nolock_
    - event_del_nolock_
    linkageType: ''
    returnType: void
    signature: void event_callback_finalize_nolock_(struct event_base *base, unsigned
      flags, struct event_callback *evcb, void (*cb)(struct event_callback *, void
      *))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:2399,1
    - Dst: event_callback_finalize_nolock_
      Src: /src/libevent/event.c:2400,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - base
    - flags
    - evcb
    argTypes:
    - struct event_base*
    - unsigned
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2402
      start: 2396
    functionDepth: 3
    functionLinenumber: 2396
    functionLinenumberEnd: 2402
    functionName: event_callback_finalize_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_ACQUIRE_LOCK
    - EVBASE_RELEASE_LOCK
    - event_callback_finalize_nolock_
    linkageType: ''
    returnType: void
    signature: void event_callback_finalize_(struct event_base *base, unsigned flags,
      struct event_callback *evcb, void (*cb)(struct event_callback *, void *))
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:2415,1
    - Dst: event_debug
      Src: /src/libevent/event.c:2417,1
    - Dst: event_callback_finalize_nolock_
      Src: /src/libevent/event.c:2425,1
    - Dst: event_callback_cancel_nolock_
      Src: /src/libevent/event.c:2428,1
    - Dst: event_callback_finalize_nolock_
      Src: /src/libevent/event.c:2434,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - base
    - n_cbs
    - evcbs
    argTypes:
    - struct event_base*
    - int
    - struct event_callback**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2439
      start: 2407
    functionDepth: 3
    functionLinenumber: 2407
    functionLinenumberEnd: 2439
    functionName: event_callback_finalize_many_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_callback_finalize_nolock_
    - EVBASE_RELEASE_LOCK
    - event_callback_cancel_nolock_
    - event_debug
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: int
    signature: int event_callback_finalize_many_(struct event_base *base, int n_cbs,
      struct event_callback **evcbs, void (*cb)(struct event_callback *, void *))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_debug_assert_is_setup_
      Src: /src/libevent/event.c:2449,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ev
    - pri
    argTypes:
    - struct event*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2459
      start: 2446
    functionDepth: 3
    functionLinenumber: 2446
    functionLinenumberEnd: 2459
    functionName: event_priority_set
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - event_debug_assert_is_setup_
    linkageType: ''
    returnType: int
    signature: int event_priority_set(struct event *ev, int pri)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_FAILURE_CHECK
      Src: /src/libevent/event.c:2470,1
    - Dst: event_warnx
      Src: /src/libevent/event.c:2471,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:2475,1
    - Dst: event_debug_assert_is_setup_
      Src: /src/libevent/event.c:2476,1
    - Dst: evutil_timeradd
      Src: /src/libevent/event.c:2492,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2495,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - ev
    - event
    - tv
    argTypes:
    - struct event*
    - short
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2498
      start: 2465
    functionDepth: 3
    functionLinenumber: 2465
    functionLinenumberEnd: 2498
    functionName: event_pending
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - EVUTIL_FAILURE_CHECK
    - event_debug_assert_is_setup_
    - event_warnx
    - EVBASE_ACQUIRE_LOCK
    - evutil_timeradd
    linkageType: ''
    returnType: int
    signature: int event_pending(const struct event *ev, short event, struct timeval
      *tv)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2507
      start: 2500
    functionDepth: 0
    functionLinenumber: 2500
    functionLinenumberEnd: 2507
    functionName: event_initialized
    functionSourceFile: /src/libevent/event.c
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int event_initialized(const struct event *ev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: event_debug_assert_is_setup_
      Src: /src/libevent/event.c:2512,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 6
    argNames:
    - event
    - base_out
    - fd_out
    - events_out
    - callback_out
    - arg_out
    argTypes:
    - struct event*
    - struct event_base**
    - evutil_socket_t*
    - short*
    - event_callback_fn*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2524
      start: 2509
    functionDepth: 3
    functionLinenumber: 2509
    functionLinenumberEnd: 2524
    functionName: event_get_assignment
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_debug_assert_is_setup_
    linkageType: ''
    returnType: void
    signature: void event_get_assignment(const struct event *event, struct event_base
      **base_out, evutil_socket_t *fd_out, short *events_out, event_callback_fn *callback_out,
      void **arg_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2530
      start: 2526
    functionDepth: 0
    functionLinenumber: 2526
    functionLinenumberEnd: 2530
    functionName: event_get_struct_event_size
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t event_get_struct_event_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_debug_assert_is_setup_
      Src: /src/libevent/event.c:2535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2537
      start: 2532
    functionDepth: 3
    functionLinenumber: 2532
    functionLinenumberEnd: 2537
    functionName: event_get_fd
    functionSourceFile: /src/libevent/event.c
    functionUses: 2
    functionsReached:
    - event_debug_assert_is_setup_
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t event_get_fd(const struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_debug_assert_is_setup_
      Src: /src/libevent/event.c:2542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2544
      start: 2539
    functionDepth: 3
    functionLinenumber: 2539
    functionLinenumberEnd: 2544
    functionName: event_get_base
    functionSourceFile: /src/libevent/event.c
    functionUses: 2
    functionsReached:
    - event_debug_assert_is_setup_
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      event_get_base(const struct event *ev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_debug_assert_is_setup_
      Src: /src/libevent/event.c:2549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2551
      start: 2546
    functionDepth: 3
    functionLinenumber: 2546
    functionLinenumberEnd: 2551
    functionName: event_get_events
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_debug_assert_is_setup_
    linkageType: ''
    returnType: short
    signature: short event_get_events(const struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_debug_assert_is_setup_
      Src: /src/libevent/event.c:2556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2558
      start: 2553
    functionDepth: 3
    functionLinenumber: 2553
    functionLinenumberEnd: 2558
    functionName: event_get_callback
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_debug_assert_is_setup_
    linkageType: ''
    returnType: event_callback_fn
    signature: event_callback_fn event_get_callback(const struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_debug_assert_is_setup_
      Src: /src/libevent/event.c:2563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2565
      start: 2560
    functionDepth: 3
    functionLinenumber: 2560
    functionLinenumberEnd: 2565
    functionName: event_get_callback_arg
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_debug_assert_is_setup_
    linkageType: ''
    returnType: void
    signature: 'void *

      event_get_callback_arg(const struct event *ev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_debug_assert_is_setup_
      Src: /src/libevent/event.c:2570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2572
      start: 2567
    functionDepth: 3
    functionLinenumber: 2567
    functionLinenumberEnd: 2572
    functionName: event_get_priority
    functionSourceFile: /src/libevent/event.c
    functionUses: 2
    functionsReached:
    - event_debug_assert_is_setup_
    linkageType: ''
    returnType: int
    signature: int event_get_priority(const struct event *ev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_FAILURE_CHECK
      Src: /src/libevent/event.c:2579,1
    - Dst: event_warnx
      Src: /src/libevent/event.c:2580,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:2584,1
    - Dst: event_add_nolock_
      Src: /src/libevent/event.c:2586,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ev
    - tv
    argTypes:
    - struct event*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2591
      start: 2574
    functionDepth: 2
    functionLinenumber: 2574
    functionLinenumberEnd: 2591
    functionName: event_add
    functionSourceFile: /src/libevent/event.c
    functionUses: 21
    functionsReached:
    - event_add_nolock_
    - EVBASE_RELEASE_LOCK
    - event_warnx
    - EVBASE_ACQUIRE_LOCK
    - EVUTIL_FAILURE_CHECK
    linkageType: ''
    returnType: int
    signature: int event_add(struct event *ev, const struct timeval *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/libevent/event.c:2604,1
    - Dst: write
      Src: /src/libevent/event.c:2606,1
    - Dst: EVUTIL_ERR_IS_EAGAIN
      Src: /src/libevent/event.c:2608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2609
      start: 2597
    functionDepth: 1
    functionLinenumber: 2597
    functionLinenumberEnd: 2609
    functionName: evthread_notify_base_default
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ERR_IS_EAGAIN
    - write
    - send
    linkageType: ''
    returnType: int
    signature: int evthread_notify_base_default(struct event_base *base)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: eventfd_write
      Src: /src/libevent/event.c:2621,1
    - Dst: eventfd_read
      Src: /src/libevent/event.c:2629,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2640
      start: 2614
    functionDepth: 0
    functionLinenumber: 2614
    functionLinenumberEnd: 2640
    functionName: evthread_notify_base_eventfd
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - eventfd_write
    - eventfd_read
    linkageType: ''
    returnType: int
    signature: int evthread_notify_base_eventfd(struct event_base *base)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:2650,1
    - Dst: struct event_base*::th_notify_fn
      Src: /src/libevent/event.c:2656,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2657
      start: 2647
    functionDepth: 1
    functionLinenumber: 2647
    functionLinenumberEnd: 2657
    functionName: evthread_notify_base
    functionSourceFile: /src/libevent/event.c
    functionUses: 2
    functionsReached:
    - struct event_base*::th_notify_fn
    - EVENT_BASE_ASSERT_LOCKED
    linkageType: ''
    returnType: int
    signature: int evthread_notify_base(struct event_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:2666,1
    - Dst: event_debug_assert_is_setup_
      Src: /src/libevent/event.c:2667,1
    - Dst: event_debug
      Src: /src/libevent/event.c:2669,1
    - Dst: event_queue_remove_timeout
      Src: /src/libevent/event.c:2673,1
    - Dst: evutil_timerclear
      Src: /src/libevent/event.c:2674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2678
      start: 2661
    functionDepth: 3
    functionLinenumber: 2661
    functionLinenumberEnd: 2678
    functionName: event_remove_timer_nolock_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - evutil_timerclear
    - event_debug_assert_is_setup_
    - event_queue_remove_timeout
    - event_debug
    - EVENT_BASE_ASSERT_LOCKED
    linkageType: ''
    returnType: int
    signature: int event_remove_timer_nolock_(struct event *ev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_FAILURE_CHECK
      Src: /src/libevent/event.c:2685,1
    - Dst: event_warnx
      Src: /src/libevent/event.c:2686,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:2690,1
    - Dst: event_remove_timer_nolock_
      Src: /src/libevent/event.c:2692,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2697
      start: 2680
    functionDepth: 4
    functionLinenumber: 2680
    functionLinenumberEnd: 2697
    functionName: event_remove_timer
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - EVUTIL_FAILURE_CHECK
    - event_warnx
    - EVBASE_ACQUIRE_LOCK
    - event_remove_timer_nolock_
    linkageType: ''
    returnType: int
    signature: int event_remove_timer(struct event *ev)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:2711,1
    - Dst: event_debug_assert_is_setup_
      Src: /src/libevent/event.c:2712,1
    - Dst: event_debug
      Src: /src/libevent/event.c:2714,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/event.c:2717,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:2724,1
    - Dst: min_heap_reserve_
      Src: /src/libevent/event.c:2736,1
    - Dst: min_heap_size_
      Src: /src/libevent/event.c:2737,1
    - Dst: event_to_event_callback
      Src: /src/libevent/event.c:2746,1
    - Dst: EVBASE_IN_THREAD
      Src: /src/libevent/event.c:2748,1
    - Dst: EVTHREAD_COND_WAIT
      Src: /src/libevent/event.c:2750,1
    - Dst: evmap_io_add_
      Src: /src/libevent/event.c:2757,1
    - Dst: evmap_signal_add_
      Src: /src/libevent/event.c:2759,1
    - Dst: event_queue_insert_inserted
      Src: /src/libevent/event.c:2761,1
    - Dst: event_queue_remove_timeout
      Src: /src/libevent/event.c:2792,1
    - Dst: event_queue_remove_active
      Src: /src/libevent/event.c:2811,1
    - Dst: event_to_event_callback
      Src: /src/libevent/event.c:2811,1
    - Dst: gettime
      Src: /src/libevent/event.c:2814,1
    - Dst: is_common_timeout
      Src: /src/libevent/event.c:2816,1
    - Dst: is_common_timeout
      Src: /src/libevent/event.c:2818,1
    - Dst: COMMON_TIMEOUT_IDX
      Src: /src/libevent/event.c:2819,1
    - Dst: evutil_timeradd
      Src: /src/libevent/event.c:2827,1
    - Dst: evutil_timeradd
      Src: /src/libevent/event.c:2831,1
    - Dst: event_debug
      Src: /src/libevent/event.c:2834,1
    - Dst: event_queue_reinsert_timeout
      Src: /src/libevent/event.c:2839,1
    - Dst: event_queue_insert_timeout
      Src: /src/libevent/event.c:2841,1
    - Dst: get_common_timeout_list
      Src: /src/libevent/event.c:2846,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/event.c:2847,1
    - Dst: common_timeout_schedule
      Src: /src/libevent/event.c:2848,1
    - Dst: min_heap_elt_is_top_
      Src: /src/libevent/event.c:2858,1
    - Dst: min_heap_top_
      Src: /src/libevent/event.c:2860,1
    - Dst: evutil_timercmp
      Src: /src/libevent/event.c:2861,1
    - Dst: EVBASE_NEED_NOTIFY
      Src: /src/libevent/event.c:2867,1
    - Dst: evthread_notify_base
      Src: /src/libevent/event.c:2868,1
    - Dst: event_debug_note_add_
      Src: /src/libevent/event.c:2870,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 74
    argCount: 3
    argNames:
    - ev
    - tv
    - tv_is_absolute
    argTypes:
    - struct event*
    - struct timeval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2873
      start: 2703
    functionDepth: 3
    functionLinenumber: 2703
    functionLinenumberEnd: 2873
    functionName: event_add_nolock_
    functionSourceFile: /src/libevent/event.c
    functionUses: 5
    functionsReached:
    - event_queue_remove_active
    - min_heap_reserve_
    - evmap_io_add_
    - get_common_timeout_list
    - common_timeout_schedule
    - EVENT_BASE_ASSERT_LOCKED
    - min_heap_top_
    - COMMON_TIMEOUT_IDX
    - event_queue_remove_timeout
    - event_queue_reinsert_timeout
    - min_heap_elt_is_top_
    - evutil_timeradd
    - EVBASE_IN_THREAD
    - EVUTIL_ASSERT
    - EVTHREAD_COND_WAIT
    - event_queue_insert_inserted
    - TAILQ_FIRST
    - evthread_notify_base
    - EVBASE_NEED_NOTIFY
    - event_queue_insert_timeout
    - event_debug
    - evmap_signal_add_
    - is_common_timeout
    - min_heap_size_
    - event_debug_note_add_
    - evutil_timercmp
    - event_debug_assert_is_setup_
    - gettime
    - EV_SOCK_ARG
    - event_to_event_callback
    linkageType: ''
    returnType: int
    signature: "int event_add_nolock_(struct event *ev, const struct timeval *tv,\n
      \   int tv_is_absolute)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_FAILURE_CHECK
      Src: /src/libevent/event.c:2881,1
    - Dst: event_warnx
      Src: /src/libevent/event.c:2882,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:2886,1
    - Dst: event_del_nolock_
      Src: /src/libevent/event.c:2887,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:2888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ev
    - blocking
    argTypes:
    - struct event*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2891
      start: 2875
    functionDepth: 2
    functionLinenumber: 2875
    functionLinenumberEnd: 2891
    functionName: event_del_
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - event_warnx
    - EVBASE_ACQUIRE_LOCK
    - EVUTIL_FAILURE_CHECK
    - event_del_nolock_
    linkageType: ''
    returnType: int
    signature: int event_del_(struct event *ev, int blocking)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_del_
      Src: /src/libevent/event.c:2896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2897
      start: 2893
    functionDepth: 3
    functionLinenumber: 2893
    functionLinenumberEnd: 2897
    functionName: event_del
    functionSourceFile: /src/libevent/event.c
    functionUses: 33
    functionsReached:
    - event_del_
    linkageType: ''
    returnType: int
    signature: int event_del(struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_del_
      Src: /src/libevent/event.c:2902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2903
      start: 2899
    functionDepth: 3
    functionLinenumber: 2899
    functionLinenumberEnd: 2903
    functionName: event_del_block
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_del_
    linkageType: ''
    returnType: int
    signature: int event_del_block(struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_del_
      Src: /src/libevent/event.c:2908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2909
      start: 2905
    functionDepth: 3
    functionLinenumber: 2905
    functionLinenumberEnd: 2909
    functionName: event_del_noblock
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_del_
    linkageType: ''
    returnType: int
    signature: int event_del_noblock(struct event *ev)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: event_debug
      Src: /src/libevent/event.c:2922,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/event.c:2923,1
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:2929,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:2940,1
    - Dst: min_heap_top_
      Src: /src/libevent/event.c:2952,1
    - Dst: event_queue_remove_timeout
      Src: /src/libevent/event.c:2954,1
    - Dst: event_queue_remove_active
      Src: /src/libevent/event.c:2958,1
    - Dst: event_to_event_callback
      Src: /src/libevent/event.c:2958,1
    - Dst: event_queue_remove_active_later
      Src: /src/libevent/event.c:2960,1
    - Dst: event_to_event_callback
      Src: /src/libevent/event.c:2960,1
    - Dst: event_queue_remove_inserted
      Src: /src/libevent/event.c:2963,1
    - Dst: evmap_io_del_
      Src: /src/libevent/event.c:2965,1
    - Dst: evmap_signal_del_
      Src: /src/libevent/event.c:2967,1
    - Dst: event_haveevents
      Src: /src/libevent/event.c:2975,1
    - Dst: N_ACTIVE_CALLBACKS
      Src: /src/libevent/event.c:2975,1
    - Dst: EVBASE_NEED_NOTIFY
      Src: /src/libevent/event.c:2980,1
    - Dst: evthread_notify_base
      Src: /src/libevent/event.c:2981,1
    - Dst: event_debug_note_del_
      Src: /src/libevent/event.c:2983,1
    - Dst: event_to_event_callback
      Src: /src/libevent/event.c:2992,1
    - Dst: EVBASE_IN_THREAD
      Src: /src/libevent/event.c:2993,1
    - Dst: EVTHREAD_COND_WAIT
      Src: /src/libevent/event.c:2996,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 46
    argCount: 2
    argNames:
    - ev
    - blocking
    argTypes:
    - struct event*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3001
      start: 2916
    functionDepth: 3
    functionLinenumber: 2916
    functionLinenumberEnd: 3001
    functionName: event_del_nolock_
    functionSourceFile: /src/libevent/event.c
    functionUses: 6
    functionsReached:
    - event_queue_remove_active
    - evmap_io_del_
    - event_debug_note_del_
    - EVENT_BASE_ASSERT_LOCKED
    - min_heap_top_
    - N_ACTIVE_CALLBACKS
    - event_queue_remove_timeout
    - event_queue_remove_active_later
    - EVBASE_IN_THREAD
    - EVUTIL_ASSERT
    - EVTHREAD_COND_WAIT
    - evthread_notify_base
    - EVBASE_NEED_NOTIFY
    - event_debug
    - event_queue_remove_inserted
    - event_haveevents
    - event_to_event_callback
    - EV_SOCK_ARG
    - evmap_signal_del_
    linkageType: ''
    returnType: int
    signature: int event_del_nolock_(struct event *ev, int blocking)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_FAILURE_CHECK
      Src: /src/libevent/event.c:3006,1
    - Dst: event_warnx
      Src: /src/libevent/event.c:3007,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3011,1
    - Dst: event_debug_assert_is_setup_
      Src: /src/libevent/event.c:3013,1
    - Dst: event_active_nolock_
      Src: /src/libevent/event.c:3015,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3017,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ev
    - res
    - ncalls
    argTypes:
    - struct event*
    - int
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3018
      start: 3003
    functionDepth: 3
    functionLinenumber: 3003
    functionLinenumberEnd: 3018
    functionName: event_active
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - event_active_nolock_
    - event_debug_assert_is_setup_
    - event_warnx
    - EVBASE_ACQUIRE_LOCK
    - EVUTIL_FAILURE_CHECK
    linkageType: ''
    returnType: void
    signature: void event_active(struct event *ev, int res, short ncalls)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: event_debug
      Src: /src/libevent/event.c:3026,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/event.c:3027,1
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:3030,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:3040,1
    - Dst: event_to_event_callback
      Src: /src/libevent/event.c:3059,1
    - Dst: EVBASE_IN_THREAD
      Src: /src/libevent/event.c:3060,1
    - Dst: EVTHREAD_COND_WAIT
      Src: /src/libevent/event.c:3062,1
    - Dst: event_callback_activate_nolock_
      Src: /src/libevent/event.c:3069,1
    - Dst: event_to_event_callback
      Src: /src/libevent/event.c:3069,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - ev
    - res
    - ncalls
    argTypes:
    - struct event*
    - int
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3070
      start: 3021
    functionDepth: 1
    functionLinenumber: 3021
    functionLinenumberEnd: 3070
    functionName: event_active_nolock_
    functionSourceFile: /src/libevent/event.c
    functionUses: 6
    functionsReached:
    - EVBASE_IN_THREAD
    - EVUTIL_ASSERT
    - EVTHREAD_COND_WAIT
    - EV_SOCK_ARG
    - event_debug
    - event_to_event_callback
    - event_callback_activate_nolock_
    - EVENT_BASE_ASSERT_LOCKED
    linkageType: ''
    returnType: void
    signature: void event_active_nolock_(struct event *ev, int res, short ncalls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3075,1
    - Dst: event_active_later_nolock_
      Src: /src/libevent/event.c:3076,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ev
    - res
    argTypes:
    - struct event*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3078
      start: 3072
    functionDepth: 1
    functionLinenumber: 3072
    functionLinenumberEnd: 3078
    functionName: event_active_later_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_active_later_nolock_
    - EVBASE_ACQUIRE_LOCK
    - EVBASE_RELEASE_LOCK
    linkageType: ''
    returnType: void
    signature: void event_active_later_(struct event *ev, int res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:3084,1
    - Dst: event_callback_activate_later_nolock_
      Src: /src/libevent/event.c:3094,1
    - Dst: event_to_event_callback
      Src: /src/libevent/event.c:3094,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ev
    - res
    argTypes:
    - struct event*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3095
      start: 3080
    functionDepth: 1
    functionLinenumber: 3080
    functionLinenumberEnd: 3095
    functionName: event_active_later_nolock_
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - event_callback_activate_later_nolock_
    - event_to_event_callback
    - EVENT_BASE_ASSERT_LOCKED
    linkageType: ''
    returnType: void
    signature: void event_active_later_nolock_(struct event *ev, int res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3102,1
    - Dst: event_callback_activate_nolock_
      Src: /src/libevent/event.c:3103,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - base
    - evcb
    argTypes:
    - struct event_base*
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3106
      start: 3097
    functionDepth: 1
    functionLinenumber: 3097
    functionLinenumberEnd: 3106
    functionName: event_callback_activate_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_ACQUIRE_LOCK
    - event_callback_activate_nolock_
    - EVBASE_RELEASE_LOCK
    linkageType: ''
    returnType: int
    signature: "int event_callback_activate_(struct event_base *base,\n    struct
      event_callback *evcb)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:3119,1
    - Dst: event_queue_remove_active_later
      Src: /src/libevent/event.c:3122,1
    - Dst: event_queue_insert_active
      Src: /src/libevent/event.c:3131,1
    - Dst: EVBASE_NEED_NOTIFY
      Src: /src/libevent/event.c:3133,1
    - Dst: evthread_notify_base
      Src: /src/libevent/event.c:3134,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - base
    - evcb
    argTypes:
    - struct event_base*
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3137
      start: 3108
    functionDepth: 2
    functionLinenumber: 3108
    functionLinenumberEnd: 3137
    functionName: event_callback_activate_nolock_
    functionSourceFile: /src/libevent/event.c
    functionUses: 3
    functionsReached:
    - event_queue_remove_active_later
    - EVUTIL_ASSERT
    - event_queue_insert_active
    - evthread_notify_base
    - EVBASE_NEED_NOTIFY
    linkageType: ''
    returnType: int
    signature: "int event_callback_activate_nolock_(struct event_base *base,\n    struct
      event_callback *evcb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_queue_insert_active_later
      Src: /src/libevent/event.c:3146,1
    - Dst: EVBASE_NEED_NOTIFY
      Src: /src/libevent/event.c:3147,1
    - Dst: evthread_notify_base
      Src: /src/libevent/event.c:3148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - base
    - evcb
    argTypes:
    - struct event_base*
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3150
      start: 3139
    functionDepth: 2
    functionLinenumber: 3139
    functionLinenumberEnd: 3150
    functionName: event_callback_activate_later_nolock_
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - event_queue_insert_active_later
    - evthread_notify_base
    - EVBASE_NEED_NOTIFY
    linkageType: ''
    returnType: int
    signature: "int event_callback_activate_later_nolock_(struct event_base *base,\n
      \   struct event_callback *evcb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/event.c:3156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - base
    - cb
    argTypes:
    - struct event_base*
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3158
      start: 3152
    functionDepth: 0
    functionLinenumber: 3152
    functionLinenumberEnd: 3158
    functionName: event_callback_init_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "void event_callback_init_(struct event_base *base,\n    struct event_callback
      *cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3165,1
    - Dst: event_callback_cancel_nolock_
      Src: /src/libevent/event.c:3166,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - base
    - evcb
    argTypes:
    - struct event_base*
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3169
      start: 3160
    functionDepth: 1
    functionLinenumber: 3160
    functionLinenumberEnd: 3169
    functionName: event_callback_cancel_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_callback_cancel_nolock_
    - EVBASE_ACQUIRE_LOCK
    - EVBASE_RELEASE_LOCK
    linkageType: ''
    returnType: int
    signature: "int event_callback_cancel_(struct event_base *base,\n    struct event_callback
      *evcb)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: event_del_nolock_
      Src: /src/libevent/event.c:3179,1
    - Dst: event_callback_to_event
      Src: /src/libevent/event.c:3179,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:3185,1
    - Dst: event_queue_remove_active
      Src: /src/libevent/event.c:3189,1
    - Dst: event_queue_remove_active_later
      Src: /src/libevent/event.c:3192,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - base
    - evcb
    - even_if_finalizing
    argTypes:
    - struct event_base*
    - struct event_callback*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3199
      start: 3171
    functionDepth: 4
    functionLinenumber: 3171
    functionLinenumberEnd: 3199
    functionName: event_callback_cancel_nolock_
    functionSourceFile: /src/libevent/event.c
    functionUses: 4
    functionsReached:
    - event_queue_remove_active
    - event_queue_remove_active_later
    - EVUTIL_ASSERT
    - event_callback_to_event
    - event_del_nolock_
    linkageType: ''
    returnType: int
    signature: "int event_callback_cancel_nolock_(struct event_base *base,\n    struct
      event_callback *evcb, int even_if_finalizing)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/event.c:3204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - cb
    - priority
    - fn
    - arg
    argTypes:
    - struct event_callback*
    - ev_uint8_t
    - deferred_cb_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3209
      start: 3201
    functionDepth: 0
    functionLinenumber: 3201
    functionLinenumberEnd: 3209
    functionName: event_deferred_cb_init_
    functionSourceFile: /src/libevent/event.c
    functionUses: 4
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void event_deferred_cb_init_(struct event_callback *cb, ev_uint8_t
      priority, deferred_cb_fn fn, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cb
    - priority
    argTypes:
    - struct event_callback*
    - ev_uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3215
      start: 3211
    functionDepth: 0
    functionLinenumber: 3211
    functionLinenumberEnd: 3215
    functionName: event_deferred_cb_set_priority_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_deferred_cb_set_priority_(struct event_callback *cb, ev_uint8_t
      priority)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_callback_cancel_
      Src: /src/libevent/event.c:3222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - base
    - cb
    argTypes:
    - struct event_base*
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3223
      start: 3217
    functionDepth: 2
    functionLinenumber: 3217
    functionLinenumberEnd: 3223
    functionName: event_deferred_cb_cancel_
    functionSourceFile: /src/libevent/event.c
    functionUses: 3
    functionsReached:
    - event_callback_cancel_
    linkageType: ''
    returnType: void
    signature: void event_deferred_cb_cancel_(struct event_base *base, struct event_callback
      *cb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3232,1
    - Dst: event_callback_activate_later_nolock_
      Src: /src/libevent/event.c:3234,1
    - Dst: event_callback_activate_nolock_
      Src: /src/libevent/event.c:3236,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - base
    - cb
    argTypes:
    - struct event_base*
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3243
      start: 3226
    functionDepth: 3
    functionLinenumber: 3226
    functionLinenumberEnd: 3243
    functionName: event_deferred_cb_schedule_
    functionSourceFile: /src/libevent/event.c
    functionUses: 6
    functionsReached:
    - event_callback_activate_later_nolock_
    - EVBASE_ACQUIRE_LOCK
    - event_callback_activate_nolock_
    - EVBASE_RELEASE_LOCK
    linkageType: ''
    returnType: int
    signature: int event_deferred_cb_schedule_(struct event_base *base, struct event_callback
      *cb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: min_heap_top_
      Src: /src/libevent/event.c:3254,1
    - Dst: gettime
      Src: /src/libevent/event.c:3262,1
    - Dst: evutil_timercmp
      Src: /src/libevent/event.c:3267,1
    - Dst: evutil_timerclear
      Src: /src/libevent/event.c:3268,1
    - Dst: evutil_timersub
      Src: /src/libevent/event.c:3272,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:3274,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:3275,1
    - Dst: event_debug
      Src: /src/libevent/event.c:3276,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - base
    - tv_p
    argTypes:
    - struct event_base*
    - struct timeval**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3280
      start: 3245
    functionDepth: 2
    functionLinenumber: 3245
    functionLinenumberEnd: 3280
    functionName: timeout_next
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - evutil_timerclear
    - EVUTIL_ASSERT
    - min_heap_top_
    - evutil_timercmp
    - evutil_timersub
    - gettime
    - event_debug
    linkageType: ''
    returnType: int
    signature: int timeout_next(struct event_base *base, struct timeval **tv_p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: min_heap_empty_
      Src: /src/libevent/event.c:3290,1
    - Dst: gettime
      Src: /src/libevent/event.c:3294,1
    - Dst: min_heap_top_
      Src: /src/libevent/event.c:3296,1
    - Dst: evutil_timercmp
      Src: /src/libevent/event.c:3299,1
    - Dst: event_del_nolock_
      Src: /src/libevent/event.c:3303,1
    - Dst: event_queue_remove_timeout
      Src: /src/libevent/event.c:3305,1
    - Dst: event_debug
      Src: /src/libevent/event.c:3307,1
    - Dst: event_active_nolock_
      Src: /src/libevent/event.c:3309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3311
      start: 3283
    functionDepth: 4
    functionLinenumber: 3283
    functionLinenumberEnd: 3311
    functionName: timeout_process
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - event_queue_remove_timeout
    - event_active_nolock_
    - min_heap_top_
    - evutil_timercmp
    - gettime
    - event_debug
    - min_heap_empty_
    - event_del_nolock_
    linkageType: ''
    returnType: void
    signature: void timeout_process(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3315
      start: 3314
    functionDepth: 0
    functionLinenumber: 3314
    functionLinenumberEnd: 3315
    functionName: MAX
    functionSourceFile: /src/libevent/event.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - var
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3318
      start: 3317
    functionDepth: 0
    functionLinenumber: 3317
    functionLinenumberEnd: 3318
    functionName: MAX_EVENT_COUNT
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX_EVENT_COUNT(var, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3325
      start: 3323
    functionDepth: 0
    functionLinenumber: 3323
    functionLinenumberEnd: 3325
    functionName: DECR_EVENT_COUNT
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECR_EVENT_COUNT(base,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3329
      start: 3325
    functionDepth: 0
    functionLinenumber: 3325
    functionLinenumberEnd: 3329
    functionName: INCR_EVENT_COUNT
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INCR_EVENT_COUNT(base,flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:3333,1
    - Dst: EVUTIL_FAILURE_CHECK
      Src: /src/libevent/event.c:3334,1
    - Dst: event_errx
      Src: /src/libevent/event.c:3335,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/event.c:3336,1
    - Dst: DECR_EVENT_COUNT
      Src: /src/libevent/event.c:3339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - base
    - ev
    argTypes:
    - struct event_base*
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3341
      start: 3330
    functionDepth: 2
    functionLinenumber: 3330
    functionLinenumberEnd: 3341
    functionName: event_queue_remove_inserted
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - event_errx
    - DECR_EVENT_COUNT
    - EV_SOCK_ARG
    - EVUTIL_FAILURE_CHECK
    - EVENT_BASE_ASSERT_LOCKED
    linkageType: ''
    returnType: void
    signature: void event_queue_remove_inserted(struct event_base *base, struct event
      *ev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:3345,1
    - Dst: EVUTIL_FAILURE_CHECK
      Src: /src/libevent/event.c:3346,1
    - Dst: event_errx
      Src: /src/libevent/event.c:3347,1
    - Dst: DECR_EVENT_COUNT
      Src: /src/libevent/event.c:3351,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/event.c:3355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - base
    - evcb
    argTypes:
    - struct event_base*
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3357
      start: 3342
    functionDepth: 2
    functionLinenumber: 3342
    functionLinenumberEnd: 3357
    functionName: event_queue_remove_active
    functionSourceFile: /src/libevent/event.c
    functionUses: 4
    functionsReached:
    - event_errx
    - DECR_EVENT_COUNT
    - EVUTIL_FAILURE_CHECK
    - EVENT_BASE_ASSERT_LOCKED
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void event_queue_remove_active(struct event_base *base, struct event_callback
      *evcb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:3361,1
    - Dst: EVUTIL_FAILURE_CHECK
      Src: /src/libevent/event.c:3362,1
    - Dst: event_errx
      Src: /src/libevent/event.c:3363,1
    - Dst: DECR_EVENT_COUNT
      Src: /src/libevent/event.c:3367,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/event.c:3371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - base
    - evcb
    argTypes:
    - struct event_base*
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3372
      start: 3358
    functionDepth: 2
    functionLinenumber: 3358
    functionLinenumberEnd: 3372
    functionName: event_queue_remove_active_later
    functionSourceFile: /src/libevent/event.c
    functionUses: 3
    functionsReached:
    - event_errx
    - DECR_EVENT_COUNT
    - EVUTIL_FAILURE_CHECK
    - EVENT_BASE_ASSERT_LOCKED
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void event_queue_remove_active_later(struct event_base *base, struct
      event_callback *evcb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:3376,1
    - Dst: EVUTIL_FAILURE_CHECK
      Src: /src/libevent/event.c:3377,1
    - Dst: event_errx
      Src: /src/libevent/event.c:3378,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/event.c:3379,1
    - Dst: DECR_EVENT_COUNT
      Src: /src/libevent/event.c:3382,1
    - Dst: is_common_timeout
      Src: /src/libevent/event.c:3385,1
    - Dst: get_common_timeout_list
      Src: /src/libevent/event.c:3387,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/event.c:3388,1
    - Dst: min_heap_erase_
      Src: /src/libevent/event.c:3391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - base
    - ev
    argTypes:
    - struct event_base*
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3393
      start: 3373
    functionDepth: 2
    functionLinenumber: 3373
    functionLinenumberEnd: 3393
    functionName: event_queue_remove_timeout
    functionSourceFile: /src/libevent/event.c
    functionUses: 5
    functionsReached:
    - is_common_timeout
    - get_common_timeout_list
    - event_errx
    - min_heap_erase_
    - DECR_EVENT_COUNT
    - EV_SOCK_ARG
    - EVUTIL_FAILURE_CHECK
    - EVENT_BASE_ASSERT_LOCKED
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void event_queue_remove_timeout(struct event_base *base, struct event
      *ev)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: event_queue_insert_timeout
      Src: /src/libevent/event.c:3403,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/event.c:3410,1
    - Dst: get_common_timeout_list
      Src: /src/libevent/event.c:3412,1
    - Dst: insert_common_timeout_inorder
      Src: /src/libevent/event.c:3413,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/event.c:3417,1
    - Dst: min_heap_push_
      Src: /src/libevent/event.c:3419,1
    - Dst: min_heap_erase_
      Src: /src/libevent/event.c:3422,1
    - Dst: get_common_timeout_list
      Src: /src/libevent/event.c:3423,1
    - Dst: insert_common_timeout_inorder
      Src: /src/libevent/event.c:3424,1
    - Dst: min_heap_adjust_
      Src: /src/libevent/event.c:3427,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:3430,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 5
    argNames:
    - base
    - ev
    - was_common
    - is_common
    - old_timeout_idx
    argTypes:
    - struct event_base*
    - struct event*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3433
      start: 3397
    functionDepth: 3
    functionLinenumber: 3397
    functionLinenumberEnd: 3433
    functionName: event_queue_reinsert_timeout
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - get_common_timeout_list
    - EVUTIL_ASSERT
    - min_heap_adjust_
    - min_heap_erase_
    - insert_common_timeout_inorder
    - event_queue_insert_timeout
    - min_heap_push_
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: "void event_queue_reinsert_timeout(struct event_base *base, struct
      event *ev,\n    int was_common, int is_common, int old_timeout_idx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH_REVERSE
      Src: /src/libevent/event.c:3449,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:3455,1
    - Dst: is_same_common_timeout
      Src: /src/libevent/event.c:3456,1
    - Dst: evutil_timercmp
      Src: /src/libevent/event.c:3457,1
    - Dst: TAILQ_INSERT_AFTER
      Src: /src/libevent/event.c:3458,1
    - Dst: TAILQ_INSERT_HEAD
      Src: /src/libevent/event.c:3463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ctl
    - ev
    argTypes:
    - struct common_timeout_list*
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3465
      start: 3437
    functionDepth: 1
    functionLinenumber: 3437
    functionLinenumberEnd: 3465
    functionName: insert_common_timeout_inorder
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - TAILQ_INSERT_HEAD
    - EVUTIL_ASSERT
    - is_same_common_timeout
    - evutil_timercmp
    - TAILQ_FOREACH_REVERSE
    - TAILQ_INSERT_AFTER
    linkageType: ''
    returnType: void
    signature: "void insert_common_timeout_inorder(struct common_timeout_list *ctl,\n
      \   struct event *ev)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:3470,1
    - Dst: EVUTIL_FAILURE_CHECK
      Src: /src/libevent/event.c:3472,1
    - Dst: event_errx
      Src: /src/libevent/event.c:3473,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/event.c:3474,1
    - Dst: INCR_EVENT_COUNT
      Src: /src/libevent/event.c:3478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - base
    - ev
    argTypes:
    - struct event_base*
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3481
      start: 3467
    functionDepth: 2
    functionLinenumber: 3467
    functionLinenumberEnd: 3481
    functionName: event_queue_insert_inserted
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - EVENT_BASE_ASSERT_LOCKED
    - event_errx
    - EV_SOCK_ARG
    - EVUTIL_FAILURE_CHECK
    - INCR_EVENT_COUNT
    linkageType: ''
    returnType: void
    signature: void event_queue_insert_inserted(struct event_base *base, struct event
      *ev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:3486,1
    - Dst: INCR_EVENT_COUNT
      Src: /src/libevent/event.c:3493,1
    - Dst: MAX_EVENT_COUNT
      Src: /src/libevent/event.c:3498,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:3499,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/event.c:3500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - base
    - evcb
    argTypes:
    - struct event_base*
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3502
      start: 3483
    functionDepth: 1
    functionLinenumber: 3483
    functionLinenumberEnd: 3502
    functionName: event_queue_insert_active
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - EVENT_BASE_ASSERT_LOCKED
    - TAILQ_INSERT_TAIL
    - EVUTIL_ASSERT
    - MAX_EVENT_COUNT
    - INCR_EVENT_COUNT
    linkageType: ''
    returnType: void
    signature: void event_queue_insert_active(struct event_base *base, struct event_callback
      *evcb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:3507,1
    - Dst: INCR_EVENT_COUNT
      Src: /src/libevent/event.c:3513,1
    - Dst: MAX_EVENT_COUNT
      Src: /src/libevent/event.c:3516,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:3517,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/event.c:3518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - base
    - evcb
    argTypes:
    - struct event_base*
    - struct event_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3519
      start: 3504
    functionDepth: 1
    functionLinenumber: 3504
    functionLinenumberEnd: 3519
    functionName: event_queue_insert_active_later
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - EVENT_BASE_ASSERT_LOCKED
    - TAILQ_INSERT_TAIL
    - EVUTIL_ASSERT
    - MAX_EVENT_COUNT
    - INCR_EVENT_COUNT
    linkageType: ''
    returnType: void
    signature: void event_queue_insert_active_later(struct event_base *base, struct
      event_callback *evcb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:3524,1
    - Dst: EVUTIL_FAILURE_CHECK
      Src: /src/libevent/event.c:3526,1
    - Dst: event_errx
      Src: /src/libevent/event.c:3527,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/event.c:3528,1
    - Dst: INCR_EVENT_COUNT
      Src: /src/libevent/event.c:3532,1
    - Dst: is_common_timeout
      Src: /src/libevent/event.c:3536,1
    - Dst: get_common_timeout_list
      Src: /src/libevent/event.c:3538,1
    - Dst: insert_common_timeout_inorder
      Src: /src/libevent/event.c:3539,1
    - Dst: min_heap_push_
      Src: /src/libevent/event.c:3541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - base
    - ev
    argTypes:
    - struct event_base*
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3543
      start: 3521
    functionDepth: 2
    functionLinenumber: 3521
    functionLinenumberEnd: 3543
    functionName: event_queue_insert_timeout
    functionSourceFile: /src/libevent/event.c
    functionUses: 2
    functionsReached:
    - is_common_timeout
    - EVENT_BASE_ASSERT_LOCKED
    - get_common_timeout_list
    - event_errx
    - min_heap_push_
    - insert_common_timeout_inorder
    - EV_SOCK_ARG
    - EVUTIL_FAILURE_CHECK
    - INCR_EVENT_COUNT
    linkageType: ''
    returnType: void
    signature: void event_queue_insert_timeout(struct event_base *base, struct event
      *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVENT_BASE_ASSERT_LOCKED
      Src: /src/libevent/event.c:3549,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/event.c:3551,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/event.c:3552,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:3554,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/event.c:3555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3558
      start: 3545
    functionDepth: 1
    functionLinenumber: 3545
    functionLinenumberEnd: 3558
    functionName: event_queue_make_later_events_active
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - EVENT_BASE_ASSERT_LOCKED
    - EVUTIL_ASSERT
    - TAILQ_FIRST
    - TAILQ_INSERT_TAIL
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void event_queue_make_later_events_active(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3566
      start: 3562
    functionDepth: 0
    functionLinenumber: 3562
    functionLinenumberEnd: 3566
    functionName: event_get_version
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      event_get_version(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3572
      start: 3568
    functionDepth: 0
    functionLinenumber: 3568
    functionLinenumberEnd: 3572
    functionName: event_get_version_number
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ev_uint32_t
    signature: ev_uint32_t event_get_version_number(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3583
      start: 3579
    functionDepth: 0
    functionLinenumber: 3579
    functionLinenumberEnd: 3583
    functionName: event_get_method
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      event_get_method(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc_fn_
      Src: /src/libevent/event.c:3597,1
    - Dst: malloc
      Src: /src/libevent/event.c:3599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3600
      start: 3590
    functionDepth: 0
    functionLinenumber: 3590
    functionLinenumberEnd: 3600
    functionName: event_mm_malloc_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - mm_malloc_fn_
    - malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      event_mm_malloc_(size_t sz)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc_fn_
      Src: /src/libevent/event.c:3613,1
    - Dst: memset
      Src: /src/libevent/event.c:3615,1
    - Dst: calloc
      Src: /src/libevent/event.c:3617,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - count
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3629
      start: 3602
    functionDepth: 0
    functionLinenumber: 3602
    functionLinenumberEnd: 3629
    functionName: event_mm_calloc_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - mm_malloc_fn_
    - memset
    - calloc
    linkageType: ''
    returnType: void
    signature: 'void *

      event_mm_calloc_(size_t count, size_t size)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/event.c:3640,1
    - Dst: mm_malloc_fn_
      Src: /src/libevent/event.c:3644,1
    - Dst: memcpy
      Src: /src/libevent/event.c:3646,1
    - Dst: _strdup
      Src: /src/libevent/event.c:3649,1
    - Dst: strdup
      Src: /src/libevent/event.c:3651,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3657
      start: 3631
    functionDepth: 0
    functionLinenumber: 3631
    functionLinenumberEnd: 3657
    functionName: event_mm_strdup_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - mm_malloc_fn_
    - _strdup
    - memcpy
    - strlen
    - strdup
    linkageType: ''
    returnType: char
    signature: 'char *

      event_mm_strdup_(const char *str)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_realloc_fn_
      Src: /src/libevent/event.c:3663,1
    - Dst: realloc
      Src: /src/libevent/event.c:3665,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - sz
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3666
      start: 3659
    functionDepth: 0
    functionLinenumber: 3659
    functionLinenumberEnd: 3666
    functionName: event_mm_realloc_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - realloc
    - mm_realloc_fn_
    linkageType: ''
    returnType: void
    signature: 'void *

      event_mm_realloc_(void *ptr, size_t sz)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_free_fn_
      Src: /src/libevent/event.c:3672,1
    - Dst: free
      Src: /src/libevent/event.c:3674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3675
      start: 3668
    functionDepth: 0
    functionLinenumber: 3668
    functionLinenumberEnd: 3675
    functionName: event_mm_free_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - free
    - mm_free_fn_
    linkageType: ''
    returnType: void
    signature: void event_mm_free_(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - (*malloc_fn)(size_t sz)
    - (*realloc_fn)(void *ptr, size_t sz)
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3685
      start: 3677
    functionDepth: 0
    functionLinenumber: 3677
    functionLinenumberEnd: 3685
    functionName: event_set_mem_functions
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void event_set_mem_functions(void *(*malloc_fn)(size_t sz),\n\t\t\tvoid
      *(*realloc_fn)(void *ptr, size_t sz),\n\t\t\tvoid (*free_fn)(void *ptr))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3693,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3696
      start: 3689
    functionDepth: 1
    functionLinenumber: 3689
    functionLinenumberEnd: 3696
    functionName: evthread_notify_drain_eventfd
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_ACQUIRE_LOCK
    - EVBASE_RELEASE_LOCK
    linkageType: ''
    returnType: void
    signature: void evthread_notify_drain_eventfd(evutil_socket_t fd, short what,
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/libevent/event.c:3705,1
    - Dst: read
      Src: /src/libevent/event.c:3708,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3712,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3715
      start: 3699
    functionDepth: 1
    functionLinenumber: 3699
    functionLinenumberEnd: 3715
    functionName: evthread_notify_drain_default
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - recv
    - EVBASE_ACQUIRE_LOCK
    - EVBASE_RELEASE_LOCK
    - read
    linkageType: ''
    returnType: void
    signature: void evthread_notify_drain_default(evutil_socket_t fd, short what,
      void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3724,1
    - Dst: evthread_make_base_notifiable_nolock_
      Src: /src/libevent/event.c:3725,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3728
      start: 3717
    functionDepth: 1
    functionLinenumber: 3717
    functionLinenumberEnd: 3728
    functionName: evthread_make_base_notifiable
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - evthread_make_base_notifiable_nolock_
    - EVBASE_ACQUIRE_LOCK
    - EVBASE_RELEASE_LOCK
    linkageType: ''
    returnType: int
    signature: int evthread_make_base_notifiable(struct event_base *base)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: event_kq_add_notify_event_
      Src: /src/libevent/event.c:3742,1
    - Dst: evutil_eventfd_
      Src: /src/libevent/event.c:3751,1
    - Dst: evutil_make_internal_pipe_
      Src: /src/libevent/event.c:3759,1
    - Dst: event_assign
      Src: /src/libevent/event.c:3769,1
    - Dst: event_priority_set
      Src: /src/libevent/event.c:3774,1
    - Dst: event_add_nolock_
      Src: /src/libevent/event.c:3776,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3777
      start: 3730
    functionDepth: 6
    functionLinenumber: 3730
    functionLinenumberEnd: 3777
    functionName: evthread_make_base_notifiable_nolock_
    functionSourceFile: /src/libevent/event.c
    functionUses: 2
    functionsReached:
    - evutil_eventfd_
    - event_add_nolock_
    - event_kq_add_notify_event_
    - evutil_make_internal_pipe_
    - event_assign
    - event_priority_set
    linkageType: ''
    returnType: int
    signature: int evthread_make_base_notifiable_nolock_(struct event_base *base)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: evmap_foreach_event_
      Src: /src/libevent/event.c:3788,1
    - Dst: fn
      Src: /src/libevent/event.c:3799,1
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/event.c:3808,1
    - Dst: fn
      Src: /src/libevent/event.c:3814,1
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/event.c:3823,1
    - Dst: event_callback_to_event
      Src: /src/libevent/event.c:3830,1
    - Dst: fn
      Src: /src/libevent/event.c:3831,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 3
    argNames:
    - base
    - fn
    - arg
    argTypes:
    - struct event_base*
    - event_base_foreach_event_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3837
      start: 3779
    functionDepth: 2
    functionLinenumber: 3779
    functionLinenumberEnd: 3837
    functionName: event_base_foreach_event_nolock_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - evmap_foreach_event_
    - event_callback_to_event
    - fn
    - TAILQ_FOREACH
    linkageType: ''
    returnType: int
    signature: "int event_base_foreach_event_nolock_(struct event_base *base,\n    event_base_foreach_event_cb
      fn, void *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/event.c:3851,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/event.c:3852,1
    - Dst: evutil_timeradd
      Src: /src/libevent/event.c:3864,1
    - Dst: fprintf
      Src: /src/libevent/event.c:3865,1
    - Dst: fputc
      Src: /src/libevent/event.c:3868,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - base
    - e
    - arg
    argTypes:
    - struct event_base*
    - struct event*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3871
      start: 3841
    functionDepth: 1
    functionLinenumber: 3841
    functionLinenumberEnd: 3871
    functionName: dump_inserted_event_fn
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - fprintf
    - evutil_timeradd
    - EV_SOCK_ARG
    - fputc
    linkageType: ''
    returnType: int
    signature: int dump_inserted_event_fn(const struct event_base *base, const struct
      event *e, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/event.c:3885,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/event.c:3886,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - base
    - e
    - arg
    argTypes:
    - struct event_base*
    - struct event*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3896
      start: 3875
    functionDepth: 1
    functionLinenumber: 3875
    functionLinenumberEnd: 3896
    functionName: dump_active_event_fn
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - fprintf
    - EV_SOCK_ARG
    linkageType: ''
    returnType: int
    signature: int dump_active_event_fn(const struct event_base *base, const struct
      event *e, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3906,1
    - Dst: event_base_foreach_event_nolock_
      Src: /src/libevent/event.c:3907,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3908,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - base
    - fn
    - arg
    argTypes:
    - struct event_base*
    - event_base_foreach_event_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3910
      start: 3898
    functionDepth: 3
    functionLinenumber: 3898
    functionLinenumberEnd: 3910
    functionName: event_base_foreach_event
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_base_foreach_event_nolock_
    - EVBASE_ACQUIRE_LOCK
    - EVBASE_RELEASE_LOCK
    linkageType: ''
    returnType: int
    signature: "int event_base_foreach_event(struct event_base *base,\n    event_base_foreach_event_cb
      fn, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3916,1
    - Dst: fprintf
      Src: /src/libevent/event.c:3917,1
    - Dst: event_base_foreach_event_nolock_
      Src: /src/libevent/event.c:3918,1
    - Dst: fprintf
      Src: /src/libevent/event.c:3920,1
    - Dst: event_base_foreach_event_nolock_
      Src: /src/libevent/event.c:3921,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - base
    - output
    argTypes:
    - struct event_base*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3923
      start: 3913
    functionDepth: 3
    functionLinenumber: 3913
    functionLinenumberEnd: 3923
    functionName: event_base_dump_events
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - fprintf
    - EVBASE_ACQUIRE_LOCK
    - event_base_foreach_event_nolock_
    - EVBASE_RELEASE_LOCK
    linkageType: ''
    returnType: void
    signature: void event_base_dump_events(struct event_base *base, FILE *output)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3928,1
    - Dst: evmap_io_active_
      Src: /src/libevent/event.c:3932,1
    - Dst: event_active_nolock_
      Src: /src/libevent/event.c:3943,1
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/event.c:3949,1
    - Dst: event_active_nolock_
      Src: /src/libevent/event.c:3952,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3958,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - base
    - fd
    - events
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3959
      start: 3925
    functionDepth: 2
    functionLinenumber: 3925
    functionLinenumberEnd: 3959
    functionName: event_base_active_by_fd
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - TAILQ_FOREACH
    - event_active_nolock_
    - evmap_io_active_
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: void
    signature: void event_base_active_by_fd(struct event_base *base, evutil_socket_t
      fd, short events)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3964,1
    - Dst: evmap_signal_active_
      Src: /src/libevent/event.c:3965,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - base
    - sig
    argTypes:
    - struct event_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3967
      start: 3961
    functionDepth: 2
    functionLinenumber: 3961
    functionLinenumberEnd: 3967
    functionName: event_base_active_by_signal
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVBASE_ACQUIRE_LOCK
    - EVBASE_RELEASE_LOCK
    - evmap_signal_active_
    linkageType: ''
    returnType: void
    signature: void event_base_active_by_signal(struct event_base *base, int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3973,1
    - Dst: MAX_EVENT_COUNT
      Src: /src/libevent/event.c:3975,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3977
      start: 3970
    functionDepth: 1
    functionLinenumber: 3970
    functionLinenumberEnd: 3977
    functionName: event_base_add_virtual_
    functionSourceFile: /src/libevent/event.c
    functionUses: 4
    functionsReached:
    - EVBASE_ACQUIRE_LOCK
    - MAX_EVENT_COUNT
    - EVBASE_RELEASE_LOCK
    linkageType: ''
    returnType: void
    signature: void event_base_add_virtual_(struct event_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:3982,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:3983,1
    - Dst: EVBASE_NEED_NOTIFY
      Src: /src/libevent/event.c:3985,1
    - Dst: evthread_notify_base
      Src: /src/libevent/event.c:3986,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:3987,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3988
      start: 3979
    functionDepth: 2
    functionLinenumber: 3979
    functionLinenumberEnd: 3988
    functionName: event_base_del_virtual_
    functionSourceFile: /src/libevent/event.c
    functionUses: 5
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - EVUTIL_ASSERT
    - evthread_notify_base
    - EVBASE_NEED_NOTIFY
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: void
    signature: void event_base_del_virtual_(struct event_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/event.c:3996,1
    - Dst: evthreadimpl_disable_lock_debugging_
      Src: /src/libevent/event.c:3998,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4003
      start: 3990
    functionDepth: 1
    functionLinenumber: 3990
    functionLinenumberEnd: 4003
    functionName: event_free_debug_globals_locks
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - EVTHREAD_FREE_LOCK
    - evthreadimpl_disable_lock_debugging_
    linkageType: ''
    returnType: void
    signature: void event_free_debug_globals_locks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_free_debug_globals_locks
      Src: /src/libevent/event.c:4008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4009
      start: 4005
    functionDepth: 2
    functionLinenumber: 4005
    functionLinenumberEnd: 4009
    functionName: event_free_debug_globals
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_free_debug_globals_locks
    linkageType: ''
    returnType: void
    signature: void event_free_debug_globals(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evsig_free_globals_
      Src: /src/libevent/event.c:4014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4015
      start: 4011
    functionDepth: 1
    functionLinenumber: 4011
    functionLinenumberEnd: 4015
    functionName: event_free_evsig_globals
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - evsig_free_globals_
    linkageType: ''
    returnType: void
    signature: void event_free_evsig_globals(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_free_globals_
      Src: /src/libevent/event.c:4020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4021
      start: 4017
    functionDepth: 3
    functionLinenumber: 4017
    functionLinenumberEnd: 4021
    functionName: event_free_evutil_globals
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - evutil_free_globals_
    linkageType: ''
    returnType: void
    signature: void event_free_evutil_globals(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_free_debug_globals
      Src: /src/libevent/event.c:4026,1
    - Dst: event_free_evsig_globals
      Src: /src/libevent/event.c:4027,1
    - Dst: event_free_evutil_globals
      Src: /src/libevent/event.c:4028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4029
      start: 4023
    functionDepth: 4
    functionLinenumber: 4023
    functionLinenumberEnd: 4029
    functionName: event_free_globals
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_free_evsig_globals
    - event_free_evutil_globals
    - event_free_debug_globals
    linkageType: ''
    returnType: void
    signature: void event_free_globals(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_disable_debug_mode
      Src: /src/libevent/event.c:4034,1
    - Dst: event_free_globals
      Src: /src/libevent/event.c:4035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4036
      start: 4031
    functionDepth: 5
    functionLinenumber: 4031
    functionLinenumberEnd: 4036
    functionName: libevent_global_shutdown
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_free_globals
    - event_disable_debug_mode
    linkageType: ''
    returnType: void
    signature: void libevent_global_shutdown(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVTHREAD_SETUP_GLOBAL_LOCK
      Src: /src/libevent/event.c:4043,1
    - Dst: evsig_global_setup_locks_
      Src: /src/libevent/event.c:4045,1
    - Dst: evutil_global_setup_locks_
      Src: /src/libevent/event.c:4047,1
    - Dst: evutil_secure_rng_global_setup_locks_
      Src: /src/libevent/event.c:4049,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - enable_locks
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4052
      start: 4039
    functionDepth: 2
    functionLinenumber: 4039
    functionLinenumberEnd: 4052
    functionName: event_global_setup_locks_
    functionSourceFile: /src/libevent/event.c
    functionUses: 2
    functionsReached:
    - evsig_global_setup_locks_
    - EVTHREAD_SETUP_GLOBAL_LOCK
    - evutil_global_setup_locks_
    - evutil_secure_rng_global_setup_locks_
    linkageType: ''
    returnType: int
    signature: int event_global_setup_locks_(const int enable_locks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/event.c:4058,1
    - Dst: event_base_assert_ok_nolock_
      Src: /src/libevent/event.c:4059,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/event.c:4060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4061
      start: 4055
    functionDepth: 1
    functionLinenumber: 4055
    functionLinenumberEnd: 4061
    functionName: event_base_assert_ok_
    functionSourceFile: /src/libevent/event.c
    functionUses: 0
    functionsReached:
    - event_base_assert_ok_nolock_
    - EVBASE_ACQUIRE_LOCK
    - EVBASE_RELEASE_LOCK
    linkageType: ''
    returnType: void
    signature: void event_base_assert_ok_(struct event_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evmap_check_integrity_
      Src: /src/libevent/event.c:4071,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:4079,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:4080,1
    - Dst: evutil_timercmp
      Src: /src/libevent/event.c:4080,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:4081,1
    - Dst: EVUTIL_ASSERT_TAILQ_OK
      Src: /src/libevent/event.c:4089,1
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/event.c:4091,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:4093,1
    - Dst: evutil_timercmp
      Src: /src/libevent/event.c:4093,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:4094,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:4095,1
    - Dst: is_common_timeout
      Src: /src/libevent/event.c:4095,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:4096,1
    - Dst: COMMON_TIMEOUT_IDX
      Src: /src/libevent/event.c:4096,1
    - Dst: EVUTIL_ASSERT_TAILQ_OK
      Src: /src/libevent/event.c:4105,1
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/event.c:4106,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:4107,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:4108,1
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/event.c:4115,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:4116,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/event.c:4120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4121
      start: 4063
    functionDepth: 4
    functionLinenumber: 4063
    functionLinenumberEnd: 4121
    functionName: event_base_assert_ok_nolock_
    functionSourceFile: /src/libevent/event.c
    functionUses: 1
    functionsReached:
    - is_common_timeout
    - TAILQ_FOREACH
    - EVUTIL_ASSERT
    - COMMON_TIMEOUT_IDX
    - evutil_timercmp
    - evmap_check_integrity_
    - EVUTIL_ASSERT_TAILQ_OK
    linkageType: ''
    returnType: void
    signature: void event_base_assert_ok_nolock_(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libevent/signalfd.c:57,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/signalfd.c:59,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/signalfd.c:60,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/signalfd.c:61,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/signalfd.c:63,1
    - Dst: evmap_signal_active_
      Src: /src/libevent/signalfd.c:64,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/signalfd.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 66
    functionName: sigfd_cb
    functionSourceFile: /src/libevent/signalfd.c
    functionUses: 0
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - evmap_signal_active_
    - EVUTIL_ASSERT
    - read
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: void
    signature: void sigfd_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/signalfd.c:74,1
    - Dst: event_del_nolock_
      Src: /src/libevent/signalfd.c:75,1
    - Dst: close
      Src: /src/libevent/signalfd.c:76,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/signalfd.c:77,1
    - Dst: mm_free
      Src: /src/libevent/signalfd.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - base
    - signo
    argTypes:
    - struct event_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 68
    functionDepth: 4
    functionLinenumber: 68
    functionLinenumberEnd: 80
    functionName: sigfd_free_sigevent
    functionSourceFile: /src/libevent/signalfd.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - close
    - mm_free
    - event_del_nolock_
    linkageType: ''
    returnType: void
    signature: void sigfd_free_sigevent(struct event_base *base, int signo)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/signalfd.c:92,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/signalfd.c:94,1
    - Dst: sigfd_free_sigevent
      Src: /src/libevent/signalfd.c:107,1
    - Dst: evsig_ensure_saved_
      Src: /src/libevent/signalfd.c:116,1
    - Dst: mm_malloc
      Src: /src/libevent/signalfd.c:119,1
    - Dst: event_warn
      Src: /src/libevent/signalfd.c:121,1
    - Dst: sigaction
      Src: /src/libevent/signalfd.c:125,1
    - Dst: event_warn
      Src: /src/libevent/signalfd.c:126,1
    - Dst: sigemptyset
      Src: /src/libevent/signalfd.c:132,1
    - Dst: sigaddset
      Src: /src/libevent/signalfd.c:133,1
    - Dst: sigprocmask
      Src: /src/libevent/signalfd.c:134,1
    - Dst: event_warn
      Src: /src/libevent/signalfd.c:135,1
    - Dst: signalfd
      Src: /src/libevent/signalfd.c:139,1
    - Dst: event_warn
      Src: /src/libevent/signalfd.c:141,1
    - Dst: event_new
      Src: /src/libevent/signalfd.c:146,1
    - Dst: event_priority_set
      Src: /src/libevent/signalfd.c:152,1
    - Dst: event_add_nolock_
      Src: /src/libevent/signalfd.c:154,1
    - Dst: mm_free
      Src: /src/libevent/signalfd.c:160,1
    - Dst: close
      Src: /src/libevent/signalfd.c:162,1
    - Dst: sigprocmask
      Src: /src/libevent/signalfd.c:164,1
    - Dst: mm_free
      Src: /src/libevent/signalfd.c:166,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 61
    argCount: 5
    argNames:
    - base
    - signo
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - int
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 82
    functionDepth: 5
    functionLinenumber: 82
    functionLinenumberEnd: 169
    functionName: sigfd_add
    functionSourceFile: /src/libevent/signalfd.c
    functionUses: 0
    functionsReached:
    - close
    - sigaction
    - sigprocmask
    - event_add_nolock_
    - mm_free
    - sigemptyset
    - EVUTIL_ASSERT
    - event_new
    - event_warn
    - mm_malloc
    - evsig_ensure_saved_
    - sigaddset
    - signalfd
    - event_priority_set
    - sigfd_free_sigevent
    linkageType: ''
    returnType: int
    signature: int sigfd_add(struct event_base *base, int signo, short old, short
      events, void *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/signalfd.c:178,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/signalfd.c:180,1
    - Dst: sigemptyset
      Src: /src/libevent/signalfd.c:182,1
    - Dst: sigaddset
      Src: /src/libevent/signalfd.c:183,1
    - Dst: sigprocmask
      Src: /src/libevent/signalfd.c:184,1
    - Dst: event_warn
      Src: /src/libevent/signalfd.c:185,1
    - Dst: sigaction
      Src: /src/libevent/signalfd.c:193,1
    - Dst: event_warn
      Src: /src/libevent/signalfd.c:194,1
    - Dst: mm_free
      Src: /src/libevent/signalfd.c:197,1
    - Dst: sigfd_free_sigevent
      Src: /src/libevent/signalfd.c:202,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 5
    argNames:
    - base
    - signo
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - int
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 171
    functionDepth: 5
    functionLinenumber: 171
    functionLinenumberEnd: 204
    functionName: sigfd_del
    functionSourceFile: /src/libevent/signalfd.c
    functionUses: 0
    functionsReached:
    - sigprocmask
    - sigaction
    - mm_free
    - sigemptyset
    - EVUTIL_ASSERT
    - event_warn
    - sigaddset
    - sigfd_free_sigevent
    linkageType: ''
    returnType: int
    signature: int sigfd_del(struct event_base *base, int signo, short old, short
      events, void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/signalfd.c:208,1
    - Dst: getenv
      Src: /src/libevent/signalfd.c:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 214
    functionName: sigfd_init_
    functionSourceFile: /src/libevent/signalfd.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - getenv
    linkageType: ''
    returnType: int
    signature: int sigfd_init_(struct event_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/evrpc.c:74,1
    - Dst: evtag_init
      Src: /src/libevent/evrpc.c:79,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/evrpc.c:81,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/evrpc.c:82,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/evrpc.c:83,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/evrpc.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - http_server
    argTypes:
    - struct evhttp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 90
    functionName: evrpc_init
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - TAILQ_INIT
    - evtag_init
    linkageType: ''
    returnType: struct evrpc_base
    signature: 'struct evrpc_base *

      evrpc_init(struct evhttp *http_server)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:100,1
    - Dst: evrpc_unregister_rpc
      Src: /src/libevent/evrpc.c:101,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:102,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:104,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evrpc.c:105,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:106,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:108,1
    - Dst: evrpc_remove_hook
      Src: /src/libevent/evrpc.c:109,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:110,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:112,1
    - Dst: evrpc_remove_hook
      Src: /src/libevent/evrpc.c:113,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:114,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evrpc_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 117
    functionName: evrpc_free
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - mm_free
    - evrpc_remove_hook
    - EVUTIL_ASSERT
    - TAILQ_FIRST
    - evrpc_unregister_rpc
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void evrpc_free(struct evrpc_base *base)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:136,1
    - Dst: mm_calloc
      Src: /src/libevent/evrpc.c:140,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/evrpc.c:146,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - vbase
    - hook_type
    - cb_arg
    argTypes:
    - void*
    - enum EVRPC_HOOK_TYPE
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 149
    functionName: evrpc_add_hook
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - mm_calloc
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: void
    signature: "void *\nevrpc_add_hook(void *vbase,\n    enum EVRPC_HOOK_TYPE hook_type,\n
      \   int (*cb)(void *, struct evhttp_request *, struct evbuffer *, void *),\n
      \   void *cb_arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evrpc.c:157,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - head
    - handle
    argTypes:
    - struct evrpc_hook_list*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 164
    functionName: evrpc_remove_hook_internal
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - mm_free
    - TAILQ_REMOVE
    linkageType: ''
    returnType: int
    signature: int evrpc_remove_hook_internal(struct evrpc_hook_list *head, void *handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evrpc.c:157,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: TAILQ_FOREACH
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 176
    functionsReached:
    - mm_free
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void TAILQ_FOREACH(hook, head, next)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:183,1
    - Dst: evrpc_remove_hook_internal
      Src: /src/libevent/evrpc.c:186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - vbase
    - hook_type
    - handle
    argTypes:
    - void*
    - enum EVRPC_HOOK_TYPE
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 187
    functionName: evrpc_remove_hook
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 1
    functionsReached:
    - EVUTIL_ASSERT
    - evrpc_remove_hook_internal
    linkageType: ''
    returnType: int
    signature: int evrpc_remove_hook(void *vbase, enum EVRPC_HOOK_TYPE hook_type,
      void *handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct evrpc_hook*::process
      Src: /src/libevent/evrpc.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - head
    - ctx
    - req
    - evbuf
    argTypes:
    - struct evrpc_hook_list*
    - void*
    - struct evhttp_request*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 201
    functionName: evrpc_process_hooks
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - struct evrpc_hook*::process
    linkageType: ''
    returnType: int
    signature: "int evrpc_process_hooks(struct evrpc_hook_list *head, void *ctx,\n
      \   struct evhttp_request *req, struct evbuffer *evbuf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: process
      Src: /src/libevent/evrpc.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: TAILQ_FOREACH
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 176
    functionsReached:
    - process
    linkageType: ''
    returnType: void
    signature: void TAILQ_FOREACH(hook, head, next)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/evrpc.c:218,1
    - Dst: strlen
      Src: /src/libevent/evrpc.c:218,1
    - Dst: mm_malloc
      Src: /src/libevent/evrpc.c:219,1
    - Dst: event_err
      Src: /src/libevent/evrpc.c:220,1
    - Dst: memcpy
      Src: /src/libevent/evrpc.c:222,1
    - Dst: strlen
      Src: /src/libevent/evrpc.c:222,1
    - Dst: memcpy
      Src: /src/libevent/evrpc.c:223,1
    - Dst: strlen
      Src: /src/libevent/evrpc.c:223,1
    - Dst: strlen
      Src: /src/libevent/evrpc.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - uri
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 227
    functionName: evrpc_construct_uri
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    - event_err
    - mm_malloc
    linkageType: ''
    returnType: char
    signature: 'char *

      evrpc_construct_uri(const char *uri)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evrpc_construct_uri
      Src: /src/libevent/evrpc.c:233,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/evrpc.c:239,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/evrpc.c:241,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - base
    - rpc
    - cb_arg
    argTypes:
    - struct evrpc_base*
    - struct evrpc*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 249
    functionName: evrpc_register_rpc
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - evhttp_set_cb
    - mm_free
    - TAILQ_INSERT_TAIL
    - evrpc_construct_uri
    linkageType: ''
    returnType: int
    signature: "int evrpc_register_rpc(struct evrpc_base *base, struct evrpc *rpc,\n
      \   void (*cb)(struct evrpc_req_generic *, void *), void *cb_arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/evrpc.c:259,1
    - Dst: strcmp
      Src: /src/libevent/evrpc.c:260,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evrpc.c:267,1
    - Dst: evrpc_construct_uri
      Src: /src/libevent/evrpc.c:269,1
    - Dst: evhttp_del_cb
      Src: /src/libevent/evrpc.c:272,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:273,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:275,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:277,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - base
    - name
    argTypes:
    - struct evrpc_base*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 280
    functionName: evrpc_unregister_rpc
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 1
    functionsReached:
    - TAILQ_REMOVE
    - mm_free
    - TAILQ_FOREACH
    - EVUTIL_ASSERT
    - evrpc_construct_uri
    - strcmp
    - evhttp_del_cb
    linkageType: ''
    returnType: int
    signature: int evrpc_unregister_rpc(struct evrpc_base *base, const char *name)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/evrpc.c:294,1
    - Dst: mm_calloc
      Src: /src/libevent/evrpc.c:297,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:304,1
    - Dst: evrpc_hook_associate_meta_
      Src: /src/libevent/evrpc.c:307,1
    - Dst: evrpc_process_hooks
      Src: /src/libevent/evrpc.c:314,1
    - Dst: evrpc_pause_request
      Src: /src/libevent/evrpc.c:320,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:326,1
    - Dst: evrpc_request_cb_closure
      Src: /src/libevent/evrpc.c:332,1
    - Dst: evrpc_reqstate_free_
      Src: /src/libevent/evrpc.c:337,1
    - Dst: evhttp_send_error
      Src: /src/libevent/evrpc.c:338,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 286
    functionDepth: 5
    functionLinenumber: 286
    functionLinenumberEnd: 340
    functionName: evrpc_request_cb
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - evrpc_pause_request
    - evrpc_reqstate_free_
    - evrpc_process_hooks
    - EVUTIL_ASSERT
    - mm_calloc
    - TAILQ_FIRST
    - evhttp_send_error
    - evrpc_hook_associate_meta_
    - evbuffer_get_length
    - evrpc_request_cb_closure
    linkageType: ''
    returnType: void
    signature: void evrpc_request_cb(struct evhttp_request *req, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:349,1
    - Dst: struct evrpc*::request_new
      Src: /src/libevent/evrpc.c:357,1
    - Dst: struct evrpc*::request_unmarshal
      Src: /src/libevent/evrpc.c:361,1
    - Dst: struct evrpc*::reply_new
      Src: /src/libevent/evrpc.c:369,1
    - Dst: struct evrpc*::cb
      Src: /src/libevent/evrpc.c:374,1
    - Dst: evrpc_reqstate_free_
      Src: /src/libevent/evrpc.c:379,1
    - Dst: evhttp_send_error
      Src: /src/libevent/evrpc.c:380,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - arg
    - hook_res
    argTypes:
    - void*
    - enum EVRPC_HOOK_RESULT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 342
    functionDepth: 5
    functionLinenumber: 342
    functionLinenumberEnd: 382
    functionName: evrpc_request_cb_closure
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 1
    functionsReached:
    - evrpc_reqstate_free_
    - struct evrpc*::request_unmarshal
    - EVUTIL_ASSERT
    - evhttp_send_error
    - struct evrpc*::reply_new
    - struct evrpc*::cb
    - struct evrpc*::request_new
    linkageType: ''
    returnType: void
    signature: void evrpc_request_cb_closure(void *arg, enum EVRPC_HOOK_RESULT hook_res)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:389,1
    - Dst: evrpc_hook_context_free_
      Src: /src/libevent/evrpc.c:394,1
    - Dst: struct evrpc*::request_free
      Src: /src/libevent/evrpc.c:396,1
    - Dst: struct evrpc*::reply_free
      Src: /src/libevent/evrpc.c:398,1
    - Dst: evbuffer_free
      Src: /src/libevent/evrpc.c:400,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:401,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - rpc_state
    argTypes:
    - struct evrpc_req_generic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 385
    functionDepth: 4
    functionLinenumber: 385
    functionLinenumberEnd: 402
    functionName: evrpc_reqstate_free_
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 2
    functionsReached:
    - mm_free
    - EVUTIL_ASSERT
    - evbuffer_free
    - evrpc_hook_context_free_
    - struct evrpc*::request_free
    - struct evrpc*::reply_free
    linkageType: ''
    returnType: void
    signature: void evrpc_reqstate_free_(struct evrpc_req_generic* rpc_state)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:413,1
    - Dst: struct evrpc*::reply_complete
      Src: /src/libevent/evrpc.c:418,1
    - Dst: evbuffer_new
      Src: /src/libevent/evrpc.c:423,1
    - Dst: struct evrpc*::reply_marshal
      Src: /src/libevent/evrpc.c:429,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:431,1
    - Dst: evrpc_hook_associate_meta_
      Src: /src/libevent/evrpc.c:434,1
    - Dst: evrpc_process_hooks
      Src: /src/libevent/evrpc.c:439,1
    - Dst: evrpc_pause_request
      Src: /src/libevent/evrpc.c:445,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:452,1
    - Dst: evrpc_request_done_closure
      Src: /src/libevent/evrpc.c:458,1
    - Dst: evrpc_reqstate_free_
      Src: /src/libevent/evrpc.c:462,1
    - Dst: evhttp_send_error
      Src: /src/libevent/evrpc.c:463,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 1
    argNames:
    - rpc_state
    argTypes:
    - struct evrpc_req_generic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 407
    functionDepth: 5
    functionLinenumber: 407
    functionLinenumberEnd: 465
    functionName: evrpc_request_done
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - evrpc_pause_request
    - evrpc_reqstate_free_
    - struct evrpc*::reply_complete
    - evrpc_process_hooks
    - EVUTIL_ASSERT
    - struct evrpc*::reply_marshal
    - TAILQ_FIRST
    - evhttp_send_error
    - evrpc_hook_associate_meta_
    - evrpc_request_done_closure
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void evrpc_request_done(struct evrpc_req_generic *rpc_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evrpc_req_generic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 471
    functionName: evrpc_get_request
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      evrpc_get_request(struct evrpc_req_generic *req)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct evrpc_req_generic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 477
    functionName: evrpc_get_reply
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      evrpc_get_reply(struct evrpc_req_generic *req)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:484,1
    - Dst: evhttp_find_header
      Src: /src/libevent/evrpc.c:491,1
    - Dst: evhttp_add_header
      Src: /src/libevent/evrpc.c:492,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/evrpc.c:495,1
    - Dst: evrpc_reqstate_free_
      Src: /src/libevent/evrpc.c:497,1
    - Dst: evrpc_reqstate_free_
      Src: /src/libevent/evrpc.c:502,1
    - Dst: evhttp_send_error
      Src: /src/libevent/evrpc.c:503,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - arg
    - hook_res
    argTypes:
    - void*
    - enum EVRPC_HOOK_RESULT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 479
    functionDepth: 6
    functionLinenumber: 479
    functionLinenumberEnd: 505
    functionName: evrpc_request_done_closure
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 1
    functionsReached:
    - evrpc_reqstate_free_
    - evhttp_send_reply
    - EVUTIL_ASSERT
    - evhttp_add_header
    - evhttp_send_error
    - evhttp_find_header
    linkageType: ''
    returnType: void
    signature: void evrpc_request_done_closure(void *arg, enum EVRPC_HOOK_RESULT hook_res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/evrpc.c:516,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/evrpc.c:520,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/evrpc.c:521,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/evrpc.c:523,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/evrpc.c:525,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/evrpc.c:526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 532
    functionName: evrpc_pool_new
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - TAILQ_INIT
    linkageType: ''
    returnType: struct evrpc_pool
    signature: 'struct evrpc_pool *

      evrpc_pool_new(struct event_base *base)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evrpc_hook_context_free_
      Src: /src/libevent/evrpc.c:538,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:539,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - request
    argTypes:
    - struct evrpc_request_wrapper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 541
    functionName: evrpc_request_wrapper_free
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - evrpc_hook_context_free_
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evrpc_request_wrapper_free(struct evrpc_request_wrapper *request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:552,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evrpc.c:553,1
    - Dst: evrpc_request_wrapper_free
      Src: /src/libevent/evrpc.c:554,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:557,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evrpc.c:558,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:559,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:562,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evrpc.c:563,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/evrpc.c:564,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:567,1
    - Dst: evrpc_remove_hook
      Src: /src/libevent/evrpc.c:568,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:569,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:572,1
    - Dst: evrpc_remove_hook
      Src: /src/libevent/evrpc.c:573,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:574,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:577,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct evrpc_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 543
    functionDepth: 4
    functionLinenumber: 543
    functionLinenumberEnd: 578
    functionName: evrpc_pool_free
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - mm_free
    - evrpc_remove_hook
    - evhttp_connection_free
    - EVUTIL_ASSERT
    - TAILQ_FIRST
    - evrpc_request_wrapper_free
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void evrpc_pool_free(struct evrpc_pool *pool)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:589,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/evrpc.c:590,1
    - Dst: evhttp_connection_set_base
      Src: /src/libevent/evrpc.c:596,1
    - Dst: evhttp_connection_set_timeout
      Src: /src/libevent/evrpc.c:603,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:610,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:612,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evrpc.c:613,1
    - Dst: evrpc_schedule_request
      Src: /src/libevent/evrpc.c:614,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - pool
    - connection
    argTypes:
    - struct evrpc_pool*
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 585
    functionDepth: 3
    functionLinenumber: 585
    functionLinenumberEnd: 616
    functionName: evrpc_pool_add_connection
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - TAILQ_FIRST
    - evhttp_connection_set_base
    - evrpc_schedule_request
    - evhttp_connection_set_timeout
    - TAILQ_INSERT_TAIL
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: "void evrpc_pool_add_connection(struct evrpc_pool *pool,\n    struct
      evhttp_connection *connection)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evrpc.c:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - connection
    argTypes:
    - struct evrpc_pool*
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 623
    functionName: evrpc_pool_remove_connection
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: "void evrpc_pool_remove_connection(struct evrpc_pool *pool,\n    struct
      evhttp_connection *connection)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/evrpc.c:629,1
    - Dst: evhttp_connection_set_timeout
      Src: /src/libevent/evrpc.c:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pool
    - timeout_in_secs
    argTypes:
    - struct evrpc_pool*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 625
    functionDepth: 3
    functionLinenumber: 625
    functionLinenumberEnd: 633
    functionName: evrpc_pool_set_timeout
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - evhttp_connection_set_timeout
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void evrpc_pool_set_timeout(struct evrpc_pool *pool, int timeout_in_secs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/evrpc.c:647,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct evrpc_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 653
    functionName: evrpc_pool_find_connection
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - TAILQ_FIRST
    - TAILQ_FOREACH
    linkageType: ''
    returnType: struct evhttp_connection
    signature: 'struct evhttp_connection *

      evrpc_pool_find_connection(struct evrpc_pool *pool)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_new
      Src: /src/libevent/evrpc.c:672,1
    - Dst: struct evrpc_request_wrapper*::request_marshal
      Src: /src/libevent/evrpc.c:676,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:684,1
    - Dst: evrpc_hook_associate_meta_
      Src: /src/libevent/evrpc.c:687,1
    - Dst: evrpc_process_hooks
      Src: /src/libevent/evrpc.c:692,1
    - Dst: evrpc_pause_request
      Src: /src/libevent/evrpc.c:700,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:708,1
    - Dst: evrpc_schedule_request_closure
      Src: /src/libevent/evrpc.c:714,1
    - Dst: memset
      Src: /src/libevent/evrpc.c:718,1
    - Dst: evrpc_request_wrapper_free
      Src: /src/libevent/evrpc.c:721,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - connection
    - ctx
    argTypes:
    - struct evhttp_connection*
    - struct evrpc_request_wrapper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 664
    functionDepth: 2
    functionLinenumber: 664
    functionLinenumberEnd: 723
    functionName: evrpc_schedule_request
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 1
    functionsReached:
    - evrpc_pause_request
    - evrpc_process_hooks
    - EVUTIL_ASSERT
    - TAILQ_FIRST
    - struct evrpc_request_wrapper*::request_marshal
    - evhttp_request_new
    - memset
    - evrpc_hook_associate_meta_
    - evrpc_schedule_request_closure
    - evrpc_request_wrapper_free
    linkageType: ''
    returnType: int
    signature: "int evrpc_schedule_request(struct evhttp_connection *connection,\n
      \   struct evrpc_request_wrapper *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evrpc_construct_uri
      Src: /src/libevent/evrpc.c:739,1
    - Dst: evutil_timerclear
      Src: /src/libevent/evrpc.c:748,1
    - Dst: evtimer_add
      Src: /src/libevent/evrpc.c:750,1
    - Dst: evhttp_make_request
      Src: /src/libevent/evrpc.c:754,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:755,1
    - Dst: memset
      Src: /src/libevent/evrpc.c:763,1
    - Dst: evrpc_request_wrapper_free
      Src: /src/libevent/evrpc.c:766,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - arg
    - hook_res
    argTypes:
    - void*
    - enum EVRPC_HOOK_RESULT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 725
    functionDepth: 6
    functionLinenumber: 725
    functionLinenumberEnd: 767
    functionName: evrpc_schedule_request_closure
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 1
    functionsReached:
    - mm_free
    - evhttp_make_request
    - evtimer_add
    - evutil_timerclear
    - memset
    - evrpc_request_wrapper_free
    - evrpc_construct_uri
    linkageType: ''
    returnType: void
    signature: void evrpc_schedule_request_closure(void *arg, enum EVRPC_HOOK_RESULT
      hook_res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/evrpc.c:775,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/evrpc.c:782,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - vbase
    - ctx
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 784
    functionName: evrpc_pause_request
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 3
    functionsReached:
    - mm_malloc
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: int
    signature: "int evrpc_pause_request(void *vbase, void *ctx,\n    void (*cb)(void
      *, enum EVRPC_HOOK_RESULT))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evrpc.c:802,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:803,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - vbase
    - ctx
    - res
    argTypes:
    - void*
    - void*
    - enum EVRPC_HOOK_RESULT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 805
    functionName: evrpc_resume_request
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - mm_free
    - TAILQ_REMOVE
    linkageType: ''
    returnType: int
    signature: int evrpc_resume_request(void *vbase, void *ctx, enum EVRPC_HOOK_RESULT
      res)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 796
    functionName: TAILQ_FOREACH
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 179
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TAILQ_FOREACH(pause, head, next)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evtimer_assign
      Src: /src/libevent/evrpc.c:813,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:816,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:816,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/evrpc.c:822,1
    - Dst: evrpc_pool_schedule
      Src: /src/libevent/evrpc.c:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct evrpc_request_wrapper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 827
    functionName: evrpc_make_request
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - evtimer_assign
    - EVUTIL_ASSERT
    - TAILQ_FIRST
    - evrpc_pool_schedule
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: int
    signature: int evrpc_make_request(struct evrpc_request_wrapper *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/evrpc.c:841,1
    - Dst: mm_strdup
      Src: /src/libevent/evrpc.c:848,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:850,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 5
    argNames:
    - pool
    - request
    - reply
    - rpcname
    - cbarg
    argTypes:
    - struct evrpc_pool*
    - void*
    - void*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 862
    functionName: evrpc_make_request_ctx
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - mm_free
    - mm_malloc
    - mm_strdup
    linkageType: ''
    returnType: struct evrpc_request_wrapper
    signature: "struct evrpc_request_wrapper *\nevrpc_make_request_ctx(\n\tstruct
      evrpc_pool *pool, void *request, void *reply,\n\tconst char *rpcname,\n\tvoid
      (*req_marshal)(struct evbuffer*, void *),\n\tvoid (*rpl_clear)(void *),\n\tint
      (*rpl_unmarshal)(void *, struct evbuffer *),\n\tvoid (*cb)(struct evrpc_status
      *, void *, void *, void *),\n\tvoid *cbarg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: event_del
      Src: /src/libevent/evrpc.c:875,1
    - Dst: evrpc_reply_done_closure
      Src: /src/libevent/evrpc.c:881,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:885,1
    - Dst: evrpc_hook_associate_meta_
      Src: /src/libevent/evrpc.c:886,1
    - Dst: evrpc_process_hooks
      Src: /src/libevent/evrpc.c:891,1
    - Dst: evhttp_request_own
      Src: /src/libevent/evrpc.c:905,1
    - Dst: evrpc_pause_request
      Src: /src/libevent/evrpc.c:907,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:911,1
    - Dst: evrpc_reply_done_closure
      Src: /src/libevent/evrpc.c:917,1
    - Dst: evrpc_request_wrapper_free
      Src: /src/libevent/evrpc.c:922,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 867
    functionDepth: 4
    functionLinenumber: 867
    functionLinenumberEnd: 923
    functionName: evrpc_reply_done
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - evrpc_pause_request
    - evhttp_request_own
    - event_del
    - evrpc_process_hooks
    - EVUTIL_ASSERT
    - evrpc_reply_done_closure
    - TAILQ_FIRST
    - evrpc_hook_associate_meta_
    - evrpc_request_wrapper_free
    linkageType: ''
    returnType: void
    signature: void evrpc_reply_done(struct evhttp_request *req, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/evrpc.c:934,1
    - Dst: struct evrpc_request_wrapper*::reply_unmarshal
      Src: /src/libevent/evrpc.c:943,1
    - Dst: struct evrpc_request_wrapper*::reply_clear
      Src: /src/libevent/evrpc.c:950,1
    - Dst: evrpc_request_wrapper_free
      Src: /src/libevent/evrpc.c:955,1
    - Dst: evhttp_request_is_owned
      Src: /src/libevent/evrpc.c:959,1
    - Dst: evhttp_request_free
      Src: /src/libevent/evrpc.c:960,1
    - Dst: evrpc_pool_schedule
      Src: /src/libevent/evrpc.c:963,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - arg
    - hook_res
    argTypes:
    - void*
    - enum EVRPC_HOOK_RESULT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 925
    functionDepth: 3
    functionLinenumber: 925
    functionLinenumberEnd: 964
    functionName: evrpc_reply_done_closure
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 1
    functionsReached:
    - memset
    - evhttp_request_free
    - struct evrpc_request_wrapper*::reply_unmarshal
    - evrpc_pool_schedule
    - evhttp_request_is_owned
    - evrpc_request_wrapper_free
    - struct evrpc_request_wrapper*::reply_clear
    linkageType: ''
    returnType: void
    signature: void evrpc_reply_done_closure(void *arg, enum EVRPC_HOOK_RESULT hook_res)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:969,1
    - Dst: evrpc_pool_find_connection
      Src: /src/libevent/evrpc.c:976,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evrpc.c:977,1
    - Dst: evrpc_schedule_request
      Src: /src/libevent/evrpc.c:978,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct evrpc_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 966
    functionDepth: 3
    functionLinenumber: 966
    functionLinenumberEnd: 980
    functionName: evrpc_pool_schedule
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 2
    functionsReached:
    - evrpc_pool_find_connection
    - TAILQ_FIRST
    - evrpc_schedule_request
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void evrpc_pool_schedule(struct evrpc_pool *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/evrpc.c:987,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/evrpc.c:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 982
    functionDepth: 4
    functionLinenumber: 982
    functionLinenumberEnd: 990
    functionName: evrpc_request_timeout
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - evhttp_connection_fail_
    linkageType: ''
    returnType: void
    signature: void evrpc_request_timeout(evutil_socket_t fd, short what, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FIRST
      Src: /src/libevent/evrpc.c:1004,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/evrpc.c:1005,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:1006,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:1007,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:1008,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - meta_data
    argTypes:
    - struct evrpc_meta_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1010
    functionName: evrpc_meta_data_free
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - mm_free
    - TAILQ_FIRST
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void evrpc_meta_data_free(struct evrpc_meta_list *meta_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/evrpc.c:1016,1
    - Dst: TAILQ_INIT
      Src: /src/libevent/evrpc.c:1020,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1012
    functionDepth: 1
    functionLinenumber: 1012
    functionLinenumberEnd: 1024
    functionName: evrpc_hook_meta_new_
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - mm_malloc
    - TAILQ_INIT
    linkageType: ''
    returnType: struct evrpc_hook_meta
    signature: 'struct evrpc_hook_meta *

      evrpc_hook_meta_new_(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evrpc_hook_meta_new_
      Src: /src/libevent/evrpc.c:1032,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pctx
    - evcon
    argTypes:
    - struct evrpc_hook_meta**
    - struct evhttp_connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1026
    functionDepth: 2
    functionLinenumber: 1026
    functionLinenumberEnd: 1037
    functionName: evrpc_hook_associate_meta_
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 4
    functionsReached:
    - evrpc_hook_meta_new_
    linkageType: ''
    returnType: int
    signature: "int evrpc_hook_associate_meta_(struct evrpc_hook_meta **pctx,\n    struct
      evhttp_connection *evcon)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evrpc_meta_data_free
      Src: /src/libevent/evrpc.c:1042,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:1043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct evrpc_hook_meta*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1039
    functionDepth: 2
    functionLinenumber: 1039
    functionLinenumberEnd: 1044
    functionName: evrpc_hook_context_free_
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 2
    functionsReached:
    - mm_free
    - evrpc_meta_data_free
    linkageType: ''
    returnType: void
    signature: void evrpc_hook_context_free_(struct evrpc_hook_meta *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evrpc_hook_meta_new_
      Src: /src/libevent/evrpc.c:1056,1
    - Dst: mm_malloc
      Src: /src/libevent/evrpc.c:1061,1
    - Dst: mm_strdup
      Src: /src/libevent/evrpc.c:1064,1
    - Dst: mm_malloc
      Src: /src/libevent/evrpc.c:1068,1
    - Dst: memcpy
      Src: /src/libevent/evrpc.c:1071,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/evrpc.c:1073,1
    - Dst: evrpc_hook_context_free_
      Src: /src/libevent/evrpc.c:1077,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:1079,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:1080,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:1081,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - ctx
    - key
    - data
    - data_size
    argTypes:
    - void*
    - char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1047
    functionDepth: 3
    functionLinenumber: 1047
    functionLinenumberEnd: 1084
    functionName: evrpc_hook_add_meta
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - mm_free
    - mm_malloc
    - mm_strdup
    - evrpc_hook_context_free_
    - evrpc_hook_meta_new_
    - memcpy
    - TAILQ_INSERT_TAIL
    linkageType: ''
    returnType: int
    signature: "int evrpc_hook_add_meta(void *ctx, const char *key,\n    const void
      *data, size_t data_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/evrpc.c:1095,1
    - Dst: strcmp
      Src: /src/libevent/evrpc.c:1096,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - key
    - data
    - data_size
    argTypes:
    - void*
    - char*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1104
    functionName: evrpc_hook_find_meta
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - strcmp
    - TAILQ_FOREACH
    linkageType: ''
    returnType: int
    signature: int evrpc_hook_find_meta(void *ctx, const char *key, void **data, size_t
      *data_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1111
    functionName: evrpc_hook_get_connection
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evhttp_connection
    signature: 'struct evhttp_connection *

      evrpc_hook_get_connection(void *ctx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evrpc_make_request_ctx
      Src: /src/libevent/evrpc.c:1125,1
    - Dst: evrpc_make_request
      Src: /src/libevent/evrpc.c:1129,1
    - Dst: memset
      Src: /src/libevent/evrpc.c:1131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - pool
    - request
    - reply
    - cb_arg
    - rpcname
    argTypes:
    - struct evrpc_pool*
    - void*
    - void*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1113
    functionDepth: 2
    functionLinenumber: 1113
    functionLinenumberEnd: 1135
    functionName: evrpc_send_request_generic
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - memset
    - evrpc_make_request_ctx
    - evrpc_make_request
    linkageType: ''
    returnType: int
    signature: "int evrpc_send_request_generic(struct evrpc_pool *pool,\n    void
      *request, void *reply,\n    void (*cb)(struct evrpc_status *, void *, void *,
      void *),\n    void *cb_arg,\n    const char *rpcname,\n    void (*req_marshal)(struct
      evbuffer *, void *),\n    void (*rpl_clear)(void *),\n    int (*rpl_unmarshal)(void
      *, struct evbuffer *))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/evrpc.c:1146,1
    - Dst: mm_strdup
      Src: /src/libevent/evrpc.c:1149,1
    - Dst: mm_free
      Src: /src/libevent/evrpc.c:1151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 5
    argNames:
    - name
    - (*req_new)(void*)
    - req_new_arg
    - (*rpl_new)(void*)
    - rpl_new_arg
    argTypes:
    - char*
    - void*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1138
    functionDepth: 1
    functionLinenumber: 1138
    functionLinenumberEnd: 1164
    functionName: evrpc_register_object
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - mm_free
    - mm_strdup
    linkageType: ''
    returnType: struct evrpc
    signature: "struct evrpc *\nevrpc_register_object(const char *name,\n    void
      *(*req_new)(void*), void *req_new_arg, void (*req_free)(void *),\n    int (*req_unmarshal)(void
      *, struct evbuffer *),\n    void *(*rpl_new)(void*), void *rpl_new_arg, void
      (*rpl_free)(void *),\n    int (*rpl_complete)(void *),\n    void (*rpl_marshal)(struct
      evbuffer *, void *))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evrpc_register_object
      Src: /src/libevent/evrpc.c:1176,1
    - Dst: evrpc_register_rpc
      Src: /src/libevent/evrpc.c:1180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - base
    - name
    - cbarg
    - (*req_new)(void *)
    - req_new_arg
    - (*rpl_new)(void *)
    - rpl_new_arg
    argTypes:
    - struct evrpc_base*
    - char*
    - void*
    - void*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1166
    functionDepth: 4
    functionLinenumber: 1166
    functionLinenumberEnd: 1183
    functionName: evrpc_register_generic
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached:
    - evrpc_register_rpc
    - evrpc_register_object
    linkageType: ''
    returnType: int
    signature: "int evrpc_register_generic(struct evrpc_base *base, const char *name,\n
      \   void (*callback)(struct evrpc_req_generic *, void *), void *cbarg,\n    void
      *(*req_new)(void *), void *req_new_arg, void (*req_free)(void *),\n    int (*req_unmarshal)(void
      *, struct evbuffer *),\n    void *(*rpl_new)(void *), void *rpl_new_arg, void
      (*rpl_free)(void *),\n    int (*rpl_complete)(void *),\n    void (*rpl_marshal)(struct
      evbuffer *, void *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct evrpc_request_wrapper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1186
    functionDepth: 0
    functionLinenumber: 1186
    functionLinenumberEnd: 1190
    functionName: evrpc_request_get_pool
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evrpc_pool
    signature: 'struct evrpc_pool *

      evrpc_request_get_pool(struct evrpc_request_wrapper *ctx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - pool
    argTypes:
    - struct evrpc_request_wrapper*
    - struct evrpc_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1192
    functionDepth: 0
    functionLinenumber: 1192
    functionLinenumberEnd: 1197
    functionName: evrpc_request_set_pool
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evrpc_request_set_pool(struct evrpc_request_wrapper *ctx,\n    struct
      evrpc_pool *pool)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - cb_arg
    argTypes:
    - struct evrpc_request_wrapper*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1199
    functionDepth: 0
    functionLinenumber: 1199
    functionLinenumberEnd: 1206
    functionName: evrpc_request_set_cb
    functionSourceFile: /src/libevent/evrpc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void evrpc_request_set_cb(struct evrpc_request_wrapper *ctx,\n    void
      (*cb)(struct evrpc_status*, void *request, void *reply, void *arg),\n    void
      *cb_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_sock.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: bufferevent_socket_get_conn_address_
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 1
    functionsReached:
    - BEV_UPCAST
    linkageType: ''
    returnType: struct sockaddr
    signature: 'struct sockaddr *

      bufferevent_socket_get_conn_address_(struct bufferevent *bev)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_sock.c:110,1
    - Dst: getpeername
      Src: /src/libevent/bufferevent_sock.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - bev
    - fd
    argTypes:
    - struct bufferevent*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 117
    functionName: bufferevent_socket_set_conn_address_fd_
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 0
    functionsReached:
    - BEV_UPCAST
    - getpeername
    linkageType: ''
    returnType: void
    signature: "void bufferevent_socket_set_conn_address_fd_(struct bufferevent *bev,\n\tevutil_socket_t
      fd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_sock.c:123,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_sock.c:124,1
    - Dst: memcpy
      Src: /src/libevent/bufferevent_sock.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bev
    - addr
    - addrlen
    argTypes:
    - struct bufferevent*
    - struct sockaddr*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: bufferevent_socket_set_conn_address_
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 1
    functionsReached:
    - EVUTIL_ASSERT
    - memcpy
    - BEV_UPCAST
    linkageType: ''
    returnType: void
    signature: "void bufferevent_socket_set_conn_address_(struct bufferevent *bev,\n\tstruct
      sockaddr *addr, size_t addrlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_sock.c:134,1
    - Dst: event_pending
      Src: /src/libevent/bufferevent_sock.c:138,1
    - Dst: bufferevent_add_event_
      Src: /src/libevent/bufferevent_sock.c:142,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - cbinfo
    - arg
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 128
    functionDepth: 4
    functionLinenumber: 128
    functionLinenumberEnd: 146
    functionName: bufferevent_socket_outbuf_cb
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 0
    functionsReached:
    - event_pending
    - BEV_UPCAST
    - bufferevent_add_event_
    linkageType: ''
    returnType: void
    signature: "void bufferevent_socket_outbuf_cb(struct evbuffer *buf,\n    const
      struct evbuffer_cb_info *cbinfo,\n    void *arg)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_sock.c:152,1
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent_sock.c:158,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_sock.c:175,1
    - Dst: bufferevent_wm_suspend_read
      Src: /src/libevent/bufferevent_sock.c:178,1
    - Dst: bufferevent_get_read_max_
      Src: /src/libevent/bufferevent_sock.c:182,1
    - Dst: evbuffer_unfreeze
      Src: /src/libevent/bufferevent_sock.c:189,1
    - Dst: evbuffer_read
      Src: /src/libevent/bufferevent_sock.c:190,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/bufferevent_sock.c:191,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/bufferevent_sock.c:194,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/bufferevent_sock.c:195,1
    - Dst: EVUTIL_ERR_CONNECT_REFUSED
      Src: /src/libevent/bufferevent_sock.c:199,1
    - Dst: bufferevent_decrement_read_buckets_
      Src: /src/libevent/bufferevent_sock.c:213,1
    - Dst: bufferevent_trigger_nolock_
      Src: /src/libevent/bufferevent_sock.c:216,1
    - Dst: bufferevent_disable
      Src: /src/libevent/bufferevent_sock.c:224,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_sock.c:225,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_sock.c:228,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 148
    functionDepth: 8
    functionLinenumber: 148
    functionLinenumberEnd: 229
    functionName: bufferevent_readcb
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 0
    functionsReached:
    - evbuffer_unfreeze
    - bufferevent_incref_and_lock_
    - bufferevent_wm_suspend_read
    - evbuffer_read
    - evbuffer_freeze
    - EVUTIL_ERR_RW_RETRIABLE
    - bufferevent_run_eventcb_
    - bufferevent_decrement_read_buckets_
    - bufferevent_trigger_nolock_
    - bufferevent_get_read_max_
    - evbuffer_get_length
    - BEV_UPCAST
    - EVUTIL_ERR_CONNECT_REFUSED
    - evutil_socket_geterror
    - bufferevent_decref_and_unlock_
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void bufferevent_readcb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_sock.c:235,1
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent_sock.c:241,1
    - Dst: evutil_socket_finished_connecting_
      Src: /src/libevent/bufferevent_sock.c:251,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_sock.c:264,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_sock.c:265,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_sock.c:266,1
    - Dst: bufferevent_socket_set_conn_address_fd_
      Src: /src/libevent/bufferevent_sock.c:270,1
    - Dst: BEV_IS_ASYNC
      Src: /src/libevent/bufferevent_sock.c:272,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_sock.c:273,1
    - Dst: bufferevent_async_set_connected_
      Src: /src/libevent/bufferevent_sock.c:274,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_sock.c:275,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_sock.c:280,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_sock.c:284,1
    - Dst: bufferevent_get_write_max_
      Src: /src/libevent/bufferevent_sock.c:290,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_sock.c:295,1
    - Dst: evbuffer_unfreeze
      Src: /src/libevent/bufferevent_sock.c:296,1
    - Dst: evbuffer_write_atmost
      Src: /src/libevent/bufferevent_sock.c:297,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/bufferevent_sock.c:298,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/bufferevent_sock.c:300,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/bufferevent_sock.c:301,1
    - Dst: bufferevent_decrement_write_buckets_
      Src: /src/libevent/bufferevent_sock.c:314,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_sock.c:317,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_sock.c:318,1
    - Dst: bufferevent_trigger_nolock_
      Src: /src/libevent/bufferevent_sock.c:326,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_sock.c:332,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_sock.c:333,1
    - Dst: bufferevent_disable
      Src: /src/libevent/bufferevent_sock.c:338,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_sock.c:339,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_sock.c:342,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 84
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 231
    functionDepth: 6
    functionLinenumber: 231
    functionLinenumberEnd: 343
    functionName: bufferevent_writecb
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 0
    functionsReached:
    - event_del
    - EVUTIL_ERR_RW_RETRIABLE
    - evbuffer_get_length
    - bufferevent_socket_set_conn_address_fd_
    - evutil_socket_geterror
    - evbuffer_write_atmost
    - evbuffer_unfreeze
    - bufferevent_get_write_max_
    - bufferevent_async_set_connected_
    - bufferevent_decrement_write_buckets_
    - bufferevent_disable
    - bufferevent_incref_and_lock_
    - bufferevent_trigger_nolock_
    - BEV_UPCAST
    - bufferevent_decref_and_unlock_
    - evbuffer_freeze
    - bufferevent_run_eventcb_
    - BEV_IS_ASYNC
    - evutil_socket_finished_connecting_
    linkageType: ''
    returnType: void
    signature: void bufferevent_writecb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: event_base_get_iocp_
      Src: /src/libevent/bufferevent_sock.c:353,1
    - Dst: bufferevent_async_new_
      Src: /src/libevent/bufferevent_sock.c:354,1
    - Dst: mm_calloc
      Src: /src/libevent/bufferevent_sock.c:357,1
    - Dst: bufferevent_init_common_
      Src: /src/libevent/bufferevent_sock.c:360,1
    - Dst: mm_free
      Src: /src/libevent/bufferevent_sock.c:362,1
    - Dst: evbuffer_set_flags
      Src: /src/libevent/bufferevent_sock.c:366,1
    - Dst: event_assign
      Src: /src/libevent/bufferevent_sock.c:368,1
    - Dst: event_assign
      Src: /src/libevent/bufferevent_sock.c:370,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/bufferevent_sock.c:373,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/bufferevent_sock.c:375,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/bufferevent_sock.c:376,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - base
    - fd
    - options
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 345
    functionDepth: 5
    functionLinenumber: 345
    functionLinenumberEnd: 379
    functionName: bufferevent_socket_new
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 3
    functionsReached:
    - mm_free
    - bufferevent_init_common_
    - evbuffer_add_cb
    - evbuffer_freeze
    - mm_calloc
    - event_assign
    - event_base_get_iocp_
    - evbuffer_set_flags
    - bufferevent_async_new_
    linkageType: ''
    returnType: struct bufferevent
    signature: "struct bufferevent *\nbufferevent_socket_new(struct event_base *base,
      evutil_socket_t fd,\n    int options)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_sock.c:466,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_sock.c:468,1
    - Dst: bufferevent_unsuspend_write_
      Src: /src/libevent/bufferevent_sock.c:470,1
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_sock.c:471,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_sock.c:477,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_sock.c:482,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_sock.c:483,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/bufferevent_sock.c:485,1
    - Dst: bufferevent_socket_set_conn_address_
      Src: /src/libevent/bufferevent_sock.c:490,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/bufferevent_sock.c:491,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_sock.c:493,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_sock.c:494,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/bufferevent_sock.c:495,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - result
    - ai
    - arg
    argTypes:
    - int
    - struct evutil_addrinfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 496
    functionName: bufferevent_connect_getaddrinfo_cb
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 0
    functionsReached:
    - evutil_freeaddrinfo
    - bufferevent_run_eventcb_
    - bufferevent_unsuspend_read_
    - BEV_UPCAST
    - bufferevent_socket_connect
    - bufferevent_unsuspend_write_
    - bufferevent_socket_set_conn_address_
    - BEV_LOCK
    - bufferevent_decref_and_unlock_
    linkageType: ''
    returnType: void
    signature: "void bufferevent_connect_getaddrinfo_cb(int result, struct evutil_addrinfo
      *ai,\n    void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/bufferevent_sock.c:503,1
    - Dst: bufferevent_socket_connect_hostname_hints
      Src: /src/libevent/bufferevent_sock.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - bev
    - evdns_base
    - family
    - hostname
    - port
    argTypes:
    - struct bufferevent*
    - struct evdns_base*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 509
    functionName: bufferevent_socket_connect_hostname
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 1
    functionsReached:
    - memset
    - bufferevent_socket_connect_hostname_hints
    linkageType: ''
    returnType: int
    signature: "int bufferevent_socket_connect_hostname(struct bufferevent *bev,\n
      \   struct evdns_base *evdns_base, int family, const char *hostname, int port)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/bufferevent_sock.c:518,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_sock.c:526,1
    - Dst: evutil_snprintf
      Src: /src/libevent/bufferevent_sock.c:529,1
    - Dst: bufferevent_suspend_write_
      Src: /src/libevent/bufferevent_sock.c:531,1
    - Dst: bufferevent_suspend_read_
      Src: /src/libevent/bufferevent_sock.c:532,1
    - Dst: bufferevent_incref_
      Src: /src/libevent/bufferevent_sock.c:534,1
    - Dst: evutil_getaddrinfo_async_
      Src: /src/libevent/bufferevent_sock.c:535,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_sock.c:538,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 5
    argNames:
    - bev
    - evdns_base
    - hints_in
    - hostname
    - port
    argTypes:
    - struct bufferevent*
    - struct evdns_base*
    - struct evutil_addrinfo*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 511
    functionDepth: 8
    functionLinenumber: 511
    functionLinenumberEnd: 541
    functionName: bufferevent_socket_connect_hostname_hints
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 1
    functionsReached:
    - bufferevent_suspend_write_
    - evutil_getaddrinfo_async_
    - bufferevent_incref_
    - bufferevent_suspend_read_
    - evutil_snprintf
    - BEV_UNLOCK
    - BEV_LOCK
    - EVUTIL_UPCAST
    linkageType: ''
    returnType: int
    signature: "int bufferevent_socket_connect_hostname_hints(struct bufferevent *bev,\n
      \   struct evdns_base *evdns_base, const struct evutil_addrinfo *hints_in,\n
      \   const char *hostname, int port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_sock.c:547,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_sock.c:549,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_sock.c:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 554
    functionName: bufferevent_socket_get_dns_error
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 0
    functionsReached:
    - BEV_UNLOCK
    - BEV_LOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: int
    signature: int bufferevent_socket_get_dns_error(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_socket_new
      Src: /src/libevent/bufferevent_sock.c:574,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/bufferevent_sock.c:577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - fd
    - readcb
    - writecb
    - eventcb
    - cbarg
    argTypes:
    - evutil_socket_t
    - bufferevent_data_cb
    - bufferevent_data_cb
    - bufferevent_event_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 567
    functionDepth: 6
    functionLinenumber: 567
    functionLinenumberEnd: 580
    functionName: bufferevent_new
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 9
    functionsReached:
    - bufferevent_socket_new
    - bufferevent_setcb
    linkageType: ''
    returnType: struct bufferevent
    signature: "struct bufferevent *\nbufferevent_new(evutil_socket_t fd,\n    bufferevent_data_cb
      readcb, bufferevent_data_cb writecb,\n    bufferevent_event_cb eventcb, void
      *cbarg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_add_event_
      Src: /src/libevent/bufferevent_sock.c:587,1
    - Dst: bufferevent_add_event_
      Src: /src/libevent/bufferevent_sock.c:590,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - bufev
    - event
    argTypes:
    - struct bufferevent*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 593
    functionName: be_socket_enable
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 0
    functionsReached:
    - bufferevent_add_event_
    linkageType: ''
    returnType: int
    signature: int be_socket_enable(struct bufferevent *bufev, short event)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_sock.c:598,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_sock.c:600,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_sock.c:605,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - bufev
    - event
    argTypes:
    - struct bufferevent*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 595
    functionDepth: 4
    functionLinenumber: 595
    functionLinenumberEnd: 609
    functionName: be_socket_disable
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 0
    functionsReached:
    - event_del
    - BEV_UPCAST
    linkageType: ''
    returnType: int
    signature: int be_socket_disable(struct bufferevent *bufev, short event)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_sock.c:614,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_sock.c:616,1
    - Dst: BEV_IS_SOCKET
      Src: /src/libevent/bufferevent_sock.c:616,1
    - Dst: event_get_fd
      Src: /src/libevent/bufferevent_sock.c:618,1
    - Dst: EVUTIL_CLOSESOCKET
      Src: /src/libevent/bufferevent_sock.c:621,1
    - Dst: evutil_getaddrinfo_cancel_async_
      Src: /src/libevent/bufferevent_sock.c:623,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 611
    functionDepth: 4
    functionLinenumber: 611
    functionLinenumberEnd: 624
    functionName: be_socket_destruct
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - EVUTIL_CLOSESOCKET
    - event_get_fd
    - evutil_getaddrinfo_cancel_async_
    - BEV_UPCAST
    - BEV_IS_SOCKET
    linkageType: ''
    returnType: void
    signature: void be_socket_destruct(struct bufferevent *bufev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bev
    - iotype
    - mode
    argTypes:
    - struct bufferevent*
    - short
    - enum bufferevent_flush_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 631
    functionName: be_socket_flush
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int be_socket_flush(struct bufferevent *bev, short iotype,\n    enum
      bufferevent_flush_mode mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_sock.c:637,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_sock.c:639,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_sock.c:640,1
    - Dst: BEV_IS_SOCKET
      Src: /src/libevent/bufferevent_sock.c:640,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_sock.c:642,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_sock.c:643,1
    - Dst: evbuffer_unfreeze
      Src: /src/libevent/bufferevent_sock.c:645,1
    - Dst: evbuffer_unfreeze
      Src: /src/libevent/bufferevent_sock.c:646,1
    - Dst: event_assign
      Src: /src/libevent/bufferevent_sock.c:648,1
    - Dst: event_assign
      Src: /src/libevent/bufferevent_sock.c:650,1
    - Dst: bufferevent_enable
      Src: /src/libevent/bufferevent_sock.c:654,1
    - Dst: evutil_getaddrinfo_cancel_async_
      Src: /src/libevent/bufferevent_sock.c:656,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_sock.c:658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - bufev
    - fd
    argTypes:
    - struct bufferevent*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 634
    functionDepth: 4
    functionLinenumber: 634
    functionLinenumberEnd: 659
    functionName: be_socket_setfd
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 0
    functionsReached:
    - evbuffer_unfreeze
    - event_del
    - EVUTIL_ASSERT
    - BEV_LOCK
    - event_assign
    - evutil_getaddrinfo_cancel_async_
    - BEV_UPCAST
    - bufferevent_enable
    - BEV_UNLOCK
    - BEV_IS_SOCKET
    linkageType: ''
    returnType: void
    signature: void be_socket_setfd(struct bufferevent *bufev, evutil_socket_t fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_sock.c:666,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_sock.c:668,1
    - Dst: BEV_IS_ASYNC
      Src: /src/libevent/bufferevent_sock.c:669,1
    - Dst: BEV_IS_FILTER
      Src: /src/libevent/bufferevent_sock.c:669,1
    - Dst: BEV_IS_PAIR
      Src: /src/libevent/bufferevent_sock.c:669,1
    - Dst: event_priority_set
      Src: /src/libevent/bufferevent_sock.c:672,1
    - Dst: event_priority_set
      Src: /src/libevent/bufferevent_sock.c:674,1
    - Dst: event_deferred_cb_set_priority_
      Src: /src/libevent/bufferevent_sock.c:677,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_sock.c:681,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - bufev
    - priority
    argTypes:
    - struct bufferevent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 662
    functionDepth: 4
    functionLinenumber: 662
    functionLinenumberEnd: 683
    functionName: bufferevent_priority_set
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 0
    functionsReached:
    - event_deferred_cb_set_priority_
    - BEV_LOCK
    - BEV_UPCAST
    - BEV_IS_FILTER
    - BEV_UNLOCK
    - BEV_IS_ASYNC
    - BEV_IS_PAIR
    - event_priority_set
    linkageType: ''
    returnType: int
    signature: int bufferevent_priority_set(struct bufferevent *bufev, int priority)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_sock.c:691,1
    - Dst: BEV_IS_SOCKET
      Src: /src/libevent/bufferevent_sock.c:692,1
    - Dst: event_base_set
      Src: /src/libevent/bufferevent_sock.c:697,1
    - Dst: event_base_set
      Src: /src/libevent/bufferevent_sock.c:701,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_sock.c:703,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - base
    - bufev
    argTypes:
    - struct event_base*
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 686
    functionDepth: 4
    functionLinenumber: 686
    functionLinenumberEnd: 705
    functionName: bufferevent_base_set
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 2
    functionsReached:
    - BEV_IS_SOCKET
    - event_base_set
    - BEV_LOCK
    - BEV_UNLOCK
    linkageType: ''
    returnType: int
    signature: int bufferevent_base_set(struct event_base *base, struct bufferevent
      *bufev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: be_socket_setfd
      Src: /src/libevent/bufferevent_sock.c:713,1
    - Dst: event_get_fd
      Src: /src/libevent/bufferevent_sock.c:716,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - bev
    - op
    - data
    argTypes:
    - struct bufferevent*
    - enum bufferevent_ctrl_op
    - union bufferevent_ctrl_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 707
    functionDepth: 5
    functionLinenumber: 707
    functionLinenumberEnd: 723
    functionName: be_socket_ctrl
    functionSourceFile: /src/libevent/bufferevent_sock.c
    functionUses: 0
    functionsReached:
    - be_socket_setfd
    - event_get_fd
    linkageType: ''
    returnType: int
    signature: "int be_socket_ctrl(struct bufferevent *bev, enum bufferevent_ctrl_op
      op,\n    union bufferevent_ctrl_data *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: EPOLL_OP_TABLE_INDEX
    functionSourceFile: /src/libevent/epolltable-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EPOLL_OP_TABLE_INDEX(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: epoll_close
      Src: /src/libevent/epoll.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: close_epoll_handle
    functionSourceFile: /src/libevent/epoll.c
    functionUses: 0
    functionsReached:
    - epoll_close
    linkageType: ''
    returnType: void
    signature: void close_epoll_handle(HANDLE h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/libevent/epoll.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: close_epoll_handle
    functionSourceFile: /src/libevent/epoll.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void close_epoll_handle(int h)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: epoll_create1
      Src: /src/libevent/epoll.c:181,1
    - Dst: epoll_create
      Src: /src/libevent/epoll.c:186,1
    - Dst: event_warn
      Src: /src/libevent/epoll.c:188,1
    - Dst: evutil_make_socket_closeonexec
      Src: /src/libevent/epoll.c:192,1
    - Dst: mm_calloc
      Src: /src/libevent/epoll.c:196,1
    - Dst: close_epoll_handle
      Src: /src/libevent/epoll.c:197,1
    - Dst: mm_calloc
      Src: /src/libevent/epoll.c:204,1
    - Dst: mm_free
      Src: /src/libevent/epoll.c:206,1
    - Dst: close_epoll_handle
      Src: /src/libevent/epoll.c:207,1
    - Dst: evutil_getenv_
      Src: /src/libevent/epoll.c:215,1
    - Dst: timerfd_create
      Src: /src/libevent/epoll.c:232,1
    - Dst: memset
      Src: /src/libevent/epoll.c:235,1
    - Dst: epoll_ctl
      Src: /src/libevent/epoll.c:238,1
    - Dst: event_warn
      Src: /src/libevent/epoll.c:239,1
    - Dst: close
      Src: /src/libevent/epoll.c:240,1
    - Dst: event_warn
      Src: /src/libevent/epoll.c:249,1
    - Dst: sigfd_init_
      Src: /src/libevent/epoll.c:258,1
    - Dst: evsig_init_
      Src: /src/libevent/epoll.c:259,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 262
    functionName: epoll_init
    functionSourceFile: /src/libevent/epoll.c
    functionUses: 0
    functionsReached:
    - evsig_init_
    - close
    - timerfd_create
    - mm_free
    - evutil_getenv_
    - epoll_create1
    - mm_calloc
    - epoll_create
    - event_warn
    - epoll_ctl
    - memset
    - evutil_make_socket_closeonexec
    - close_epoll_handle
    - sigfd_init_
    linkageType: ''
    returnType: void
    signature: 'void *

      epoll_init(struct event_base *base)'
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - change
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 277
    functionName: change_to_string
    functionSourceFile: /src/libevent/epoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      change_to_string(int change)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 286
    functionName: epoll_op_to_string
    functionSourceFile: /src/libevent/epoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      epoll_op_to_string(int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - op
    - ','
    - events
    - ','
    - ch
    - ','
    - status
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 304
    functionName: PRINT_CHANGES
    functionSourceFile: /src/libevent/epoll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINT_CHANGES(op, events, ch, status)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EPOLL_OP_TABLE_INDEX
      Src: /src/libevent/epoll.c:314,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/epoll.c:319,1
    - Dst: memset
      Src: /src/libevent/epoll.c:326,1
    - Dst: epoll_ctl
      Src: /src/libevent/epoll.c:333,1
    - Dst: event_debug
      Src: /src/libevent/epoll.c:334,1
    - Dst: PRINT_CHANGES
      Src: /src/libevent/epoll.c:334,1
    - Dst: epoll_ctl
      Src: /src/libevent/epoll.c:345,1
    - Dst: event_warn
      Src: /src/libevent/epoll.c:346,1
    - Dst: event_debug
      Src: /src/libevent/epoll.c:350,1
    - Dst: epoll_ctl
      Src: /src/libevent/epoll.c:366,1
    - Dst: event_warn
      Src: /src/libevent/epoll.c:367,1
    - Dst: event_debug
      Src: /src/libevent/epoll.c:371,1
    - Dst: event_debug
      Src: /src/libevent/epoll.c:383,1
    - Dst: strerror
      Src: /src/libevent/epoll.c:386,1
    - Dst: event_warn
      Src: /src/libevent/epoll.c:394,1
    - Dst: PRINT_CHANGES
      Src: /src/libevent/epoll.c:394,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 3
    argNames:
    - base
    - epollop
    - ch
    argTypes:
    - struct event_base*
    - struct epollop*
    - struct event_change*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 396
    functionName: epoll_apply_one_change
    functionSourceFile: /src/libevent/epoll.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - EPOLL_OP_TABLE_INDEX
    - event_warn
    - epoll_ctl
    - memset
    - strerror
    - event_debug
    - PRINT_CHANGES
    linkageType: ''
    returnType: int
    signature: "int epoll_apply_one_change(struct event_base *base,\n    struct epollop
      *epollop,\n    const struct event_change *ch)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: epoll_apply_one_change
      Src: /src/libevent/epoll.c:410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 415
    functionName: epoll_apply_changes
    functionSourceFile: /src/libevent/epoll.c
    functionUses: 0
    functionsReached:
    - epoll_apply_one_change
    linkageType: ''
    returnType: int
    signature: int epoll_apply_changes(struct event_base *base)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: epoll_apply_one_change
      Src: /src/libevent/epoll.c:435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 417
    functionDepth: 3
    functionLinenumber: 417
    functionLinenumberEnd: 436
    functionName: epoll_nochangelist_add
    functionSourceFile: /src/libevent/epoll.c
    functionUses: 0
    functionsReached:
    - epoll_apply_one_change
    linkageType: ''
    returnType: int
    signature: "int epoll_nochangelist_add(struct event_base *base, evutil_socket_t
      fd,\n    short old, short events, void *p)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: epoll_apply_one_change
      Src: /src/libevent/epoll.c:456,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 438
    functionDepth: 3
    functionLinenumber: 438
    functionLinenumberEnd: 457
    functionName: epoll_nochangelist_del
    functionSourceFile: /src/libevent/epoll.c
    functionUses: 0
    functionsReached:
    - epoll_apply_one_change
    linkageType: ''
    returnType: int
    signature: "int epoll_nochangelist_del(struct event_base *base, evutil_socket_t
      fd,\n    short old, short events, void *p)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: timerfd_settime
      Src: /src/libevent/epoll.c:493,1
    - Dst: event_warn
      Src: /src/libevent/epoll.c:494,1
    - Dst: TIMEVAL_TO_TIMESPEC
      Src: /src/libevent/epoll.c:500,1
    - Dst: evutil_tv_to_msec_
      Src: /src/libevent/epoll.c:502,1
    - Dst: epoll_apply_changes
      Src: /src/libevent/epoll.c:511,1
    - Dst: event_changelist_remove_all_
      Src: /src/libevent/epoll.c:512,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/epoll.c:514,1
    - Dst: epoll_pwait2
      Src: /src/libevent/epoll.c:517,1
    - Dst: epoll_wait
      Src: /src/libevent/epoll.c:519,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/epoll.c:522,1
    - Dst: event_warn
      Src: /src/libevent/epoll.c:526,1
    - Dst: event_debug
      Src: /src/libevent/epoll.c:533,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/epoll.c:534,1
    - Dst: evmap_io_active_
      Src: /src/libevent/epoll.c:561,1
    - Dst: evmap_io_active_
      Src: /src/libevent/epoll.c:563,1
    - Dst: mm_realloc
      Src: /src/libevent/epoll.c:573,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 69
    argCount: 2
    argNames:
    - base
    - tv
    argTypes:
    - struct event_base*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 459
    functionDepth: 4
    functionLinenumber: 459
    functionLinenumberEnd: 582
    functionName: epoll_dispatch
    functionSourceFile: /src/libevent/epoll.c
    functionUses: 0
    functionsReached:
    - event_changelist_remove_all_
    - epoll_pwait2
    - EVBASE_RELEASE_LOCK
    - EVUTIL_ASSERT
    - epoll_wait
    - event_warn
    - mm_realloc
    - timerfd_settime
    - evmap_io_active_
    - evutil_tv_to_msec_
    - TIMEVAL_TO_TIMESPEC
    - epoll_apply_changes
    - event_debug
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: int
    signature: int epoll_dispatch(struct event_base *base, struct timeval *tv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evsig_dealloc_
      Src: /src/libevent/epoll.c:590,1
    - Dst: mm_free
      Src: /src/libevent/epoll.c:592,1
    - Dst: close_epoll_handle
      Src: /src/libevent/epoll.c:594,1
    - Dst: close
      Src: /src/libevent/epoll.c:597,1
    - Dst: memset
      Src: /src/libevent/epoll.c:600,1
    - Dst: mm_free
      Src: /src/libevent/epoll.c:601,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 585
    functionDepth: 3
    functionLinenumber: 585
    functionLinenumberEnd: 602
    functionName: epoll_dealloc
    functionSourceFile: /src/libevent/epoll.c
    functionUses: 0
    functionsReached:
    - close
    - mm_free
    - evsig_dealloc_
    - memset
    - close_epoll_handle
    linkageType: ''
    returnType: void
    signature: void epoll_dealloc(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 282
    functionName: EVBUFFER_CHAIN_EXTRA
    functionSourceFile: /src/libevent/evbuffer-internal.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBUFFER_CHAIN_EXTRA(t, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buffer
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 286
    functionName: ASSERT_EVBUFFER_LOCKED
    functionSourceFile: /src/libevent/evbuffer-internal.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_EVBUFFER_LOCKED(buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buffer
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 291
    functionName: EVBUFFER_LOCK
    functionSourceFile: /src/libevent/evbuffer-internal.h
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBUFFER_LOCK(buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buffer
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: EVBUFFER_UNLOCK
    functionSourceFile: /src/libevent/evbuffer-internal.h
    functionUses: 45
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBUFFER_UNLOCK(buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buffer1
    - ','
    - buffer2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: EVBUFFER_LOCK2
    functionSourceFile: /src/libevent/evbuffer-internal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBUFFER_LOCK2(buffer1, buffer2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buffer1
    - ','
    - buffer2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 303
    functionName: EVBUFFER_UNLOCK2
    functionSourceFile: /src/libevent/evbuffer-internal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBUFFER_UNLOCK2(buffer1, buffer2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - ei
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 336
    functionName: WSABUF_FROM_EVBUFFER_IOV
    functionSourceFile: /src/libevent/evbuffer-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WSABUF_FROM_EVBUFFER_IOV(i,ei)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/evthread_win32.c:56,1
    - Dst: InitializeCriticalSectionAndSpinCount
      Src: /src/libevent/evthread_win32.c:59,1
    - Dst: mm_free
      Src: /src/libevent/evthread_win32.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - locktype
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: evthread_win32_lock_create
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - InitializeCriticalSectionAndSpinCount
    - mm_free
    - mm_malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      evthread_win32_lock_create(unsigned locktype)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeleteCriticalSection
      Src: /src/libevent/evthread_win32.c:70,1
    - Dst: mm_free
      Src: /src/libevent/evthread_win32.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lock_
    - locktype
    argTypes:
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: evthread_win32_lock_free
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - DeleteCriticalSection
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evthread_win32_lock_free(void *lock_, unsigned locktype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TryEnterCriticalSection
      Src: /src/libevent/evthread_win32.c:79,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/evthread_win32.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mode
    - lock_
    argTypes:
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 84
    functionName: evthread_win32_lock
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - EnterCriticalSection
    - TryEnterCriticalSection
    linkageType: ''
    returnType: int
    signature: int evthread_win32_lock(unsigned mode, void *lock_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LeaveCriticalSection
      Src: /src/libevent/evthread_win32.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mode
    - lock_
    argTypes:
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: evthread_win32_unlock
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - LeaveCriticalSection
    linkageType: ''
    returnType: int
    signature: int evthread_win32_unlock(unsigned mode, void *lock_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadId
      Src: /src/libevent/evthread_win32.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: evthread_win32_get_id
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - GetCurrentThreadId
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long evthread_win32_get_id(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleHandle
      Src: /src/libevent/evthread_win32.c:113,1
    - Dst: TEXT
      Src: /src/libevent/evthread_win32.c:113,1
    - Dst: LOAD
      Src: /src/libevent/evthread_win32.c:119,1
    - Dst: LOAD
      Src: /src/libevent/evthread_win32.c:120,1
    - Dst: LOAD
      Src: /src/libevent/evthread_win32.c:121,1
    - Dst: LOAD
      Src: /src/libevent/evthread_win32.c:122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 126
    functionName: evthread_win32_condvar_init
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - TEXT
    - LOAD
    - GetModuleHandle
    linkageType: ''
    returnType: int
    signature: int evthread_win32_condvar_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: LOAD
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD(name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/evthread_win32.c:133,1
    - Dst: InitializeConditionVariable_fn
      Src: /src/libevent/evthread_win32.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - condflags
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 138
    functionName: evthread_win32_condvar_alloc
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - InitializeConditionVariable_fn
    - mm_malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      evthread_win32_condvar_alloc(unsigned condflags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/evthread_win32.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cond_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: evthread_win32_condvar_free
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evthread_win32_condvar_free(void *cond_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WakeAllConditionVariable_fn
      Src: /src/libevent/evthread_win32.c:153,1
    - Dst: WakeConditionVariable_fn
      Src: /src/libevent/evthread_win32.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cond
    - broadcast
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 157
    functionName: evthread_win32_condvar_signal
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - WakeConditionVariable_fn
    - WakeAllConditionVariable_fn
    linkageType: ''
    returnType: int
    signature: int evthread_win32_condvar_signal(void *cond, int broadcast)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evutil_tv_to_msec_
      Src: /src/libevent/evthread_win32.c:168,1
    - Dst: SleepConditionVariableCS_fn
      Src: /src/libevent/evthread_win32.c:171,1
    - Dst: GetLastError
      Src: /src/libevent/evthread_win32.c:173,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - cond_
    - lock_
    - tv
    argTypes:
    - void*
    - void*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 180
    functionName: evthread_win32_condvar_wait
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - SleepConditionVariableCS_fn
    - evutil_tv_to_msec_
    linkageType: ''
    returnType: int
    signature: int evthread_win32_condvar_wait(void *cond_, void *lock_, const struct
      timeval *tv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/evthread_win32.c:196,1
    - Dst: InitializeCriticalSectionAndSpinCount
      Src: /src/libevent/evthread_win32.c:198,1
    - Dst: mm_free
      Src: /src/libevent/evthread_win32.c:199,1
    - Dst: CreateEvent
      Src: /src/libevent/evthread_win32.c:202,1
    - Dst: DeleteCriticalSection
      Src: /src/libevent/evthread_win32.c:203,1
    - Dst: mm_free
      Src: /src/libevent/evthread_win32.c:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - flags
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 209
    functionName: evthread_win32_cond_alloc
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - DeleteCriticalSection
    - mm_free
    - CreateEvent
    - InitializeCriticalSectionAndSpinCount
    - mm_malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      evthread_win32_cond_alloc(unsigned flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeleteCriticalSection
      Src: /src/libevent/evthread_win32.c:215,1
    - Dst: CloseHandle
      Src: /src/libevent/evthread_win32.c:216,1
    - Dst: mm_free
      Src: /src/libevent/evthread_win32.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cond_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 218
    functionName: evthread_win32_cond_free
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - DeleteCriticalSection
    - mm_free
    - CloseHandle
    linkageType: ''
    returnType: void
    signature: void evthread_win32_cond_free(void *cond_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EnterCriticalSection
      Src: /src/libevent/evthread_win32.c:224,1
    - Dst: SetEvent
      Src: /src/libevent/evthread_win32.c:230,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/evthread_win32.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - cond_
    - broadcast
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 233
    functionName: evthread_win32_cond_signal
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - LeaveCriticalSection
    - EnterCriticalSection
    - SetEvent
    linkageType: ''
    returnType: int
    signature: int evthread_win32_cond_signal(void *cond_, int broadcast)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: evutil_tv_to_msec_
      Src: /src/libevent/evthread_win32.c:245,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/evthread_win32.c:247,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/evthread_win32.c:250,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/evthread_win32.c:252,1
    - Dst: GetTickCount
      Src: /src/libevent/evthread_win32.c:254,1
    - Dst: WaitForSingleObject
      Src: /src/libevent/evthread_win32.c:257,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/evthread_win32.c:258,1
    - Dst: GetTickCount
      Src: /src/libevent/evthread_win32.c:272,1
    - Dst: ResetEvent
      Src: /src/libevent/evthread_win32.c:286,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/evthread_win32.c:289,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/evthread_win32.c:292,1
    - Dst: EnterCriticalSection
      Src: /src/libevent/evthread_win32.c:294,1
    - Dst: ResetEvent
      Src: /src/libevent/evthread_win32.c:296,1
    - Dst: LeaveCriticalSection
      Src: /src/libevent/evthread_win32.c:297,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 3
    argNames:
    - cond_
    - lock_
    - tv
    argTypes:
    - void*
    - void*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 300
    functionName: evthread_win32_cond_wait
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - ResetEvent
    - LeaveCriticalSection
    - WaitForSingleObject
    - evutil_tv_to_msec_
    - EnterCriticalSection
    - GetTickCount
    linkageType: ''
    returnType: int
    signature: int evthread_win32_cond_wait(void *cond_, void *lock_, const struct
      timeval *tv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evthread_set_lock_callbacks
      Src: /src/libevent/evthread_win32.c:332,1
    - Dst: evthread_set_id_callback
      Src: /src/libevent/evthread_win32.c:333,1
    - Dst: evthread_win32_condvar_init
      Src: /src/libevent/evthread_win32.c:335,1
    - Dst: evthread_set_condition_callbacks
      Src: /src/libevent/evthread_win32.c:336,1
    - Dst: evthread_set_condition_callbacks
      Src: /src/libevent/evthread_win32.c:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 343
    functionName: evthread_use_windows_threads
    functionSourceFile: /src/libevent/evthread_win32.c
    functionUses: 0
    functionsReached:
    - evthread_set_condition_callbacks
    - evthread_win32_condvar_init
    - evthread_set_id_callback
    - evthread_set_lock_callbacks
    linkageType: ''
    returnType: int
    signature: int evthread_use_windows_threads(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UNLIKELY
      Src: /src/libevent/evutil_time.c:99,1
    - Dst: evutil_load_windows_system_library_
      Src: /src/libevent/evutil_time.c:100,1
    - Dst: TEXT
      Src: /src/libevent/evutil_time.c:100,1
    - Dst: GetProcAddress
      Src: /src/libevent/evutil_time.c:104,1
    - Dst: GetSystemTimePreciseAsFileTime_fn
      Src: /src/libevent/evutil_time.c:109,1
    - Dst: GetSystemTimeAsFileTime
      Src: /src/libevent/evutil_time.c:111,1
    - Dst: EVUTIL_UNLIKELY
      Src: /src/libevent/evutil_time.c:113,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - tv
    - tz
    argTypes:
    - struct timeval*
    - struct timezone*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 121
    functionName: evutil_gettimeofday
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 4
    functionsReached:
    - GetProcAddress
    - EVUTIL_UNLIKELY
    - evutil_load_windows_system_library_
    - GetSystemTimePreciseAsFileTime_fn
    - TEXT
    - GetSystemTimeAsFileTime
    linkageType: ''
    returnType: int
    signature: int evutil_gettimeofday(struct timeval *tv, struct timezone *tz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: U64_LITERAL
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U64_LITERAL(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: U64_LITERAL
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: U64_LITERAL(n)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - tv
    argTypes:
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 134
    functionName: evutil_tv_to_msec_
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long evutil_tv_to_msec_(const struct timeval *tv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CreateWaitableTimer
      Src: /src/libevent/evutil_time.c:156,1
    - Dst: SetWaitableTimer
      Src: /src/libevent/evutil_time.c:160,1
    - Dst: WaitForSingleObject
      Src: /src/libevent/evutil_time.c:161,1
    - Dst: CloseHandle
      Src: /src/libevent/evutil_time.c:162,1
    - Dst: nanosleep
      Src: /src/libevent/evutil_time.c:169,1
    - Dst: sleep
      Src: /src/libevent/evutil_time.c:173,1
    - Dst: usleep
      Src: /src/libevent/evutil_time.c:174,1
    - Dst: select
      Src: /src/libevent/evutil_time.c:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - tv
    argTypes:
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 181
    functionName: evutil_usleep_
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 0
    functionsReached:
    - select
    - usleep
    - CreateWaitableTimer
    - nanosleep
    - CloseHandle
    - sleep
    - WaitForSingleObject
    - SetWaitableTimer
    linkageType: ''
    returnType: void
    signature: void evutil_usleep_(const struct timeval *tv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/libevent/evutil_time.c:191,1
    - Dst: gmtime_r
      Src: /src/libevent/evutil_time.c:200,1
    - Dst: _gmtime64_s
      Src: /src/libevent/evutil_time.c:205,1
    - Dst: event_errx
      Src: /src/libevent/evutil_time.c:207,1
    - Dst: _gmtime64
      Src: /src/libevent/evutil_time.c:212,1
    - Dst: gmtime
      Src: /src/libevent/evutil_time.c:214,1
    - Dst: evutil_snprintf
      Src: /src/libevent/evutil_time.c:218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - date
    - datelen
    - tm
    argTypes:
    - char*
    - size_t
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 222
    functionName: evutil_date_rfc1123
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 1
    functionsReached:
    - event_errx
    - gmtime
    - gmtime_r
    - time
    - _gmtime64_s
    - evutil_snprintf
    - _gmtime64
    linkageType: ''
    returnType: int
    signature: int evutil_date_rfc1123(char *date, const size_t datelen, const struct
      tm *tm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_timeradd
      Src: /src/libevent/evutil_time.c:234,1
    - Dst: evutil_timercmp
      Src: /src/libevent/evutil_time.c:236,1
    - Dst: evutil_timersub
      Src: /src/libevent/evutil_time.c:239,1
    - Dst: evutil_timeradd
      Src: /src/libevent/evutil_time.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - base
    - tv
    argTypes:
    - struct evutil_monotonic_timer*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 245
    functionName: adjust_monotonic_time
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 0
    functionsReached:
    - evutil_timersub
    - evutil_timeradd
    - evutil_timercmp
    linkageType: ''
    returnType: void
    signature: "void adjust_monotonic_time(struct evutil_monotonic_timer *base,\n
      \   struct timeval *tv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/evutil_time.c:255,1
    - Dst: memset
      Src: /src/libevent/evutil_time.c:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 262
    functionName: evutil_monotonic_timer_new
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 0
    functionsReached:
    - memset
    - mm_malloc
    linkageType: ''
    returnType: struct evutil_monotonic_timer
    signature: 'struct evutil_monotonic_timer *

      evutil_monotonic_timer_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/evutil_time.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - timer
    argTypes:
    - struct evutil_monotonic_timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 273
    functionName: evutil_monotonic_timer_free
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 0
    functionsReached:
    - mm_free
    linkageType: ''
    returnType: void
    signature: void evutil_monotonic_timer_free(struct evutil_monotonic_timer *timer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_configure_monotonic_time_
      Src: /src/libevent/evutil_time.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - timer
    - flags
    argTypes:
    - struct evutil_monotonic_timer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 283
    functionName: evutil_configure_monotonic_time
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 0
    functionsReached:
    - evutil_configure_monotonic_time_
    linkageType: ''
    returnType: int
    signature: "int evutil_configure_monotonic_time(struct evutil_monotonic_timer
      *timer,\n                                int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettime_monotonic_
      Src: /src/libevent/evutil_time.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - timer
    - tp
    argTypes:
    - struct evutil_monotonic_timer*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 293
    functionName: evutil_gettime_monotonic
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 0
    functionsReached:
    - evutil_gettime_monotonic_
    linkageType: ''
    returnType: int
    signature: "int evutil_gettime_monotonic(struct evutil_monotonic_timer *timer,\n
      \                        struct timeval *tp)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/evutil_time.c:319,1
    - Dst: event_errx
      Src: /src/libevent/evutil_time.c:327,1
    - Dst: clock_gettime
      Src: /src/libevent/evutil_time.c:330,1
    - Dst: clock_gettime
      Src: /src/libevent/evutil_time.c:336,1
    - Dst: event_errx
      Src: /src/libevent/evutil_time.c:342,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - base
    - flags
    argTypes:
    - struct evutil_monotonic_timer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 347
    functionName: evutil_configure_monotonic_time_
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 2
    functionsReached:
    - memset
    - event_errx
    - clock_gettime
    linkageType: ''
    returnType: int
    signature: "int evutil_configure_monotonic_time_(struct evutil_monotonic_timer
      *base,\n    int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/evutil_time.c:356,1
    - Dst: adjust_monotonic_time
      Src: /src/libevent/evutil_time.c:358,1
    - Dst: clock_gettime
      Src: /src/libevent/evutil_time.c:362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - base
    - tp
    argTypes:
    - struct evutil_monotonic_timer*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 368
    functionName: evutil_gettime_monotonic_
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 3
    functionsReached:
    - adjust_monotonic_time
    - evutil_gettimeofday
    - clock_gettime
    linkageType: ''
    returnType: int
    signature: "int evutil_gettime_monotonic_(struct evutil_monotonic_timer *base,\n
      \   struct timeval *tp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/evutil_time.c:389,1
    - Dst: mach_timebase_info
      Src: /src/libevent/evutil_time.c:392,1
    - Dst: mach_absolute_time
      Src: /src/libevent/evutil_time.c:393,1
    - Dst: memcpy
      Src: /src/libevent/evutil_time.c:398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - base
    - flags
    argTypes:
    - struct evutil_monotonic_timer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 403
    functionName: evutil_configure_monotonic_time_
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 2
    functionsReached:
    - mach_absolute_time
    - memset
    - mach_timebase_info
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int evutil_configure_monotonic_time_(struct evutil_monotonic_timer
      *base,\n    int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/evutil_time.c:411,1
    - Dst: adjust_monotonic_time
      Src: /src/libevent/evutil_time.c:413,1
    - Dst: mach_absolute_time
      Src: /src/libevent/evutil_time.c:417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - base
    - tp
    argTypes:
    - struct evutil_monotonic_timer*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 424
    functionName: evutil_gettime_monotonic_
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 3
    functionsReached:
    - adjust_monotonic_time
    - evutil_gettimeofday
    - mach_absolute_time
    linkageType: ''
    returnType: int
    signature: "int evutil_gettime_monotonic_(struct evutil_monotonic_timer *base,\n
      \   struct timeval *tp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct evutil_monotonic_timer*::GetTickCount64_fn
      Src: /src/libevent/evutil_time.c:493,1
    - Dst: struct evutil_monotonic_timer*::GetTickCount_fn
      Src: /src/libevent/evutil_time.c:500,1
    - Dst: GetTickCount
      Src: /src/libevent/evutil_time.c:507,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evutil_monotonic_timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 514
    functionName: evutil_GetTickCount_
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 0
    functionsReached:
    - GetTickCount
    - struct evutil_monotonic_timer*::GetTickCount_fn
    - struct evutil_monotonic_timer*::GetTickCount64_fn
    linkageType: ''
    returnType: ev_uint64_t
    signature: ev_uint64_t evutil_GetTickCount_(struct evutil_monotonic_timer *base)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/evutil_time.c:523,1
    - Dst: evutil_load_windows_system_library_
      Src: /src/libevent/evutil_time.c:525,1
    - Dst: TEXT
      Src: /src/libevent/evutil_time.c:525,1
    - Dst: GetProcAddress
      Src: /src/libevent/evutil_time.c:527,1
    - Dst: GetProcAddress
      Src: /src/libevent/evutil_time.c:528,1
    - Dst: evutil_GetTickCount_
      Src: /src/libevent/evutil_time.c:531,1
    - Dst: QueryPerformanceFrequency
      Src: /src/libevent/evutil_time.c:534,1
    - Dst: QueryPerformanceCounter
      Src: /src/libevent/evutil_time.c:536,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - base
    - flags
    argTypes:
    - struct evutil_monotonic_timer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 544
    functionName: evutil_configure_monotonic_time_
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 2
    functionsReached:
    - GetProcAddress
    - evutil_load_windows_system_library_
    - evutil_GetTickCount_
    - memset
    - TEXT
    - QueryPerformanceCounter
    - QueryPerformanceFrequency
    linkageType: ''
    returnType: int
    signature: "int evutil_configure_monotonic_time_(struct evutil_monotonic_timer
      *base,\n    int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - ev_int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 550
    functionName: abs64
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ev_int64_t
    signature: ev_int64_t abs64(ev_int64_t i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evutil_GetTickCount_
      Src: /src/libevent/evutil_time.c:557,1
    - Dst: QueryPerformanceCounter
      Src: /src/libevent/evutil_time.c:566,1
    - Dst: abs64
      Src: /src/libevent/evutil_time.c:575,1
    - Dst: adjust_monotonic_time
      Src: /src/libevent/evutil_time.c:592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - base
    - tp
    argTypes:
    - struct evutil_monotonic_timer*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 553
    functionDepth: 2
    functionLinenumber: 553
    functionLinenumberEnd: 595
    functionName: evutil_gettime_monotonic_
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 3
    functionsReached:
    - evutil_GetTickCount_
    - abs64
    - adjust_monotonic_time
    - QueryPerformanceCounter
    linkageType: ''
    returnType: int
    signature: "int evutil_gettime_monotonic_(struct evutil_monotonic_timer *base,\n
      \   struct timeval *tp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/evutil_time.c:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - base
    - precise
    argTypes:
    - struct evutil_monotonic_timer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 611
    functionName: evutil_configure_monotonic_time_
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 2
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: "int evutil_configure_monotonic_time_(struct evutil_monotonic_timer
      *base,\n    int precise)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/evutil_time.c:617,1
    - Dst: adjust_monotonic_time
      Src: /src/libevent/evutil_time.c:619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - base
    - tp
    argTypes:
    - struct evutil_monotonic_timer*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 613
    functionDepth: 2
    functionLinenumber: 613
    functionLinenumberEnd: 622
    functionName: evutil_gettime_monotonic_
    functionSourceFile: /src/libevent/evutil_time.c
    functionUses: 3
    functionsReached:
    - adjust_monotonic_time
    - evutil_gettimeofday
    linkageType: ''
    returnType: int
    signature: "int evutil_gettime_monotonic_(struct evutil_monotonic_timer *base,\n
      \   struct timeval *tp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_filter.c:121,1
    - Dst: BEV_IS_FILTER
      Src: /src/libevent/bufferevent_filter.c:121,1
    - Dst: evutil_offsetof
      Src: /src/libevent/bufferevent_filter.c:123,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_filter.c:124,1
    - Dst: BEV_IS_FILTER
      Src: /src/libevent/bufferevent_filter.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 126
    functionName: upcast
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 21
    functionsReached:
    - EVUTIL_ASSERT
    - evutil_offsetof
    - BEV_IS_FILTER
    linkageType: ''
    returnType: struct bufferevent_filtered
    signature: 'struct bufferevent_filtered *

      upcast(struct bufferevent *bev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bev_f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: downcast
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: downcast(bev_f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_filter.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - bevf
    - state
    argTypes:
    - struct bufferevent_filtered*
    - enum bufferevent_flush_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 141
    functionName: be_underlying_writebuf_full
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - evbuffer_get_length
    linkageType: ''
    returnType: int
    signature: "int be_underlying_writebuf_full(struct bufferevent_filtered *bevf,\n
      \   enum bufferevent_flush_mode state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:149,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_filter.c:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - bevf
    - state
    argTypes:
    - struct bufferevent_filtered*
    - enum bufferevent_flush_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 153
    functionName: be_readbuf_full
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - downcast
    - evbuffer_get_length
    linkageType: ''
    returnType: int
    signature: "int be_readbuf_full(struct bufferevent_filtered *bevf,\n    enum bufferevent_flush_mode
      state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_remove_buffer
      Src: /src/libevent/bufferevent_filter.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - src
    - dst
    - lim
    - state
    - ctx
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    - ev_ssize_t
    - enum bufferevent_flush_mode
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 157
    functionDepth: 7
    functionLinenumber: 157
    functionLinenumberEnd: 166
    functionName: be_null_filter
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - evbuffer_remove_buffer
    linkageType: ''
    returnType: enum bufferevent_filter_result
    signature: "enum bufferevent_filter_result be_null_filter(struct evbuffer *src,
      struct evbuffer *dst, ev_ssize_t lim,\n\t       enum bufferevent_flush_mode
      state, void *ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/bufferevent_filter.c:187,1
    - Dst: bufferevent_init_common_
      Src: /src/libevent/bufferevent_filter.c:191,1
    - Dst: mm_free
      Src: /src/libevent/bufferevent_filter.c:193,1
    - Dst: bufferevent_enable_locking_
      Src: /src/libevent/bufferevent_filter.c:197,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:197,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/bufferevent_filter.c:207,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/bufferevent_filter.c:210,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:210,1
    - Dst: evbuffer_cb_clear_flags
      Src: /src/libevent/bufferevent_filter.c:212,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:212,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/bufferevent_filter.c:215,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:215,1
    - Dst: bufferevent_init_generic_timeout_cbs_
      Src: /src/libevent/bufferevent_filter.c:218,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:218,1
    - Dst: bufferevent_incref_
      Src: /src/libevent/bufferevent_filter.c:219,1
    - Dst: bufferevent_enable
      Src: /src/libevent/bufferevent_filter.c:221,1
    - Dst: bufferevent_suspend_read_
      Src: /src/libevent/bufferevent_filter.c:222,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:224,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 5
    argNames:
    - underlying
    - input_filter
    - output_filter
    - options
    - ctx
    argTypes:
    - struct bufferevent*
    - bufferevent_filter_cb
    - bufferevent_filter_cb
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 225
    functionName: bufferevent_filter_new
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - downcast
    - mm_free
    - bufferevent_init_common_
    - evbuffer_add_cb
    - bufferevent_enable_locking_
    - bufferevent_init_generic_timeout_cbs_
    - mm_calloc
    - evbuffer_cb_clear_flags
    - bufferevent_incref_
    - bufferevent_setcb
    - bufferevent_suspend_read_
    - bufferevent_enable
    linkageType: ''
    returnType: struct bufferevent
    signature: "struct bufferevent *\nbufferevent_filter_new(struct bufferevent *underlying,\n\t\t
      \      bufferevent_filter_cb input_filter,\n\t\t       bufferevent_filter_cb
      output_filter,\n\t\t       int options,\n\t\t       void (*free_context)(void
      *),\n\t\t       void *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_filter.c:230,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_filter.c:237,1
    - Dst: event_warnx
      Src: /src/libevent/bufferevent_filter.c:238,1
    - Dst: bufferevent_free
      Src: /src/libevent/bufferevent_filter.c:241,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/bufferevent_filter.c:246,1
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_filter.c:248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 252
    functionName: be_filter_unlink
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - upcast
    - bufferevent_free
    - bufferevent_setcb
    - bufferevent_unsuspend_read_
    - BEV_UPCAST
    - event_warnx
    linkageType: ''
    returnType: void
    signature: void be_filter_unlink(struct bufferevent *bev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_filter.c:257,1
    - Dst: struct bufferevent_filtered*::free_context
      Src: /src/libevent/bufferevent_filter.c:259,1
    - Dst: evbuffer_remove_cb_entry
      Src: /src/libevent/bufferevent_filter.c:262,1
    - Dst: evbuffer_remove_cb_entry
      Src: /src/libevent/bufferevent_filter.c:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 266
    functionName: be_filter_destruct
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - upcast
    - evbuffer_remove_cb_entry
    - struct bufferevent_filtered*::free_context
    linkageType: ''
    returnType: void
    signature: void be_filter_destruct(struct bufferevent *bev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_filter.c:271,1
    - Dst: BEV_RESET_GENERIC_WRITE_TIMEOUT
      Src: /src/libevent/bufferevent_filter.c:273,1
    - Dst: BEV_RESET_GENERIC_READ_TIMEOUT
      Src: /src/libevent/bufferevent_filter.c:276,1
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_filter.c:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - bev
    - event
    argTypes:
    - struct bufferevent*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 281
    functionName: be_filter_enable
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - BEV_RESET_GENERIC_WRITE_TIMEOUT
    - upcast
    - bufferevent_unsuspend_read_
    - BEV_RESET_GENERIC_READ_TIMEOUT
    linkageType: ''
    returnType: int
    signature: int be_filter_enable(struct bufferevent *bev, short event)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_filter.c:286,1
    - Dst: BEV_DEL_GENERIC_WRITE_TIMEOUT
      Src: /src/libevent/bufferevent_filter.c:288,1
    - Dst: BEV_DEL_GENERIC_READ_TIMEOUT
      Src: /src/libevent/bufferevent_filter.c:290,1
    - Dst: bufferevent_suspend_read_
      Src: /src/libevent/bufferevent_filter.c:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - bev
    - event
    argTypes:
    - struct bufferevent*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 295
    functionName: be_filter_disable
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - upcast
    - BEV_DEL_GENERIC_WRITE_TIMEOUT
    - BEV_DEL_GENERIC_READ_TIMEOUT
    - bufferevent_suspend_read_
    linkageType: ''
    returnType: int
    signature: int be_filter_disable(struct bufferevent *bev, short event)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:303,1
    - Dst: be_readbuf_full
      Src: /src/libevent/bufferevent_filter.c:309,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_filter.c:317,1
    - Dst: struct bufferevent_filtered*::process_in
      Src: /src/libevent/bufferevent_filter.c:319,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_filter.c:326,1
    - Dst: be_readbuf_full
      Src: /src/libevent/bufferevent_filter.c:327,1
    - Dst: BEV_RESET_GENERIC_READ_TIMEOUT
      Src: /src/libevent/bufferevent_filter.c:330,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 3
    argNames:
    - bevf
    - state
    - processed_out
    argTypes:
    - struct bufferevent_filtered*
    - enum bufferevent_flush_mode
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 333
    functionName: be_filter_process_input
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - downcast
    - be_readbuf_full
    - BEV_RESET_GENERIC_READ_TIMEOUT
    - evbuffer_get_length
    - struct bufferevent_filtered*::process_in
    linkageType: ''
    returnType: enum bufferevent_filter_result
    signature: "enum bufferevent_filter_result be_filter_process_input(struct bufferevent_filtered
      *bevf,\n\t\t\tenum bufferevent_flush_mode state,\n\t\t\tint *processed_out)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:343,1
    - Dst: be_underlying_writebuf_full
      Src: /src/libevent/bufferevent_filter.c:353,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_filter.c:354,1
    - Dst: evbuffer_cb_clear_flags
      Src: /src/libevent/bufferevent_filter.c:360,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_filter.c:372,1
    - Dst: struct bufferevent_filtered*::process_out
      Src: /src/libevent/bufferevent_filter.c:374,1
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:374,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_filter.c:388,1
    - Dst: be_underlying_writebuf_full
      Src: /src/libevent/bufferevent_filter.c:390,1
    - Dst: bufferevent_trigger_nolock_
      Src: /src/libevent/bufferevent_filter.c:394,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_filter.c:398,1
    - Dst: be_underlying_writebuf_full
      Src: /src/libevent/bufferevent_filter.c:399,1
    - Dst: evbuffer_cb_set_flags
      Src: /src/libevent/bufferevent_filter.c:406,1
    - Dst: BEV_RESET_GENERIC_WRITE_TIMEOUT
      Src: /src/libevent/bufferevent_filter.c:410,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 26
    argCount: 3
    argNames:
    - bevf
    - state
    - processed_out
    argTypes:
    - struct bufferevent_filtered*
    - enum bufferevent_flush_mode
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 336
    functionDepth: 3
    functionLinenumber: 336
    functionLinenumberEnd: 413
    functionName: be_filter_process_output
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - downcast
    - be_underlying_writebuf_full
    - evbuffer_cb_clear_flags
    - bufferevent_trigger_nolock_
    - BEV_RESET_GENERIC_WRITE_TIMEOUT
    - evbuffer_get_length
    - struct bufferevent_filtered*::process_out
    - evbuffer_cb_set_flags
    linkageType: ''
    returnType: enum bufferevent_filter_result
    signature: "enum bufferevent_filter_result be_filter_process_output(struct bufferevent_filtered
      *bevf,\n\t\t\t enum bufferevent_flush_mode state,\n\t\t\t int *processed_out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:421,1
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent_filter.c:427,1
    - Dst: be_filter_process_output
      Src: /src/libevent/bufferevent_filter.c:428,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_filter.c:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - buf
    - cbinfo
    - arg
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 416
    functionDepth: 4
    functionLinenumber: 416
    functionLinenumberEnd: 431
    functionName: bufferevent_filtered_outbuf_cb
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - downcast
    - be_filter_process_output
    - bufferevent_incref_and_lock_
    - bufferevent_decref_and_unlock_
    linkageType: ''
    returnType: void
    signature: "void bufferevent_filtered_outbuf_cb(struct evbuffer *buf,\n    const
      struct evbuffer_cb_info *cbinfo, void *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:439,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_filter.c:440,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_filter.c:444,1
    - Dst: be_filter_process_input
      Src: /src/libevent/bufferevent_filter.c:455,1
    - Dst: bufferevent_trigger_nolock_
      Src: /src/libevent/bufferevent_filter.c:462,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_filter.c:463,1
    - Dst: be_readbuf_full
      Src: /src/libevent/bufferevent_filter.c:464,1
    - Dst: evbuffer_cb_set_flags
      Src: /src/libevent/bufferevent_filter.c:470,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - underlying
    - me_
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 433
    functionDepth: 4
    functionLinenumber: 433
    functionLinenumberEnd: 475
    functionName: be_filter_read_nolock_
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - downcast
    - be_readbuf_full
    - EVUTIL_ASSERT
    - be_filter_process_input
    - bufferevent_trigger_nolock_
    - evbuffer_get_length
    - BEV_UPCAST
    - evbuffer_cb_set_flags
    linkageType: ''
    returnType: void
    signature: void be_filter_read_nolock_(struct bufferevent *underlying, void *me_)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:484,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_filter.c:486,1
    - Dst: be_readbuf_full
      Src: /src/libevent/bufferevent_filter.c:494,1
    - Dst: evbuffer_cb_clear_flags
      Src: /src/libevent/bufferevent_filter.c:499,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_filter.c:501,1
    - Dst: be_filter_read_nolock_
      Src: /src/libevent/bufferevent_filter.c:502,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_filter.c:505,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - buf
    - cbinfo
    - arg
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 478
    functionDepth: 5
    functionLinenumber: 478
    functionLinenumberEnd: 506
    functionName: bufferevent_filtered_inbuf_cb
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - downcast
    - be_readbuf_full
    - evbuffer_cb_clear_flags
    - evbuffer_get_length
    - be_filter_read_nolock_
    - BEV_UNLOCK
    - BEV_LOCK
    linkageType: ''
    returnType: void
    signature: "void bufferevent_filtered_inbuf_cb(struct evbuffer *buf,\n    const
      struct evbuffer_cb_info *cbinfo, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:513,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_filter.c:515,1
    - Dst: be_filter_read_nolock_
      Src: /src/libevent/bufferevent_filter.c:517,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_filter.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - underlying
    - me_
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 509
    functionDepth: 5
    functionLinenumber: 509
    functionLinenumberEnd: 520
    functionName: be_filter_readcb
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - downcast
    - BEV_UNLOCK
    - be_filter_read_nolock_
    - BEV_LOCK
    linkageType: ''
    returnType: void
    signature: void be_filter_readcb(struct bufferevent *underlying, void *me_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:528,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_filter.c:529,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_filter.c:532,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_filter.c:535,1
    - Dst: be_filter_process_output
      Src: /src/libevent/bufferevent_filter.c:539,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_filter.c:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - underlying
    - me_
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 524
    functionDepth: 4
    functionLinenumber: 524
    functionLinenumberEnd: 543
    functionName: be_filter_writecb
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - downcast
    - EVUTIL_ASSERT
    - be_filter_process_output
    - BEV_UPCAST
    - BEV_UNLOCK
    - BEV_LOCK
    linkageType: ''
    returnType: void
    signature: void be_filter_writecb(struct bufferevent *underlying, void *me_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: downcast
      Src: /src/libevent/bufferevent_filter.c:550,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_filter.c:551,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_filter.c:553,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_filter.c:556,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_filter.c:562,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_filter.c:565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - underlying
    - what
    - me_
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 566
    functionName: be_filter_eventcb
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - downcast
    - EVUTIL_ASSERT
    - bufferevent_run_eventcb_
    - BEV_UPCAST
    - BEV_UNLOCK
    - BEV_LOCK
    linkageType: ''
    returnType: void
    signature: void be_filter_eventcb(struct bufferevent *underlying, short what,
      void *me_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_filter.c:572,1
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent_filter.c:575,1
    - Dst: be_filter_process_input
      Src: /src/libevent/bufferevent_filter.c:578,1
    - Dst: be_filter_process_output
      Src: /src/libevent/bufferevent_filter.c:581,1
    - Dst: bufferevent_flush
      Src: /src/libevent/bufferevent_filter.c:585,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_filter.c:587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - bufev
    - iotype
    - mode
    argTypes:
    - struct bufferevent*
    - short
    - enum bufferevent_flush_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 568
    functionDepth: 4
    functionLinenumber: 568
    functionLinenumberEnd: 590
    functionName: be_filter_flush
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - bufferevent_incref_and_lock_
    - upcast
    - be_filter_process_input
    - be_filter_process_output
    - bufferevent_decref_and_unlock_
    - bufferevent_flush
    linkageType: ''
    returnType: int
    signature: "int be_filter_flush(struct bufferevent *bufev,\n    short iotype,
      enum bufferevent_flush_mode mode)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: upcast
      Src: /src/libevent/bufferevent_filter.c:599,1
    - Dst: upcast
      Src: /src/libevent/bufferevent_filter.c:604,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - bev
    - op
    - data
    argTypes:
    - struct bufferevent*
    - enum bufferevent_ctrl_op
    - union bufferevent_ctrl_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 620
    functionName: be_filter_ctrl
    functionSourceFile: /src/libevent/bufferevent_filter.c
    functionUses: 0
    functionsReached:
    - upcast
    linkageType: ''
    returnType: int
    signature: "int be_filter_ctrl(struct bufferevent *bev, enum bufferevent_ctrl_op
      op,\n    union bufferevent_ctrl_data *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - bucket
    - cfg
    - current_tick
    - reinitialize
    argTypes:
    - struct ev_token_bucket*
    - struct ev_token_bucket_cfg*
    - ev_uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 71
    functionName: ev_token_bucket_init_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ev_token_bucket_init_(struct ev_token_bucket *bucket,\n    const
      struct ev_token_bucket_cfg *cfg,\n    ev_uint32_t current_tick,\n    int reinitialize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - bucket
    - cfg
    - current_tick
    argTypes:
    - struct ev_token_bucket*
    - struct ev_token_bucket_cfg*
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 111
    functionName: ev_token_bucket_update_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ev_token_bucket_update_(struct ev_token_bucket *bucket,\n    const
      struct ev_token_bucket_cfg *cfg,\n    ev_uint32_t current_tick)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_gettimeofday_cached
      Src: /src/libevent/bufferevent_ratelim.c:119,1
    - Dst: ev_token_bucket_get_tick_
      Src: /src/libevent/bufferevent_ratelim.c:120,1
    - Dst: ev_token_bucket_update_
      Src: /src/libevent/bufferevent_ratelim.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent_private*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: bufferevent_update_buckets
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - ev_token_bucket_update_
    - event_base_gettimeofday_cached
    - ev_token_bucket_get_tick_
    linkageType: ''
    returnType: void
    signature: void bufferevent_update_buckets(struct bufferevent_private *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tv
    - cfg
    argTypes:
    - struct timeval*
    - struct ev_token_bucket_cfg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 140
    functionName: ev_token_bucket_get_tick_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ev_uint32_t
    signature: "ev_uint32_t ev_token_bucket_get_tick_(const struct timeval *tv,\n
      \   const struct ev_token_bucket_cfg *cfg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/bufferevent_ratelim.c:180,1
    - Dst: memcpy
      Src: /src/libevent/bufferevent_ratelim.c:187,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 5
    argNames:
    - read_rate
    - read_burst
    - write_rate
    - write_burst
    - tick_len
    argTypes:
    - size_t
    - size_t
    - size_t
    - size_t
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 190
    functionName: ev_token_bucket_cfg_new
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - mm_calloc
    - memcpy
    linkageType: ''
    returnType: struct ev_token_bucket_cfg
    signature: "struct ev_token_bucket_cfg *\nev_token_bucket_cfg_new(size_t read_rate,
      size_t read_burst,\n    size_t write_rate, size_t write_burst,\n    const struct
      timeval *tick_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/bufferevent_ratelim.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - struct ev_token_bucket_cfg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: ev_token_bucket_cfg_free
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - mm_free
    linkageType: ''
    returnType: void
    signature: void ev_token_bucket_cfg_free(struct ev_token_bucket_cfg *cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: LOCK_GROUP
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCK_GROUP(g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    functionName: UNLOCK_GROUP
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLOCK_GROUP(g)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_update_buckets
      Src: /src/libevent/bufferevent_ratelim.c:242,1
    - Dst: LIM
      Src: /src/libevent/bufferevent_ratelim.c:243,1
    - Dst: LOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:249,1
    - Dst: GROUP_SUSPENDED
      Src: /src/libevent/bufferevent_ratelim.c:250,1
    - Dst: bufferevent_suspend_write_
      Src: /src/libevent/bufferevent_ratelim.c:255,1
    - Dst: bufferevent_suspend_read_
      Src: /src/libevent/bufferevent_ratelim.c:258,1
    - Dst: LIM
      Src: /src/libevent/bufferevent_ratelim.c:264,1
    - Dst: UNLOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:268,1
    - Dst: CLAMPTO
      Src: /src/libevent/bufferevent_ratelim.c:269,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - bev
    - is_write
    argTypes:
    - struct bufferevent_private*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 275
    functionName: bufferevent_get_rlim_max_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - UNLOCK_GROUP
    - bufferevent_update_buckets
    - bufferevent_suspend_write_
    - LIM
    - LOCK_GROUP
    - CLAMPTO
    - GROUP_SUSPENDED
    - bufferevent_suspend_read_
    linkageType: ''
    returnType: ev_ssize_t
    signature: ev_ssize_t bufferevent_get_rlim_max_(struct bufferevent_private *bev,
      int is_write)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 222
    functionName: LIM
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIM(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 225
    functionName: GROUP_SUSPENDED
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GROUP_SUSPENDED(g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: CLAMPTO
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLAMPTO(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_rlim_max_
      Src: /src/libevent/bufferevent_ratelim.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent_private*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 4
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: bufferevent_get_read_max_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 2
    functionsReached:
    - bufferevent_get_rlim_max_
    linkageType: ''
    returnType: ev_ssize_t
    signature: ev_ssize_t bufferevent_get_read_max_(struct bufferevent_private *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_rlim_max_
      Src: /src/libevent/bufferevent_ratelim.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent_private*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 283
    functionDepth: 4
    functionLinenumber: 283
    functionLinenumberEnd: 287
    functionName: bufferevent_get_write_max_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 2
    functionsReached:
    - bufferevent_get_rlim_max_
    linkageType: ''
    returnType: ev_ssize_t
    signature: ev_ssize_t bufferevent_get_write_max_(struct bufferevent_private *bev)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_suspend_read_
      Src: /src/libevent/bufferevent_ratelim.c:301,1
    - Dst: event_add
      Src: /src/libevent/bufferevent_ratelim.c:302,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ratelim.c:307,1
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_ratelim.c:308,1
    - Dst: LOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:313,1
    - Dst: bev_group_suspend_reading_
      Src: /src/libevent/bufferevent_ratelim.c:317,1
    - Dst: bev_group_unsuspend_reading_
      Src: /src/libevent/bufferevent_ratelim.c:319,1
    - Dst: UNLOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:321,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - bev
    - bytes
    argTypes:
    - struct bufferevent_private*
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 289
    functionDepth: 4
    functionLinenumber: 289
    functionLinenumberEnd: 325
    functionName: bufferevent_decrement_read_buckets_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 4
    functionsReached:
    - bev_group_suspend_reading_
    - UNLOCK_GROUP
    - event_del
    - LOCK_GROUP
    - bev_group_unsuspend_reading_
    - bufferevent_unsuspend_read_
    - event_add
    - bufferevent_suspend_read_
    linkageType: ''
    returnType: int
    signature: int bufferevent_decrement_read_buckets_(struct bufferevent_private
      *bev, ev_ssize_t bytes)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_suspend_write_
      Src: /src/libevent/bufferevent_ratelim.c:339,1
    - Dst: event_add
      Src: /src/libevent/bufferevent_ratelim.c:340,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ratelim.c:345,1
    - Dst: bufferevent_unsuspend_write_
      Src: /src/libevent/bufferevent_ratelim.c:346,1
    - Dst: LOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:351,1
    - Dst: bev_group_suspend_writing_
      Src: /src/libevent/bufferevent_ratelim.c:355,1
    - Dst: bev_group_unsuspend_writing_
      Src: /src/libevent/bufferevent_ratelim.c:357,1
    - Dst: UNLOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:359,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - bev
    - bytes
    argTypes:
    - struct bufferevent_private*
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 327
    functionDepth: 4
    functionLinenumber: 327
    functionLinenumberEnd: 363
    functionName: bufferevent_decrement_write_buckets_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 4
    functionsReached:
    - bev_group_suspend_writing_
    - UNLOCK_GROUP
    - event_del
    - bufferevent_suspend_write_
    - LOCK_GROUP
    - event_add
    - bufferevent_unsuspend_write_
    - bev_group_unsuspend_writing_
    linkageType: ''
    returnType: int
    signature: int bufferevent_decrement_write_buckets_(struct bufferevent_private
      *bev, ev_ssize_t bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_FOREACH
      Src: /src/libevent/bufferevent_ratelim.c:380,1
    - Dst: EVLOCK_TRY_LOCK_
      Src: /src/libevent/bufferevent_ratelim.c:381,1
    - Dst: bufferevent_suspend_read_
      Src: /src/libevent/bufferevent_ratelim.c:382,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct bufferevent_rate_limit_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 388
    functionName: bev_group_suspend_reading_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 1
    functionsReached:
    - LIST_FOREACH
    - EVLOCK_UNLOCK
    - EVLOCK_TRY_LOCK_
    - bufferevent_suspend_read_
    linkageType: ''
    returnType: int
    signature: int bev_group_suspend_reading_(struct bufferevent_rate_limit_group
      *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_FOREACH
      Src: /src/libevent/bufferevent_ratelim.c:398,1
    - Dst: EVLOCK_TRY_LOCK_
      Src: /src/libevent/bufferevent_ratelim.c:399,1
    - Dst: bufferevent_suspend_write_
      Src: /src/libevent/bufferevent_ratelim.c:400,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct bufferevent_rate_limit_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 406
    functionName: bev_group_suspend_writing_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 1
    functionsReached:
    - LIST_FOREACH
    - bufferevent_suspend_write_
    - EVLOCK_TRY_LOCK_
    - EVLOCK_UNLOCK
    linkageType: ''
    returnType: int
    signature: int bev_group_suspend_writing_(struct bufferevent_rate_limit_group
      *g)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:417,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:419,1
    - Dst: event_base_gettimeofday_cached
      Src: /src/libevent/bufferevent_ratelim.c:424,1
    - Dst: ev_token_bucket_get_tick_
      Src: /src/libevent/bufferevent_ratelim.c:425,1
    - Dst: ev_token_bucket_update_
      Src: /src/libevent/bufferevent_ratelim.c:427,1
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_ratelim.c:434,1
    - Dst: bufferevent_unsuspend_write_
      Src: /src/libevent/bufferevent_ratelim.c:440,1
    - Dst: event_add
      Src: /src/libevent/bufferevent_ratelim.c:452,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:455,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 410
    functionDepth: 3
    functionLinenumber: 410
    functionLinenumberEnd: 456
    functionName: bev_refill_callback_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - ev_token_bucket_update_
    - ev_token_bucket_get_tick_
    - bufferevent_unsuspend_read_
    - event_base_gettimeofday_cached
    - event_add
    - bufferevent_unsuspend_write_
    - BEV_UNLOCK
    - BEV_LOCK
    linkageType: ''
    returnType: void
    signature: void bev_refill_callback_(evutil_socket_t fd, short what, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_ratelim.c:473,1
    - Dst: LIST_EMPTY
      Src: /src/libevent/bufferevent_ratelim.c:473,1
    - Dst: evutil_weakrand_range_
      Src: /src/libevent/bufferevent_ratelim.c:475,1
    - Dst: LIST_FIRST
      Src: /src/libevent/bufferevent_ratelim.c:477,1
    - Dst: LIST_NEXT
      Src: /src/libevent/bufferevent_ratelim.c:479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - group
    argTypes:
    - struct bufferevent_rate_limit_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 462
    functionDepth: 2
    functionLinenumber: 462
    functionLinenumberEnd: 482
    functionName: bev_group_random_element_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - LIST_FIRST
    - LIST_NEXT
    - evutil_weakrand_range_
    - LIST_EMPTY
    linkageType: ''
    returnType: struct bufferevent_private
    signature: 'struct bufferevent_private *

      bev_group_random_element_(struct bufferevent_rate_limit_group *group)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - block
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 503
    functionName: FOREACH_RANDOM_ORDER
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOREACH_RANDOM_ORDER(block)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FOREACH_RANDOM_ORDER
      Src: /src/libevent/bufferevent_ratelim.c:511,1
    - Dst: EVLOCK_TRY_LOCK_
      Src: /src/libevent/bufferevent_ratelim.c:512,1
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_ratelim.c:513,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct bufferevent_rate_limit_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 521
    functionName: bev_group_unsuspend_reading_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 1
    functionsReached:
    - bufferevent_unsuspend_read_
    - FOREACH_RANDOM_ORDER
    - EVLOCK_TRY_LOCK_
    - EVLOCK_UNLOCK
    linkageType: ''
    returnType: void
    signature: void bev_group_unsuspend_reading_(struct bufferevent_rate_limit_group
      *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FOREACH_RANDOM_ORDER
      Src: /src/libevent/bufferevent_ratelim.c:530,1
    - Dst: EVLOCK_TRY_LOCK_
      Src: /src/libevent/bufferevent_ratelim.c:531,1
    - Dst: bufferevent_unsuspend_write_
      Src: /src/libevent/bufferevent_ratelim.c:532,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct bufferevent_rate_limit_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 540
    functionName: bev_group_unsuspend_writing_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 1
    functionsReached:
    - bufferevent_unsuspend_write_
    - FOREACH_RANDOM_ORDER
    - EVLOCK_TRY_LOCK_
    - EVLOCK_UNLOCK
    linkageType: ''
    returnType: void
    signature: void bev_group_unsuspend_writing_(struct bufferevent_rate_limit_group
      *g)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_base_gettimeofday_cached
      Src: /src/libevent/bufferevent_ratelim.c:552,1
    - Dst: event_get_base
      Src: /src/libevent/bufferevent_ratelim.c:552,1
    - Dst: LOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:554,1
    - Dst: ev_token_bucket_get_tick_
      Src: /src/libevent/bufferevent_ratelim.c:556,1
    - Dst: ev_token_bucket_update_
      Src: /src/libevent/bufferevent_ratelim.c:557,1
    - Dst: bev_group_unsuspend_reading_
      Src: /src/libevent/bufferevent_ratelim.c:561,1
    - Dst: bev_group_unsuspend_writing_
      Src: /src/libevent/bufferevent_ratelim.c:565,1
    - Dst: UNLOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:573,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 545
    functionDepth: 4
    functionLinenumber: 545
    functionLinenumberEnd: 574
    functionName: bev_group_refill_callback_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - ev_token_bucket_update_
    - UNLOCK_GROUP
    - ev_token_bucket_get_tick_
    - LOCK_GROUP
    - bev_group_unsuspend_reading_
    - event_base_gettimeofday_cached
    - bev_group_unsuspend_writing_
    - event_get_base
    linkageType: ''
    returnType: void
    signature: void bev_group_refill_callback_(evutil_socket_t fd, short what, void
      *arg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:580,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:588,1
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_ratelim.c:594,1
    - Dst: bufferevent_unsuspend_write_
      Src: /src/libevent/bufferevent_ratelim.c:595,1
    - Dst: event_initialized
      Src: /src/libevent/bufferevent_ratelim.c:596,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ratelim.c:597,1
    - Dst: event_base_gettimeofday_cached
      Src: /src/libevent/bufferevent_ratelim.c:603,1
    - Dst: ev_token_bucket_get_tick_
      Src: /src/libevent/bufferevent_ratelim.c:604,1
    - Dst: mm_calloc
      Src: /src/libevent/bufferevent_ratelim.c:612,1
    - Dst: ev_token_bucket_init_
      Src: /src/libevent/bufferevent_ratelim.c:622,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_ratelim.c:625,1
    - Dst: event_initialized
      Src: /src/libevent/bufferevent_ratelim.c:625,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ratelim.c:626,1
    - Dst: event_assign
      Src: /src/libevent/bufferevent_ratelim.c:628,1
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_ratelim.c:632,1
    - Dst: bufferevent_suspend_read_
      Src: /src/libevent/bufferevent_ratelim.c:634,1
    - Dst: bufferevent_unsuspend_write_
      Src: /src/libevent/bufferevent_ratelim.c:638,1
    - Dst: bufferevent_suspend_write_
      Src: /src/libevent/bufferevent_ratelim.c:640,1
    - Dst: event_add
      Src: /src/libevent/bufferevent_ratelim.c:645,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:650,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 2
    argNames:
    - bev
    - cfg
    argTypes:
    - struct bufferevent*
    - struct ev_token_bucket_cfg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 576
    functionDepth: 4
    functionLinenumber: 576
    functionLinenumberEnd: 652
    functionName: bufferevent_set_rate_limit
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - ev_token_bucket_get_tick_
    - event_del
    - bufferevent_suspend_write_
    - EVUTIL_ASSERT
    - mm_calloc
    - BEV_LOCK
    - bufferevent_unsuspend_read_
    - event_base_gettimeofday_cached
    - ev_token_bucket_init_
    - event_assign
    - event_add
    - BEV_UPCAST
    - bufferevent_suspend_read_
    - bufferevent_unsuspend_write_
    - BEV_UNLOCK
    - event_initialized
    linkageType: ''
    returnType: int
    signature: "int bufferevent_set_rate_limit(struct bufferevent *bev,\n    struct
      ev_token_bucket_cfg *cfg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_gettimeofday_cached
      Src: /src/libevent/bufferevent_ratelim.c:662,1
    - Dst: ev_token_bucket_get_tick_
      Src: /src/libevent/bufferevent_ratelim.c:663,1
    - Dst: mm_calloc
      Src: /src/libevent/bufferevent_ratelim.c:665,1
    - Dst: memcpy
      Src: /src/libevent/bufferevent_ratelim.c:668,1
    - Dst: LIST_INIT
      Src: /src/libevent/bufferevent_ratelim.c:669,1
    - Dst: ev_token_bucket_init_
      Src: /src/libevent/bufferevent_ratelim.c:671,1
    - Dst: event_assign
      Src: /src/libevent/bufferevent_ratelim.c:673,1
    - Dst: event_add
      Src: /src/libevent/bufferevent_ratelim.c:676,1
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:678,1
    - Dst: bufferevent_rate_limit_group_set_min_share
      Src: /src/libevent/bufferevent_ratelim.c:680,1
    - Dst: evutil_weakrand_seed_
      Src: /src/libevent/bufferevent_ratelim.c:682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - base
    - cfg
    argTypes:
    - struct event_base*
    - struct ev_token_bucket_cfg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 654
    functionDepth: 4
    functionLinenumber: 654
    functionLinenumberEnd: 686
    functionName: bufferevent_rate_limit_group_new
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - EVTHREAD_ALLOC_LOCK
    - evutil_weakrand_seed_
    - ev_token_bucket_get_tick_
    - mm_calloc
    - bufferevent_rate_limit_group_set_min_share
    - event_assign
    - event_base_gettimeofday_cached
    - event_add
    - memcpy
    - ev_token_bucket_init_
    - LIST_INIT
    linkageType: ''
    returnType: struct bufferevent_rate_limit_group
    signature: "struct bufferevent_rate_limit_group *\nbufferevent_rate_limit_group_new(struct
      event_base *base,\n    const struct ev_token_bucket_cfg *cfg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:697,1
    - Dst: evutil_timercmp
      Src: /src/libevent/bufferevent_ratelim.c:698,1
    - Dst: memcpy
      Src: /src/libevent/bufferevent_ratelim.c:700,1
    - Dst: event_add
      Src: /src/libevent/bufferevent_ratelim.c:709,1
    - Dst: bufferevent_rate_limit_group_set_min_share
      Src: /src/libevent/bufferevent_ratelim.c:713,1
    - Dst: UNLOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:715,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - g
    - cfg
    argTypes:
    - struct bufferevent_rate_limit_group*
    - struct ev_token_bucket_cfg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 688
    functionDepth: 3
    functionLinenumber: 688
    functionLinenumberEnd: 717
    functionName: bufferevent_rate_limit_group_set_cfg
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - UNLOCK_GROUP
    - LOCK_GROUP
    - evutil_timercmp
    - bufferevent_rate_limit_group_set_min_share
    - event_add
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int bufferevent_rate_limit_group_set_cfg(\n\tstruct bufferevent_rate_limit_group
      *g,\n\tconst struct ev_token_bucket_cfg *cfg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - g
    - share
    argTypes:
    - struct bufferevent_rate_limit_group*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 738
    functionName: bufferevent_rate_limit_group_set_min_share
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int bufferevent_rate_limit_group_set_min_share(\n\tstruct bufferevent_rate_limit_group
      *g,\n\tsize_t share)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:743,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_ratelim.c:744,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ratelim.c:745,1
    - Dst: UNLOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:746,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:747,1
    - Dst: mm_free
      Src: /src/libevent/bufferevent_ratelim.c:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct bufferevent_rate_limit_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 740
    functionDepth: 4
    functionLinenumber: 740
    functionLinenumberEnd: 749
    functionName: bufferevent_rate_limit_group_free
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - UNLOCK_GROUP
    - mm_free
    - event_del
    - EVUTIL_ASSERT
    - LOCK_GROUP
    - EVTHREAD_FREE_LOCK
    linkageType: ''
    returnType: void
    signature: void bufferevent_rate_limit_group_free(struct bufferevent_rate_limit_group
      *g)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:756,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:757,1
    - Dst: mm_calloc
      Src: /src/libevent/bufferevent_ratelim.c:761,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:763,1
    - Dst: event_assign
      Src: /src/libevent/bufferevent_ratelim.c:766,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:772,1
    - Dst: bufferevent_remove_from_rate_limit_group
      Src: /src/libevent/bufferevent_ratelim.c:776,1
    - Dst: LOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:778,1
    - Dst: LIST_INSERT_HEAD
      Src: /src/libevent/bufferevent_ratelim.c:781,1
    - Dst: UNLOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:786,1
    - Dst: bufferevent_suspend_read_
      Src: /src/libevent/bufferevent_ratelim.c:789,1
    - Dst: bufferevent_suspend_write_
      Src: /src/libevent/bufferevent_ratelim.c:791,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:793,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - bev
    - g
    argTypes:
    - struct bufferevent*
    - struct bufferevent_rate_limit_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 751
    functionDepth: 4
    functionLinenumber: 751
    functionLinenumberEnd: 795
    functionName: bufferevent_add_to_rate_limit_group
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - UNLOCK_GROUP
    - bufferevent_suspend_write_
    - LOCK_GROUP
    - mm_calloc
    - bufferevent_remove_from_rate_limit_group
    - event_assign
    - BEV_UPCAST
    - bufferevent_suspend_read_
    - BEV_UNLOCK
    - BEV_LOCK
    - LIST_INSERT_HEAD
    linkageType: ''
    returnType: int
    signature: "int bufferevent_add_to_rate_limit_group(struct bufferevent *bev,\n
      \   struct bufferevent_rate_limit_group *g)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_remove_from_rate_limit_group_internal_
      Src: /src/libevent/bufferevent_ratelim.c:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 801
    functionName: bufferevent_remove_from_rate_limit_group
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 1
    functionsReached:
    - bufferevent_remove_from_rate_limit_group_internal_
    linkageType: ''
    returnType: int
    signature: int bufferevent_remove_from_rate_limit_group(struct bufferevent *bev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:807,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:808,1
    - Dst: LOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:812,1
    - Dst: LIST_REMOVE
      Src: /src/libevent/bufferevent_ratelim.c:815,1
    - Dst: UNLOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:816,1
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_ratelim.c:819,1
    - Dst: bufferevent_unsuspend_write_
      Src: /src/libevent/bufferevent_ratelim.c:820,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:822,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - bev
    - unsuspend
    argTypes:
    - struct bufferevent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 824
    functionName: bufferevent_remove_from_rate_limit_group_internal_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 1
    functionsReached:
    - UNLOCK_GROUP
    - LOCK_GROUP
    - bufferevent_unsuspend_read_
    - BEV_UPCAST
    - LIST_REMOVE
    - bufferevent_unsuspend_write_
    - BEV_UNLOCK
    - BEV_LOCK
    linkageType: ''
    returnType: int
    signature: "int bufferevent_remove_from_rate_limit_group_internal_(struct bufferevent
      *bev,\n    int unsuspend)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:840,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:841,1
    - Dst: bufferevent_update_buckets
      Src: /src/libevent/bufferevent_ratelim.c:843,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:848,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 835
    functionDepth: 3
    functionLinenumber: 835
    functionLinenumberEnd: 850
    functionName: bufferevent_get_read_limit
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - BEV_UNLOCK
    - BEV_LOCK
    - bufferevent_update_buckets
    - BEV_UPCAST
    linkageType: ''
    returnType: ev_ssize_t
    signature: ev_ssize_t bufferevent_get_read_limit(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:859,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:860,1
    - Dst: bufferevent_update_buckets
      Src: /src/libevent/bufferevent_ratelim.c:862,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:867,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 854
    functionDepth: 3
    functionLinenumber: 854
    functionLinenumberEnd: 869
    functionName: bufferevent_get_write_limit
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - BEV_UNLOCK
    - BEV_LOCK
    - bufferevent_update_buckets
    - BEV_UPCAST
    linkageType: ''
    returnType: ev_ssize_t
    signature: ev_ssize_t bufferevent_get_write_limit(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:876,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:877,1
    - Dst: evbuffer_set_max_read
      Src: /src/libevent/bufferevent_ratelim.c:882,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:883,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - bev
    - size
    argTypes:
    - struct bufferevent*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 871
    functionDepth: 2
    functionLinenumber: 871
    functionLinenumberEnd: 885
    functionName: bufferevent_set_max_single_read
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - evbuffer_set_max_read
    - BEV_LOCK
    - BEV_UNLOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: int
    signature: int bufferevent_set_max_single_read(struct bufferevent *bev, size_t
      size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:891,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:892,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:897,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - bev
    - size
    argTypes:
    - struct bufferevent*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 899
    functionName: bufferevent_set_max_single_write
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - BEV_UNLOCK
    - BEV_LOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: int
    signature: int bufferevent_set_max_single_write(struct bufferevent *bev, size_t
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:906,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:907,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 910
    functionName: bufferevent_get_max_single_read
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - BEV_UNLOCK
    - BEV_LOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: ev_ssize_t
    signature: ev_ssize_t bufferevent_get_max_single_read(struct bufferevent *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:917,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:918,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 921
    functionName: bufferevent_get_max_single_write
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - BEV_UNLOCK
    - BEV_LOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: ev_ssize_t
    signature: ev_ssize_t bufferevent_get_max_single_write(struct bufferevent *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:927,1
    - Dst: bufferevent_get_read_max_
      Src: /src/libevent/bufferevent_ratelim.c:928,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:928,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 923
    functionDepth: 5
    functionLinenumber: 923
    functionLinenumberEnd: 931
    functionName: bufferevent_get_max_to_read
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - BEV_UNLOCK
    - bufferevent_get_read_max_
    - BEV_LOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: ev_ssize_t
    signature: ev_ssize_t bufferevent_get_max_to_read(struct bufferevent *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:937,1
    - Dst: bufferevent_get_write_max_
      Src: /src/libevent/bufferevent_ratelim.c:938,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:938,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 933
    functionDepth: 5
    functionLinenumber: 933
    functionLinenumberEnd: 941
    functionName: bufferevent_get_max_to_write
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - BEV_UNLOCK
    - bufferevent_get_write_max_
    - BEV_LOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: ev_ssize_t
    signature: ev_ssize_t bufferevent_get_max_to_write(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:945,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:948,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:956,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 943
    functionDepth: 1
    functionLinenumber: 943
    functionLinenumberEnd: 959
    functionName: bufferevent_get_token_bucket_cfg
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - BEV_UNLOCK
    - BEV_LOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: struct ev_token_bucket_cfg
    signature: 'struct ev_token_bucket_cfg *

      bufferevent_get_token_bucket_cfg(const struct bufferevent *bev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:968,1
    - Dst: UNLOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - grp
    argTypes:
    - struct bufferevent_rate_limit_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 963
    functionDepth: 1
    functionLinenumber: 963
    functionLinenumberEnd: 972
    functionName: bufferevent_rate_limit_group_get_read_limit
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - LOCK_GROUP
    - UNLOCK_GROUP
    linkageType: ''
    returnType: ev_ssize_t
    signature: "ev_ssize_t bufferevent_rate_limit_group_get_read_limit(\n\tstruct
      bufferevent_rate_limit_group *grp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:981,1
    - Dst: UNLOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - grp
    argTypes:
    - struct bufferevent_rate_limit_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 985
    functionName: bufferevent_rate_limit_group_get_write_limit
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - LOCK_GROUP
    - UNLOCK_GROUP
    linkageType: ''
    returnType: ev_ssize_t
    signature: "ev_ssize_t bufferevent_rate_limit_group_get_write_limit(\n\tstruct
      bufferevent_rate_limit_group *grp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:993,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:994,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_ratelim.c:995,1
    - Dst: bufferevent_suspend_read_
      Src: /src/libevent/bufferevent_ratelim.c:1000,1
    - Dst: event_add
      Src: /src/libevent/bufferevent_ratelim.c:1001,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ratelim.c:1006,1
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_ratelim.c:1007,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:1010,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - bev
    - decr
    argTypes:
    - struct bufferevent*
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 987
    functionDepth: 4
    functionLinenumber: 987
    functionLinenumberEnd: 1012
    functionName: bufferevent_decrement_read_limit
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - event_del
    - EVUTIL_ASSERT
    - bufferevent_unsuspend_read_
    - event_add
    - BEV_UPCAST
    - bufferevent_suspend_read_
    - BEV_UNLOCK
    - BEV_LOCK
    linkageType: ''
    returnType: int
    signature: int bufferevent_decrement_read_limit(struct bufferevent *bev, ev_ssize_t
      decr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ratelim.c:1022,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ratelim.c:1023,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_ratelim.c:1024,1
    - Dst: bufferevent_suspend_write_
      Src: /src/libevent/bufferevent_ratelim.c:1029,1
    - Dst: event_add
      Src: /src/libevent/bufferevent_ratelim.c:1030,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ratelim.c:1035,1
    - Dst: bufferevent_unsuspend_write_
      Src: /src/libevent/bufferevent_ratelim.c:1036,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ratelim.c:1039,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - bev
    - decr
    argTypes:
    - struct bufferevent*
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1014
    functionDepth: 4
    functionLinenumber: 1014
    functionLinenumberEnd: 1041
    functionName: bufferevent_decrement_write_limit
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - event_del
    - bufferevent_suspend_write_
    - EVUTIL_ASSERT
    - event_add
    - BEV_UPCAST
    - bufferevent_unsuspend_write_
    - BEV_UNLOCK
    - BEV_LOCK
    linkageType: ''
    returnType: int
    signature: int bufferevent_decrement_write_limit(struct bufferevent *bev, ev_ssize_t
      decr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:1049,1
    - Dst: bev_group_suspend_reading_
      Src: /src/libevent/bufferevent_ratelim.c:1054,1
    - Dst: bev_group_unsuspend_reading_
      Src: /src/libevent/bufferevent_ratelim.c:1056,1
    - Dst: UNLOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:1059,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - grp
    - decr
    argTypes:
    - struct bufferevent_rate_limit_group*
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1043
    functionDepth: 2
    functionLinenumber: 1043
    functionLinenumberEnd: 1061
    functionName: bufferevent_rate_limit_group_decrement_read
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - LOCK_GROUP
    - bev_group_suspend_reading_
    - UNLOCK_GROUP
    - bev_group_unsuspend_reading_
    linkageType: ''
    returnType: int
    signature: "int bufferevent_rate_limit_group_decrement_read(\n\tstruct bufferevent_rate_limit_group
      *grp, ev_ssize_t decr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:1069,1
    - Dst: bev_group_suspend_writing_
      Src: /src/libevent/bufferevent_ratelim.c:1074,1
    - Dst: bev_group_unsuspend_writing_
      Src: /src/libevent/bufferevent_ratelim.c:1076,1
    - Dst: UNLOCK_GROUP
      Src: /src/libevent/bufferevent_ratelim.c:1079,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - grp
    - decr
    argTypes:
    - struct bufferevent_rate_limit_group*
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1063
    functionDepth: 2
    functionLinenumber: 1063
    functionLinenumberEnd: 1081
    functionName: bufferevent_rate_limit_group_decrement_write
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - LOCK_GROUP
    - bev_group_unsuspend_writing_
    - UNLOCK_GROUP
    - bev_group_suspend_writing_
    linkageType: ''
    returnType: int
    signature: "int bufferevent_rate_limit_group_decrement_write(\n\tstruct bufferevent_rate_limit_group
      *grp, ev_ssize_t decr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_ratelim.c:1087,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - grp
    - total_read_out
    - total_written_out
    argTypes:
    - struct bufferevent_rate_limit_group*
    - ev_uint64_t*
    - ev_uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1083
    functionDepth: 1
    functionLinenumber: 1083
    functionLinenumberEnd: 1092
    functionName: bufferevent_rate_limit_group_get_totals
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: void
    signature: "void bufferevent_rate_limit_group_get_totals(struct bufferevent_rate_limit_group
      *grp,\n    ev_uint64_t *total_read_out, ev_uint64_t *total_written_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - grp
    argTypes:
    - struct bufferevent_rate_limit_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1098
    functionName: bufferevent_rate_limit_group_reset_totals
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bufferevent_rate_limit_group_reset_totals(struct bufferevent_rate_limit_group
      *grp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_set_max_read
      Src: /src/libevent/bufferevent_ratelim.c:1107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent_private*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1100
    functionDepth: 2
    functionLinenumber: 1100
    functionLinenumberEnd: 1111
    functionName: bufferevent_ratelim_init_
    functionSourceFile: /src/libevent/bufferevent_ratelim.c
    functionUses: 0
    functionsReached:
    - evbuffer_set_max_read
    linkageType: ''
    returnType: int
    signature: int bufferevent_ratelim_init_(struct bufferevent_private *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - value
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: rol
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rol(value, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: blk0
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: blk0(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: blk0
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: blk0(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: blk
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: blk(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: R0
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R0(v, w, x, y, z, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: R1
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R1(v, w, x, y, z, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: R2
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R2(v, w, x, y, z, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: R3
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R3(v, w, x, y, z, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: R4
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R4(v, w, x, y, z, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libevent/sha1.c:99,1
    - Dst: R0
      Src: /src/libevent/sha1.c:115,1
    - Dst: R0
      Src: /src/libevent/sha1.c:116,1
    - Dst: R0
      Src: /src/libevent/sha1.c:117,1
    - Dst: R0
      Src: /src/libevent/sha1.c:118,1
    - Dst: R0
      Src: /src/libevent/sha1.c:119,1
    - Dst: R0
      Src: /src/libevent/sha1.c:120,1
    - Dst: R0
      Src: /src/libevent/sha1.c:121,1
    - Dst: R0
      Src: /src/libevent/sha1.c:122,1
    - Dst: R0
      Src: /src/libevent/sha1.c:123,1
    - Dst: R0
      Src: /src/libevent/sha1.c:124,1
    - Dst: R0
      Src: /src/libevent/sha1.c:125,1
    - Dst: R0
      Src: /src/libevent/sha1.c:126,1
    - Dst: R0
      Src: /src/libevent/sha1.c:127,1
    - Dst: R0
      Src: /src/libevent/sha1.c:128,1
    - Dst: R0
      Src: /src/libevent/sha1.c:129,1
    - Dst: R0
      Src: /src/libevent/sha1.c:130,1
    - Dst: R1
      Src: /src/libevent/sha1.c:131,1
    - Dst: R1
      Src: /src/libevent/sha1.c:132,1
    - Dst: R1
      Src: /src/libevent/sha1.c:133,1
    - Dst: R1
      Src: /src/libevent/sha1.c:134,1
    - Dst: R2
      Src: /src/libevent/sha1.c:135,1
    - Dst: R2
      Src: /src/libevent/sha1.c:136,1
    - Dst: R2
      Src: /src/libevent/sha1.c:137,1
    - Dst: R2
      Src: /src/libevent/sha1.c:138,1
    - Dst: R2
      Src: /src/libevent/sha1.c:139,1
    - Dst: R2
      Src: /src/libevent/sha1.c:140,1
    - Dst: R2
      Src: /src/libevent/sha1.c:141,1
    - Dst: R2
      Src: /src/libevent/sha1.c:142,1
    - Dst: R2
      Src: /src/libevent/sha1.c:143,1
    - Dst: R2
      Src: /src/libevent/sha1.c:144,1
    - Dst: R2
      Src: /src/libevent/sha1.c:145,1
    - Dst: R2
      Src: /src/libevent/sha1.c:146,1
    - Dst: R2
      Src: /src/libevent/sha1.c:147,1
    - Dst: R2
      Src: /src/libevent/sha1.c:148,1
    - Dst: R2
      Src: /src/libevent/sha1.c:149,1
    - Dst: R2
      Src: /src/libevent/sha1.c:150,1
    - Dst: R2
      Src: /src/libevent/sha1.c:151,1
    - Dst: R2
      Src: /src/libevent/sha1.c:152,1
    - Dst: R2
      Src: /src/libevent/sha1.c:153,1
    - Dst: R2
      Src: /src/libevent/sha1.c:154,1
    - Dst: R3
      Src: /src/libevent/sha1.c:155,1
    - Dst: R3
      Src: /src/libevent/sha1.c:156,1
    - Dst: R3
      Src: /src/libevent/sha1.c:157,1
    - Dst: R3
      Src: /src/libevent/sha1.c:158,1
    - Dst: R3
      Src: /src/libevent/sha1.c:159,1
    - Dst: R3
      Src: /src/libevent/sha1.c:160,1
    - Dst: R3
      Src: /src/libevent/sha1.c:161,1
    - Dst: R3
      Src: /src/libevent/sha1.c:162,1
    - Dst: R3
      Src: /src/libevent/sha1.c:163,1
    - Dst: R3
      Src: /src/libevent/sha1.c:164,1
    - Dst: R3
      Src: /src/libevent/sha1.c:165,1
    - Dst: R3
      Src: /src/libevent/sha1.c:166,1
    - Dst: R3
      Src: /src/libevent/sha1.c:167,1
    - Dst: R3
      Src: /src/libevent/sha1.c:168,1
    - Dst: R3
      Src: /src/libevent/sha1.c:169,1
    - Dst: R3
      Src: /src/libevent/sha1.c:170,1
    - Dst: R3
      Src: /src/libevent/sha1.c:171,1
    - Dst: R3
      Src: /src/libevent/sha1.c:172,1
    - Dst: R3
      Src: /src/libevent/sha1.c:173,1
    - Dst: R3
      Src: /src/libevent/sha1.c:174,1
    - Dst: R4
      Src: /src/libevent/sha1.c:175,1
    - Dst: R4
      Src: /src/libevent/sha1.c:176,1
    - Dst: R4
      Src: /src/libevent/sha1.c:177,1
    - Dst: R4
      Src: /src/libevent/sha1.c:178,1
    - Dst: R4
      Src: /src/libevent/sha1.c:179,1
    - Dst: R4
      Src: /src/libevent/sha1.c:180,1
    - Dst: R4
      Src: /src/libevent/sha1.c:181,1
    - Dst: R4
      Src: /src/libevent/sha1.c:182,1
    - Dst: R4
      Src: /src/libevent/sha1.c:183,1
    - Dst: R4
      Src: /src/libevent/sha1.c:184,1
    - Dst: R4
      Src: /src/libevent/sha1.c:185,1
    - Dst: R4
      Src: /src/libevent/sha1.c:186,1
    - Dst: R4
      Src: /src/libevent/sha1.c:187,1
    - Dst: R4
      Src: /src/libevent/sha1.c:188,1
    - Dst: R4
      Src: /src/libevent/sha1.c:189,1
    - Dst: R4
      Src: /src/libevent/sha1.c:190,1
    - Dst: R4
      Src: /src/libevent/sha1.c:191,1
    - Dst: R4
      Src: /src/libevent/sha1.c:192,1
    - Dst: R4
      Src: /src/libevent/sha1.c:193,1
    - Dst: R4
      Src: /src/libevent/sha1.c:194,1
    - Dst: memset
      Src: /src/libevent/sha1.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 93
    argCount: 2
    argNames:
    - state
    - buffer
    argTypes:
    - uint32_t[]
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 204
    functionName: SHA1Transform
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 0
    functionsReached:
    - R0
    - R4
    - R1
    - R3
    - R2
    - memset
    - memcpy
    linkageType: ''
    returnType: void
    signature: void SHA1Transform(uint32_t state[5], const unsigned char buffer[64])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - context
    argTypes:
    - SHA1_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 216
    functionName: SHA1Init
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA1Init(SHA1_CTX *context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libevent/sha1.c:231,1
    - Dst: SHA1Transform
      Src: /src/libevent/sha1.c:232,1
    - Dst: SHA1Transform
      Src: /src/libevent/sha1.c:234,1
    - Dst: memcpy
      Src: /src/libevent/sha1.c:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - context
    - data
    - len
    argTypes:
    - SHA1_CTX*
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 240
    functionName: SHA1Update
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 0
    functionsReached:
    - SHA1Transform
    - memcpy
    linkageType: ''
    returnType: void
    signature: void SHA1Update(SHA1_CTX *context, const unsigned char *data, uint32_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1Update
      Src: /src/libevent/sha1.c:275,1
    - Dst: SHA1Update
      Src: /src/libevent/sha1.c:278,1
    - Dst: SHA1Update
      Src: /src/libevent/sha1.c:280,1
    - Dst: memset
      Src: /src/libevent/sha1.c:287,1
    - Dst: memset
      Src: /src/libevent/sha1.c:288,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - digest
    - context
    argTypes:
    - unsigned char[]
    - SHA1_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 244
    functionDepth: 3
    functionLinenumber: 244
    functionLinenumberEnd: 289
    functionName: SHA1Final
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 0
    functionsReached:
    - SHA1Update
    - memset
    linkageType: ''
    returnType: void
    signature: void SHA1Final(unsigned char digest[20], SHA1_CTX *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1Init
      Src: /src/libevent/sha1.c:295,1
    - Dst: SHA1Update
      Src: /src/libevent/sha1.c:297,1
    - Dst: SHA1Final
      Src: /src/libevent/sha1.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - hash_out
    - str
    - len
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 291
    functionDepth: 4
    functionLinenumber: 291
    functionLinenumberEnd: 299
    functionName: builtin_SHA1
    functionSourceFile: /src/libevent/sha1.c
    functionUses: 1
    functionsReached:
    - SHA1Update
    - SHA1Init
    - SHA1Final
    linkageType: ''
    returnType: void
    signature: void builtin_SHA1(char *hash_out, const char *str, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: evtag_init
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evtag_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - number
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 138
    functionName: ENCODE_INT_INTERNAL
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENCODE_INT_INTERNAL(data, number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENCODE_INT_INTERNAL
      Src: /src/libevent/event_tagging.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - number
    argTypes:
    - ev_uint8_t*
    - ev_uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 154
    functionName: encode_int64_internal
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - ENCODE_INT_INTERNAL
    linkageType: ''
    returnType: int
    signature: int encode_int64_internal(ev_uint8_t *data, ev_uint64_t number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_int_internal
      Src: /src/libevent/event_tagging.c:160,1
    - Dst: evbuffer_add
      Src: /src/libevent/event_tagging.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - evbuf
    - number
    argTypes:
    - struct evbuffer*
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 156
    functionDepth: 7
    functionLinenumber: 156
    functionLinenumberEnd: 162
    functionName: evtag_encode_int
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    - encode_int_internal
    linkageType: ''
    returnType: void
    signature: void evtag_encode_int(struct evbuffer *evbuf, ev_uint32_t number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_int64_internal
      Src: /src/libevent/event_tagging.c:168,1
    - Dst: evbuffer_add
      Src: /src/libevent/event_tagging.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - evbuf
    - number
    argTypes:
    - struct evbuffer*
    - ev_uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 164
    functionDepth: 7
    functionLinenumber: 164
    functionLinenumberEnd: 170
    functionName: evtag_encode_int64
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - encode_int64_internal
    - evbuffer_add
    linkageType: ''
    returnType: void
    signature: void evtag_encode_int64(struct evbuffer *evbuf, ev_uint64_t number)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/event_tagging.c:183,1
    - Dst: evbuffer_add
      Src: /src/libevent/event_tagging.c:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - evbuf
    - tag
    argTypes:
    - struct evbuffer*
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 177
    functionDepth: 7
    functionLinenumber: 177
    functionLinenumberEnd: 198
    functionName: evtag_encode_tag
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - memset
    - evbuffer_add
    linkageType: ''
    returnType: int
    signature: int evtag_encode_tag(struct evbuffer *evbuf, ev_uint32_t tag)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/event_tagging.c:204,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/event_tagging.c:213,1
    - Dst: evbuffer_drain
      Src: /src/libevent/event_tagging.c:240,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - ptag
    - evbuf
    - dodrain
    argTypes:
    - ev_uint32_t*
    - struct evbuffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 200
    functionDepth: 4
    functionLinenumber: 200
    functionLinenumberEnd: 246
    functionName: decode_tag_internal
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evbuffer_pullup
    - evbuffer_get_length
    - evbuffer_drain
    linkageType: ''
    returnType: int
    signature: int decode_tag_internal(ev_uint32_t *ptag, struct evbuffer *evbuf,
      int dodrain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decode_tag_internal
      Src: /src/libevent/event_tagging.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptag
    - evbuf
    argTypes:
    - ev_uint32_t*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 5
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: evtag_decode_tag
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - decode_tag_internal
    linkageType: ''
    returnType: int
    signature: int evtag_decode_tag(ev_uint32_t *ptag, struct evbuffer *evbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evtag_encode_tag
      Src: /src/libevent/event_tagging.c:264,1
    - Dst: evtag_encode_int
      Src: /src/libevent/event_tagging.c:265,1
    - Dst: evbuffer_add
      Src: /src/libevent/event_tagging.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - evbuf
    - tag
    - data
    - len
    argTypes:
    - struct evbuffer*
    - ev_uint32_t
    - void*
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 260
    functionDepth: 8
    functionLinenumber: 260
    functionLinenumberEnd: 267
    functionName: evtag_marshal
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evtag_encode_int
    - evbuffer_add
    - evtag_encode_tag
    linkageType: ''
    returnType: void
    signature: "void evtag_marshal(struct evbuffer *evbuf, ev_uint32_t tag,\n    const
      void *data, ev_uint32_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evtag_encode_tag
      Src: /src/libevent/event_tagging.c:273,1
    - Dst: evtag_encode_int
      Src: /src/libevent/event_tagging.c:275,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/event_tagging.c:275,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/event_tagging.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - evbuf
    - tag
    - data
    argTypes:
    - struct evbuffer*
    - ev_uint32_t
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 269
    functionDepth: 8
    functionLinenumber: 269
    functionLinenumberEnd: 277
    functionName: evtag_marshal_buffer
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_buffer
    - evtag_encode_int
    - evbuffer_get_length
    - evtag_encode_tag
    linkageType: ''
    returnType: void
    signature: "void evtag_marshal_buffer(struct evbuffer *evbuf, ev_uint32_t tag,\n
      \   struct evbuffer *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_int_internal
      Src: /src/libevent/event_tagging.c:284,1
    - Dst: evtag_encode_tag
      Src: /src/libevent/event_tagging.c:286,1
    - Dst: evtag_encode_int
      Src: /src/libevent/event_tagging.c:287,1
    - Dst: evbuffer_add
      Src: /src/libevent/event_tagging.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - evbuf
    - tag
    - integer
    argTypes:
    - struct evbuffer*
    - ev_uint32_t
    - ev_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 280
    functionDepth: 8
    functionLinenumber: 280
    functionLinenumberEnd: 289
    functionName: evtag_marshal_int
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evtag_encode_int
    - evbuffer_add
    - evtag_encode_tag
    - encode_int_internal
    linkageType: ''
    returnType: void
    signature: void evtag_marshal_int(struct evbuffer *evbuf, ev_uint32_t tag, ev_uint32_t
      integer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_int64_internal
      Src: /src/libevent/event_tagging.c:296,1
    - Dst: evtag_encode_tag
      Src: /src/libevent/event_tagging.c:298,1
    - Dst: evtag_encode_int
      Src: /src/libevent/event_tagging.c:299,1
    - Dst: evbuffer_add
      Src: /src/libevent/event_tagging.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - evbuf
    - tag
    - integer
    argTypes:
    - struct evbuffer*
    - ev_uint32_t
    - ev_uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 291
    functionDepth: 8
    functionLinenumber: 291
    functionLinenumberEnd: 301
    functionName: evtag_marshal_int64
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - encode_int64_internal
    - evtag_encode_int
    - evbuffer_add
    - evtag_encode_tag
    linkageType: ''
    returnType: void
    signature: "void evtag_marshal_int64(struct evbuffer *evbuf, ev_uint32_t tag,\n
      \   ev_uint64_t integer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evtag_marshal
      Src: /src/libevent/event_tagging.c:307,1
    - Dst: strlen
      Src: /src/libevent/event_tagging.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - tag
    - string
    argTypes:
    - struct evbuffer*
    - ev_uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 303
    functionDepth: 9
    functionLinenumber: 303
    functionLinenumberEnd: 308
    functionName: evtag_marshal_string
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - strlen
    - evtag_marshal
    linkageType: ''
    returnType: void
    signature: void evtag_marshal_string(struct evbuffer *buf, ev_uint32_t tag, const
      char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_int_internal
      Src: /src/libevent/event_tagging.c:314,1
    - Dst: encode_int_internal
      Src: /src/libevent/event_tagging.c:315,1
    - Dst: evtag_marshal
      Src: /src/libevent/event_tagging.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - evbuf
    - tag
    - tv
    argTypes:
    - struct evbuffer*
    - ev_uint32_t
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 310
    functionDepth: 9
    functionLinenumber: 310
    functionLinenumberEnd: 317
    functionName: evtag_marshal_timeval
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evtag_marshal
    - encode_int_internal
    linkageType: ''
    returnType: void
    signature: void evtag_marshal_timeval(struct evbuffer *evbuf, ev_uint32_t tag,
      struct timeval *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - number
    - ','
    - maxnibbles
    - ','
    - pnumber
    - ','
    - evbuf
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 328
    functionName: DECODE_INT_INTERNAL
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECODE_INT_INTERNAL(number, maxnibbles, pnumber, evbuf, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DECODE_INT_INTERNAL
      Src: /src/libevent/event_tagging.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pnumber
    - evbuf
    - offset
    argTypes:
    - ev_uint64_t*
    - struct evbuffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 377
    functionName: decode_int64_internal
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - DECODE_INT_INTERNAL
    linkageType: ''
    returnType: int
    signature: int decode_int64_internal(ev_uint64_t *pnumber, struct evbuffer *evbuf,
      int offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: decode_int_internal
      Src: /src/libevent/event_tagging.c:382,1
    - Dst: evbuffer_drain
      Src: /src/libevent/event_tagging.c:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pnumber
    - evbuf
    argTypes:
    - ev_uint32_t*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 379
    functionDepth: 4
    functionLinenumber: 379
    functionLinenumberEnd: 387
    functionName: evtag_decode_int
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - decode_int_internal
    - evbuffer_drain
    linkageType: ''
    returnType: int
    signature: int evtag_decode_int(ev_uint32_t *pnumber, struct evbuffer *evbuf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: decode_int64_internal
      Src: /src/libevent/event_tagging.c:392,1
    - Dst: evbuffer_drain
      Src: /src/libevent/event_tagging.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pnumber
    - evbuf
    argTypes:
    - ev_uint64_t*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 389
    functionDepth: 4
    functionLinenumber: 389
    functionLinenumberEnd: 397
    functionName: evtag_decode_int64
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - decode_int64_internal
    - evbuffer_drain
    linkageType: ''
    returnType: int
    signature: int evtag_decode_int64(ev_uint64_t *pnumber, struct evbuffer *evbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decode_tag_internal
      Src: /src/libevent/event_tagging.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - evbuf
    - ptag
    argTypes:
    - struct evbuffer*
    - ev_uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 399
    functionDepth: 5
    functionLinenumber: 399
    functionLinenumberEnd: 403
    functionName: evtag_peek
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - decode_tag_internal
    linkageType: ''
    returnType: int
    signature: int evtag_peek(struct evbuffer *evbuf, ev_uint32_t *ptag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: decode_tag_internal
      Src: /src/libevent/event_tagging.c:410,1
    - Dst: decode_int_internal
      Src: /src/libevent/event_tagging.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - evbuf
    - plength
    argTypes:
    - struct evbuffer*
    - ev_uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 405
    functionDepth: 5
    functionLinenumber: 405
    functionLinenumberEnd: 421
    functionName: evtag_peek_length
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - decode_tag_internal
    - decode_int_internal
    linkageType: ''
    returnType: int
    signature: int evtag_peek_length(struct evbuffer *evbuf, ev_uint32_t *plength)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: decode_tag_internal
      Src: /src/libevent/event_tagging.c:428,1
    - Dst: decode_int_internal
      Src: /src/libevent/event_tagging.c:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - evbuf
    - plength
    argTypes:
    - struct evbuffer*
    - ev_uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 423
    functionDepth: 5
    functionLinenumber: 423
    functionLinenumberEnd: 437
    functionName: evtag_payload_length
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - decode_tag_internal
    - decode_int_internal
    linkageType: ''
    returnType: int
    signature: int evtag_payload_length(struct evbuffer *evbuf, ev_uint32_t *plength)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: decode_tag_internal
      Src: /src/libevent/event_tagging.c:446,1
    - Dst: evtag_decode_int
      Src: /src/libevent/event_tagging.c:448,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/event_tagging.c:451,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - evbuf
    - ptag
    argTypes:
    - struct evbuffer*
    - ev_uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 441
    functionDepth: 5
    functionLinenumber: 441
    functionLinenumberEnd: 455
    functionName: evtag_unmarshal_header
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - decode_tag_internal
    - evbuffer_get_length
    - evtag_decode_int
    linkageType: ''
    returnType: int
    signature: int evtag_unmarshal_header(struct evbuffer *evbuf, ev_uint32_t *ptag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evtag_unmarshal_header
      Src: /src/libevent/event_tagging.c:461,1
    - Dst: evbuffer_drain
      Src: /src/libevent/event_tagging.c:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - evbuf
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 457
    functionDepth: 6
    functionLinenumber: 457
    functionLinenumberEnd: 466
    functionName: evtag_consume
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evtag_unmarshal_header
    - evbuffer_drain
    linkageType: ''
    returnType: int
    signature: int evtag_consume(struct evbuffer *evbuf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evtag_unmarshal_header
      Src: /src/libevent/event_tagging.c:475,1
    - Dst: evbuffer_add
      Src: /src/libevent/event_tagging.c:478,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/event_tagging.c:478,1
    - Dst: evbuffer_drain
      Src: /src/libevent/event_tagging.c:481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - src
    - ptag
    - dst
    argTypes:
    - struct evbuffer*
    - ev_uint32_t*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 470
    functionDepth: 7
    functionLinenumber: 470
    functionLinenumberEnd: 484
    functionName: evtag_unmarshal
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evbuffer_pullup
    - evtag_unmarshal_header
    - evbuffer_add
    - evbuffer_drain
    linkageType: ''
    returnType: int
    signature: int evtag_unmarshal(struct evbuffer *src, ev_uint32_t *ptag, struct
      evbuffer *dst)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: decode_tag_internal
      Src: /src/libevent/event_tagging.c:496,1
    - Dst: evtag_decode_int
      Src: /src/libevent/event_tagging.c:500,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/event_tagging.c:503,1
    - Dst: decode_int_internal
      Src: /src/libevent/event_tagging.c:506,1
    - Dst: evbuffer_drain
      Src: /src/libevent/event_tagging.c:507,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - evbuf
    - need_tag
    - pinteger
    argTypes:
    - struct evbuffer*
    - ev_uint32_t
    - ev_uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 488
    functionDepth: 5
    functionLinenumber: 488
    functionLinenumberEnd: 512
    functionName: evtag_unmarshal_int
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - decode_tag_internal
    - decode_int_internal
    - evbuffer_get_length
    - evbuffer_drain
    - evtag_decode_int
    linkageType: ''
    returnType: int
    signature: "int evtag_unmarshal_int(struct evbuffer *evbuf, ev_uint32_t need_tag,\n
      \   ev_uint32_t *pinteger)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: decode_tag_internal
      Src: /src/libevent/event_tagging.c:522,1
    - Dst: evtag_decode_int
      Src: /src/libevent/event_tagging.c:526,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/event_tagging.c:529,1
    - Dst: decode_int64_internal
      Src: /src/libevent/event_tagging.c:532,1
    - Dst: evbuffer_drain
      Src: /src/libevent/event_tagging.c:533,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - evbuf
    - need_tag
    - pinteger
    argTypes:
    - struct evbuffer*
    - ev_uint32_t
    - ev_uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 514
    functionDepth: 5
    functionLinenumber: 514
    functionLinenumberEnd: 538
    functionName: evtag_unmarshal_int64
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - decode_tag_internal
    - decode_int64_internal
    - evbuffer_get_length
    - evbuffer_drain
    - evtag_decode_int
    linkageType: ''
    returnType: int
    signature: "int evtag_unmarshal_int64(struct evbuffer *evbuf, ev_uint32_t need_tag,\n
      \   ev_uint64_t *pinteger)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evtag_unmarshal_header
      Src: /src/libevent/event_tagging.c:550,1
    - Dst: evbuffer_remove
      Src: /src/libevent/event_tagging.c:557,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - src
    - need_tag
    - data
    - len
    argTypes:
    - struct evbuffer*
    - ev_uint32_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 542
    functionDepth: 6
    functionLinenumber: 542
    functionLinenumberEnd: 559
    functionName: evtag_unmarshal_fixed
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evtag_unmarshal_header
    - evbuffer_remove
    linkageType: ''
    returnType: int
    signature: "int evtag_unmarshal_fixed(struct evbuffer *src, ev_uint32_t need_tag,
      void *data,\n    size_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evtag_unmarshal_header
      Src: /src/libevent/event_tagging.c:568,1
    - Dst: mm_malloc
      Src: /src/libevent/event_tagging.c:572,1
    - Dst: event_warn
      Src: /src/libevent/event_tagging.c:574,1
    - Dst: evbuffer_remove
      Src: /src/libevent/event_tagging.c:577,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - evbuf
    - need_tag
    - pstring
    argTypes:
    - struct evbuffer*
    - ev_uint32_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 561
    functionDepth: 6
    functionLinenumber: 561
    functionLinenumberEnd: 581
    functionName: evtag_unmarshal_string
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evtag_unmarshal_header
    - event_warn
    - mm_malloc
    - evbuffer_remove
    linkageType: ''
    returnType: int
    signature: "int evtag_unmarshal_string(struct evbuffer *evbuf, ev_uint32_t need_tag,\n
      \   char **pstring)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evtag_unmarshal_header
      Src: /src/libevent/event_tagging.c:592,1
    - Dst: decode_int_internal
      Src: /src/libevent/event_tagging.c:596,1
    - Dst: decode_int_internal
      Src: /src/libevent/event_tagging.c:599,1
    - Dst: evbuffer_drain
      Src: /src/libevent/event_tagging.c:607,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - evbuf
    - need_tag
    - ptv
    argTypes:
    - struct evbuffer*
    - ev_uint32_t
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 583
    functionDepth: 6
    functionLinenumber: 583
    functionLinenumberEnd: 609
    functionName: evtag_unmarshal_timeval
    functionSourceFile: /src/libevent/event_tagging.c
    functionUses: 0
    functionsReached:
    - evtag_unmarshal_header
    - decode_int_internal
    - evbuffer_drain
    linkageType: ''
    returnType: int
    signature: "int evtag_unmarshal_timeval(struct evbuffer *evbuf, ev_uint32_t need_tag,\n
      \   struct timeval *ptv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: EVUTIL_HAS_ATTRIBUTE
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_HAS_ATTRIBUTE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - condition
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: EVUTIL_NIL_CONDITION_
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_NIL_CONDITION_(condition)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: EVUTIL_ERR_IS_EAGAIN
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ERR_IS_EAGAIN(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: EVUTIL_ERR_IS_EAGAIN
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ERR_IS_EAGAIN(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: EVUTIL_ERR_RW_RETRIABLE
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ERR_RW_RETRIABLE(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: EVUTIL_ERR_CONNECT_RETRIABLE
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ERR_CONNECT_RETRIABLE(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: EVUTIL_ERR_ACCEPT_RETRIABLE
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ERR_ACCEPT_RETRIABLE(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: EVUTIL_ERR_CONNECT_REFUSED
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ERR_CONNECT_REFUSED(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: EVUTIL_ERR_IS_EAGAIN
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ERR_IS_EAGAIN(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: EVUTIL_ERR_RW_RETRIABLE
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ERR_RW_RETRIABLE(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: EVUTIL_ERR_CONNECT_RETRIABLE
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ERR_CONNECT_RETRIABLE(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: EVUTIL_ERR_ACCEPT_RETRIABLE
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ERR_ACCEPT_RETRIABLE(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: EVUTIL_ERR_CONNECT_REFUSED
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ERR_CONNECT_REFUSED(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dlist
    - ','
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 185
    functionName: EVUTIL_ASSERT_LIST_OK
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ASSERT_LIST_OK(dlist, type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tailq
    - ','
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 221
    functionName: EVUTIL_ASSERT_TAILQ_OK
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ASSERT_TAILQ_OK(tailq, type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 290
    functionName: EVUTIL_UPCAST
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_UPCAST(ptr, type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: EVUTIL_UNLIKELY
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_UNLIKELY(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 358
    functionName: EVUTIL_UNLIKELY
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_UNLIKELY(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 369
    functionName: EVUTIL_ASSERT
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 174
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ASSERT(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 370
    functionName: EVUTIL_FAILURE_CHECK
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_FAILURE_CHECK(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 378
    functionName: EVUTIL_ASSERT
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 174
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_ASSERT(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 386
    functionName: EVUTIL_FAILURE_CHECK
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_FAILURE_CHECK(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 485
    functionName: EV_I64_ARG
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EV_I64_ARG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 486
    functionName: EV_U64_ARG
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EV_U64_ARG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 490
    functionName: EV_I64_ARG
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EV_I64_ARG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 491
    functionName: EV_U64_ARG
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EV_U64_ARG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 497
    functionName: EV_SOCK_ARG
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EV_SOCK_ARG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 500
    functionName: EV_SOCK_ARG
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EV_SOCK_ARG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 507
    functionName: EV_SIZE_ARG
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EV_SIZE_ARG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 508
    functionName: EV_SSIZE_ARG
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EV_SSIZE_ARG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 516
    functionName: EV_SIZE_ARG
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EV_SIZE_ARG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 517
    functionName: EV_SSIZE_ARG
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EV_SSIZE_ARG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 521
    functionName: EV_SIZE_ARG
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EV_SIZE_ARG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 522
    functionName: EV_SSIZE_ARG
    functionSourceFile: /src/libevent/util-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EV_SSIZE_ARG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_ssl.c:108,1
    - Dst: BEV_IS_SSL
      Src: /src/libevent/bufferevent_ssl.c:108,1
    - Dst: evutil_offsetof
      Src: /src/libevent/bufferevent_ssl.c:110,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_ssl.c:111,1
    - Dst: BEV_IS_SSL
      Src: /src/libevent/bufferevent_ssl.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: bufferevent_ssl_upcast
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 6
    functionsReached:
    - EVUTIL_ASSERT
    - BEV_IS_SSL
    - evutil_offsetof
    linkageType: ''
    returnType: struct bufferevent_ssl
    signature: 'struct bufferevent_ssl *

      bufferevent_ssl_upcast(struct bufferevent *bev)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bev_ssl
    - err
    argTypes:
    - struct bufferevent_ssl*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 126
    functionName: bufferevent_ssl_put_error
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bufferevent_ssl_put_error(struct bufferevent_ssl *bev_ssl, unsigned
      long err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_ssl.c:135,1
    - Dst: bufferevent_add_event_
      Src: /src/libevent/bufferevent_ssl.c:141,1
    - Dst: bufferevent_add_event_
      Src: /src/libevent/bufferevent_ssl.c:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 147
    functionName: start_reading
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_unsuspend_read_
    - bufferevent_add_event_
    linkageType: ''
    returnType: int
    signature: int start_reading(struct bufferevent_ssl *bev_ssl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_ssl.c:158,1
    - Dst: bufferevent_add_event_
      Src: /src/libevent/bufferevent_ssl.c:163,1
    - Dst: bufferevent_add_event_
      Src: /src/libevent/bufferevent_ssl.c:165,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 169
    functionName: start_writing
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_unsuspend_read_
    - bufferevent_add_event_
    linkageType: ''
    returnType: int
    signature: int start_writing(struct bufferevent_ssl *bev_ssl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_suspend_read_
      Src: /src/libevent/bufferevent_ssl.c:177,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ssl.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 171
    functionDepth: 4
    functionLinenumber: 171
    functionLinenumberEnd: 183
    functionName: bufferevent_ssl_stop_reading
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 2
    functionsReached:
    - event_del
    - bufferevent_suspend_read_
    linkageType: ''
    returnType: void
    signature: void bufferevent_ssl_stop_reading(struct bufferevent_ssl *bev_ssl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_ssl.c:191,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ssl.c:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 185
    functionDepth: 4
    functionLinenumber: 185
    functionLinenumberEnd: 197
    functionName: bufferevent_ssl_stop_writing
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 2
    functionsReached:
    - bufferevent_unsuspend_read_
    - event_del
    linkageType: ''
    returnType: void
    signature: void bufferevent_ssl_stop_writing(struct bufferevent_ssl *bev_ssl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_stop_reading
      Src: /src/libevent/bufferevent_ssl.c:203,1
    - Dst: start_writing
      Src: /src/libevent/bufferevent_ssl.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 199
    functionDepth: 5
    functionLinenumber: 199
    functionLinenumberEnd: 206
    functionName: set_rbow
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_stop_reading
    - start_writing
    linkageType: ''
    returnType: int
    signature: int set_rbow(struct bufferevent_ssl *bev_ssl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_stop_writing
      Src: /src/libevent/bufferevent_ssl.c:212,1
    - Dst: start_reading
      Src: /src/libevent/bufferevent_ssl.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 208
    functionDepth: 5
    functionLinenumber: 208
    functionLinenumberEnd: 215
    functionName: set_wbor
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - start_reading
    - bufferevent_ssl_stop_writing
    linkageType: ''
    returnType: int
    signature: int set_wbor(struct bufferevent_ssl *bev_ssl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_stop_writing
      Src: /src/libevent/bufferevent_ssl.c:224,1
    - Dst: start_reading
      Src: /src/libevent/bufferevent_ssl.c:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 217
    functionDepth: 5
    functionLinenumber: 217
    functionLinenumberEnd: 228
    functionName: clear_rbow
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - start_reading
    - bufferevent_ssl_stop_writing
    linkageType: ''
    returnType: int
    signature: int clear_rbow(struct bufferevent_ssl *bev_ssl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_stop_reading
      Src: /src/libevent/bufferevent_ssl.c:238,1
    - Dst: start_writing
      Src: /src/libevent/bufferevent_ssl.c:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 231
    functionDepth: 5
    functionLinenumber: 231
    functionLinenumberEnd: 242
    functionName: clear_wbor
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_stop_reading
    - start_writing
    linkageType: ''
    returnType: int
    signature: int clear_wbor(struct bufferevent_ssl *bev_ssl)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_read_max_
      Src: /src/libevent/bufferevent_ssl.c:263,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/bufferevent_ssl.c:267,1
    - Dst: struct bufferevent_ssl*::ssl_ops::clear_error
      Src: /src/libevent/bufferevent_ssl.c:274,1
    - Dst: struct bufferevent_ssl*::ssl_ops::read
      Src: /src/libevent/bufferevent_ssl.c:275,1
    - Dst: clear_rbow
      Src: /src/libevent/bufferevent_ssl.c:280,1
    - Dst: struct bufferevent_ssl*::ssl_ops::decrement_buckets
      Src: /src/libevent/bufferevent_ssl.c:282,1
    - Dst: struct bufferevent_ssl*::ssl_ops::get_error
      Src: /src/libevent/bufferevent_ssl.c:292,1
    - Dst: struct bufferevent_ssl*::ssl_ops::print_err
      Src: /src/libevent/bufferevent_ssl.c:293,1
    - Dst: struct bufferevent_ssl*::ssl_ops::err_is_want_read
      Src: /src/libevent/bufferevent_ssl.c:304,1
    - Dst: clear_rbow
      Src: /src/libevent/bufferevent_ssl.c:307,1
    - Dst: struct bufferevent_ssl*::ssl_ops::err_is_want_write
      Src: /src/libevent/bufferevent_ssl.c:309,1
    - Dst: set_rbow
      Src: /src/libevent/bufferevent_ssl.c:313,1
    - Dst: struct bufferevent_ssl*::ssl_ops::conn_closed
      Src: /src/libevent/bufferevent_ssl.c:316,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/bufferevent_ssl.c:329,1
    - Dst: BEV_RESET_GENERIC_READ_TIMEOUT
      Src: /src/libevent/bufferevent_ssl.c:331,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 2
    argNames:
    - bev_ssl
    - n_to_read
    argTypes:
    - struct bufferevent_ssl*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 250
    functionDepth: 6
    functionLinenumber: 250
    functionLinenumberEnd: 335
    functionName: do_read
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - struct bufferevent_ssl*::ssl_ops::read
    - struct bufferevent_ssl*::ssl_ops::err_is_want_write
    - evbuffer_reserve_space
    - evbuffer_commit_space
    - struct bufferevent_ssl*::ssl_ops::conn_closed
    - struct bufferevent_ssl*::ssl_ops::get_error
    - struct bufferevent_ssl*::ssl_ops::err_is_want_read
    - BEV_RESET_GENERIC_READ_TIMEOUT
    - bufferevent_get_read_max_
    - struct bufferevent_ssl*::ssl_ops::print_err
    - clear_rbow
    - set_rbow
    - struct bufferevent_ssl*::ssl_ops::decrement_buckets
    - struct bufferevent_ssl*::ssl_ops::clear_error
    linkageType: ''
    returnType: int
    signature: int do_read(struct bufferevent_ssl *bev_ssl, int n_to_read)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_write_max_
      Src: /src/libevent/bufferevent_ssl.c:351,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/bufferevent_ssl.c:355,1
    - Dst: evbuffer_peek
      Src: /src/libevent/bufferevent_ssl.c:358,1
    - Dst: struct bufferevent_ssl*::ssl_ops::clear_error
      Src: /src/libevent/bufferevent_ssl.c:376,1
    - Dst: struct bufferevent_ssl*::ssl_ops::write
      Src: /src/libevent/bufferevent_ssl.c:377,1
    - Dst: clear_wbor
      Src: /src/libevent/bufferevent_ssl.c:382,1
    - Dst: struct bufferevent_ssl*::ssl_ops::decrement_buckets
      Src: /src/libevent/bufferevent_ssl.c:386,1
    - Dst: struct bufferevent_ssl*::ssl_ops::get_error
      Src: /src/libevent/bufferevent_ssl.c:392,1
    - Dst: struct bufferevent_ssl*::ssl_ops::print_err
      Src: /src/libevent/bufferevent_ssl.c:393,1
    - Dst: struct bufferevent_ssl*::ssl_ops::err_is_want_write
      Src: /src/libevent/bufferevent_ssl.c:394,1
    - Dst: clear_wbor
      Src: /src/libevent/bufferevent_ssl.c:397,1
    - Dst: struct bufferevent_ssl*::ssl_ops::err_is_want_read
      Src: /src/libevent/bufferevent_ssl.c:400,1
    - Dst: set_wbor
      Src: /src/libevent/bufferevent_ssl.c:404,1
    - Dst: struct bufferevent_ssl*::ssl_ops::conn_closed
      Src: /src/libevent/bufferevent_ssl.c:408,1
    - Dst: evbuffer_drain
      Src: /src/libevent/bufferevent_ssl.c:416,1
    - Dst: BEV_RESET_GENERIC_WRITE_TIMEOUT
      Src: /src/libevent/bufferevent_ssl.c:420,1
    - Dst: bufferevent_trigger_nolock_
      Src: /src/libevent/bufferevent_ssl.c:422,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 62
    argCount: 2
    argNames:
    - bev_ssl
    - atmost
    argTypes:
    - struct bufferevent_ssl*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 339
    functionDepth: 6
    functionLinenumber: 339
    functionLinenumberEnd: 425
    functionName: do_write
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_write_max_
    - struct bufferevent_ssl*::ssl_ops::err_is_want_write
    - struct bufferevent_ssl*::ssl_ops::write
    - evbuffer_pullup
    - set_wbor
    - evbuffer_peek
    - clear_wbor
    - struct bufferevent_ssl*::ssl_ops::conn_closed
    - struct bufferevent_ssl*::ssl_ops::get_error
    - struct bufferevent_ssl*::ssl_ops::err_is_want_read
    - BEV_RESET_GENERIC_WRITE_TIMEOUT
    - struct bufferevent_ssl*::ssl_ops::print_err
    - bufferevent_trigger_nolock_
    - struct bufferevent_ssl*::ssl_ops::decrement_buckets
    - evbuffer_drain
    - struct bufferevent_ssl*::ssl_ops::clear_error
    linkageType: ''
    returnType: int
    signature: int do_write(struct bufferevent_ssl *bev_ssl, int atmost)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_ssl.c:454,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_ssl.c:458,1
    - Dst: bufferevent_get_read_max_
      Src: /src/libevent/bufferevent_ssl.c:462,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 431
    functionDepth: 5
    functionLinenumber: 431
    functionLinenumberEnd: 468
    functionName: bytes_to_read
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_read_max_
    - evbuffer_get_length
    linkageType: ''
    returnType: int
    signature: int bytes_to_read(struct bufferevent_ssl *bev)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: do_write
      Src: /src/libevent/bufferevent_ssl.c:483,1
    - Dst: bytes_to_read
      Src: /src/libevent/bufferevent_ssl.c:490,1
    - Dst: do_read
      Src: /src/libevent/bufferevent_ssl.c:493,1
    - Dst: struct bufferevent_ssl*::ssl_ops::pending
      Src: /src/libevent/bufferevent_ssl.c:510,1
    - Dst: bytes_to_read
      Src: /src/libevent/bufferevent_ssl.c:527,1
    - Dst: bufferevent_trigger_nolock_
      Src: /src/libevent/bufferevent_ssl.c:533,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ssl.c:540,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 475
    functionDepth: 7
    functionLinenumber: 475
    functionLinenumberEnd: 543
    functionName: consider_reading
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 3
    functionsReached:
    - event_del
    - do_read
    - do_write
    - bytes_to_read
    - bufferevent_trigger_nolock_
    - struct bufferevent_ssl*::ssl_ops::pending
    linkageType: ''
    returnType: void
    signature: void consider_reading(struct bufferevent_ssl *bev_ssl)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: do_read
      Src: /src/libevent/bufferevent_ssl.c:554,1
    - Dst: bufferevent_trigger_nolock_
      Src: /src/libevent/bufferevent_ssl.c:558,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_ssl.c:571,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_ssl.c:572,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_ssl.c:575,1
    - Dst: do_write
      Src: /src/libevent/bufferevent_ssl.c:578,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent_ssl.c:584,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ssl.c:585,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ssl.c:589,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 31
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 545
    functionDepth: 7
    functionLinenumber: 545
    functionLinenumberEnd: 592
    functionName: consider_writing
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 3
    functionsReached:
    - event_del
    - do_read
    - do_write
    - bufferevent_trigger_nolock_
    - evbuffer_get_length
    linkageType: ''
    returnType: void
    signature: void consider_writing(struct bufferevent_ssl *bev_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: consider_reading
      Src: /src/libevent/bufferevent_ssl.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bev_base
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 594
    functionDepth: 8
    functionLinenumber: 594
    functionLinenumberEnd: 599
    functionName: be_ssl_readcb
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - consider_reading
    linkageType: ''
    returnType: void
    signature: void be_ssl_readcb(struct bufferevent *bev_base, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: consider_writing
      Src: /src/libevent/bufferevent_ssl.c:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bev_base
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 601
    functionDepth: 8
    functionLinenumber: 601
    functionLinenumberEnd: 606
    functionName: be_ssl_writecb
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - consider_writing
    linkageType: ''
    returnType: void
    signature: void be_ssl_writecb(struct bufferevent *bev_base, void *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_ssl.c:630,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - bev_base
    - what
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 631
    functionName: be_ssl_eventcb
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_run_eventcb_
    linkageType: ''
    returnType: void
    signature: void be_ssl_eventcb(struct bufferevent *bev_base, short what, void
      *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent_ssl.c:637,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_ssl.c:639,1
    - Dst: consider_reading
      Src: /src/libevent/bufferevent_ssl.c:642,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_ssl.c:644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - fd
    - what
    - ptr
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 633
    functionDepth: 8
    functionLinenumber: 633
    functionLinenumberEnd: 645
    functionName: be_ssl_readeventcb
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - consider_reading
    - bufferevent_incref_and_lock_
    - bufferevent_decref_and_unlock_
    - bufferevent_run_eventcb_
    linkageType: ''
    returnType: void
    signature: void be_ssl_readeventcb(evutil_socket_t fd, short what, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent_ssl.c:651,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_ssl.c:653,1
    - Dst: consider_writing
      Src: /src/libevent/bufferevent_ssl.c:656,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_ssl.c:658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - fd
    - what
    - ptr
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 647
    functionDepth: 8
    functionLinenumber: 647
    functionLinenumberEnd: 659
    functionName: be_ssl_writeeventcb
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_incref_and_lock_
    - bufferevent_decref_and_unlock_
    - bufferevent_run_eventcb_
    - consider_writing
    linkageType: ''
    returnType: void
    signature: void be_ssl_writeeventcb(evutil_socket_t fd, short what, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_initialized
      Src: /src/libevent/bufferevent_ssl.c:666,1
    - Dst: event_get_fd
      Src: /src/libevent/bufferevent_ssl.c:667,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - bev_ssl
    - fd
    argTypes:
    - struct bufferevent_ssl*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 661
    functionDepth: 4
    functionLinenumber: 661
    functionLinenumberEnd: 671
    functionName: be_ssl_auto_fd
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - event_initialized
    - event_get_fd
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t be_ssl_auto_fd(struct bufferevent_ssl *bev_ssl, evutil_socket_t
      fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_setcb
      Src: /src/libevent/bufferevent_ssl.c:677,1
    - Dst: event_initialized
      Src: /src/libevent/bufferevent_ssl.c:685,1
    - Dst: event_pending
      Src: /src/libevent/bufferevent_ssl.c:686,1
    - Dst: event_pending
      Src: /src/libevent/bufferevent_ssl.c:687,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ssl.c:689,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ssl.c:690,1
    - Dst: event_assign
      Src: /src/libevent/bufferevent_ssl.c:693,1
    - Dst: event_assign
      Src: /src/libevent/bufferevent_ssl.c:696,1
    - Dst: bufferevent_add_event_
      Src: /src/libevent/bufferevent_ssl.c:701,1
    - Dst: bufferevent_add_event_
      Src: /src/libevent/bufferevent_ssl.c:703,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - bev_ssl
    - fd
    argTypes:
    - struct bufferevent_ssl*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 673
    functionDepth: 4
    functionLinenumber: 673
    functionLinenumberEnd: 707
    functionName: set_open_callbacks
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - event_pending
    - event_del
    - event_assign
    - bufferevent_setcb
    - event_initialized
    - bufferevent_add_event_
    linkageType: ''
    returnType: int
    signature: int set_open_callbacks(struct bufferevent_ssl *bev_ssl, evutil_socket_t
      fd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent_ssl.c:717,1
    - Dst: struct bufferevent_ssl*::ssl_ops::clear_error
      Src: /src/libevent/bufferevent_ssl.c:721,1
    - Dst: struct bufferevent_ssl*::ssl_ops::handshake
      Src: /src/libevent/bufferevent_ssl.c:722,1
    - Dst: struct bufferevent_ssl*::ssl_ops::decrement_buckets
      Src: /src/libevent/bufferevent_ssl.c:725,1
    - Dst: struct bufferevent_ssl*::ssl_ops::handshake_is_ok
      Src: /src/libevent/bufferevent_ssl.c:727,1
    - Dst: event_get_fd
      Src: /src/libevent/bufferevent_ssl.c:728,1
    - Dst: set_open_callbacks
      Src: /src/libevent/bufferevent_ssl.c:731,1
    - Dst: bufferevent_enable
      Src: /src/libevent/bufferevent_ssl.c:733,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_ssl.c:734,1
    - Dst: struct bufferevent_ssl*::ssl_ops::get_error
      Src: /src/libevent/bufferevent_ssl.c:738,1
    - Dst: struct bufferevent_ssl*::ssl_ops::print_err
      Src: /src/libevent/bufferevent_ssl.c:739,1
    - Dst: struct bufferevent_ssl*::ssl_ops::err_is_want_write
      Src: /src/libevent/bufferevent_ssl.c:740,1
    - Dst: bufferevent_ssl_stop_reading
      Src: /src/libevent/bufferevent_ssl.c:741,1
    - Dst: start_writing
      Src: /src/libevent/bufferevent_ssl.c:742,1
    - Dst: struct bufferevent_ssl*::ssl_ops::err_is_want_read
      Src: /src/libevent/bufferevent_ssl.c:743,1
    - Dst: bufferevent_ssl_stop_writing
      Src: /src/libevent/bufferevent_ssl.c:744,1
    - Dst: start_reading
      Src: /src/libevent/bufferevent_ssl.c:745,1
    - Dst: struct bufferevent_ssl*::ssl_ops::conn_closed
      Src: /src/libevent/bufferevent_ssl.c:747,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 1
    argNames:
    - bev_ssl
    argTypes:
    - struct bufferevent_ssl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 709
    functionDepth: 5
    functionLinenumber: 709
    functionLinenumberEnd: 751
    functionName: do_handshake
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - start_writing
    - struct bufferevent_ssl*::ssl_ops::handshake_is_ok
    - struct bufferevent_ssl*::ssl_ops::err_is_want_write
    - set_open_callbacks
    - EVUTIL_ASSERT
    - bufferevent_ssl_stop_reading
    - bufferevent_ssl_stop_writing
    - bufferevent_run_eventcb_
    - event_get_fd
    - struct bufferevent_ssl*::ssl_ops::conn_closed
    - struct bufferevent_ssl*::ssl_ops::get_error
    - struct bufferevent_ssl*::ssl_ops::err_is_want_read
    - start_reading
    - struct bufferevent_ssl*::ssl_ops::handshake
    - struct bufferevent_ssl*::ssl_ops::print_err
    - bufferevent_enable
    - struct bufferevent_ssl*::ssl_ops::decrement_buckets
    - struct bufferevent_ssl*::ssl_ops::clear_error
    linkageType: ''
    returnType: int
    signature: int do_handshake(struct bufferevent_ssl *bev_ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_handshake
      Src: /src/libevent/bufferevent_ssl.c:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bev_base
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 753
    functionDepth: 6
    functionLinenumber: 753
    functionLinenumberEnd: 758
    functionName: be_ssl_handshakecb
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - do_handshake
    linkageType: ''
    returnType: void
    signature: void be_ssl_handshakecb(struct bufferevent *bev_base, void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent_ssl.c:765,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_ssl.c:767,1
    - Dst: evutil_socket_finished_connecting_
      Src: /src/libevent/bufferevent_ssl.c:769,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent_ssl.c:771,1
    - Dst: do_handshake
      Src: /src/libevent/bufferevent_ssl.c:773,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent_ssl.c:775,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - fd
    - what
    - ptr
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 760
    functionDepth: 6
    functionLinenumber: 760
    functionLinenumberEnd: 776
    functionName: be_ssl_handshakeeventcb
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_incref_and_lock_
    - do_handshake
    - bufferevent_run_eventcb_
    - evutil_socket_finished_connecting_
    - bufferevent_decref_and_unlock_
    linkageType: ''
    returnType: void
    signature: void be_ssl_handshakeeventcb(evutil_socket_t fd, short what, void *ptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_setcb
      Src: /src/libevent/bufferevent_ssl.c:782,1
    - Dst: bufferevent_setfd
      Src: /src/libevent/bufferevent_ssl.c:790,1
    - Dst: do_handshake
      Src: /src/libevent/bufferevent_ssl.c:793,1
    - Dst: event_initialized
      Src: /src/libevent/bufferevent_ssl.c:797,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ssl.c:798,1
    - Dst: event_del
      Src: /src/libevent/bufferevent_ssl.c:799,1
    - Dst: event_assign
      Src: /src/libevent/bufferevent_ssl.c:802,1
    - Dst: event_assign
      Src: /src/libevent/bufferevent_ssl.c:805,1
    - Dst: bufferevent_enable
      Src: /src/libevent/bufferevent_ssl.c:809,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - bev_ssl
    - fd
    argTypes:
    - struct bufferevent_ssl*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 778
    functionDepth: 6
    functionLinenumber: 778
    functionLinenumberEnd: 812
    functionName: set_handshake_callbacks
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_setfd
    - do_handshake
    - event_del
    - event_assign
    - bufferevent_setcb
    - bufferevent_enable
    - event_initialized
    linkageType: ''
    returnType: int
    signature: int set_handshake_callbacks(struct bufferevent_ssl *bev_ssl, evutil_socket_t
      fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BEV_IS_SSL
      Src: /src/libevent/bufferevent_ssl.c:818,1
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_ssl.c:821,1
    - Dst: struct bufferevent_ssl*::ssl_ops::renegotiate
      Src: /src/libevent/bufferevent_ssl.c:822,1
    - Dst: set_handshake_callbacks
      Src: /src/libevent/bufferevent_ssl.c:825,1
    - Dst: be_ssl_auto_fd
      Src: /src/libevent/bufferevent_ssl.c:825,1
    - Dst: do_handshake
      Src: /src/libevent/bufferevent_ssl.c:828,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 814
    functionDepth: 7
    functionLinenumber: 814
    functionLinenumberEnd: 830
    functionName: bufferevent_ssl_renegotiate_impl
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 2
    functionsReached:
    - struct bufferevent_ssl*::ssl_ops::renegotiate
    - set_handshake_callbacks
    - do_handshake
    - be_ssl_auto_fd
    - BEV_IS_SSL
    - bufferevent_ssl_upcast
    linkageType: ''
    returnType: int
    signature: int bufferevent_ssl_renegotiate_impl(struct bufferevent *bev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_add_event_
      Src: /src/libevent/bufferevent_ssl.c:842,1
    - Dst: consider_writing
      Src: /src/libevent/bufferevent_ssl.c:846,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - buf
    - cbinfo
    - arg
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 832
    functionDepth: 8
    functionLinenumber: 832
    functionLinenumberEnd: 850
    functionName: be_ssl_outbuf_cb
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - consider_writing
    - bufferevent_add_event_
    linkageType: ''
    returnType: void
    signature: "void be_ssl_outbuf_cb(struct evbuffer *buf,\n    const struct evbuffer_cb_info
      *cbinfo, void *arg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_ssl.c:856,1
    - Dst: start_reading
      Src: /src/libevent/bufferevent_ssl.c:860,1
    - Dst: start_writing
      Src: /src/libevent/bufferevent_ssl.c:862,1
    - Dst: BEV_RESET_GENERIC_READ_TIMEOUT
      Src: /src/libevent/bufferevent_ssl.c:866,1
    - Dst: BEV_RESET_GENERIC_WRITE_TIMEOUT
      Src: /src/libevent/bufferevent_ssl.c:868,1
    - Dst: consider_reading
      Src: /src/libevent/bufferevent_ssl.c:871,1
    - Dst: consider_writing
      Src: /src/libevent/bufferevent_ssl.c:873,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - bev
    - events
    argTypes:
    - struct bufferevent*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 853
    functionDepth: 8
    functionLinenumber: 853
    functionLinenumberEnd: 876
    functionName: be_ssl_enable
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - start_writing
    - consider_reading
    - BEV_RESET_GENERIC_READ_TIMEOUT
    - start_reading
    - BEV_RESET_GENERIC_WRITE_TIMEOUT
    - consider_writing
    - bufferevent_ssl_upcast
    linkageType: ''
    returnType: int
    signature: int be_ssl_enable(struct bufferevent *bev, short events)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_ssl.c:881,1
    - Dst: bufferevent_ssl_stop_reading
      Src: /src/libevent/bufferevent_ssl.c:884,1
    - Dst: bufferevent_ssl_stop_writing
      Src: /src/libevent/bufferevent_ssl.c:886,1
    - Dst: BEV_DEL_GENERIC_READ_TIMEOUT
      Src: /src/libevent/bufferevent_ssl.c:890,1
    - Dst: BEV_DEL_GENERIC_WRITE_TIMEOUT
      Src: /src/libevent/bufferevent_ssl.c:892,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - bev
    - events
    argTypes:
    - struct bufferevent*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 878
    functionDepth: 5
    functionLinenumber: 878
    functionLinenumberEnd: 895
    functionName: be_ssl_disable
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - BEV_DEL_GENERIC_READ_TIMEOUT
    - bufferevent_ssl_stop_reading
    - bufferevent_ssl_stop_writing
    - BEV_DEL_GENERIC_WRITE_TIMEOUT
    - bufferevent_ssl_upcast
    linkageType: ''
    returnType: int
    signature: int be_ssl_disable(struct bufferevent *bev, short events)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_ssl.c:900,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent_ssl.c:904,1
    - Dst: event_warnx
      Src: /src/libevent/bufferevent_ssl.c:905,1
    - Dst: bufferevent_free
      Src: /src/libevent/bufferevent_ssl.c:908,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/bufferevent_ssl.c:917,1
    - Dst: bufferevent_unsuspend_read_
      Src: /src/libevent/bufferevent_ssl.c:919,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 897
    functionDepth: 2
    functionLinenumber: 897
    functionLinenumberEnd: 923
    functionName: be_ssl_unlink
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_free
    - bufferevent_setcb
    - bufferevent_unsuspend_read_
    - BEV_UPCAST
    - event_warnx
    - bufferevent_ssl_upcast
    linkageType: ''
    returnType: void
    signature: void be_ssl_unlink(struct bufferevent *bev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_ssl.c:928,1
    - Dst: struct bufferevent_ssl*::ssl_ops::get_fd
      Src: /src/libevent/bufferevent_ssl.c:932,1
    - Dst: evutil_closesocket
      Src: /src/libevent/bufferevent_ssl.c:938,1
    - Dst: struct bufferevent_ssl*::ssl_ops::free
      Src: /src/libevent/bufferevent_ssl.c:941,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 925
    functionDepth: 2
    functionLinenumber: 925
    functionLinenumberEnd: 942
    functionName: be_ssl_destruct
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - struct bufferevent_ssl*::ssl_ops::free
    - struct bufferevent_ssl*::ssl_ops::get_fd
    - bufferevent_ssl_upcast
    - evutil_closesocket
    linkageType: ''
    returnType: void
    signature: void be_ssl_destruct(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_ssl.c:947,1
    - Dst: bufferevent_generic_adj_timeouts_
      Src: /src/libevent/bufferevent_ssl.c:950,1
    - Dst: bufferevent_generic_adj_existing_timeouts_
      Src: /src/libevent/bufferevent_ssl.c:952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 944
    functionDepth: 2
    functionLinenumber: 944
    functionLinenumberEnd: 954
    functionName: be_ssl_adj_timeouts
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_generic_adj_timeouts_
    - bufferevent_ssl_upcast
    - bufferevent_generic_adj_existing_timeouts_
    linkageType: ''
    returnType: int
    signature: int be_ssl_adj_timeouts(struct bufferevent *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bufev
    - iotype
    - mode
    argTypes:
    - struct bufferevent*
    - short
    - enum bufferevent_flush_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 956
    functionDepth: 0
    functionLinenumber: 956
    functionLinenumberEnd: 962
    functionName: be_ssl_flush
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int be_ssl_flush(struct bufferevent *bufev,\n    short iotype, enum
      bufferevent_flush_mode mode)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: struct bufferevent_ssl*::ssl_ops::clear
      Src: /src/libevent/bufferevent_ssl.c:972,1
    - Dst: struct bufferevent_ssl*::ssl_ops::set_accept_state
      Src: /src/libevent/bufferevent_ssl.c:974,1
    - Dst: set_handshake_callbacks
      Src: /src/libevent/bufferevent_ssl.c:975,1
    - Dst: struct bufferevent_ssl*::ssl_ops::clear
      Src: /src/libevent/bufferevent_ssl.c:979,1
    - Dst: struct bufferevent_ssl*::ssl_ops::set_connect_state
      Src: /src/libevent/bufferevent_ssl.c:981,1
    - Dst: set_handshake_callbacks
      Src: /src/libevent/bufferevent_ssl.c:982,1
    - Dst: set_open_callbacks
      Src: /src/libevent/bufferevent_ssl.c:986,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - bev_ssl
    - state
    - fd
    argTypes:
    - struct bufferevent_ssl*
    - enum bufferevent_ssl_state
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 964
    functionDepth: 7
    functionLinenumber: 964
    functionLinenumberEnd: 994
    functionName: be_ssl_set_fd
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - set_handshake_callbacks
    - struct bufferevent_ssl*::ssl_ops::clear
    - struct bufferevent_ssl*::ssl_ops::set_accept_state
    - struct bufferevent_ssl*::ssl_ops::set_connect_state
    - set_open_callbacks
    linkageType: ''
    returnType: int
    signature: "int be_ssl_set_fd(struct bufferevent_ssl *bev_ssl,\n    enum bufferevent_ssl_state
      state, evutil_socket_t fd)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_ssl.c:1001,1
    - Dst: struct bufferevent_ssl*::ssl_ops::bio_set_fd
      Src: /src/libevent/bufferevent_ssl.c:1004,1
    - Dst: be_ssl_set_fd
      Src: /src/libevent/bufferevent_ssl.c:1006,1
    - Dst: event_get_fd
      Src: /src/libevent/bufferevent_ssl.c:1009,1
    - Dst: event_get_fd
      Src: /src/libevent/bufferevent_ssl.c:1011,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - bev
    - op
    - data
    argTypes:
    - struct bufferevent*
    - enum bufferevent_ctrl_op
    - union bufferevent_ctrl_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 996
    functionDepth: 8
    functionLinenumber: 996
    functionLinenumberEnd: 1021
    functionName: be_ssl_ctrl
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - event_get_fd
    - struct bufferevent_ssl*::ssl_ops::bio_set_fd
    - bufferevent_ssl_upcast
    - be_ssl_set_fd
    linkageType: ''
    returnType: int
    signature: "int be_ssl_ctrl(struct bufferevent *bev,\n    enum bufferevent_ctrl_op
      op, union bufferevent_ctrl_data *data)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/bufferevent_ssl.c:1040,1
    - Dst: bufferevent_init_common_
      Src: /src/libevent/bufferevent_ssl.c:1045,1
    - Dst: struct bufferevent_ssl*::ssl_ops::init
      Src: /src/libevent/bufferevent_ssl.c:1051,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/bufferevent_ssl.c:1055,1
    - Dst: bufferevent_enable_locking_
      Src: /src/libevent/bufferevent_ssl.c:1059,1
    - Dst: bufferevent_init_generic_timeout_cbs_
      Src: /src/libevent/bufferevent_ssl.c:1062,1
    - Dst: bufferevent_incref_
      Src: /src/libevent/bufferevent_ssl.c:1063,1
    - Dst: struct bufferevent_ssl*::ssl_ops::init_bio_counts
      Src: /src/libevent/bufferevent_ssl.c:1069,1
    - Dst: be_ssl_auto_fd
      Src: /src/libevent/bufferevent_ssl.c:1071,1
    - Dst: be_ssl_set_fd
      Src: /src/libevent/bufferevent_ssl.c:1072,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/bufferevent_ssl.c:1076,1
    - Dst: bufferevent_enable
      Src: /src/libevent/bufferevent_ssl.c:1077,1
    - Dst: bufferevent_suspend_read_
      Src: /src/libevent/bufferevent_ssl.c:1079,1
    - Dst: struct bufferevent_ssl*::ssl_ops::free
      Src: /src/libevent/bufferevent_ssl.c:1087,1
    - Dst: bufferevent_free
      Src: /src/libevent/bufferevent_ssl.c:1089,1
    - Dst: struct le_ssl_ops*::free_raw
      Src: /src/libevent/bufferevent_ssl.c:1092,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 7
    argNames:
    - base
    - underlying
    - fd
    - ssl
    - state
    - options
    - ssl_ops
    argTypes:
    - struct event_base*
    - struct bufferevent*
    - evutil_socket_t
    - void*
    - enum bufferevent_ssl_state
    - int
    - struct le_ssl_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1023
    functionDepth: 8
    functionLinenumber: 1023
    functionLinenumberEnd: 1095
    functionName: bufferevent_ssl_new_impl
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 4
    functionsReached:
    - struct bufferevent_ssl*::ssl_ops::free
    - evbuffer_add_cb
    - bufferevent_init_common_
    - bufferevent_enable_locking_
    - bufferevent_init_generic_timeout_cbs_
    - be_ssl_set_fd
    - struct le_ssl_ops*::free_raw
    - mm_calloc
    - bufferevent_free
    - bufferevent_incref_
    - struct bufferevent_ssl*::ssl_ops::init
    - bufferevent_setwatermark
    - be_ssl_auto_fd
    - bufferevent_enable
    - bufferevent_suspend_read_
    - struct bufferevent_ssl*::ssl_ops::init_bio_counts
    linkageType: ''
    returnType: struct bufferevent
    signature: "struct bufferevent *\nbufferevent_ssl_new_impl(struct event_base *base,\n
      \   struct bufferevent *underlying,\n    evutil_socket_t fd,\n    void *ssl,\n
      \   enum bufferevent_ssl_state state,\n    int options,\n\tstruct le_ssl_ops
      *ssl_ops)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEV_IS_SSL
      Src: /src/libevent/bufferevent_ssl.c:1103,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ssl.c:1106,1
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_ssl.c:1107,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ssl.c:1111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1097
    functionDepth: 2
    functionLinenumber: 1097
    functionLinenumberEnd: 1113
    functionName: bufferevent_get_ssl_error
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 2
    functionsReached:
    - BEV_UNLOCK
    - BEV_IS_SSL
    - BEV_LOCK
    - bufferevent_ssl_upcast
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long bufferevent_get_ssl_error(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_IS_SSL
      Src: /src/libevent/bufferevent_ssl.c:1120,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ssl.c:1123,1
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_ssl.c:1124,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ssl.c:1126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1115
    functionDepth: 2
    functionLinenumber: 1115
    functionLinenumberEnd: 1129
    functionName: bufferevent_ssl_get_flags
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - BEV_UNLOCK
    - BEV_IS_SSL
    - BEV_LOCK
    - bufferevent_ssl_upcast
    linkageType: ''
    returnType: ev_uint64_t
    signature: ev_uint64_t bufferevent_ssl_get_flags(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_IS_SSL
      Src: /src/libevent/bufferevent_ssl.c:1136,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ssl.c:1139,1
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_ssl.c:1140,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ssl.c:1143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bev
    - flags
    argTypes:
    - struct bufferevent*
    - ev_uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1130
    functionDepth: 2
    functionLinenumber: 1130
    functionLinenumberEnd: 1146
    functionName: bufferevent_ssl_set_flags
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - BEV_UNLOCK
    - BEV_IS_SSL
    - BEV_LOCK
    - bufferevent_ssl_upcast
    linkageType: ''
    returnType: ev_uint64_t
    signature: ev_uint64_t bufferevent_ssl_set_flags(struct bufferevent *bev, ev_uint64_t
      flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_IS_SSL
      Src: /src/libevent/bufferevent_ssl.c:1153,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ssl.c:1156,1
    - Dst: bufferevent_ssl_upcast
      Src: /src/libevent/bufferevent_ssl.c:1157,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ssl.c:1160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bev
    - flags
    argTypes:
    - struct bufferevent*
    - ev_uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1147
    functionDepth: 2
    functionLinenumber: 1147
    functionLinenumberEnd: 1163
    functionName: bufferevent_ssl_clear_flags
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 0
    functionsReached:
    - BEV_UNLOCK
    - BEV_IS_SSL
    - BEV_LOCK
    - bufferevent_ssl_upcast
    linkageType: ''
    returnType: ev_uint64_t
    signature: ev_uint64_t bufferevent_ssl_clear_flags(struct bufferevent *bev, ev_uint64_t
      flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_get_flags
      Src: /src/libevent/bufferevent_ssl.c:1168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1165
    functionDepth: 3
    functionLinenumber: 1165
    functionLinenumberEnd: 1172
    functionName: bufferevent_ssl_get_allow_dirty_shutdown
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 2
    functionsReached:
    - bufferevent_ssl_get_flags
    linkageType: ''
    returnType: int
    signature: int bufferevent_ssl_get_allow_dirty_shutdown(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent_ssl.c:1178,1
    - Dst: bufferevent_ssl_set_flags
      Src: /src/libevent/bufferevent_ssl.c:1181,1
    - Dst: bufferevent_ssl_clear_flags
      Src: /src/libevent/bufferevent_ssl.c:1183,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent_ssl.c:1185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bev
    - allow_dirty_shutdown
    argTypes:
    - struct bufferevent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1174
    functionDepth: 3
    functionLinenumber: 1174
    functionLinenumberEnd: 1186
    functionName: bufferevent_ssl_set_allow_dirty_shutdown
    functionSourceFile: /src/libevent/bufferevent_ssl.c
    functionUses: 2
    functionsReached:
    - BEV_UNLOCK
    - bufferevent_ssl_clear_flags
    - BEV_LOCK
    - bufferevent_ssl_set_flags
    linkageType: ''
    returnType: void
    signature: "void bufferevent_ssl_set_allow_dirty_shutdown(\n\tstruct bufferevent
      *bev, int allow_dirty_shutdown)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/poll.c:103,1
    - Dst: sigfd_init_
      Src: /src/libevent/poll.c:106,1
    - Dst: evsig_init_
      Src: /src/libevent/poll.c:107,1
    - Dst: evutil_weakrand_seed_
      Src: /src/libevent/poll.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 112
    functionName: poll_init
    functionSourceFile: /src/libevent/poll.c
    functionUses: 0
    functionsReached:
    - evsig_init_
    - mm_calloc
    - sigfd_init_
    - evutil_weakrand_seed_
    linkageType: ''
    returnType: void
    signature: 'void *

      poll_init(struct event_base *base)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/poll.c:125,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/poll.c:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - pop
    argTypes:
    - struct pollop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 131
    functionName: poll_check_ok
    functionSourceFile: /src/libevent/poll.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    linkageType: ''
    returnType: void
    signature: void poll_check_ok(struct pollop *pop)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: poll_check_ok
      Src: /src/libevent/poll.c:144,1
    - Dst: mm_realloc
      Src: /src/libevent/poll.c:156,1
    - Dst: event_warn
      Src: /src/libevent/poll.c:159,1
    - Dst: memcpy
      Src: /src/libevent/poll.c:165,1
    - Dst: evutil_tv_to_msec_
      Src: /src/libevent/poll.c:176,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/poll.c:181,1
    - Dst: poll
      Src: /src/libevent/poll.c:183,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/poll.c:185,1
    - Dst: event_warn
      Src: /src/libevent/poll.c:189,1
    - Dst: event_debug
      Src: /src/libevent/poll.c:196,1
    - Dst: evutil_weakrand_range_
      Src: /src/libevent/poll.c:201,1
    - Dst: evmap_io_active_
      Src: /src/libevent/poll.c:224,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 57
    argCount: 2
    argNames:
    - base
    - tv
    argTypes:
    - struct event_base*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 228
    functionName: poll_dispatch
    functionSourceFile: /src/libevent/poll.c
    functionUses: 0
    functionsReached:
    - evutil_weakrand_range_
    - poll_check_ok
    - EVBASE_RELEASE_LOCK
    - event_warn
    - mm_realloc
    - poll
    - evmap_io_active_
    - evutil_tv_to_msec_
    - memcpy
    - event_debug
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: int
    signature: int poll_dispatch(struct event_base *base, struct timeval *tv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/poll.c:238,1
    - Dst: poll_check_ok
      Src: /src/libevent/poll.c:242,1
    - Dst: mm_realloc
      Src: /src/libevent/poll.c:253,1
    - Dst: event_warn
      Src: /src/libevent/poll.c:256,1
    - Dst: poll_check_ok
      Src: /src/libevent/poll.c:284,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - idx_
    argTypes:
    - struct event_base*
    - int
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 287
    functionName: poll_add
    functionSourceFile: /src/libevent/poll.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - event_warn
    - mm_realloc
    - poll_check_ok
    linkageType: ''
    returnType: int
    signature: int poll_add(struct event_base *base, int fd, short old, short events,
      void *idx_)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/poll.c:301,1
    - Dst: poll_check_ok
      Src: /src/libevent/poll.c:305,1
    - Dst: poll_check_ok
      Src: /src/libevent/poll.c:318,1
    - Dst: memcpy
      Src: /src/libevent/poll.c:332,1
    - Dst: evmap_io_get_fdinfo_
      Src: /src/libevent/poll.c:334,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/poll.c:335,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/poll.c:336,1
    - Dst: poll_check_ok
      Src: /src/libevent/poll.c:340,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - idx_
    argTypes:
    - struct event_base*
    - int
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 342
    functionName: poll_del
    functionSourceFile: /src/libevent/poll.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - evmap_io_get_fdinfo_
    - memcpy
    - poll_check_ok
    linkageType: ''
    returnType: int
    signature: int poll_del(struct event_base *base, int fd, short old, short events,
      void *idx_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evsig_dealloc_
      Src: /src/libevent/poll.c:349,1
    - Dst: mm_free
      Src: /src/libevent/poll.c:351,1
    - Dst: mm_free
      Src: /src/libevent/poll.c:353,1
    - Dst: memset
      Src: /src/libevent/poll.c:355,1
    - Dst: mm_free
      Src: /src/libevent/poll.c:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 357
    functionName: poll_dealloc
    functionSourceFile: /src/libevent/poll.c
    functionUses: 0
    functionsReached:
    - memset
    - mm_free
    - evsig_dealloc_
    linkageType: ''
    returnType: void
    signature: void poll_dealloc(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: evutil_secure_rng_set_urandom_device_file
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evutil_secure_rng_set_urandom_device_file(char *fname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arc4random
      Src: /src/libevent/evutil_rand.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: evutil_secure_rng_init
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 1
    functionsReached:
    - arc4random
    linkageType: ''
    returnType: int
    signature: int evutil_secure_rng_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enable_locks
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: evutil_secure_rng_global_setup_locks_
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evutil_secure_rng_global_setup_locks_(const int enable_locks)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: evutil_free_secure_rng_globals_locks
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evutil_free_secure_rng_globals_locks(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: arc4random_buf
      Src: /src/libevent/evutil_rand.c:75,1
    - Dst: arc4random_buf
      Src: /src/libevent/evutil_rand.c:91,1
    - Dst: arc4random
      Src: /src/libevent/evutil_rand.c:99,1
    - Dst: memcpy
      Src: /src/libevent/evutil_rand.c:101,1
    - Dst: arc4random
      Src: /src/libevent/evutil_rand.c:106,1
    - Dst: arc4random
      Src: /src/libevent/evutil_rand.c:111,1
    - Dst: memcpy
      Src: /src/libevent/evutil_rand.c:112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - buf
    - n
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 71
    functionDepth: 8
    functionLinenumber: 71
    functionLinenumberEnd: 115
    functionName: ev_arc4random_buf
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 0
    functionsReached:
    - arc4random
    - arc4random_buf
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ev_arc4random_buf(void *buf, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: ARC4_LOCK_
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARC4_LOCK_()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: ARC4_UNLOCK_
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARC4_UNLOCK_()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVTHREAD_SETUP_GLOBAL_LOCK
      Src: /src/libevent/evutil_rand.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - enable_locks
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: evutil_secure_rng_global_setup_locks_
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 1
    functionsReached:
    - EVTHREAD_SETUP_GLOBAL_LOCK
    linkageType: ''
    returnType: int
    signature: int evutil_secure_rng_global_setup_locks_(const int enable_locks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/evutil_rand.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 155
    functionName: evutil_free_secure_rng_globals_locks
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 0
    functionsReached:
    - EVTHREAD_FREE_LOCK
    linkageType: ''
    returnType: void
    signature: void evutil_free_secure_rng_globals_locks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARC4_LOCK_
      Src: /src/libevent/evutil_rand.c:161,1
    - Dst: ARC4_UNLOCK_
      Src: /src/libevent/evutil_rand.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 166
    functionName: evutil_secure_rng_set_urandom_device_file
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 0
    functionsReached:
    - ARC4_LOCK_
    - ARC4_UNLOCK_
    linkageType: ''
    returnType: int
    signature: int evutil_secure_rng_set_urandom_device_file(char *fname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARC4_LOCK_
      Src: /src/libevent/evutil_rand.c:173,1
    - Dst: arc4_stir
      Src: /src/libevent/evutil_rand.c:174,1
    - Dst: ARC4_UNLOCK_
      Src: /src/libevent/evutil_rand.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 168
    functionDepth: 6
    functionLinenumber: 168
    functionLinenumberEnd: 177
    functionName: evutil_secure_rng_init
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 1
    functionsReached:
    - ARC4_LOCK_
    - arc4_stir
    - ARC4_UNLOCK_
    linkageType: ''
    returnType: int
    signature: int evutil_secure_rng_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arc4random_buf
      Src: /src/libevent/evutil_rand.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - n
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 8
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: ev_arc4random_buf
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 0
    functionsReached:
    - arc4random_buf
    linkageType: ''
    returnType: void
    signature: void ev_arc4random_buf(void *buf, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ev_arc4random_buf
      Src: /src/libevent/evutil_rand.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - n
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 9
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: evutil_secure_rng_get_bytes
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 3
    functionsReached:
    - ev_arc4random_buf
    linkageType: ''
    returnType: void
    signature: void evutil_secure_rng_get_bytes(void *buf, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arc4random_addrandom
      Src: /src/libevent/evutil_rand.c:197,1
    - Dst: arc4random_stir
      Src: /src/libevent/evutil_rand.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - n
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 193
    functionDepth: 7
    functionLinenumber: 193
    functionLinenumberEnd: 202
    functionName: evutil_secure_rng_add_bytes
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 0
    functionsReached:
    - arc4random_addrandom
    - arc4random_stir
    linkageType: ''
    returnType: void
    signature: void evutil_secure_rng_add_bytes(const char *buf, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_free_secure_rng_globals_locks
      Src: /src/libevent/evutil_rand.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 208
    functionName: evutil_free_secure_rng_globals_
    functionSourceFile: /src/libevent/evutil_rand.c
    functionUses: 1
    functionsReached:
    - evutil_free_secure_rng_globals_locks
    linkageType: ''
    returnType: void
    signature: void evutil_free_secure_rng_globals_(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 13
    functionName: HT_HEAD
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_HEAD(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: HT_INITIALIZER
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_INITIALIZER()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: HT_ENTRY
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: HT_ENTRY
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: HT_EMPTY
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: HT_SIZE
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_SIZE(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: HT_MEM_USAGE
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_MEM_USAGE(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - head
    - ','
    - elm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: HT_FIND
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_FIND(name, head, elm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - head
    - ','
    - elm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: HT_INSERT
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_INSERT(name, head, elm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - head
    - ','
    - elm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: HT_REPLACE
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_REPLACE(name, head, elm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - head
    - ','
    - elm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: HT_REMOVE
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_REMOVE(name, head, elm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: HT_START
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_START(name, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - head
    - ','
    - elm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: HT_NEXT
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_NEXT(name, head, elm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - head
    - ','
    - elm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: HT_NEXT_RMV
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_NEXT_RMV(name, head, elm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: HT_CLEAR
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_CLEAR(name, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: HT_INIT
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_INIT(name, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - h
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 72
    functionName: ht_improve_hash_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned ht_improve_hash_(unsigned h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: ht_string_hash_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned ht_string_hash_(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 102
    functionName: ht_string_hash_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned ht_string_hash_(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elm
    - ','
    - field
    - ','
    - hashfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: HT_SET_HASH_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_SET_HASH_(elm, field, hashfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elm
    - ','
    - field
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: HT_SET_HASHVAL_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_SET_HASHVAL_(elm, field, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elm
    - ','
    - field
    - ','
    - hashfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: HT_ELT_HASH_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_ELT_HASH_(elm, field, hashfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elm
    - ','
    - field
    - ','
    - hashfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: HT_SET_HASH_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_SET_HASH_(elm, field, hashfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elm
    - ','
    - field
    - ','
    - hashfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: HT_ELT_HASH_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_ELT_HASH_(elm, field, hashfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elm
    - ','
    - field
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: HT_SET_HASHVAL_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_SET_HASHVAL_(elm, field, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - field
    - ','
    - elm
    - ','
    - hashfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: HT_BUCKET_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_BUCKET_(head, field, elm, hashfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - name
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: HT_FOREACH
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_FOREACH(x, name, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - hashfn
    - ','
    - eqfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 142
    functionName: HT_PROTOTYPE
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_PROTOTYPE(name, type, field, hashfn, eqfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HT_BUCKET_
      Src: /src/libevent/ht-internal.h:149,1
    - Dst: eqfn
      Src: /src/libevent/ht-internal.h:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 156
    functionName: _HT_FIND_P_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached:
    - HT_BUCKET_
    - eqfn
    linkageType: ''
    returnType: struct type
    signature: "struct type **                                          \\\n  name##_HT_FIND_P_(struct
      name *head, struct type *elm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HT_SET_HASH_
      Src: /src/libevent/ht-internal.h:164,1
    - Dst: _HT_FIND_P_
      Src: /src/libevent/ht-internal.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 167
    functionName: _HT_FIND
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached:
    - _HT_FIND_P_
    - HT_SET_HASH_
    linkageType: ''
    returnType: struct type
    signature: "struct type *                                           \\\n  name##_HT_FIND(const
      struct name *head, struct type *elm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _HT_GROW
      Src: /src/libevent/ht-internal.h:175,1
    - Dst: HT_SET_HASH_
      Src: /src/libevent/ht-internal.h:177,1
    - Dst: HT_BUCKET_
      Src: /src/libevent/ht-internal.h:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 181
    functionName: _HT_INSERT
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached:
    - HT_BUCKET_
    - HT_SET_HASH_
    - _HT_GROW
    linkageType: ''
    returnType: void
    signature: void _HT_INSERT(struct name *head, struct type *elm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _HT_GROW
      Src: /src/libevent/ht-internal.h:190,1
    - Dst: HT_SET_HASH_
      Src: /src/libevent/ht-internal.h:191,1
    - Dst: _HT_FIND_P_
      Src: /src/libevent/ht-internal.h:192,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 203
    functionName: _HT_REPLACE
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached:
    - _HT_FIND_P_
    - HT_SET_HASH_
    - _HT_GROW
    linkageType: ''
    returnType: struct type
    signature: "struct type *                                           \\\n  name##_HT_REPLACE(struct
      name *head, struct type *elm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HT_SET_HASH_
      Src: /src/libevent/ht-internal.h:210,1
    - Dst: _HT_FIND_P_
      Src: /src/libevent/ht-internal.h:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 219
    functionName: _HT_REMOVE
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached:
    - _HT_FIND_P_
    - HT_SET_HASH_
    linkageType: ''
    returnType: struct type
    signature: "struct type *                                           \\\n  name##_HT_REMOVE(struct
      name *head, struct type *elm)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/libevent/ht-internal.h:238,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - head
    - data
    argTypes:
    - struct name*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 246
    functionName: _HT_FOREACH_FN
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached:
    - fn
    linkageType: ''
    returnType: void
    signature: "void _HT_FOREACH_FN(struct name *head,                               \\\n
      \                      int (*fn)(struct type *, void *),                \\\n
      \                      void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 260
    functionName: _HT_START
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct type
    signature: "struct type **                                          \\\n  name##_HT_START(struct
      name *head)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HT_ELT_HASH_
      Src: /src/libevent/ht-internal.h:272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 280
    functionName: _HT_NEXT
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached:
    - HT_ELT_HASH_
    linkageType: ''
    returnType: struct type
    signature: "struct type **                                          \\\n  name##_HT_NEXT(struct
      name *head, struct type **elm)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HT_ELT_HASH_
      Src: /src/libevent/ht-internal.h:284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 298
    functionName: _HT_NEXT_RMV
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached:
    - HT_ELT_HASH_
    linkageType: ''
    returnType: struct type
    signature: "struct type **                                          \\\n  name##_HT_NEXT_RMV(struct
      name *head, struct type **elm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - hashfn
    - ','
    - eqfn
    - ','
    - load
    - ','
    - mallocfn
    - ','
    - reallocfn
    - ','
    - freefn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 315
    functionName: HT_GENERATE
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "HT_GENERATE(name, type, field, hashfn, eqfn, load, mallocfn,    \\\n
      \                   reallocfn, freefn)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mallocfn
      Src: /src/libevent/ht-internal.h:332,1
    - Dst: memset
      Src: /src/libevent/ht-internal.h:334,1
    - Dst: HT_ELT_HASH_
      Src: /src/libevent/ht-internal.h:341,1
    - Dst: freefn
      Src: /src/libevent/ht-internal.h:348,1
    - Dst: reallocfn
      Src: /src/libevent/ht-internal.h:352,1
    - Dst: memset
      Src: /src/libevent/ht-internal.h:354,1
    - Dst: HT_ELT_HASH_
      Src: /src/libevent/ht-internal.h:359,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 2
    argNames:
    - head
    - size
    argTypes:
    - struct name*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 375
    functionName: _HT_GROW
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 2
    functionsReached:
    - reallocfn
    - memset
    - HT_ELT_HASH_
    - freefn
    - mallocfn
    linkageType: ''
    returnType: int
    signature: int _HT_GROW(struct name *head, unsigned size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freefn
      Src: /src/libevent/ht-internal.h:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct name*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 384
    functionName: _HT_CLEAR
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached:
    - freefn
    linkageType: ''
    returnType: void
    signature: void _HT_CLEAR(struct name *head)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: HT_ELT_HASH_
      Src: /src/libevent/ht-internal.h:410,1
    - Dst: hashfn
      Src: /src/libevent/ht-internal.h:410,1
    - Dst: HT_ELT_HASH_
      Src: /src/libevent/ht-internal.h:412,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 26
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct name*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 420
    functionName: _HT_REP_IS_BAD_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached:
    - HT_ELT_HASH_
    - hashfn
    linkageType: ''
    returnType: int
    signature: int _HT_REP_IS_BAD_(const struct name *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - name
    - ','
    - field
    - ','
    - hashfn
    - ','
    - head
    - ','
    - eltype
    - ','
    - elm
    - ','
    - var
    - ','
    - y
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 440
    functionName: HT_FIND_OR_INSERT_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_FIND_OR_INSERT_(name, field, hashfn, head, eltype, elm, var, y,
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - field
    - ','
    - head
    - ','
    - elm
    - ','
    - newent
    - ','
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 447
    functionName: HT_FOI_INSERT_
    functionSourceFile: /src/libevent/ht-internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HT_FOI_INSERT_(field, head, elm, newent, var)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pwrite
      Src: /src/libevent/devpoll.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - devpollop
    argTypes:
    - struct devpollop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 97
    functionName: devpoll_commit
    functionSourceFile: /src/libevent/devpoll.c
    functionUses: 0
    functionsReached:
    - pwrite
    linkageType: ''
    returnType: int
    signature: int devpoll_commit(struct devpollop *devpollop)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: devpoll_commit
      Src: /src/libevent/devpoll.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - devpollop
    - fd
    - events
    argTypes:
    - struct devpollop*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 118
    functionName: devpoll_queue
    functionSourceFile: /src/libevent/devpoll.c
    functionUses: 0
    functionsReached:
    - devpoll_commit
    linkageType: ''
    returnType: int
    signature: int devpoll_queue(struct devpollop *devpollop, int fd, int events)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/devpoll.c:127,1
    - Dst: getrlimit
      Src: /src/libevent/devpoll.c:130,1
    - Dst: evutil_open_closeonexec_
      Src: /src/libevent/devpoll.c:135,1
    - Dst: event_warn
      Src: /src/libevent/devpoll.c:136,1
    - Dst: mm_free
      Src: /src/libevent/devpoll.c:137,1
    - Dst: mm_calloc
      Src: /src/libevent/devpoll.c:146,1
    - Dst: mm_free
      Src: /src/libevent/devpoll.c:148,1
    - Dst: close
      Src: /src/libevent/devpoll.c:149,1
    - Dst: mm_calloc
      Src: /src/libevent/devpoll.c:154,1
    - Dst: mm_free
      Src: /src/libevent/devpoll.c:156,1
    - Dst: mm_free
      Src: /src/libevent/devpoll.c:157,1
    - Dst: close
      Src: /src/libevent/devpoll.c:158,1
    - Dst: evsig_init_
      Src: /src/libevent/devpoll.c:162,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 165
    functionName: devpoll_init
    functionSourceFile: /src/libevent/devpoll.c
    functionUses: 0
    functionsReached:
    - evsig_init_
    - close
    - mm_free
    - evutil_open_closeonexec_
    - mm_calloc
    - event_warn
    - getrlimit
    linkageType: ''
    returnType: void
    signature: 'void *

      devpoll_init(struct event_base *base)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: devpoll_commit
      Src: /src/libevent/devpoll.c:176,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/devpoll.c:185,1
    - Dst: ioctl
      Src: /src/libevent/devpoll.c:187,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/devpoll.c:189,1
    - Dst: event_warn
      Src: /src/libevent/devpoll.c:193,1
    - Dst: event_debug
      Src: /src/libevent/devpoll.c:200,1
    - Dst: evmap_io_active_
      Src: /src/libevent/devpoll.c:220,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 2
    argNames:
    - base
    - tv
    argTypes:
    - struct event_base*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 224
    functionName: devpoll_dispatch
    functionSourceFile: /src/libevent/devpoll.c
    functionUses: 0
    functionsReached:
    - EVBASE_RELEASE_LOCK
    - event_warn
    - devpoll_commit
    - evmap_io_active_
    - event_debug
    - EVBASE_ACQUIRE_LOCK
    - ioctl
    linkageType: ''
    returnType: int
    signature: int devpoll_dispatch(struct event_base *base, struct timeval *tv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: devpoll_queue
      Src: /src/libevent/devpoll.c:247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - int
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 251
    functionName: devpoll_add
    functionSourceFile: /src/libevent/devpoll.c
    functionUses: 0
    functionsReached:
    - devpoll_queue
    linkageType: ''
    returnType: int
    signature: int devpoll_add(struct event_base *base, int fd, short old, short events,
      void *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: devpoll_queue
      Src: /src/libevent/devpoll.c:273,1
    - Dst: devpoll_queue
      Src: /src/libevent/devpoll.c:284,1
    - Dst: devpoll_queue
      Src: /src/libevent/devpoll.c:287,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - int
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 292
    functionName: devpoll_del
    functionSourceFile: /src/libevent/devpoll.c
    functionUses: 0
    functionsReached:
    - devpoll_queue
    linkageType: ''
    returnType: int
    signature: int devpoll_del(struct event_base *base, int fd, short old, short events,
      void *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evsig_dealloc_
      Src: /src/libevent/devpoll.c:299,1
    - Dst: mm_free
      Src: /src/libevent/devpoll.c:301,1
    - Dst: mm_free
      Src: /src/libevent/devpoll.c:303,1
    - Dst: close
      Src: /src/libevent/devpoll.c:305,1
    - Dst: memset
      Src: /src/libevent/devpoll.c:307,1
    - Dst: mm_free
      Src: /src/libevent/devpoll.c:308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 309
    functionName: devpoll_dealloc
    functionSourceFile: /src/libevent/devpoll.c
    functionUses: 0
    functionsReached:
    - close
    - mm_free
    - memset
    - evsig_dealloc_
    linkageType: ''
    returnType: void
    signature: void devpoll_dealloc(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: DIV_ROUNDUP
    functionSourceFile: /src/libevent/select.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIV_ROUNDUP(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: SELECT_ALLOC_SIZE
    functionSourceFile: /src/libevent/select.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SELECT_ALLOC_SIZE(n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/select.c:114,1
    - Dst: select_resize
      Src: /src/libevent/select.c:117,1
    - Dst: SELECT_ALLOC_SIZE
      Src: /src/libevent/select.c:117,1
    - Dst: select_free_selectop
      Src: /src/libevent/select.c:118,1
    - Dst: sigfd_init_
      Src: /src/libevent/select.c:122,1
    - Dst: evsig_init_
      Src: /src/libevent/select.c:123,1
    - Dst: evutil_weakrand_seed_
      Src: /src/libevent/select.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 128
    functionName: select_init
    functionSourceFile: /src/libevent/select.c
    functionUses: 0
    functionsReached:
    - evsig_init_
    - select_resize
    - SELECT_ALLOC_SIZE
    - evutil_weakrand_seed_
    - mm_calloc
    - select_free_selectop
    - sigfd_init_
    linkageType: ''
    returnType: void
    signature: 'void *

      select_init(struct event_base *base)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - sop
    argTypes:
    - struct selectop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: check_selectop
    functionSourceFile: /src/libevent/select.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void check_selectop(struct selectop *sop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sop
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: check_selectop
    functionSourceFile: /src/libevent/select.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_selectop(sop)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: check_selectop
      Src: /src/libevent/select.c:146,1
    - Dst: mm_realloc
      Src: /src/libevent/select.c:150,1
    - Dst: mm_realloc
      Src: /src/libevent/select.c:153,1
    - Dst: memcpy
      Src: /src/libevent/select.c:164,1
    - Dst: memcpy
      Src: /src/libevent/select.c:166,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/select.c:171,1
    - Dst: select
      Src: /src/libevent/select.c:173,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/select.c:176,1
    - Dst: check_selectop
      Src: /src/libevent/select.c:178,1
    - Dst: event_warn
      Src: /src/libevent/select.c:182,1
    - Dst: event_debug
      Src: /src/libevent/select.c:189,1
    - Dst: check_selectop
      Src: /src/libevent/select.c:191,1
    - Dst: evutil_weakrand_range_
      Src: /src/libevent/select.c:192,1
    - Dst: FD_ISSET
      Src: /src/libevent/select.c:197,1
    - Dst: FD_ISSET
      Src: /src/libevent/select.c:199,1
    - Dst: evmap_io_active_
      Src: /src/libevent/select.c:205,1
    - Dst: check_selectop
      Src: /src/libevent/select.c:207,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 2
    argNames:
    - base
    - tv
    argTypes:
    - struct event_base*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 210
    functionName: select_dispatch
    functionSourceFile: /src/libevent/select.c
    functionUses: 0
    functionsReached:
    - check_selectop
    - select
    - evutil_weakrand_range_
    - EVBASE_RELEASE_LOCK
    - FD_ISSET
    - mm_realloc
    - event_warn
    - evmap_io_active_
    - memcpy
    - event_debug
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: int
    signature: int select_dispatch(struct event_base *base, struct timeval *tv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_selectop
      Src: /src/libevent/select.c:219,1
    - Dst: mm_realloc
      Src: /src/libevent/select.c:221,1
    - Dst: mm_realloc
      Src: /src/libevent/select.c:224,1
    - Dst: memset
      Src: /src/libevent/select.c:236,1
    - Dst: memset
      Src: /src/libevent/select.c:238,1
    - Dst: check_selectop
      Src: /src/libevent/select.c:242,1
    - Dst: event_warn
      Src: /src/libevent/select.c:247,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - sop
    - fdsz
    argTypes:
    - struct selectop*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 249
    functionName: select_resize
    functionSourceFile: /src/libevent/select.c
    functionUses: 1
    functionsReached:
    - memset
    - check_selectop
    - mm_realloc
    - event_warn
    linkageType: ''
    returnType: int
    signature: int select_resize(struct selectop *sop, int fdsz)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/select.c:258,1
    - Dst: check_selectop
      Src: /src/libevent/select.c:259,1
    - Dst: SELECT_ALLOC_SIZE
      Src: /src/libevent/select.c:273,1
    - Dst: select_resize
      Src: /src/libevent/select.c:277,1
    - Dst: check_selectop
      Src: /src/libevent/select.c:278,1
    - Dst: FD_SET
      Src: /src/libevent/select.c:287,1
    - Dst: FD_SET
      Src: /src/libevent/select.c:289,1
    - Dst: check_selectop
      Src: /src/libevent/select.c:290,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - int
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 293
    functionName: select_add
    functionSourceFile: /src/libevent/select.c
    functionUses: 0
    functionsReached:
    - check_selectop
    - select_resize
    - SELECT_ALLOC_SIZE
    - EVUTIL_ASSERT
    - FD_SET
    linkageType: ''
    returnType: int
    signature: int select_add(struct event_base *base, int fd, short old, short events,
      void *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/select.c:305,1
    - Dst: check_selectop
      Src: /src/libevent/select.c:306,1
    - Dst: check_selectop
      Src: /src/libevent/select.c:309,1
    - Dst: FD_CLR
      Src: /src/libevent/select.c:314,1
    - Dst: FD_CLR
      Src: /src/libevent/select.c:317,1
    - Dst: check_selectop
      Src: /src/libevent/select.c:319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - base
    - fd
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - int
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 321
    functionName: select_del
    functionSourceFile: /src/libevent/select.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - check_selectop
    - FD_CLR
    linkageType: ''
    returnType: int
    signature: int select_del(struct event_base *base, int fd, short old, short events,
      void *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mm_free
      Src: /src/libevent/select.c:327,1
    - Dst: mm_free
      Src: /src/libevent/select.c:329,1
    - Dst: mm_free
      Src: /src/libevent/select.c:331,1
    - Dst: mm_free
      Src: /src/libevent/select.c:333,1
    - Dst: memset
      Src: /src/libevent/select.c:335,1
    - Dst: mm_free
      Src: /src/libevent/select.c:336,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - sop
    argTypes:
    - struct selectop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 337
    functionName: select_free_selectop
    functionSourceFile: /src/libevent/select.c
    functionUses: 1
    functionsReached:
    - memset
    - mm_free
    linkageType: ''
    returnType: void
    signature: void select_free_selectop(struct selectop *sop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evsig_dealloc_
      Src: /src/libevent/select.c:342,1
    - Dst: select_free_selectop
      Src: /src/libevent/select.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: select_dealloc
    functionSourceFile: /src/libevent/select.c
    functionUses: 0
    functionsReached:
    - select_free_selectop
    - evsig_dealloc_
    linkageType: ''
    returnType: void
    signature: void select_dealloc(struct event_base *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: EVSIGBASE_LOCK
    functionSourceFile: /src/libevent/signal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVSIGBASE_LOCK()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: EVSIGBASE_UNLOCK
    functionSourceFile: /src/libevent/signal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVSIGBASE_UNLOCK()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVSIGBASE_LOCK
      Src: /src/libevent/signal.c:124,1
    - Dst: EVSIGBASE_UNLOCK
      Src: /src/libevent/signal.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: evsig_set_base_
    functionSourceFile: /src/libevent/signal.c
    functionUses: 1
    functionsReached:
    - EVSIGBASE_UNLOCK
    - EVSIGBASE_LOCK
    linkageType: ''
    returnType: void
    signature: void evsig_set_base_(struct event_base *base)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/signal.c:143,1
    - Dst: recv
      Src: /src/libevent/signal.c:147,1
    - Dst: read
      Src: /src/libevent/signal.c:149,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/signal.c:152,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/signal.c:153,1
    - Dst: event_sock_err
      Src: /src/libevent/signal.c:154,1
    - Dst: EVBASE_ACQUIRE_LOCK
      Src: /src/libevent/signal.c:167,1
    - Dst: evmap_signal_active_
      Src: /src/libevent/signal.c:170,1
    - Dst: EVBASE_RELEASE_LOCK
      Src: /src/libevent/signal.c:172,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 173
    functionName: evsig_cb
    functionSourceFile: /src/libevent/signal.c
    functionUses: 0
    functionsReached:
    - recv
    - evmap_signal_active_
    - EVBASE_RELEASE_LOCK
    - event_sock_err
    - EVUTIL_ERR_RW_RETRIABLE
    - memset
    - read
    - evutil_socket_geterror
    - EVBASE_ACQUIRE_LOCK
    linkageType: ''
    returnType: void
    signature: void evsig_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evutil_make_internal_pipe_
      Src: /src/libevent/signal.c:183,1
    - Dst: event_sock_warn
      Src: /src/libevent/signal.c:187,1
    - Dst: event_sock_err
      Src: /src/libevent/signal.c:189,1
    - Dst: mm_free
      Src: /src/libevent/signal.c:195,1
    - Dst: event_assign
      Src: /src/libevent/signal.c:200,1
    - Dst: event_priority_set
      Src: /src/libevent/signal.c:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 175
    functionDepth: 6
    functionLinenumber: 175
    functionLinenumberEnd: 209
    functionName: evsig_init_
    functionSourceFile: /src/libevent/signal.c
    functionUses: 7
    functionsReached:
    - mm_free
    - evutil_make_internal_pipe_
    - event_sock_err
    - event_priority_set
    - event_assign
    - event_sock_warn
    linkageType: ''
    returnType: int
    signature: int evsig_init_(struct event_base *base)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_debug
      Src: /src/libevent/signal.c:219,1
    - Dst: mm_realloc
      Src: /src/libevent/signal.c:221,1
    - Dst: event_warn
      Src: /src/libevent/signal.c:223,1
    - Dst: memset
      Src: /src/libevent/signal.c:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - sig
    - evsignal
    argTypes:
    - struct evsig_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 234
    functionName: evsig_ensure_saved_
    functionSourceFile: /src/libevent/signal.c
    functionUses: 1
    functionsReached:
    - memset
    - event_debug
    - mm_realloc
    - event_warn
    linkageType: ''
    returnType: int
    signature: int evsig_ensure_saved_(struct evsig_info *sig, int evsignal)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evsig_ensure_saved_
      Src: /src/libevent/signal.c:250,1
    - Dst: mm_malloc
      Src: /src/libevent/signal.c:254,1
    - Dst: event_warn
      Src: /src/libevent/signal.c:256,1
    - Dst: memset
      Src: /src/libevent/signal.c:262,1
    - Dst: sigfillset
      Src: /src/libevent/signal.c:267,1
    - Dst: sigaction
      Src: /src/libevent/signal.c:269,1
    - Dst: event_warn
      Src: /src/libevent/signal.c:270,1
    - Dst: mm_free
      Src: /src/libevent/signal.c:271,1
    - Dst: signal
      Src: /src/libevent/signal.c:276,1
    - Dst: event_warn
      Src: /src/libevent/signal.c:277,1
    - Dst: mm_free
      Src: /src/libevent/signal.c:278,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - base
    - evsignal
    argTypes:
    - struct event_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 286
    functionName: evsig_set_handler_
    functionSourceFile: /src/libevent/signal.c
    functionUses: 1
    functionsReached:
    - sigaction
    - mm_free
    - event_warn
    - mm_malloc
    - evsig_ensure_saved_
    - sigfillset
    - memset
    - signal
    linkageType: ''
    returnType: int
    signature: "int evsig_set_handler_(struct event_base *base,\n    int evsignal,
      void (__cdecl *handler)(int))"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/signal.c:294,1
    - Dst: EVSIGBASE_LOCK
      Src: /src/libevent/signal.c:297,1
    - Dst: event_warnx
      Src: /src/libevent/signal.c:299,1
    - Dst: EVSIGBASE_UNLOCK
      Src: /src/libevent/signal.c:310,1
    - Dst: event_debug
      Src: /src/libevent/signal.c:312,1
    - Dst: evsig_set_handler_
      Src: /src/libevent/signal.c:313,1
    - Dst: event_add_nolock_
      Src: /src/libevent/signal.c:319,1
    - Dst: EVSIGBASE_LOCK
      Src: /src/libevent/signal.c:327,1
    - Dst: EVSIGBASE_UNLOCK
      Src: /src/libevent/signal.c:330,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - base
    - evsignal
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 288
    functionDepth: 4
    functionLinenumber: 288
    functionLinenumberEnd: 332
    functionName: evsig_add
    functionSourceFile: /src/libevent/signal.c
    functionUses: 0
    functionsReached:
    - event_add_nolock_
    - EVUTIL_ASSERT
    - EVSIGBASE_UNLOCK
    - event_warnx
    - EVSIGBASE_LOCK
    - evsig_set_handler_
    - event_debug
    linkageType: ''
    returnType: int
    signature: int evsig_add(struct event_base *base, evutil_socket_t evsignal, short
      old, short events, void *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sigaction
      Src: /src/libevent/signal.c:355,1
    - Dst: event_warn
      Src: /src/libevent/signal.c:356,1
    - Dst: signal
      Src: /src/libevent/signal.c:360,1
    - Dst: event_warn
      Src: /src/libevent/signal.c:361,1
    - Dst: mm_free
      Src: /src/libevent/signal.c:366,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - base
    - evsignal
    argTypes:
    - struct event_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 369
    functionName: evsig_restore_handler_
    functionSourceFile: /src/libevent/signal.c
    functionUses: 1
    functionsReached:
    - sigaction
    - event_warn
    - signal
    - mm_free
    linkageType: ''
    returnType: int
    signature: int evsig_restore_handler_(struct event_base *base, int evsignal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/signal.c:374,1
    - Dst: event_debug
      Src: /src/libevent/signal.c:376,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/signal.c:377,1
    - Dst: EVSIGBASE_LOCK
      Src: /src/libevent/signal.c:379,1
    - Dst: EVSIGBASE_UNLOCK
      Src: /src/libevent/signal.c:382,1
    - Dst: evsig_restore_handler_
      Src: /src/libevent/signal.c:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - base
    - evsignal
    - old
    - events
    - p
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - short
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 371
    functionDepth: 3
    functionLinenumber: 371
    functionLinenumberEnd: 385
    functionName: evsig_del
    functionSourceFile: /src/libevent/signal.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - EVSIGBASE_UNLOCK
    - evsig_restore_handler_
    - EVSIGBASE_LOCK
    - event_debug
    - EV_SOCK_ARG
    linkageType: ''
    returnType: int
    signature: int evsig_del(struct event_base *base, evutil_socket_t evsignal, short
      old, short events, void *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/signal.c:392,1
    - Dst: event_warnx
      Src: /src/libevent/signal.c:397,1
    - Dst: signal
      Src: /src/libevent/signal.c:404,1
    - Dst: send
      Src: /src/libevent/signal.c:410,1
    - Dst: write
      Src: /src/libevent/signal.c:425,1
    - Dst: event_warnx
      Src: /src/libevent/signal.c:428,1
    - Dst: strerror
      Src: /src/libevent/signal.c:428,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/signal.c:435,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 437
    functionName: evsig_handler
    functionSourceFile: /src/libevent/signal.c
    functionUses: 0
    functionsReached:
    - EVUTIL_SET_SOCKET_ERROR
    - write
    - signal
    - EVUTIL_SOCKET_ERROR
    - strerror
    - event_warnx
    - send
    linkageType: ''
    returnType: void
    signature: void evsig_handler(int sig)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: event_del
      Src: /src/libevent/signal.c:444,1
    - Dst: event_debug_unassign
      Src: /src/libevent/signal.c:449,1
    - Dst: evsig_restore_handler_
      Src: /src/libevent/signal.c:453,1
    - Dst: EVSIGBASE_LOCK
      Src: /src/libevent/signal.c:455,1
    - Dst: EVSIGBASE_UNLOCK
      Src: /src/libevent/signal.c:461,1
    - Dst: evutil_closesocket
      Src: /src/libevent/signal.c:464,1
    - Dst: evutil_closesocket
      Src: /src/libevent/signal.c:468,1
    - Dst: mm_free
      Src: /src/libevent/signal.c:475,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 439
    functionDepth: 4
    functionLinenumber: 439
    functionLinenumberEnd: 478
    functionName: evsig_dealloc_
    functionSourceFile: /src/libevent/signal.c
    functionUses: 7
    functionsReached:
    - mm_free
    - event_del
    - event_debug_unassign
    - evutil_closesocket
    - EVSIGBASE_UNLOCK
    - evsig_restore_handler_
    - EVSIGBASE_LOCK
    linkageType: ''
    returnType: void
    signature: void evsig_dealloc_(struct event_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/signal.c:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 490
    functionName: evsig_free_globals_locks
    functionSourceFile: /src/libevent/signal.c
    functionUses: 0
    functionsReached:
    - EVTHREAD_FREE_LOCK
    linkageType: ''
    returnType: void
    signature: void evsig_free_globals_locks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evsig_free_globals_locks
      Src: /src/libevent/signal.c:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 496
    functionName: evsig_free_globals_
    functionSourceFile: /src/libevent/signal.c
    functionUses: 1
    functionsReached:
    - evsig_free_globals_locks
    linkageType: ''
    returnType: void
    signature: void evsig_free_globals_(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVTHREAD_SETUP_GLOBAL_LOCK
      Src: /src/libevent/signal.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - enable_locks
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 504
    functionName: evsig_global_setup_locks_
    functionSourceFile: /src/libevent/signal.c
    functionUses: 1
    functionsReached:
    - EVTHREAD_SETUP_GLOBAL_LOCK
    linkageType: ''
    returnType: int
    signature: int evsig_global_setup_locks_(const int enable_locks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:69,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:70,1
    - Dst: struct bufferevent*::be_ops::disable
      Src: /src/libevent/bufferevent.c:72,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bufev
    - what
    argTypes:
    - struct bufferevent*
    - bufferevent_suspend_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 75
    functionName: bufferevent_suspend_read_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 11
    functionsReached:
    - BEV_UNLOCK
    - struct bufferevent*::be_ops::disable
    - BEV_LOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: void
    signature: void bufferevent_suspend_read_(struct bufferevent *bufev, bufferevent_suspend_flags
      what)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:80,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:81,1
    - Dst: struct bufferevent*::be_ops::enable
      Src: /src/libevent/bufferevent.c:84,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bufev
    - what
    argTypes:
    - struct bufferevent*
    - bufferevent_suspend_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: bufferevent_unsuspend_read_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 13
    functionsReached:
    - BEV_UNLOCK
    - BEV_LOCK
    - BEV_UPCAST
    - struct bufferevent*::be_ops::enable
    linkageType: ''
    returnType: void
    signature: void bufferevent_unsuspend_read_(struct bufferevent *bufev, bufferevent_suspend_flags
      what)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:91,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:92,1
    - Dst: struct bufferevent*::be_ops::disable
      Src: /src/libevent/bufferevent.c:94,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bufev
    - what
    argTypes:
    - struct bufferevent*
    - bufferevent_suspend_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 97
    functionName: bufferevent_suspend_write_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 7
    functionsReached:
    - BEV_UNLOCK
    - struct bufferevent*::be_ops::disable
    - BEV_LOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: void
    signature: void bufferevent_suspend_write_(struct bufferevent *bufev, bufferevent_suspend_flags
      what)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:102,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:103,1
    - Dst: struct bufferevent*::be_ops::enable
      Src: /src/libevent/bufferevent.c:106,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bufev
    - what
    argTypes:
    - struct bufferevent*
    - bufferevent_suspend_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 108
    functionName: bufferevent_unsuspend_write_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 7
    functionsReached:
    - BEV_UNLOCK
    - BEV_LOCK
    - BEV_UPCAST
    - struct bufferevent*::be_ops::enable
    linkageType: ''
    returnType: void
    signature: void bufferevent_unsuspend_write_(struct bufferevent *bufev, bufferevent_suspend_flags
      what)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent.c:127,1
    - Dst: bufferevent_trigger
      Src: /src/libevent/bufferevent.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 131
    functionName: bufferevent_inbuf_wm_check
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - evbuffer_get_length
    - bufferevent_trigger
    linkageType: ''
    returnType: void
    signature: void bufferevent_inbuf_wm_check(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent.c:143,1
    - Dst: bufferevent_wm_suspend_read
      Src: /src/libevent/bufferevent.c:146,1
    - Dst: bufferevent_wm_unsuspend_read
      Src: /src/libevent/bufferevent.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - cbinfo
    - arg
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 149
    functionName: bufferevent_inbuf_wm_cb
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_wm_unsuspend_read
    - evbuffer_get_length
    - bufferevent_wm_suspend_read
    linkageType: ''
    returnType: void
    signature: "void bufferevent_inbuf_wm_cb(struct evbuffer *buf,\n    const struct
      evbuffer_cb_info *cbinfo,\n    void *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:157,1
    - Dst: struct bufferevent*::errorcb
      Src: /src/libevent/bufferevent.c:163,1
    - Dst: struct bufferevent*::readcb
      Src: /src/libevent/bufferevent.c:167,1
    - Dst: bufferevent_inbuf_wm_check
      Src: /src/libevent/bufferevent.c:168,1
    - Dst: struct bufferevent*::writecb
      Src: /src/libevent/bufferevent.c:172,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/bufferevent.c:179,1
    - Dst: struct bufferevent*::errorcb
      Src: /src/libevent/bufferevent.c:180,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent.c:182,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - cb
    - arg
    argTypes:
    - struct event_callback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 183
    functionName: bufferevent_run_deferred_callbacks_locked
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_inbuf_wm_check
    - EVUTIL_SET_SOCKET_ERROR
    - struct bufferevent*::errorcb
    - BEV_LOCK
    - struct bufferevent*::writecb
    - struct bufferevent*::readcb
    - bufferevent_decref_and_unlock_
    linkageType: ''
    returnType: void
    signature: void bufferevent_run_deferred_callbacks_locked(struct event_callback
      *cb, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:191,1
    - Dst: UNLOCKED
      Src: /src/libevent/bufferevent.c:202,1
    - Dst: errorcb
      Src: /src/libevent/bufferevent.c:202,1
    - Dst: UNLOCKED
      Src: /src/libevent/bufferevent.c:208,1
    - Dst: readcb
      Src: /src/libevent/bufferevent.c:208,1
    - Dst: bufferevent_inbuf_wm_check
      Src: /src/libevent/bufferevent.c:209,1
    - Dst: UNLOCKED
      Src: /src/libevent/bufferevent.c:215,1
    - Dst: writecb
      Src: /src/libevent/bufferevent.c:215,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/bufferevent.c:224,1
    - Dst: UNLOCKED
      Src: /src/libevent/bufferevent.c:225,1
    - Dst: errorcb
      Src: /src/libevent/bufferevent.c:225,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent.c:227,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - cb
    - arg
    argTypes:
    - struct event_callback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 229
    functionName: bufferevent_run_deferred_callbacks_unlocked
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - UNLOCKED
    - bufferevent_inbuf_wm_check
    - readcb
    - EVUTIL_SET_SOCKET_ERROR
    - writecb
    - BEV_LOCK
    - bufferevent_decref_and_unlock_
    - errorcb
    linkageType: ''
    returnType: void
    signature: void bufferevent_run_deferred_callbacks_unlocked(struct event_callback
      *cb, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stmt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: UNLOCKED
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLOCKED(stmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bevp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 238
    functionName: SCHEDULE_DEFERRED
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCHEDULE_DEFERRED(bevp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:244,1
    - Dst: SCHEDULE_DEFERRED
      Src: /src/libevent/bufferevent.c:249,1
    - Dst: struct bufferevent*::readcb
      Src: /src/libevent/bufferevent.c:251,1
    - Dst: bufferevent_inbuf_wm_check
      Src: /src/libevent/bufferevent.c:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bufev
    - options
    argTypes:
    - struct bufferevent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 254
    functionName: bufferevent_run_readcb_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - SCHEDULE_DEFERRED
    - struct bufferevent*::readcb
    - BEV_UPCAST
    - bufferevent_inbuf_wm_check
    linkageType: ''
    returnType: void
    signature: void bufferevent_run_readcb_(struct bufferevent *bufev, int options)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:260,1
    - Dst: SCHEDULE_DEFERRED
      Src: /src/libevent/bufferevent.c:265,1
    - Dst: struct bufferevent*::writecb
      Src: /src/libevent/bufferevent.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - bufev
    - options
    argTypes:
    - struct bufferevent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 269
    functionName: bufferevent_run_writecb_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - SCHEDULE_DEFERRED
    - BEV_UPCAST
    - struct bufferevent*::writecb
    linkageType: ''
    returnType: void
    signature: void bufferevent_run_writecb_(struct bufferevent *bufev, int options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent.c:279,1
    - Dst: bufferevent_trigger_nolock_
      Src: /src/libevent/bufferevent.c:280,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - bufev
    - iotype
    - options
    argTypes:
    - struct bufferevent*
    - short
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 282
    functionName: bufferevent_trigger
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - bufferevent_trigger_nolock_
    - bufferevent_incref_and_lock_
    - bufferevent_decref_and_unlock_
    linkageType: ''
    returnType: void
    signature: void bufferevent_trigger(struct bufferevent *bufev, short iotype, int
      options)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:288,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/bufferevent.c:293,1
    - Dst: SCHEDULE_DEFERRED
      Src: /src/libevent/bufferevent.c:294,1
    - Dst: struct bufferevent*::errorcb
      Src: /src/libevent/bufferevent.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - bufev
    - what
    - options
    argTypes:
    - struct bufferevent*
    - short
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 298
    functionName: bufferevent_run_eventcb_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 13
    functionsReached:
    - SCHEDULE_DEFERRED
    - struct bufferevent*::errorcb
    - EVUTIL_SOCKET_ERROR
    - BEV_UPCAST
    linkageType: ''
    returnType: void
    signature: void bufferevent_run_eventcb_(struct bufferevent *bufev, short what,
      int options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent.c:303,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent.c:304,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - bufev
    - what
    - options
    argTypes:
    - struct bufferevent*
    - short
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 306
    functionName: bufferevent_trigger_event
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_incref_and_lock_
    - bufferevent_decref_and_unlock_
    - bufferevent_run_eventcb_
    linkageType: ''
    returnType: void
    signature: void bufferevent_trigger_event(struct bufferevent *bufev, short what,
      int options)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/bufferevent.c:317,1
    - Dst: evbuffer_new
      Src: /src/libevent/bufferevent.c:322,1
    - Dst: evutil_timerclear
      Src: /src/libevent/bufferevent.c:330,1
    - Dst: evutil_timerclear
      Src: /src/libevent/bufferevent.c:331,1
    - Dst: bufferevent_ratelim_init_
      Src: /src/libevent/bufferevent.c:335,1
    - Dst: bufferevent_enable_locking_
      Src: /src/libevent/bufferevent.c:347,1
    - Dst: event_warnx
      Src: /src/libevent/bufferevent.c:353,1
    - Dst: event_deferred_cb_init_
      Src: /src/libevent/bufferevent.c:357,1
    - Dst: event_base_get_npriorities
      Src: /src/libevent/bufferevent.c:359,1
    - Dst: event_deferred_cb_init_
      Src: /src/libevent/bufferevent.c:363,1
    - Dst: event_base_get_npriorities
      Src: /src/libevent/bufferevent.c:365,1
    - Dst: evbuffer_set_parent_
      Src: /src/libevent/bufferevent.c:371,1
    - Dst: evbuffer_set_parent_
      Src: /src/libevent/bufferevent.c:372,1
    - Dst: evbuffer_free
      Src: /src/libevent/bufferevent.c:378,1
    - Dst: evbuffer_free
      Src: /src/libevent/bufferevent.c:382,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 4
    argNames:
    - bufev_private
    - base
    - ops
    - options
    argTypes:
    - struct bufferevent_private*
    - struct event_base*
    - struct bufferevent_ops*
    - enum bufferevent_options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 308
    functionDepth: 4
    functionLinenumber: 308
    functionLinenumberEnd: 386
    functionName: bufferevent_init_common_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 5
    functionsReached:
    - evbuffer_set_parent_
    - bufferevent_enable_locking_
    - evutil_timerclear
    - event_base_get_npriorities
    - evbuffer_free
    - bufferevent_ratelim_init_
    - event_deferred_cb_init_
    - event_warnx
    - evbuffer_new
    linkageType: ''
    returnType: int
    signature: "int bufferevent_init_common_(struct bufferevent_private *bufev_private,\n
      \   struct event_base *base,\n    const struct bufferevent_ops *ops,\n    enum
      bufferevent_options options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:393,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - bufev
    - readcb
    - writecb
    - eventcb
    - cbarg
    argTypes:
    - struct bufferevent*
    - bufferevent_data_cb
    - bufferevent_data_cb
    - bufferevent_event_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 401
    functionName: bufferevent_setcb
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 20
    functionsReached:
    - BEV_UNLOCK
    - BEV_LOCK
    linkageType: ''
    returnType: void
    signature: "void bufferevent_setcb(struct bufferevent *bufev,\n    bufferevent_data_cb
      readcb, bufferevent_data_cb writecb,\n    bufferevent_event_cb eventcb, void
      *cbarg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:410,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - bufev
    - readcb_ptr
    - writecb_ptr
    - eventcb_ptr
    - cbarg_ptr
    argTypes:
    - struct bufferevent*
    - bufferevent_data_cb*
    - bufferevent_data_cb*
    - bufferevent_event_cb*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 421
    functionName: bufferevent_getcb
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - BEV_UNLOCK
    - BEV_LOCK
    linkageType: ''
    returnType: void
    signature: "void bufferevent_getcb(struct bufferevent *bufev,\n    bufferevent_data_cb
      *readcb_ptr,\n    bufferevent_data_cb *writecb_ptr,\n    bufferevent_event_cb
      *eventcb_ptr,\n    void **cbarg_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 427
    functionName: bufferevent_get_input
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: struct evbuffer
    signature: 'struct evbuffer *

      bufferevent_get_input(struct bufferevent *bufev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 433
    functionName: bufferevent_get_output
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: struct evbuffer
    signature: 'struct evbuffer *

      bufferevent_get_output(struct bufferevent *bufev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 439
    functionName: bufferevent_get_base
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct event_base
    signature: 'struct event_base *

      bufferevent_get_base(struct bufferevent *bufev)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_initialized
      Src: /src/libevent/bufferevent.c:444,1
    - Dst: event_get_priority
      Src: /src/libevent/bufferevent.c:445,1
    - Dst: event_base_get_npriorities
      Src: /src/libevent/bufferevent.c:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 441
    functionDepth: 4
    functionLinenumber: 441
    functionLinenumberEnd: 449
    functionName: bufferevent_get_priority
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - event_get_priority
    - event_initialized
    - event_base_get_npriorities
    linkageType: ''
    returnType: int
    signature: int bufferevent_get_priority(const struct bufferevent *bufev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_add
      Src: /src/libevent/bufferevent.c:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bufev
    - data
    - size
    argTypes:
    - struct bufferevent*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 451
    functionDepth: 7
    functionLinenumber: 451
    functionLinenumberEnd: 458
    functionName: bufferevent_write
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 21
    functionsReached:
    - evbuffer_add
    linkageType: ''
    returnType: int
    signature: int bufferevent_write(struct bufferevent *bufev, const void *data,
      size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/bufferevent.c:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bufev
    - buf
    argTypes:
    - struct bufferevent*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 460
    functionDepth: 6
    functionLinenumber: 460
    functionLinenumberEnd: 467
    functionName: bufferevent_write_buffer
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - evbuffer_add_buffer
    linkageType: ''
    returnType: int
    signature: int bufferevent_write_buffer(struct bufferevent *bufev, struct evbuffer
      *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_remove
      Src: /src/libevent/bufferevent.c:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bufev
    - data
    - size
    argTypes:
    - struct bufferevent*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 469
    functionDepth: 5
    functionLinenumber: 469
    functionLinenumberEnd: 478
    functionName: bufferevent_read
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - evbuffer_remove
    linkageType: ''
    returnType: size_t
    signature: size_t bufferevent_read(struct bufferevent *bufev, void *data, size_t
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/bufferevent.c:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bufev
    - buf
    argTypes:
    - struct bufferevent*
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 480
    functionDepth: 6
    functionLinenumber: 480
    functionLinenumberEnd: 484
    functionName: bufferevent_read_buffer
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_buffer
    linkageType: ''
    returnType: int
    signature: int bufferevent_read_buffer(struct bufferevent *bufev, struct evbuffer
      *buf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:489,1
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent.c:493,1
    - Dst: struct bufferevent*::be_ops::enable
      Src: /src/libevent/bufferevent.c:501,1
    - Dst: event_debug
      Src: /src/libevent/bufferevent.c:504,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent.c:506,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - bufev
    - event
    argTypes:
    - struct bufferevent*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 508
    functionName: bufferevent_enable
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 26
    functionsReached:
    - bufferevent_incref_and_lock_
    - struct bufferevent*::be_ops::enable
    - BEV_UPCAST
    - event_debug
    - bufferevent_decref_and_unlock_
    linkageType: ''
    returnType: int
    signature: int bufferevent_enable(struct bufferevent *bufev, short event)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:516,1
    - Dst: evutil_timerclear
      Src: /src/libevent/bufferevent.c:520,1
    - Dst: evutil_timerclear
      Src: /src/libevent/bufferevent.c:525,1
    - Dst: struct bufferevent*::be_ops::adj_timeouts
      Src: /src/libevent/bufferevent.c:529,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:530,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - bufev
    - tv_read
    - tv_write
    argTypes:
    - struct bufferevent*
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 533
    functionName: bufferevent_set_timeouts
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 9
    functionsReached:
    - BEV_UNLOCK
    - struct bufferevent*::be_ops::adj_timeouts
    - BEV_LOCK
    - evutil_timerclear
    linkageType: ''
    returnType: int
    signature: "int bufferevent_set_timeouts(struct bufferevent *bufev,\n\t\t\t const
      struct timeval *tv_read,\n\t\t\t const struct timeval *tv_write)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/bufferevent.c:544,1
    - Dst: memset
      Src: /src/libevent/bufferevent.c:545,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/bufferevent.c:556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - bufev
    - timeout_read
    - timeout_write
    argTypes:
    - struct bufferevent*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 537
    functionDepth: 2
    functionLinenumber: 537
    functionLinenumberEnd: 557
    functionName: bufferevent_settimeout
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - memset
    - bufferevent_set_timeouts
    linkageType: ''
    returnType: void
    signature: "void bufferevent_settimeout(struct bufferevent *bufev,\n\t\t       int
      timeout_read, int timeout_write)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:564,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:566,1
    - Dst: struct bufferevent*::be_ops::disable
      Src: /src/libevent/bufferevent.c:570,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - bufev
    - event
    argTypes:
    - struct bufferevent*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 575
    functionName: bufferevent_disable_hard_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - BEV_UNLOCK
    - struct bufferevent*::be_ops::disable
    - BEV_LOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: int
    signature: int bufferevent_disable_hard_(struct bufferevent *bufev, short event)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:582,1
    - Dst: struct bufferevent*::be_ops::disable
      Src: /src/libevent/bufferevent.c:585,1
    - Dst: event_debug
      Src: /src/libevent/bufferevent.c:588,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - bufev
    - event
    argTypes:
    - struct bufferevent*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 592
    functionName: bufferevent_disable
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 17
    functionsReached:
    - event_debug
    - struct bufferevent*::be_ops::disable
    - BEV_LOCK
    - BEV_UNLOCK
    linkageType: ''
    returnType: int
    signature: int bufferevent_disable(struct bufferevent *bufev, short event)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:602,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:604,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/bufferevent.c:621,1
    - Dst: evbuffer_cb_set_flags
      Src: /src/libevent/bufferevent.c:625,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent.c:629,1
    - Dst: bufferevent_wm_suspend_read
      Src: /src/libevent/bufferevent.c:630,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent.c:631,1
    - Dst: bufferevent_wm_unsuspend_read
      Src: /src/libevent/bufferevent.c:632,1
    - Dst: evbuffer_cb_clear_flags
      Src: /src/libevent/bufferevent.c:636,1
    - Dst: bufferevent_wm_unsuspend_read
      Src: /src/libevent/bufferevent.c:639,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:642,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - bufev
    - events
    - lowmark
    - highmark
    argTypes:
    - struct bufferevent*
    - short
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 598
    functionDepth: 2
    functionLinenumber: 598
    functionLinenumberEnd: 643
    functionName: bufferevent_setwatermark
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 6
    functionsReached:
    - evbuffer_add_cb
    - bufferevent_wm_suspend_read
    - evbuffer_cb_clear_flags
    - bufferevent_wm_unsuspend_read
    - evbuffer_get_length
    - BEV_UPCAST
    - BEV_UNLOCK
    - BEV_LOCK
    - evbuffer_cb_set_flags
    linkageType: ''
    returnType: void
    signature: "void bufferevent_setwatermark(struct bufferevent *bufev, short events,\n
      \   size_t lowmark, size_t highmark)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:650,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:655,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:660,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:665,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - bufev
    - events
    - lowmark
    - highmark
    argTypes:
    - struct bufferevent*
    - short
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 669
    functionName: bufferevent_getwatermark
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - BEV_UNLOCK
    - BEV_LOCK
    linkageType: ''
    returnType: int
    signature: "int bufferevent_getwatermark(struct bufferevent *bufev, short events,\n
      \   size_t *lowmark, size_t *highmark)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:677,1
    - Dst: struct bufferevent*::be_ops::flush
      Src: /src/libevent/bufferevent.c:679,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - bufev
    - iotype
    - mode
    argTypes:
    - struct bufferevent*
    - short
    - enum bufferevent_flush_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 682
    functionName: bufferevent_flush
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - BEV_UNLOCK
    - BEV_LOCK
    - struct bufferevent*::be_ops::flush
    linkageType: ''
    returnType: int
    signature: "int bufferevent_flush(struct bufferevent *bufev,\n    short iotype,\n
      \   enum bufferevent_flush_mode mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:687,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 690
    functionName: bufferevent_incref_and_lock_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 14
    functionsReached:
    - BEV_LOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: void
    signature: void bufferevent_incref_and_lock_(struct bufferevent *bufev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:697,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:698,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - donor
    - recipient
    argTypes:
    - struct bufferevent*
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 707
    functionName: bufferevent_transfer_lock_ownership_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - BEV_UPCAST
    linkageType: ''
    returnType: void
    signature: "void bufferevent_transfer_lock_ownership_(struct bufferevent *donor,\n
      \   struct bufferevent *recipient)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:713,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/bufferevent.c:718,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:721,1
    - Dst: struct bufferevent*::be_ops::unlink
      Src: /src/libevent/bufferevent.c:726,1
    - Dst: event_initialized
      Src: /src/libevent/bufferevent.c:736,1
    - Dst: evbuffer_get_callbacks_
      Src: /src/libevent/bufferevent.c:739,1
    - Dst: evbuffer_get_callbacks_
      Src: /src/libevent/bufferevent.c:740,1
    - Dst: event_callback_finalize_many_
      Src: /src/libevent/bufferevent.c:742,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:746,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 710
    functionDepth: 4
    functionLinenumber: 710
    functionLinenumberEnd: 749
    functionName: bufferevent_decref_and_unlock_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 20
    functionsReached:
    - evbuffer_get_callbacks_
    - EVUTIL_ASSERT
    - struct bufferevent*::be_ops::unlink
    - event_callback_finalize_many_
    - BEV_UPCAST
    - BEV_UNLOCK
    - event_initialized
    linkageType: ''
    returnType: int
    signature: int bufferevent_decref_and_unlock_(struct bufferevent *bufev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:756,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:758,1
    - Dst: bufferevent_get_underlying
      Src: /src/libevent/bufferevent.c:759,1
    - Dst: struct bufferevent*::be_ops::destruct
      Src: /src/libevent/bufferevent.c:763,1
    - Dst: evbuffer_free
      Src: /src/libevent/bufferevent.c:769,1
    - Dst: evbuffer_free
      Src: /src/libevent/bufferevent.c:770,1
    - Dst: bufferevent_remove_from_rate_limit_group_internal_
      Src: /src/libevent/bufferevent.c:774,1
    - Dst: mm_free
      Src: /src/libevent/bufferevent.c:775,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:780,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/bufferevent.c:783,1
    - Dst: mm_free
      Src: /src/libevent/bufferevent.c:787,1
    - Dst: bufferevent_decref_
      Src: /src/libevent/bufferevent.c:800,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - evcb
    - arg_
    argTypes:
    - struct event_callback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 751
    functionDepth: 4
    functionLinenumber: 751
    functionLinenumberEnd: 801
    functionName: bufferevent_finalize_cb_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_underlying
    - mm_free
    - bufferevent_remove_from_rate_limit_group_internal_
    - evbuffer_free
    - EVTHREAD_FREE_LOCK
    - struct bufferevent*::be_ops::destruct
    - BEV_UPCAST
    - bufferevent_decref_
    - BEV_UNLOCK
    - BEV_LOCK
    linkageType: ''
    returnType: void
    signature: void bufferevent_finalize_cb_(struct event_callback *evcb, void *arg_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:806,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent.c:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 803
    functionDepth: 5
    functionLinenumber: 803
    functionLinenumberEnd: 808
    functionName: bufferevent_decref
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - BEV_LOCK
    - bufferevent_decref_and_unlock_
    linkageType: ''
    returnType: int
    signature: int bufferevent_decref(struct bufferevent *bufev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:813,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/bufferevent.c:814,1
    - Dst: bufferevent_cancel_all_
      Src: /src/libevent/bufferevent.c:815,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent.c:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 810
    functionDepth: 5
    functionLinenumber: 810
    functionLinenumberEnd: 817
    functionName: bufferevent_free
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 24
    functionsReached:
    - bufferevent_setcb
    - bufferevent_cancel_all_
    - BEV_LOCK
    - bufferevent_decref_and_unlock_
    linkageType: ''
    returnType: void
    signature: void bufferevent_free(struct bufferevent *bufev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:822,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:828,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 831
    functionName: bufferevent_incref
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - BEV_UNLOCK
    - BEV_LOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: void
    signature: void bufferevent_incref(struct bufferevent *bufev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:841,1
    - Dst: bufferevent_get_underlying
      Src: /src/libevent/bufferevent.c:843,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:845,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:846,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:847,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:848,1
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/bufferevent.c:850,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:853,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:854,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:856,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:857,1
    - Dst: evbuffer_enable_locking
      Src: /src/libevent/bufferevent.c:859,1
    - Dst: evbuffer_enable_locking
      Src: /src/libevent/bufferevent.c:860,1
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:862,1
    - Dst: bufferevent_enable_locking_
      Src: /src/libevent/bufferevent.c:863,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - bufev
    - lock
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 833
    functionDepth: 2
    functionLinenumber: 833
    functionLinenumberEnd: 867
    functionName: bufferevent_enable_locking_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 6
    functionsReached:
    - EVTHREAD_ALLOC_LOCK
    - bufferevent_get_underlying
    - bufferevent_enable_locking_
    - evbuffer_enable_locking
    - BEV_UPCAST
    linkageType: ''
    returnType: int
    signature: int bufferevent_enable_locking_(struct bufferevent *bufev, void *lock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:875,1
    - Dst: struct bufferevent*::be_ops::ctrl
      Src: /src/libevent/bufferevent.c:877,1
    - Dst: event_debug
      Src: /src/libevent/bufferevent.c:879,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:880,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - bev
    - fd
    argTypes:
    - struct bufferevent*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 869
    functionDepth: 1
    functionLinenumber: 869
    functionLinenumberEnd: 882
    functionName: bufferevent_setfd
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - event_debug
    - struct bufferevent*::be_ops::ctrl
    - BEV_LOCK
    - BEV_UNLOCK
    linkageType: ''
    returnType: int
    signature: int bufferevent_setfd(struct bufferevent *bev, evutil_socket_t fd)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:891,1
    - Dst: struct bufferevent*::be_ops::ctrl
      Src: /src/libevent/bufferevent.c:893,1
    - Dst: evutil_closesocket
      Src: /src/libevent/bufferevent.c:897,1
    - Dst: struct bufferevent*::be_ops::ctrl
      Src: /src/libevent/bufferevent.c:902,1
    - Dst: event_debug
      Src: /src/libevent/bufferevent.c:906,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:907,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - bev
    - fd
    argTypes:
    - struct bufferevent*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 884
    functionDepth: 1
    functionLinenumber: 884
    functionLinenumberEnd: 910
    functionName: bufferevent_replacefd
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 3
    functionsReached:
    - evutil_closesocket
    - event_debug
    - struct bufferevent*::be_ops::ctrl
    - BEV_LOCK
    - BEV_UNLOCK
    linkageType: ''
    returnType: int
    signature: int bufferevent_replacefd(struct bufferevent *bev, evutil_socket_t
      fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:918,1
    - Dst: struct bufferevent*::be_ops::ctrl
      Src: /src/libevent/bufferevent.c:920,1
    - Dst: event_debug
      Src: /src/libevent/bufferevent.c:922,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:923,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 925
    functionName: bufferevent_getfd
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 6
    functionsReached:
    - event_debug
    - struct bufferevent*::be_ops::ctrl
    - BEV_LOCK
    - BEV_UNLOCK
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t bufferevent_getfd(struct bufferevent *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:930,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:933,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 927
    functionDepth: 1
    functionLinenumber: 927
    functionLinenumberEnd: 937
    functionName: bufferevent_get_options_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - BEV_UNLOCK
    - BEV_LOCK
    - BEV_UPCAST
    linkageType: ''
    returnType: enum bufferevent_options
    signature: enum bufferevent_options bufferevent_get_options_(struct bufferevent
      *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/bufferevent.c:944,1
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:945,1
    - Dst: struct bufferevent*::be_ops::ctrl
      Src: /src/libevent/bufferevent.c:947,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:948,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 940
    functionDepth: 1
    functionLinenumber: 940
    functionLinenumberEnd: 949
    functionName: bufferevent_cancel_all_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - memset
    - BEV_UNLOCK
    - struct bufferevent*::be_ops::ctrl
    - BEV_LOCK
    linkageType: ''
    returnType: void
    signature: void bufferevent_cancel_all_(struct bufferevent *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:955,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bufev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 959
    functionName: bufferevent_get_enabled
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - BEV_UNLOCK
    - BEV_LOCK
    linkageType: ''
    returnType: short
    signature: short bufferevent_get_enabled(struct bufferevent *bufev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BEV_LOCK
      Src: /src/libevent/bufferevent.c:967,1
    - Dst: struct bufferevent*::be_ops::ctrl
      Src: /src/libevent/bufferevent.c:969,1
    - Dst: BEV_UNLOCK
      Src: /src/libevent/bufferevent.c:970,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 972
    functionName: bufferevent_get_underlying
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 2
    functionsReached:
    - BEV_UNLOCK
    - struct bufferevent*::be_ops::ctrl
    - BEV_LOCK
    linkageType: ''
    returnType: struct bufferevent
    signature: 'struct bufferevent *

      bufferevent_get_underlying(struct bufferevent *bev)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent.c:978,1
    - Dst: bufferevent_disable
      Src: /src/libevent/bufferevent.c:979,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent.c:980,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent.c:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - event
    - ctx
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 974
    functionDepth: 5
    functionLinenumber: 974
    functionLinenumberEnd: 982
    functionName: bufferevent_generic_read_timeout_cb
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_incref_and_lock_
    - bufferevent_decref_and_unlock_
    - bufferevent_run_eventcb_
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void bufferevent_generic_read_timeout_cb(evutil_socket_t fd, short
      event, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent.c:987,1
    - Dst: bufferevent_disable
      Src: /src/libevent/bufferevent.c:988,1
    - Dst: bufferevent_run_eventcb_
      Src: /src/libevent/bufferevent.c:989,1
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent.c:990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - event
    - ctx
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 983
    functionDepth: 5
    functionLinenumber: 983
    functionLinenumberEnd: 991
    functionName: bufferevent_generic_write_timeout_cb
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_incref_and_lock_
    - bufferevent_decref_and_unlock_
    - bufferevent_run_eventcb_
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void bufferevent_generic_write_timeout_cb(evutil_socket_t fd, short
      event, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_assign
      Src: /src/libevent/bufferevent.c:996,1
    - Dst: event_assign
      Src: /src/libevent/bufferevent.c:998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 993
    functionDepth: 4
    functionLinenumber: 993
    functionLinenumberEnd: 1000
    functionName: bufferevent_init_generic_timeout_cbs_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 4
    functionsReached:
    - event_assign
    linkageType: ''
    returnType: void
    signature: void bufferevent_init_generic_timeout_cbs_(struct bufferevent *bev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BEV_UPCAST
      Src: /src/libevent/bufferevent.c:1006,1
    - Dst: evutil_timerisset
      Src: /src/libevent/bufferevent.c:1009,1
    - Dst: event_add
      Src: /src/libevent/bufferevent.c:1010,1
    - Dst: event_del
      Src: /src/libevent/bufferevent.c:1012,1
    - Dst: evutil_timerisset
      Src: /src/libevent/bufferevent.c:1015,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/bufferevent.c:1016,1
    - Dst: event_add
      Src: /src/libevent/bufferevent.c:1017,1
    - Dst: event_del
      Src: /src/libevent/bufferevent.c:1019,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1002
    functionDepth: 4
    functionLinenumber: 1002
    functionLinenumberEnd: 1023
    functionName: bufferevent_generic_adj_timeouts_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - evutil_timerisset
    - event_del
    - event_add
    - evbuffer_get_length
    - BEV_UPCAST
    linkageType: ''
    returnType: int
    signature: int bufferevent_generic_adj_timeouts_(struct bufferevent *bev)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: event_pending
      Src: /src/libevent/bufferevent.c:1029,1
    - Dst: evutil_timerisset
      Src: /src/libevent/bufferevent.c:1030,1
    - Dst: bufferevent_add_event_
      Src: /src/libevent/bufferevent.c:1031,1
    - Dst: event_remove_timer
      Src: /src/libevent/bufferevent.c:1034,1
    - Dst: event_pending
      Src: /src/libevent/bufferevent.c:1037,1
    - Dst: evutil_timerisset
      Src: /src/libevent/bufferevent.c:1038,1
    - Dst: bufferevent_add_event_
      Src: /src/libevent/bufferevent.c:1039,1
    - Dst: event_remove_timer
      Src: /src/libevent/bufferevent.c:1042,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1025
    functionDepth: 5
    functionLinenumber: 1025
    functionLinenumberEnd: 1046
    functionName: bufferevent_generic_adj_existing_timeouts_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - event_pending
    - event_remove_timer
    - evutil_timerisset
    - bufferevent_add_event_
    linkageType: ''
    returnType: int
    signature: int bufferevent_generic_adj_existing_timeouts_(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_timerisset
      Src: /src/libevent/bufferevent.c:1051,1
    - Dst: event_add
      Src: /src/libevent/bufferevent.c:1052,1
    - Dst: event_add
      Src: /src/libevent/bufferevent.c:1054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ev
    - tv
    argTypes:
    - struct event*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1048
    functionDepth: 3
    functionLinenumber: 1048
    functionLinenumberEnd: 1055
    functionName: bufferevent_add_event_
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 7
    functionsReached:
    - evutil_timerisset
    - event_add
    linkageType: ''
    returnType: int
    signature: int bufferevent_add_event_(struct event *ev, const struct timeval *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_incref_and_lock_
      Src: /src/libevent/bufferevent.c:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1059
    functionDepth: 2
    functionLinenumber: 1059
    functionLinenumberEnd: 1063
    functionName: bufferevent_lock
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - bufferevent_incref_and_lock_
    linkageType: ''
    returnType: void
    signature: void bufferevent_lock(struct bufferevent *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_decref_and_unlock_
      Src: /src/libevent/bufferevent.c:1068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1065
    functionDepth: 5
    functionLinenumber: 1065
    functionLinenumberEnd: 1069
    functionName: bufferevent_unlock
    functionSourceFile: /src/libevent/bufferevent.c
    functionUses: 1
    functionsReached:
    - bufferevent_decref_and_unlock_
    linkageType: ''
    returnType: void
    signature: void bufferevent_unlock(struct bufferevent *bev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/libevent/epoll_sub.c:45,1
    - Dst: syscall
      Src: /src/libevent/epoll_sub.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 49
    functionName: epoll_create
    functionSourceFile: /src/libevent/epoll_sub.c
    functionUses: 1
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int epoll_create(int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/libevent/epoll_sub.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - epfd
    - op
    - fd
    - event
    argTypes:
    - int
    - int
    - int
    - struct epoll_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: epoll_ctl
    functionSourceFile: /src/libevent/epoll_sub.c
    functionUses: 2
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/libevent/epoll_sub.c:62,1
    - Dst: syscall
      Src: /src/libevent/epoll_sub.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - epfd
    - events
    - maxevents
    - timeout
    argTypes:
    - int
    - struct epoll_event*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: epoll_wait
    functionSourceFile: /src/libevent/epoll_sub.c
    functionUses: 1
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int epoll_wait(int epfd, struct epoll_event *events, int maxevents,
      int timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 14
    functionName: main
    functionSourceFile: /src/libevent/cmake/CheckFileOffsetBits.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_configure_monotonic_time_
      Src: /src/libevent/test/tinytest.c:116,1
    - Dst: evutil_gettime_monotonic_
      Src: /src/libevent/test/tinytest.c:119,1
    - Dst: GetTickCount64
      Src: /src/libevent/test/tinytest.c:121,1
    - Dst: gettimeofday
      Src: /src/libevent/test/tinytest.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 128
    functionName: gettime_
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached:
    - GetTickCount64
    - evutil_configure_monotonic_time_
    - evutil_gettime_monotonic_
    - gettimeofday
    linkageType: ''
    returnType: double
    signature: double gettime_(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExitThread
      Src: /src/libevent/test/tinytest.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - LPVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 145
    functionName: timeout_thread_proc_
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached:
    - ExitThread
    linkageType: ''
    returnType: DWORD
    signature: DWORD timeout_thread_proc_(LPVOID arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libevent/test/tinytest.c:152,1
    - Dst: CreateThread
      Src: /src/libevent/test/tinytest.c:160,1
    - Dst: WaitForSingleObject
      Src: /src/libevent/test/tinytest.c:162,1
    - Dst: GetExitCodeThread
      Src: /src/libevent/test/tinytest.c:165,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:166,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:170,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:172,1
    - Dst: CloseHandle
      Src: /src/libevent/test/tinytest.c:174,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - testcase
    - env
    argTypes:
    - struct testcase_t*
    - void*
    assertStmts:
    - condition: (opt_timeout)
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/libevent/test/tinytest.c
    constantsTouched: []
    func_position:
      end: 181
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 181
    functionName: testcase_run_in_thread_
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached:
    - CreateThread
    - GetExitCodeThread
    - CloseHandle
    - printf
    - WaitForSingleObject
    - assert
    linkageType: ''
    returnType: enum outcome
    signature: enum outcome testcase_run_in_thread_(const struct testcase_t *testcase,
      void *env)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alarm
      Src: /src/libevent/test/tinytest.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: testcase_set_timeout_
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached:
    - alarm
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int testcase_set_timeout_(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alarm
      Src: /src/libevent/test/tinytest.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: testcase_reset_timeout_
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached:
    - alarm
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int testcase_reset_timeout_(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: struct testcase_t*::setup::setup_fn
      Src: /src/libevent/test/tinytest.c:200,1
    - Dst: testcase_run_in_thread_
      Src: /src/libevent/test/tinytest.c:211,1
    - Dst: testcase_set_timeout_
      Src: /src/libevent/test/tinytest.c:213,1
    - Dst: struct testcase_t*::fn
      Src: /src/libevent/test/tinytest.c:214,1
    - Dst: testcase_reset_timeout_
      Src: /src/libevent/test/tinytest.c:215,1
    - Dst: struct testcase_t*::fn
      Src: /src/libevent/test/tinytest.c:218,1
    - Dst: struct testcase_t*::setup::cleanup_fn
      Src: /src/libevent/test/tinytest.c:224,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - testcase
    argTypes:
    - struct testcase_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 229
    functionName: testcase_run_bare_
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached:
    - testcase_run_in_thread_
    - testcase_reset_timeout_
    - struct testcase_t*::fn
    - struct testcase_t*::setup::cleanup_fn
    - struct testcase_t*::setup::setup_fn
    - testcase_set_timeout_
    linkageType: ''
    returnType: enum outcome
    signature: enum outcome testcase_run_bare_(const struct testcase_t *testcase)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:254,1
    - Dst: abort
      Src: /src/libevent/test/tinytest.c:256,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:259,1
    - Dst: snprintf
      Src: /src/libevent/test/tinytest.c:261,1
    - Dst: memset
      Src: /src/libevent/test/tinytest.c:264,1
    - Dst: memset
      Src: /src/libevent/test/tinytest.c:265,1
    - Dst: CreateProcessA
      Src: /src/libevent/test/tinytest.c:268,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:271,1
    - Dst: WaitForSingleObject
      Src: /src/libevent/test/tinytest.c:274,1
    - Dst: GetExitCodeProcess
      Src: /src/libevent/test/tinytest.c:278,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:280,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:282,1
    - Dst: CloseHandle
      Src: /src/libevent/test/tinytest.c:284,1
    - Dst: CloseHandle
      Src: /src/libevent/test/tinytest.c:285,1
    - Dst: pipe
      Src: /src/libevent/test/tinytest.c:297,1
    - Dst: perror
      Src: /src/libevent/test/tinytest.c:298,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:301,1
    - Dst: fork
      Src: /src/libevent/test/tinytest.c:302,1
    - Dst: vproc_transaction_begin
      Src: /src/libevent/test/tinytest.c:304,1
    - Dst: close
      Src: /src/libevent/test/tinytest.c:310,1
    - Dst: testcase_run_bare_
      Src: /src/libevent/test/tinytest.c:311,1
    - Dst: assert
      Src: /src/libevent/test/tinytest.c:312,1
    - Dst: write
      Src: /src/libevent/test/tinytest.c:314,1
    - Dst: perror
      Src: /src/libevent/test/tinytest.c:316,1
    - Dst: exit
      Src: /src/libevent/test/tinytest.c:317,1
    - Dst: exit
      Src: /src/libevent/test/tinytest.c:319,1
    - Dst: close
      Src: /src/libevent/test/tinytest.c:327,1
    - Dst: read
      Src: /src/libevent/test/tinytest.c:328,1
    - Dst: waitpid
      Src: /src/libevent/test/tinytest.c:329,1
    - Dst: WEXITSTATUS
      Src: /src/libevent/test/tinytest.c:330,1
    - Dst: close
      Src: /src/libevent/test/tinytest.c:331,1
    - Dst: WIFSIGNALED
      Src: /src/libevent/test/tinytest.c:333,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:334,1
    - Dst: WTERMSIG
      Src: /src/libevent/test/tinytest.c:334,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:336,1
    - Dst: WIFSIGNALED
      Src: /src/libevent/test/tinytest.c:339,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:340,1
    - Dst: WTERMSIG
      Src: /src/libevent/test/tinytest.c:340,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:342,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:345,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 72
    argCount: 2
    argNames:
    - group
    - testcase
    argTypes:
    - struct testgroup_t*
    - struct testcase_t*
    assertStmts:
    - condition: (0<=(int)test_r && (int)test_r<=2)
      pos:
        line_end: 311
        line_start: 311
        source_file: /src/libevent/test/tinytest.c
    constantsTouched: []
    func_position:
      end: 349
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 349
    functionName: testcase_run_forked_
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached:
    - printf
    - read
    - snprintf
    - pipe
    - write
    - CloseHandle
    - WTERMSIG
    - assert
    - waitpid
    - CreateProcessA
    - close
    - exit
    - abort
    - perror
    - memset
    - WaitForSingleObject
    - vproc_transaction_begin
    - WIFSIGNALED
    - GetExitCodeProcess
    - WEXITSTATUS
    - testcase_run_bare_
    - fork
    linkageType: ''
    returnType: enum outcome
    signature: "enum outcome testcase_run_forked_(const struct testgroup_t *group,\n\t\t
      \    const struct testcase_t *testcase)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libevent/test/tinytest.c:418,1
    - Dst: strstr
      Src: /src/libevent/test/tinytest.c:419,1
    - Dst: snprintf
      Src: /src/libevent/test/tinytest.c:423,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:426,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:428,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:430,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:432,1
    - Dst: strncmp
      Src: /src/libevent/test/tinytest.c:434,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - groups
    - arg
    - set
    - flag
    argTypes:
    - struct testgroup_t*
    - char*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 444
    functionName: tinytest_set_flag_
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached:
    - strncmp
    - printf
    - puts
    - strstr
    - snprintf
    linkageType: ''
    returnType: int
    signature: int tinytest_set_flag_(struct testgroup_t *groups, const char *arg,
      int set, unsigned long flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:449,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:450,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:451,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:452,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:453,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:454,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:455,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:456,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:457,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:458,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:459,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:460,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:461,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:462,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:463,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:465,1
    - Dst: tinytest_set_flag_
      Src: /src/libevent/test/tinytest.c:466,1
    - Dst: exit
      Src: /src/libevent/test/tinytest.c:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - groups
    - list_groups
    argTypes:
    - struct testgroup_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 469
    functionName: usage
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 1
    functionsReached:
    - exit
    - puts
    - tinytest_set_flag_
    linkageType: ''
    returnType: void
    signature: void usage(struct testgroup_t *groups, int list_groups)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:476,1
    - Dst: process_test_option
      Src: /src/libevent/test/tinytest.c:479,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:487,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - groups
    - test
    argTypes:
    - struct testgroup_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 489
    functionName: process_test_alias
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached:
    - printf
    - process_test_option
    - strcmp
    linkageType: ''
    returnType: int
    signature: int process_test_alias(struct testgroup_t *groups, const char *test)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: process_test_alias
      Src: /src/libevent/test/tinytest.c:497,1
    - Dst: tinytest_set_flag_
      Src: /src/libevent/test/tinytest.c:504,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:505,1
    - Dst: tinytest_set_flag_
      Src: /src/libevent/test/tinytest.c:511,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:512,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - groups
    - test
    argTypes:
    - struct testgroup_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 516
    functionName: process_test_option
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 1
    functionsReached:
    - printf
    - process_test_alias
    - tinytest_set_flag_
    linkageType: ''
    returnType: int
    signature: int process_test_option(struct testgroup_t *groups, const char *test)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aliases
    argTypes:
    - struct testlist_alias_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 522
    functionName: tinytest_set_aliases
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tinytest_set_aliases(const struct testlist_alias_t *aliases)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/libevent/test/tinytest.c:552,1
    - Dst: memcpy
      Src: /src/libevent/test/tinytest.c:558,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - s
    - data
    - len
    argTypes:
    - struct parallel_slot*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 561
    functionName: par_buf_append_
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached:
    - realloc
    - memcpy
    linkageType: ''
    returnType: void
    signature: void par_buf_append_(struct parallel_slot *s, const char *data, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libevent/test/tinytest.c:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct parallel_slot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 577
    functionName: par_slot_free_
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void par_slot_free_(struct parallel_slot *s)
  - BBCount: 61
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:601,1
    - Dst: calloc
      Src: /src/libevent/test/tinytest.c:606,1
    - Dst: strlen
      Src: /src/libevent/test/tinytest.c:615,1
    - Dst: strlen
      Src: /src/libevent/test/tinytest.c:616,1
    - Dst: malloc
      Src: /src/libevent/test/tinytest.c:617,1
    - Dst: snprintf
      Src: /src/libevent/test/tinytest.c:620,1
    - Dst: fprintf
      Src: /src/libevent/test/tinytest.c:632,1
    - Dst: calloc
      Src: /src/libevent/test/tinytest.c:638,1
    - Dst: par_slot_free_
      Src: /src/libevent/test/tinytest.c:642,1
    - Dst: calloc
      Src: /src/libevent/test/tinytest.c:644,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:650,1
    - Dst: snprintf
      Src: /src/libevent/test/tinytest.c:667,1
    - Dst: CreatePipe
      Src: /src/libevent/test/tinytest.c:689,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:691,1
    - Dst: SetHandleInformation
      Src: /src/libevent/test/tinytest.c:696,1
    - Dst: snprintf
      Src: /src/libevent/test/tinytest.c:699,1
    - Dst: snprintf
      Src: /src/libevent/test/tinytest.c:702,1
    - Dst: snprintf
      Src: /src/libevent/test/tinytest.c:705,1
    - Dst: snprintf
      Src: /src/libevent/test/tinytest.c:709,1
    - Dst: snprintf
      Src: /src/libevent/test/tinytest.c:713,1
    - Dst: snprintf
      Src: /src/libevent/test/tinytest.c:718,1
    - Dst: snprintf
      Src: /src/libevent/test/tinytest.c:721,1
    - Dst: memset
      Src: /src/libevent/test/tinytest.c:725,1
    - Dst: GetStdHandle
      Src: /src/libevent/test/tinytest.c:732,1
    - Dst: InitializeProcThreadAttributeList
      Src: /src/libevent/test/tinytest.c:734,1
    - Dst: malloc
      Src: /src/libevent/test/tinytest.c:736,1
    - Dst: InitializeProcThreadAttributeList
      Src: /src/libevent/test/tinytest.c:738,1
    - Dst: UpdateProcThreadAttribute
      Src: /src/libevent/test/tinytest.c:740,1
    - Dst: CreateProcessA
      Src: /src/libevent/test/tinytest.c:748,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:753,1
    - Dst: DeleteProcThreadAttributeList
      Src: /src/libevent/test/tinytest.c:756,1
    - Dst: free
      Src: /src/libevent/test/tinytest.c:758,1
    - Dst: CloseHandle
      Src: /src/libevent/test/tinytest.c:760,1
    - Dst: CloseHandle
      Src: /src/libevent/test/tinytest.c:761,1
    - Dst: DeleteProcThreadAttributeList
      Src: /src/libevent/test/tinytest.c:767,1
    - Dst: free
      Src: /src/libevent/test/tinytest.c:769,1
    - Dst: CloseHandle
      Src: /src/libevent/test/tinytest.c:771,1
    - Dst: CloseHandle
      Src: /src/libevent/test/tinytest.c:772,1
    - Dst: pipe
      Src: /src/libevent/test/tinytest.c:780,1
    - Dst: perror
      Src: /src/libevent/test/tinytest.c:781,1
    - Dst: fork
      Src: /src/libevent/test/tinytest.c:786,1
    - Dst: perror
      Src: /src/libevent/test/tinytest.c:788,1
    - Dst: close
      Src: /src/libevent/test/tinytest.c:789,1
    - Dst: close
      Src: /src/libevent/test/tinytest.c:790,1
    - Dst: close
      Src: /src/libevent/test/tinytest.c:801,1
    - Dst: dup2
      Src: /src/libevent/test/tinytest.c:802,1
    - Dst: dup2
      Src: /src/libevent/test/tinytest.c:803,1
    - Dst: close
      Src: /src/libevent/test/tinytest.c:806,1
    - Dst: snprintf
      Src: /src/libevent/test/tinytest.c:814,1
    - Dst: snprintf
      Src: /src/libevent/test/tinytest.c:819,1
    - Dst: snprintf
      Src: /src/libevent/test/tinytest.c:826,1
    - Dst: snprintf
      Src: /src/libevent/test/tinytest.c:834,1
    - Dst: execvp
      Src: /src/libevent/test/tinytest.c:844,1
    - Dst: _exit
      Src: /src/libevent/test/tinytest.c:846,1
    - Dst: close
      Src: /src/libevent/test/tinytest.c:849,1
    - Dst: gettime_
      Src: /src/libevent/test/tinytest.c:854,1
    - Dst: PeekNamedPipe
      Src: /src/libevent/test/tinytest.c:875,1
    - Dst: ReadFile
      Src: /src/libevent/test/tinytest.c:879,1
    - Dst: par_buf_append_
      Src: /src/libevent/test/tinytest.c:883,1
    - Dst: WaitForMultipleObjects
      Src: /src/libevent/test/tinytest.c:894,1
    - Dst: PeekNamedPipe
      Src: /src/libevent/test/tinytest.c:905,1
    - Dst: ReadFile
      Src: /src/libevent/test/tinytest.c:911,1
    - Dst: par_buf_append_
      Src: /src/libevent/test/tinytest.c:917,1
    - Dst: GetExitCodeProcess
      Src: /src/libevent/test/tinytest.c:921,1
    - Dst: CloseHandle
      Src: /src/libevent/test/tinytest.c:923,1
    - Dst: CloseHandle
      Src: /src/libevent/test/tinytest.c:924,1
    - Dst: gettime_
      Src: /src/libevent/test/tinytest.c:927,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:932,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:936,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:939,1
    - Dst: fwrite
      Src: /src/libevent/test/tinytest.c:944,1
    - Dst: fflush
      Src: /src/libevent/test/tinytest.c:949,1
    - Dst: par_slot_free_
      Src: /src/libevent/test/tinytest.c:950,1
    - Dst: poll
      Src: /src/libevent/test/tinytest.c:964,1
    - Dst: read
      Src: /src/libevent/test/tinytest.c:972,1
    - Dst: par_buf_append_
      Src: /src/libevent/test/tinytest.c:975,1
    - Dst: waitpid
      Src: /src/libevent/test/tinytest.c:983,1
    - Dst: read
      Src: /src/libevent/test/tinytest.c:996,1
    - Dst: par_buf_append_
      Src: /src/libevent/test/tinytest.c:1001,1
    - Dst: close
      Src: /src/libevent/test/tinytest.c:1004,1
    - Dst: gettime_
      Src: /src/libevent/test/tinytest.c:1007,1
    - Dst: WIFEXITED
      Src: /src/libevent/test/tinytest.c:1009,1
    - Dst: WEXITSTATUS
      Src: /src/libevent/test/tinytest.c:1010,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:1013,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:1017,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:1020,1
    - Dst: fwrite
      Src: /src/libevent/test/tinytest.c:1025,1
    - Dst: fflush
      Src: /src/libevent/test/tinytest.c:1030,1
    - Dst: par_slot_free_
      Src: /src/libevent/test/tinytest.c:1031,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:1039,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:1042,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:1044,1
    - Dst: TerminateProcess
      Src: /src/libevent/test/tinytest.c:1053,1
    - Dst: WaitForSingleObject
      Src: /src/libevent/test/tinytest.c:1054,1
    - Dst: CloseHandle
      Src: /src/libevent/test/tinytest.c:1056,1
    - Dst: CloseHandle
      Src: /src/libevent/test/tinytest.c:1057,1
    - Dst: kill
      Src: /src/libevent/test/tinytest.c:1061,1
    - Dst: waitpid
      Src: /src/libevent/test/tinytest.c:1062,1
    - Dst: close
      Src: /src/libevent/test/tinytest.c:1063,1
    - Dst: free
      Src: /src/libevent/test/tinytest.c:1066,1
    - Dst: free
      Src: /src/libevent/test/tinytest.c:1068,1
    - Dst: free
      Src: /src/libevent/test/tinytest.c:1072,1
    - Dst: free
      Src: /src/libevent/test/tinytest.c:1073,1
    - Dst: free
      Src: /src/libevent/test/tinytest.c:1076,1
    CyclomaticComplexity: 114
    EdgeCount: 114
    ICount: 292
    argCount: 2
    argNames:
    - exe
    - groups
    argTypes:
    - char*
    - struct testgroup_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 579
    functionDepth: 4
    functionLinenumber: 579
    functionLinenumberEnd: 1079
    functionName: run_tests_parallel_
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached:
    - calloc
    - GetStdHandle
    - printf
    - gettime_
    - puts
    - DeleteProcThreadAttributeList
    - read
    - snprintf
    - pipe
    - WaitForMultipleObjects
    - PeekNamedPipe
    - InitializeProcThreadAttributeList
    - kill
    - ReadFile
    - CloseHandle
    - fflush
    - poll
    - WIFEXITED
    - par_slot_free_
    - strlen
    - dup2
    - fprintf
    - _exit
    - waitpid
    - CreateProcessA
    - SetHandleInformation
    - close
    - CreatePipe
    - perror
    - fwrite
    - memset
    - WaitForSingleObject
    - UpdateProcThreadAttribute
    - malloc
    - GetExitCodeProcess
    - WEXITSTATUS
    - execvp
    - TerminateProcess
    - free
    - par_buf_append_
    - fork
    linkageType: ''
    returnType: int
    signature: int run_tests_parallel_(const char *exe, struct testgroup_t *groups)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/libevent/test/tinytest.c:1089,1
    - Dst: stricmp
      Src: /src/libevent/test/tinytest.c:1091,1
    - Dst: snprintf
      Src: /src/libevent/test/tinytest.c:1093,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:1098,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:1100,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:1102,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:1105,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:1105,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:1108,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:1111,1
    - Dst: usage
      Src: /src/libevent/test/tinytest.c:1112,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:1113,1
    - Dst: usage
      Src: /src/libevent/test/tinytest.c:1114,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:1115,1
    - Dst: fprintf
      Src: /src/libevent/test/tinytest.c:1118,1
    - Dst: atoi
      Src: /src/libevent/test/tinytest.c:1121,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:1122,1
    - Dst: fprintf
      Src: /src/libevent/test/tinytest.c:1125,1
    - Dst: atoi
      Src: /src/libevent/test/tinytest.c:1128,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:1129,1
    - Dst: fprintf
      Src: /src/libevent/test/tinytest.c:1132,1
    - Dst: atoi
      Src: /src/libevent/test/tinytest.c:1135,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:1136,1
    - Dst: fprintf
      Src: /src/libevent/test/tinytest.c:1139,1
    - Dst: atoi
      Src: /src/libevent/test/tinytest.c:1142,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:1143,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest.c:1143,1
    - Dst: fprintf
      Src: /src/libevent/test/tinytest.c:1146,1
    - Dst: atoi
      Src: /src/libevent/test/tinytest.c:1149,1
    - Dst: fprintf
      Src: /src/libevent/test/tinytest.c:1151,1
    - Dst: strncmp
      Src: /src/libevent/test/tinytest.c:1154,1
    - Dst: atoi
      Src: /src/libevent/test/tinytest.c:1155,1
    - Dst: fprintf
      Src: /src/libevent/test/tinytest.c:1157,1
    - Dst: fprintf
      Src: /src/libevent/test/tinytest.c:1161,1
    - Dst: process_test_option
      Src: /src/libevent/test/tinytest.c:1165,1
    - Dst: tinytest_set_flag_
      Src: /src/libevent/test/tinytest.c:1172,1
    - Dst: setvbuf
      Src: /src/libevent/test/tinytest.c:1175,1
    - Dst: GetSystemInfo
      Src: /src/libevent/test/tinytest.c:1185,1
    - Dst: sysconf
      Src: /src/libevent/test/tinytest.c:1188,1
    - Dst: run_tests_parallel_
      Src: /src/libevent/test/tinytest.c:1198,1
    - Dst: testcase_run_one
      Src: /src/libevent/test/tinytest.c:1215,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:1221,1
    - Dst: Sleep
      Src: /src/libevent/test/tinytest.c:1223,1
    - Dst: sleep
      Src: /src/libevent/test/tinytest.c:1225,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:1234,1
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:1245,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:1248,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:1251,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 145
    argCount: 3
    argNames:
    - c
    - v
    - groups
    argTypes:
    - int
    - char**
    - struct testgroup_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1083
    functionDepth: 5
    functionLinenumber: 1083
    functionLinenumberEnd: 1254
    functionName: tinytest_main
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached:
    - stricmp
    - testcase_run_one
    - strncmp
    - sleep
    - printf
    - puts
    - process_test_option
    - snprintf
    - tinytest_set_flag_
    - atoi
    - Sleep
    - fprintf
    - GetSystemInfo
    - run_tests_parallel_
    - setvbuf
    - strrchr
    - sysconf
    - strcmp
    - usage
    linkageType: ''
    returnType: int
    signature: int tinytest_main(int c, const char **v, struct testgroup_t *groups)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1256
    functionDepth: 0
    functionLinenumber: 1256
    functionLinenumberEnd: 1260
    functionName: tinytest_get_verbosity_
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tinytest_get_verbosity_(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/libevent/test/tinytest.c:1266,1
    - Dst: printf
      Src: /src/libevent/test/tinytest.c:1267,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1262
    functionDepth: 0
    functionLinenumber: 1262
    functionLinenumberEnd: 1271
    functionName: tinytest_set_test_failed_
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached:
    - puts
    - printf
    linkageType: ''
    returnType: void
    signature: void tinytest_set_test_failed_(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1273
    functionDepth: 0
    functionLinenumber: 1273
    functionLinenumberEnd: 1278
    functionName: tinytest_set_test_skipped_
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tinytest_set_test_skipped_(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/libevent/test/tinytest.c:1288,1
    - Dst: malloc
      Src: /src/libevent/test/tinytest.c:1289,1
    - Dst: strdup
      Src: /src/libevent/test/tinytest.c:1290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - val_
    - len
    argTypes:
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1280
    functionDepth: 0
    functionLinenumber: 1280
    functionLinenumberEnd: 1298
    functionName: tinytest_format_hex_
    functionSourceFile: /src/libevent/test/tinytest.c
    functionUses: 0
    functionsReached:
    - malloc
    - strdup
    linkageType: ''
    returnType: char
    signature: 'char *

      tinytest_format_hex_(const void *val_, unsigned long len)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:95,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_bufferevent.c:96,1
    - Dst: assert
      Src: /src/libevent/test/regress_bufferevent.c:97,1
    - Dst: bufferevent_read_buffer
      Src: /src/libevent/test/regress_bufferevent.c:100,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_bufferevent.c:102,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:104,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_bufferevent.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts:
    - condition: (evbuf != NULL)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/libevent/test/regress_bufferevent.c
    constantsTouched: []
    func_position:
      end: 110
      start: 92
    functionDepth: 7
    functionLinenumber: 92
    functionLinenumberEnd: 110
    functionName: readcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 3
    functionsReached:
    - bufferevent_read_buffer
    - evbuffer_free
    - evbuffer_get_length
    - assert
    - evbuffer_new
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void readcb(struct bufferevent *bev, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: writecb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 3
    functionsReached:
    - evbuffer_get_length
    linkageType: ''
    returnType: void
    signature: void writecb(struct bufferevent *bev, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: errorcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void errorcb(struct bufferevent *bev, short what, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:136,1
    - Dst: bufferevent_pair_new
      Src: /src/libevent/test/regress_bufferevent.c:136,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:139,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:140,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_bufferevent.c:141,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_bufferevent.c:141,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:142,1
    - Dst: bufferevent_get_underlying
      Src: /src/libevent/test/regress_bufferevent.c:142,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:143,1
    - Dst: bufferevent_pair_get_partner
      Src: /src/libevent/test/regress_bufferevent.c:143,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:144,1
    - Dst: bufferevent_pair_get_partner
      Src: /src/libevent/test/regress_bufferevent.c:144,1
    - Dst: bufferevent_new
      Src: /src/libevent/test/regress_bufferevent.c:146,1
    - Dst: bufferevent_new
      Src: /src/libevent/test/regress_bufferevent.c:147,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:148,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:149,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_bufferevent.c:150,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_bufferevent.c:150,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:151,1
    - Dst: bufferevent_get_underlying
      Src: /src/libevent/test/regress_bufferevent.c:151,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:152,1
    - Dst: bufferevent_pair_get_partner
      Src: /src/libevent/test/regress_bufferevent.c:152,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:153,1
    - Dst: bufferevent_pair_get_partner
      Src: /src/libevent/test/regress_bufferevent.c:153,1
    - Dst: bufferevent_getcb
      Src: /src/libevent/test/regress_bufferevent.c:161,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:162,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:163,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:164,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:165,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_bufferevent.c:168,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:169,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:171,1
    - Dst: bufferevent_get_enabled
      Src: /src/libevent/test/regress_bufferevent.c:171,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:172,1
    - Dst: bufferevent_get_enabled
      Src: /src/libevent/test/regress_bufferevent.c:172,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_bufferevent.c:177,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:179,1
    - Dst: bufferevent_flush
      Src: /src/libevent/test/regress_bufferevent.c:179,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_bufferevent.c:182,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:184,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:185,1
    - Dst: bufferevent_pair_get_partner
      Src: /src/libevent/test/regress_bufferevent.c:185,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:186,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 49
    argCount: 2
    argNames:
    - use_pair
    - flush
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 126
    functionDepth: 8
    functionLinenumber: 126
    functionLinenumberEnd: 196
    functionName: test_bufferevent_impl
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - bufferevent_get_underlying
    - bufferevent_pair_new
    - tt_ptr_op
    - bufferevent_new
    - tt_int_op
    - bufferevent_disable
    - bufferevent_free
    - bufferevent_setcb
    - event_dispatch
    - bufferevent_pair_get_partner
    - bufferevent_flush
    - bufferevent_getcb
    - bufferevent_enable
    - bufferevent_write
    - tt_fd_op
    - bufferevent_get_enabled
    - bufferevent_getfd
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_impl(int use_pair, int flush)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_impl
      Src: /src/libevent/test/regress_bufferevent.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 9
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: test_bufferevent
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_impl
      Src: /src/libevent/test/regress_bufferevent.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 199
    functionDepth: 9
    functionLinenumber: 199
    functionLinenumberEnd: 199
    functionName: test_bufferevent_pair
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_pair(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_impl
      Src: /src/libevent/test/regress_bufferevent.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 9
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: test_bufferevent_flush_normal
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_flush_normal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_impl
      Src: /src/libevent/test/regress_bufferevent.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 202
    functionDepth: 9
    functionLinenumber: 202
    functionLinenumberEnd: 202
    functionName: test_bufferevent_flush_flush
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_flush_flush(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_impl
      Src: /src/libevent/test/regress_bufferevent.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 9
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: test_bufferevent_flush_finished
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_flush_finished(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_impl
      Src: /src/libevent/test/regress_bufferevent.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 9
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: test_bufferevent_pair_flush_normal
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_pair_flush_normal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_impl
      Src: /src/libevent/test/regress_bufferevent.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 9
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: test_bufferevent_pair_flush_flush
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_pair_flush_flush(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_impl
      Src: /src/libevent/test/regress_bufferevent.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 207
    functionDepth: 9
    functionLinenumber: 207
    functionLinenumberEnd: 207
    functionName: test_bufferevent_pair_flush_finished
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_pair_flush_finished(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ev_token_bucket_cfg_new
      Src: /src/libevent/test/regress_bufferevent.c:212,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 218
    functionName: test_bufferevent_ratelimit_div_by_zero
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - ev_token_bucket_cfg_new
    - tt_ptr_op
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_ratelimit_div_by_zero(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ev_token_bucket_cfg_new
      Src: /src/libevent/test/regress_bufferevent.c:223,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:224,1
    - Dst: ev_token_bucket_cfg_new
      Src: /src/libevent/test/regress_bufferevent.c:228,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:229,1
    - Dst: ev_token_bucket_cfg_new
      Src: /src/libevent/test/regress_bufferevent.c:233,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:234,1
    - Dst: ev_token_bucket_cfg_new
      Src: /src/libevent/test/regress_bufferevent.c:238,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:239,1
    - Dst: ev_token_bucket_cfg_new
      Src: /src/libevent/test/regress_bufferevent.c:243,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:244,1
    - Dst: ev_token_bucket_cfg_free
      Src: /src/libevent/test/regress_bufferevent.c:245,1
    - Dst: ev_token_bucket_cfg_new
      Src: /src/libevent/test/regress_bufferevent.c:249,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:250,1
    - Dst: ev_token_bucket_cfg_free
      Src: /src/libevent/test/regress_bufferevent.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 257
    functionName: test_bufferevent_ratelimit_overflow
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - ev_token_bucket_cfg_new
    - ev_token_bucket_cfg_free
    - tt_ptr_op
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_ratelimit_overflow(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - lock_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 292
    functionName: lu_find
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lock_wrapper
    signature: lock_wrapper *lu_find(void *lock_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cbs::alloc
      Src: /src/libevent/test/regress_bufferevent.c:299,1
    - Dst: lu_find
      Src: /src/libevent/test/regress_bufferevent.c:300,1
    - Dst: realloc
      Src: /src/libevent/test/regress_bufferevent.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - locktype
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 311
    functionName: trace_lock_alloc
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - realloc
    - cbs::alloc
    - lu_find
    linkageType: ''
    returnType: void
    signature: void *trace_lock_alloc(unsigned locktype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lu_find
      Src: /src/libevent/test/regress_bufferevent.c:314,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_bufferevent.c:316,1
    - Dst: cbs::free
      Src: /src/libevent/test/regress_bufferevent.c:319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - lock_
    - locktype
    argTypes:
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 321
    functionName: trace_lock_free
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - cbs::free
    - TT_FAIL
    - lu_find
    linkageType: ''
    returnType: void
    signature: void trace_lock_free(void *lock_, unsigned locktype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lu_find
      Src: /src/libevent/test/regress_bufferevent.c:324,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_bufferevent.c:326,1
    - Dst: cbs::lock
      Src: /src/libevent/test/regress_bufferevent.c:330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - mode
    - lock_
    argTypes:
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 332
    functionName: trace_lock_lock
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - TT_FAIL
    - lu_find
    - cbs::lock
    linkageType: ''
    returnType: int
    signature: int trace_lock_lock(unsigned mode, void *lock_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lu_find
      Src: /src/libevent/test/regress_bufferevent.c:335,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_bufferevent.c:337,1
    - Dst: cbs::unlock
      Src: /src/libevent/test/regress_bufferevent.c:341,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - mode
    - lock_
    argTypes:
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 343
    functionName: trace_lock_unlock
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - cbs::unlock
    - TT_FAIL
    - lu_find
    linkageType: ''
    returnType: int
    signature: int trace_lock_unlock(unsigned mode, void *lock_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_free
      Src: /src/libevent/test/regress_bufferevent.c:346,1
    - Dst: libevent_global_shutdown
      Src: /src/libevent/test/regress_bufferevent.c:347,1
    - Dst: evthread_set_lock_callbacks
      Src: /src/libevent/test/regress_bufferevent.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 344
    functionDepth: 6
    functionLinenumber: 344
    functionLinenumberEnd: 349
    functionName: lock_unlock_free_thread_cbs
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - evthread_set_lock_callbacks
    - libevent_global_shutdown
    - event_base_free
    linkageType: ''
    returnType: void
    signature: void lock_unlock_free_thread_cbs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libevent/test/regress_bufferevent.c:361,1
    - Dst: evthread_get_lock_callbacks
      Src: /src/libevent/test/regress_bufferevent.c:361,1
    - Dst: lock_unlock_free_thread_cbs
      Src: /src/libevent/test/regress_bufferevent.c:364,1
    - Dst: evthread_set_lock_callbacks
      Src: /src/libevent/test/regress_bufferevent.c:366,1
    - Dst: evthread_enable_lock_debugging
      Src: /src/libevent/test/regress_bufferevent.c:368,1
    - Dst: event_init
      Src: /src/libevent/test/regress_bufferevent.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 351
    functionDepth: 7
    functionLinenumber: 351
    functionLinenumberEnd: 373
    functionName: use_lock_unlock_profiler
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - evthread_set_lock_callbacks
    - evthread_enable_lock_debugging
    - event_init
    - lock_unlock_free_thread_cbs
    - memcpy
    - evthread_get_lock_callbacks
    linkageType: ''
    returnType: int
    signature: int use_lock_unlock_profiler(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock_unlock_free_thread_cbs
      Src: /src/libevent/test/regress_bufferevent.c:376,1
    - Dst: free
      Src: /src/libevent/test/regress_bufferevent.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct basic_test_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 374
    functionDepth: 7
    functionLinenumber: 374
    functionLinenumberEnd: 379
    functionName: free_lock_unlock_profiler
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - free
    - lock_unlock_free_thread_cbs
    linkageType: ''
    returnType: void
    signature: void free_lock_unlock_profiler(struct basic_test_data *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: use_lock_unlock_profiler
      Src: /src/libevent/test/regress_bufferevent.c:384,1
    - Dst: bufferevent_pair_new
      Src: /src/libevent/test/regress_bufferevent.c:387,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:388,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:389,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress_bufferevent.c:391,1
    - Dst: free_lock_unlock_profiler
      Src: /src/libevent/test/regress_bufferevent.c:393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 381
    functionDepth: 8
    functionLinenumber: 381
    functionLinenumberEnd: 396
    functionName: test_bufferevent_pair_release_lock
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - free_lock_unlock_profiler
    - bufferevent_pair_new
    - use_lock_unlock_profiler
    - bufferevent_free
    - tt_abort_perror
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_pair_release_lock(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_bufferevent.c:406,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:407,1
    - Dst: assert
      Src: /src/libevent/test/regress_bufferevent.c:410,1
    - Dst: assert
      Src: /src/libevent/test/regress_bufferevent.c:412,1
    - Dst: bufferevent_read_buffer
      Src: /src/libevent/test/regress_bufferevent.c:415,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_bufferevent.c:419,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_bufferevent.c:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts:
    - condition: (len >= 10 && len <= 20)
      pos:
        line_end: 409
        line_start: 409
        source_file: /src/libevent/test/regress_bufferevent.c
    - condition: (evbuf != NULL)
      pos:
        line_end: 411
        line_start: 411
        source_file: /src/libevent/test/regress_bufferevent.c
    constantsTouched: []
    func_position:
      end: 424
      start: 403
    functionDepth: 7
    functionLinenumber: 403
    functionLinenumberEnd: 424
    functionName: wm_readcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_read_buffer
    - evbuffer_free
    - evbuffer_get_length
    - assert
    - evbuffer_new
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void wm_readcb(struct bufferevent *bev, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libevent/test/regress_bufferevent.c:429,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:429,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:430,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_bufferevent.c:431,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts:
    - condition: (evbuffer_get_length(bev->output) <= 100)
      pos:
        line_end: 428
        line_start: 428
        source_file: /src/libevent/test/regress_bufferevent.c
    constantsTouched: []
    func_position:
      end: 434
      start: 426
    functionDepth: 4
    functionLinenumber: 426
    functionLinenumberEnd: 434
    functionName: wm_writecb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - assert
    - evbuffer_get_length
    - evbuffer_drain
    linkageType: ''
    returnType: void
    signature: void wm_writecb(struct bufferevent *bev, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 440
    functionName: wm_errorcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wm_errorcb(struct bufferevent *bev, short what, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:453,1
    - Dst: bufferevent_pair_new
      Src: /src/libevent/test/regress_bufferevent.c:453,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:456,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:457,1
    - Dst: bufferevent_new
      Src: /src/libevent/test/regress_bufferevent.c:459,1
    - Dst: bufferevent_new
      Src: /src/libevent/test/regress_bufferevent.c:460,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:462,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:463,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_bufferevent.c:464,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:465,1
    - Dst: bufferevent_getwatermark
      Src: /src/libevent/test/regress_bufferevent.c:468,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:469,1
    - Dst: bufferevent_getwatermark
      Src: /src/libevent/test/regress_bufferevent.c:470,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:471,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/test/regress_bufferevent.c:477,1
    - Dst: bufferevent_getwatermark
      Src: /src/libevent/test/regress_bufferevent.c:479,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:480,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:481,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/test/regress_bufferevent.c:485,1
    - Dst: bufferevent_getwatermark
      Src: /src/libevent/test/regress_bufferevent.c:487,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:488,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:489,1
    - Dst: bufferevent_getwatermark
      Src: /src/libevent/test/regress_bufferevent.c:492,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:493,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_bufferevent.c:496,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_bufferevent.c:498,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:500,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:504,1
    - Dst: event_pending
      Src: /src/libevent/test/regress_bufferevent.c:504,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:508,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:510,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 1
    argNames:
    - use_pair
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 442
    functionDepth: 8
    functionLinenumber: 442
    functionLinenumberEnd: 511
    functionName: test_bufferevent_watermarks_impl
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - event_pending
    - bufferevent_pair_new
    - bufferevent_new
    - tt_int_op
    - bufferevent_free
    - bufferevent_setcb
    - bufferevent_getwatermark
    - bufferevent_setwatermark
    - event_dispatch
    - bufferevent_enable
    - bufferevent_write
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_watermarks_impl(int use_pair)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_watermarks_impl
      Src: /src/libevent/test/regress_bufferevent.c:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 513
    functionDepth: 9
    functionLinenumber: 513
    functionLinenumberEnd: 517
    functionName: test_bufferevent_watermarks
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_watermarks_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_watermarks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_watermarks_impl
      Src: /src/libevent/test/regress_bufferevent.c:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 519
    functionDepth: 9
    functionLinenumber: 519
    functionLinenumberEnd: 523
    functionName: test_bufferevent_pair_watermarks
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_watermarks_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_pair_watermarks(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_bufferevent.c:538,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:538,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:539,1
    - Dst: assert
      Src: /src/libevent/test/regress_bufferevent.c:543,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_bufferevent.c:544,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_bufferevent.c:547,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - src
    - dst
    - lim
    - state
    - ctx
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    - ev_ssize_t
    - enum bufferevent_flush_mode
    - void*
    assertStmts:
    - condition: (buffer[i] == 'x')
      pos:
        line_end: 542
        line_start: 542
        source_file: /src/libevent/test/regress_bufferevent.c
    constantsTouched: []
    func_position:
      end: 549
      start: 531
    functionDepth: 7
    functionLinenumber: 531
    functionLinenumberEnd: 549
    functionName: bufferevent_input_filter
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    - evbuffer_pullup
    - evbuffer_get_length
    - assert
    - evbuffer_drain
    linkageType: ''
    returnType: enum bufferevent_filter_result
    signature: "enum bufferevent_filter_result bufferevent_input_filter(struct evbuffer
      *src, struct evbuffer *dst,\n    ev_ssize_t lim, enum bufferevent_flush_mode
      state, void *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_bufferevent.c:564,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:564,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:565,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_bufferevent.c:566,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_bufferevent.c:567,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_bufferevent.c:569,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:569,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_bufferevent.c:576,1
    - Dst: assert
      Src: /src/libevent/test/regress_bufferevent.c:579,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - src
    - dst
    - lim
    - state
    - ctx
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    - ev_ssize_t
    - enum bufferevent_flush_mode
    - void*
    assertStmts:
    - condition: (test_ok == prev)
      pos:
        line_end: 578
        line_start: 578
        source_file: /src/libevent/test/regress_bufferevent.c
    constantsTouched: []
    func_position:
      end: 584
      start: 553
    functionDepth: 8
    functionLinenumber: 553
    functionLinenumberEnd: 584
    functionName: bufferevent_output_filter
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    - evbuffer_pullup
    - evbuffer_get_length
    - assert
    - bufferevent_write
    - evbuffer_drain
    linkageType: ''
    returnType: enum bufferevent_filter_result
    signature: "enum bufferevent_filter_result bufferevent_output_filter(struct evbuffer
      *src, struct evbuffer *dst,\n    ev_ssize_t lim, enum bufferevent_flush_mode
      state, void *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:598,1
    - Dst: bufferevent_pair_new
      Src: /src/libevent/test/regress_bufferevent.c:598,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_bufferevent.c:602,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_bufferevent.c:603,1
    - Dst: bufferevent_filter_new
      Src: /src/libevent/test/regress_bufferevent.c:611,1
    - Dst: bufferevent_filter_new
      Src: /src/libevent/test/regress_bufferevent.c:615,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:617,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:618,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:620,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:621,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:623,1
    - Dst: bufferevent_get_underlying
      Src: /src/libevent/test/regress_bufferevent.c:623,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_bufferevent.c:624,1
    - Dst: bufferevent_get_underlying
      Src: /src/libevent/test/regress_bufferevent.c:624,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_bufferevent.c:625,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_bufferevent.c:625,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_bufferevent.c:625,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_bufferevent.c:626,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_bufferevent.c:626,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_bufferevent.c:626,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_bufferevent.c:628,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:629,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_bufferevent.c:631,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_bufferevent.c:633,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:640,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:642,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 2
    argNames:
    - use_pair
    - disable
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 586
    functionDepth: 8
    functionLinenumber: 586
    functionLinenumberEnd: 644
    functionName: test_bufferevent_filters_impl
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - bufferevent_socket_new
    - bufferevent_get_underlying
    - bufferevent_pair_new
    - tt_ptr_op
    - bufferevent_free
    - bufferevent_disable
    - bufferevent_setcb
    - event_dispatch
    - bufferevent_filter_new
    - bufferevent_enable
    - bufferevent_write
    - tt_fd_op
    - bufferevent_getfd
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_filters_impl(int use_pair, int disable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_filters_impl
      Src: /src/libevent/test/regress_bufferevent.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 646
    functionDepth: 9
    functionLinenumber: 646
    functionLinenumberEnd: 647
    functionName: test_bufferevent_filters
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_filters_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_filters(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_filters_impl
      Src: /src/libevent/test/regress_bufferevent.c:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 648
    functionDepth: 9
    functionLinenumber: 648
    functionLinenumberEnd: 649
    functionName: test_bufferevent_pair_filters
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_filters_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_pair_filters(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_filters_impl
      Src: /src/libevent/test/regress_bufferevent.c:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 650
    functionDepth: 9
    functionLinenumber: 650
    functionLinenumberEnd: 651
    functionName: test_bufferevent_filters_disable
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_filters_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_filters_disable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bufferevent_filters_impl
      Src: /src/libevent/test/regress_bufferevent.c:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 652
    functionDepth: 9
    functionLinenumber: 652
    functionLinenumberEnd: 653
    functionName: test_bufferevent_pair_filters_disable
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - test_bufferevent_filters_impl
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_pair_filters_disable(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:659,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_bufferevent.c:659,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_bufferevent.c:660,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_bufferevent.c:661,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_bufferevent.c:661,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 656
    functionDepth: 6
    functionLinenumber: 656
    functionLinenumberEnd: 664
    functionName: sender_writecb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_output
    - bufferevent_free
    - bufferevent_disable
    - TT_BLATHER
    - evbuffer_get_length
    - bufferevent_getfd
    linkageType: ''
    returnType: void
    signature: void sender_writecb(struct bufferevent *bev, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_bufferevent.c:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bev
    - what
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 670
    functionName: sender_errorcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - TT_FAIL
    linkageType: ''
    returnType: void
    signature: void sender_errorcb(struct bufferevent *bev, short what, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_bufferevent.c:687,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_bufferevent.c:688,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:689,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:690,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_bufferevent.c:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - listener
    - fd
    - sa
    - socklen
    - arg
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 680
    functionDepth: 8
    functionLinenumber: 680
    functionLinenumberEnd: 694
    functionName: listen_cb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_socket_new
    - tt_assert
    - TT_BLATHER
    - bufferevent_setcb
    - bufferevent_write
    linkageType: ''
    returnType: void
    signature: "void listen_cb(struct evconnlistener *listener, evutil_socket_t fd,\n
      \   struct sockaddr *sa, int socklen, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_bufferevent.c:703,1
    - Dst: htonl
      Src: /src/libevent/test/regress_bufferevent.c:705,1
    - Dst: socket
      Src: /src/libevent/test/regress_bufferevent.c:710,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:711,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:712,1
    - Dst: bind
      Src: /src/libevent/test/regress_bufferevent.c:712,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:713,1
    - Dst: getsockname
      Src: /src/libevent/test/regress_bufferevent.c:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - localhost
    argTypes:
    - struct sockaddr_in*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 719
    functionName: fake_listener_create
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - getsockname
    - memset
    - socket
    - bind
    - htonl
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t fake_listener_create(struct sockaddr_in *localhost)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: perror
      Src: /src/libevent/test/regress_bufferevent.c:726,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_bufferevent.c:727,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_bufferevent.c:731,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_bufferevent.c:731,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:732,1
    - Dst: bufferevent_read
      Src: /src/libevent/test/regress_bufferevent.c:737,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:738,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_bufferevent.c:740,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_bufferevent.c:742,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_bufferevent.c:743,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_bufferevent.c:744,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - bev
    - what
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 721
    functionDepth: 6
    functionLinenumber: 721
    functionLinenumberEnd: 748
    functionName: reader_eventcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - tt_str_op
    - bufferevent_read
    - TT_FAIL
    - tt_int_op
    - perror
    - TT_BLATHER
    - event_base_loopexit
    - bufferevent_enable
    - bufferevent_getfd
    linkageType: ''
    returnType: void
    signature: void reader_eventcb(struct bufferevent *bev, short what, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_bufferevent.c:753,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_bufferevent.c:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bev
    - what
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 750
    functionDepth: 2
    functionLinenumber: 750
    functionLinenumberEnd: 756
    functionName: reader_eventcb_simple
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - TT_BLATHER
    - bufferevent_getfd
    linkageType: ''
    returnType: void
    signature: void reader_eventcb_simple(struct bufferevent *bev, short what, void
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_bufferevent.c:761,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_bufferevent.c:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 758
    functionDepth: 2
    functionLinenumber: 758
    functionLinenumberEnd: 763
    functionName: reader_readcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - TT_BLATHER
    - bufferevent_getfd
    linkageType: ''
    returnType: void
    signature: void reader_readcb(struct bufferevent *bev, void *ctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libevent/test/regress_bufferevent.c:778,1
    - Dst: strstr
      Src: /src/libevent/test/regress_bufferevent.c:781,1
    - Dst: strstr
      Src: /src/libevent/test/regress_bufferevent.c:784,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_bufferevent.c:789,1
    - Dst: event_get_win32_extension_fns_
      Src: /src/libevent/test/regress_bufferevent.c:792,1
    - Dst: memset
      Src: /src/libevent/test/regress_bufferevent.c:797,1
    - Dst: htonl
      Src: /src/libevent/test/regress_bufferevent.c:800,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_bufferevent.c:803,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:806,1
    - Dst: regress_get_listener_addr
      Src: /src/libevent/test/regress_bufferevent.c:810,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress_bufferevent.c:811,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:814,1
    - Dst: evconnlistener_enable
      Src: /src/libevent/test/regress_bufferevent.c:814,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_bufferevent.c:815,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_bufferevent.c:816,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:817,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:818,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:819,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:820,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:822,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:823,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_bufferevent.c:825,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/test/regress_bufferevent.c:825,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_bufferevent.c:826,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/test/regress_bufferevent.c:826,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_bufferevent.c:828,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:830,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:831,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_bufferevent.c:834,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:837,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:840,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 48
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 765
    functionDepth: 6
    functionLinenumber: 765
    functionLinenumberEnd: 841
    functionName: test_bufferevent_connect
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_free
    - evconnlistener_new_bind
    - tt_want
    - event_get_win32_extension_fns_
    - bufferevent_setcb
    - memset
    - bufferevent_enable
    - tt_int_op
    - bufferevent_socket_connect
    - tt_assert
    - regress_get_listener_addr
    - bufferevent_socket_new
    - evconnlistener_enable
    - strcmp
    - tt_abort_perror
    - strstr
    - evconnlistener_free
    - htonl
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_connect(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_bufferevent.c:848,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 851
    functionName: close_socket_cb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - evutil_closesocket
    linkageType: ''
    returnType: void
    signature: void close_socket_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fake_listener_create
      Src: /src/libevent/test/regress_bufferevent.c:867,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:873,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_bufferevent.c:875,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:876,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:877,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:879,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:880,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:881,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/test/regress_bufferevent.c:884,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_bufferevent.c:887,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:889,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:890,1
    - Dst: evtimer_assign
      Src: /src/libevent/test/regress_bufferevent.c:894,1
    - Dst: event_add
      Src: /src/libevent/test/regress_bufferevent.c:896,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_bufferevent.c:898,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:899,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:900,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_bufferevent.c:904,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:906,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_bufferevent.c:908,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 853
    functionDepth: 6
    functionLinenumber: 853
    functionLinenumberEnd: 909
    functionName: test_bufferevent_connect_fail_eventcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_socket_new
    - tt_assert
    - evtimer_assign
    - tt_want
    - evconnlistener_free
    - evutil_closesocket
    - bufferevent_free
    - bufferevent_setcb
    - event_add
    - bufferevent_enable
    - tt_int_op
    - bufferevent_socket_connect
    - fake_listener_create
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_connect_fail_eventcb(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_bufferevent.c:919,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/test/regress_bufferevent.c:920,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/test/regress_bufferevent.c:920,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_bufferevent.c:921,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/test/regress_bufferevent.c:922,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_bufferevent.c:925,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_bufferevent.c:928,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - bev
    - what
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 911
    functionDepth: 2
    functionLinenumber: 911
    functionLinenumberEnd: 929
    functionName: want_fail_eventcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - TT_FAIL
    - TT_BLATHER
    - event_base_loopexit
    - evutil_socket_error_to_string
    - evutil_socket_geterror
    - EV_SOCK_ARG
    - bufferevent_getfd
    linkageType: ''
    returnType: void
    signature: void want_fail_eventcb(struct bufferevent *bev, short what, void *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fake_listener_create
      Src: /src/libevent/test/regress_bufferevent.c:946,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_bufferevent.c:947,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:949,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:950,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/test/regress_bufferevent.c:952,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_bufferevent.c:955,1
    - Dst: evtimer_assign
      Src: /src/libevent/test/regress_bufferevent.c:959,1
    - Dst: event_add
      Src: /src/libevent/test/regress_bufferevent.c:961,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_bufferevent.c:964,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:966,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_bufferevent.c:970,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:973,1
    - Dst: event_del
      Src: /src/libevent/test/regress_bufferevent.c:976,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 931
    functionDepth: 6
    functionLinenumber: 931
    functionLinenumberEnd: 977
    functionName: test_bufferevent_connect_fail
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_socket_new
    - tt_assert
    - evtimer_assign
    - tt_want
    - event_del
    - evutil_closesocket
    - bufferevent_free
    - bufferevent_setcb
    - event_add
    - tt_int_op
    - bufferevent_socket_connect
    - fake_listener_create
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_connect_fail(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_bufferevent.c:993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 989
    functionDepth: 0
    functionLinenumber: 989
    functionLinenumberEnd: 994
    functionName: bev_timeout_read_cb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    linkageType: ''
    returnType: void
    signature: void bev_timeout_read_cb(struct bufferevent *bev, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_bufferevent.c:999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 1000
    functionName: bev_timeout_write_cb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    linkageType: ''
    returnType: void
    signature: void bev_timeout_write_cb(struct bufferevent *bev, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_bufferevent.c:1009,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_bufferevent.c:1014,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1001
    functionDepth: 0
    functionLinenumber: 1001
    functionLinenumberEnd: 1017
    functionName: bev_timeout_event_cb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    linkageType: ''
    returnType: void
    signature: void bev_timeout_event_cb(struct bufferevent *bev, short what, void
      *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_bufferevent.c:1029,1
    - Dst: memset
      Src: /src/libevent/test/regress_bufferevent.c:1030,1
    - Dst: strstr
      Src: /src/libevent/test/regress_bufferevent.c:1032,1
    - Dst: strstr
      Src: /src/libevent/test/regress_bufferevent.c:1034,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:1039,1
    - Dst: bufferevent_pair_new
      Src: /src/libevent/test/regress_bufferevent.c:1039,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_bufferevent.c:1043,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_bufferevent.c:1044,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1046,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1047,1
    - Dst: bufferevent_filter_new
      Src: /src/libevent/test/regress_bufferevent.c:1051,1
    - Dst: bufferevent_filter_new
      Src: /src/libevent/test/regress_bufferevent.c:1053,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1055,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1056,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_bufferevent.c:1062,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_bufferevent.c:1065,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:1069,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/test/regress_bufferevent.c:1071,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_bufferevent.c:1072,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:1073,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:1076,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/test/regress_bufferevent.c:1081,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:1082,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_bufferevent.c:1087,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_bufferevent.c:1088,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_bufferevent.c:1093,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_bufferevent.c:1094,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_bufferevent.c:1095,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_bufferevent.c:1096,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_bufferevent.c:1097,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_bufferevent.c:1098,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress_bufferevent.c:1100,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress_bufferevent.c:1101,1
    - Dst: tt_assert_timeval_empty
      Src: /src/libevent/test/regress_bufferevent.c:1107,1
    - Dst: tt_assert_timeval_empty
      Src: /src/libevent/test/regress_bufferevent.c:1108,1
    - Dst: tt_assert_timeval_empty
      Src: /src/libevent/test/regress_bufferevent.c:1109,1
    - Dst: tt_assert_timeval_empty
      Src: /src/libevent/test/regress_bufferevent.c:1110,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:1115,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:1117,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 62
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1019
    functionDepth: 8
    functionLinenumber: 1019
    functionLinenumberEnd: 1118
    functionName: test_bufferevent_timeouts
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_free
    - bufferevent_set_timeouts
    - bufferevent_write
    - test_timeval_diff_eq
    - evutil_gettimeofday
    - bufferevent_pair_new
    - tt_want
    - bufferevent_setcb
    - bufferevent_disable
    - tt_assert_timeval_empty
    - memset
    - bufferevent_filter_new
    - tt_int_op
    - bufferevent_socket_new
    - tt_assert
    - event_base_loopexit
    - strstr
    - bufferevent_enable
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_timeouts(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1103
    functionDepth: 0
    functionLinenumber: 1103
    functionLinenumberEnd: 1107
    functionName: tt_assert_timeval_empty
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_assert_timeval_empty(tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_bufferevent.c:1123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - what
    - ctx
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1124
    functionName: trigger_failure_cb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - TT_FAIL
    linkageType: ''
    returnType: void
    signature: void trigger_failure_cb(evutil_socket_t fd, short what, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_bufferevent.c:1131,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_bufferevent.c:1132,1
    - Dst: reader_eventcb
      Src: /src/libevent/test/regress_bufferevent.c:1135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - bev
    - what
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1126
    functionDepth: 7
    functionLinenumber: 1126
    functionLinenumberEnd: 1136
    functionName: trigger_eventcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    - reader_eventcb
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void trigger_eventcb(struct bufferevent *bev, short what, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_bufferevent.c:1141,1
    - Dst: bufferevent_trigger_event
      Src: /src/libevent/test/regress_bufferevent.c:1143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1138
    functionDepth: 3
    functionLinenumber: 1138
    functionLinenumberEnd: 1144
    functionName: trigger_readcb_triggered
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_trigger_event
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void trigger_readcb_triggered(struct bufferevent *bev, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_bufferevent.c:1154,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_bufferevent.c:1154,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:1157,1
    - Dst: bufferevent_getwatermark
      Src: /src/libevent/test/regress_bufferevent.c:1159,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:1160,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_bufferevent.c:1160,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/test/regress_bufferevent.c:1162,1
    - Dst: bufferevent_trigger
      Src: /src/libevent/test/regress_bufferevent.c:1163,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:1165,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_bufferevent.c:1174,1
    - Dst: bufferevent_trigger
      Src: /src/libevent/test/regress_bufferevent.c:1176,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:1178,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/test/regress_bufferevent.c:1180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1146
    functionDepth: 3
    functionLinenumber: 1146
    functionLinenumberEnd: 1183
    functionName: trigger_readcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_input
    - event_base_once
    - TT_BLATHER
    - bufferevent_trigger
    - bufferevent_setcb
    - bufferevent_getwatermark
    - bufferevent_setwatermark
    - evbuffer_get_length
    - tt_int_op
    - bufferevent_getfd
    linkageType: ''
    returnType: void
    signature: void trigger_readcb(struct bufferevent *bev, void *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libevent/test/regress_bufferevent.c:1199,1
    - Dst: strstr
      Src: /src/libevent/test/regress_bufferevent.c:1204,1
    - Dst: memset
      Src: /src/libevent/test/regress_bufferevent.c:1209,1
    - Dst: htonl
      Src: /src/libevent/test/regress_bufferevent.c:1212,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_bufferevent.c:1215,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1218,1
    - Dst: regress_get_listener_addr
      Src: /src/libevent/test/regress_bufferevent.c:1222,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress_bufferevent.c:1223,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1226,1
    - Dst: evconnlistener_enable
      Src: /src/libevent/test/regress_bufferevent.c:1226,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_bufferevent.c:1227,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1228,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:1229,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:1231,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_bufferevent.c:1233,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/test/regress_bufferevent.c:1233,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_bufferevent.c:1235,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:1237,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_bufferevent.c:1240,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:1243,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1185
    functionDepth: 6
    functionLinenumber: 1185
    functionLinenumberEnd: 1244
    functionName: test_bufferevent_trigger
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - regress_get_listener_addr
    - bufferevent_socket_new
    - tt_want
    - evconnlistener_new_bind
    - evconnlistener_free
    - evconnlistener_enable
    - tt_int_op
    - bufferevent_free
    - memset
    - bufferevent_setcb
    - tt_abort_perror
    - strstr
    - bufferevent_enable
    - bufferevent_socket_connect
    - htonl
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_trigger(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_bufferevent.c:1252,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1253,1
    - Dst: bufferevent_filter_new
      Src: /src/libevent/test/regress_bufferevent.c:1254,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1255,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:1259,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:1261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1246
    functionDepth: 6
    functionLinenumber: 1246
    functionLinenumberEnd: 1262
    functionName: test_bufferevent_socket_filter_inactive
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_socket_new
    - bufferevent_filter_new
    - bufferevent_free
    - tt_assert
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_socket_filter_inactive(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bev
    - what
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1264
    functionDepth: 0
    functionLinenumber: 1264
    functionLinenumberEnd: 1269
    functionName: pair_flush_eventcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pair_flush_eventcb(struct bufferevent *bev, short what, void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1280,1
    - Dst: bufferevent_pair_new
      Src: /src/libevent/test/regress_bufferevent.c:1280,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1283,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:1283,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1284,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:1284,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:1286,1
    - Dst: bufferevent_flush
      Src: /src/libevent/test/regress_bufferevent.c:1288,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_bufferevent.c:1290,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1292,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:1296,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:1298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1271
    functionDepth: 6
    functionLinenumber: 1271
    functionLinenumberEnd: 1299
    functionName: test_bufferevent_pair_flush
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - bufferevent_pair_new
    - bufferevent_free
    - bufferevent_setcb
    - event_base_loop
    - bufferevent_enable
    - bufferevent_flush
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_pair_flush(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_bufferevent.c:1310,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:1311,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_bufferevent.c:1312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1306
    functionDepth: 4
    functionLinenumber: 1306
    functionLinenumberEnd: 1314
    functionName: bufferevent_filter_data_stuck_readcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - evbuffer_drain
    - evbuffer_get_length
    - bufferevent_get_input
    linkageType: ''
    returnType: void
    signature: void bufferevent_filter_data_stuck_readcb(struct bufferevent *bev,
      void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/libevent/test/regress_bufferevent.c:1330,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_bufferevent.c:1331,1
    - Dst: free
      Src: /src/libevent/test/regress_bufferevent.c:1332,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:1337,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:1342,1
    - Dst: evbuffer_remove_buffer
      Src: /src/libevent/test/regress_bufferevent.c:1342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - src
    - dst
    - dst_limit
    - mode
    - ctx
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    - ev_ssize_t
    - enum bufferevent_flush_mode
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1319
    functionDepth: 7
    functionLinenumber: 1319
    functionLinenumberEnd: 1346
    functionName: bufferevent_filter_data_stuck_inputcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    - calloc
    - evbuffer_remove_buffer
    - free
    - evbuffer_get_length
    - tt_int_op
    linkageType: ''
    returnType: enum bufferevent_filter_result
    signature: "enum bufferevent_filter_result bufferevent_filter_data_stuck_inputcb(\n
      \   struct evbuffer *src, struct evbuffer *dst, ev_ssize_t dst_limit,\n    enum
      bufferevent_flush_mode mode, void *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_bufferevent.c:1362,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1365,1
    - Dst: bufferevent_pair_new
      Src: /src/libevent/test/regress_bufferevent.c:1365,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/test/regress_bufferevent.c:1367,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/test/regress_bufferevent.c:1368,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1370,1
    - Dst: bufferevent_filter_new
      Src: /src/libevent/test/regress_bufferevent.c:1372,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:1379,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1385,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:1385,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/test/regress_bufferevent.c:1387,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1389,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_bufferevent.c:1389,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_bufferevent.c:1391,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:1393,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:1396,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:1398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1348
    functionDepth: 8
    functionLinenumber: 1348
    functionLinenumberEnd: 1399
    functionName: test_bufferevent_filter_data_stuck
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - bufferevent_pair_new
    - tt_int_op
    - bufferevent_free
    - memset
    - bufferevent_setcb
    - bufferevent_setwatermark
    - bufferevent_filter_new
    - bufferevent_enable
    - bufferevent_write
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_filter_data_stuck(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_bufferevent.c:1409,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:1410,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:1410,1
    - Dst: strlen
      Src: /src/libevent/test/regress_bufferevent.c:1410,1
    - Dst: bufferevent_read
      Src: /src/libevent/test/regress_bufferevent.c:1412,1
    - Dst: strlen
      Src: /src/libevent/test/regress_bufferevent.c:1412,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:1413,1
    - Dst: strlen
      Src: /src/libevent/test/regress_bufferevent.c:1413,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:1414,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_bufferevent.c:1414,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/test/regress_bufferevent.c:1416,1
    - Dst: bufferevent_read
      Src: /src/libevent/test/regress_bufferevent.c:1417,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:1418,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_bufferevent.c:1420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1401
    functionDepth: 6
    functionLinenumber: 1401
    functionLinenumberEnd: 1421
    functionName: read_failed_readcb
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_read
    - bufferevent_get_input
    - evbuffer_freeze
    - event_base_loopexit
    - evbuffer_get_length
    - strlen
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void read_failed_readcb(struct bufferevent *bev, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_bufferevent.c:1430,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_bufferevent.c:1432,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_bufferevent.c:1433,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_bufferevent.c:1434,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:1438,1
    - Dst: send
      Src: /src/libevent/test/regress_bufferevent.c:1438,1
    - Dst: strlen
      Src: /src/libevent/test/regress_bufferevent.c:1438,1
    - Dst: strlen
      Src: /src/libevent/test/regress_bufferevent.c:1438,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_bufferevent.c:1440,1
    - Dst: write
      Src: /src/libevent/test/regress_bufferevent.c:1440,1
    - Dst: strlen
      Src: /src/libevent/test/regress_bufferevent.c:1440,1
    - Dst: strlen
      Src: /src/libevent/test/regress_bufferevent.c:1440,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_bufferevent.c:1442,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_bufferevent.c:1445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1423
    functionDepth: 6
    functionLinenumber: 1423
    functionLinenumberEnd: 1446
    functionName: test_bufferevent_read_failed
    functionSourceFile: /src/libevent/test/regress_bufferevent.c
    functionUses: 0
    functionsReached:
    - bufferevent_socket_new
    - tt_assert
    - write
    - bufferevent_free
    - bufferevent_setcb
    - bufferevent_enable
    - strlen
    - tt_int_op
    - event_base_dispatch
    - send
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_read_failed(void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/libevent/test/bench.c:83,1
    - Dst: send
      Src: /src/libevent/test/bench.c:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - fd
    - which
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 97
    functionName: read_cb
    functionSourceFile: /src/libevent/test/bench.c
    functionUses: 0
    functionsReached:
    - recv
    - send
    linkageType: ''
    returnType: void
    signature: void read_cb(evutil_socket_t fd, short which, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_initialized
      Src: /src/libevent/test/bench.c:107,1
    - Dst: event_del
      Src: /src/libevent/test/bench.c:108,1
    - Dst: event_assign
      Src: /src/libevent/test/bench.c:109,1
    - Dst: event_add
      Src: /src/libevent/test/bench.c:110,1
    - Dst: event_base_loop
      Src: /src/libevent/test/bench.c:113,1
    - Dst: send
      Src: /src/libevent/test/bench.c:119,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/bench.c:125,1
    - Dst: event_base_loop
      Src: /src/libevent/test/bench.c:127,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/bench.c:130,1
    - Dst: fprintf
      Src: /src/libevent/test/bench.c:133,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/bench.c:137,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 99
    functionDepth: 6
    functionLinenumber: 99
    functionLinenumberEnd: 140
    functionName: run_once
    functionSourceFile: /src/libevent/test/bench.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - event_del
    - event_assign
    - evutil_timersub
    - event_add
    - event_base_loop
    - fprintf
    - event_initialized
    - send
    linkageType: ''
    returnType: struct timeval
    signature: 'struct timeval *

      run_once(void)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: WSAStartup
      Src: /src/libevent/test/bench.c:157,1
    - Dst: getopt
      Src: /src/libevent/test/bench.c:162,1
    - Dst: atoi
      Src: /src/libevent/test/bench.c:165,1
    - Dst: atoi
      Src: /src/libevent/test/bench.c:168,1
    - Dst: atoi
      Src: /src/libevent/test/bench.c:171,1
    - Dst: event_get_supported_methods
      Src: /src/libevent/test/bench.c:177,1
    - Dst: fprintf
      Src: /src/libevent/test/bench.c:178,1
    - Dst: event_get_version
      Src: /src/libevent/test/bench.c:179,1
    - Dst: printf
      Src: /src/libevent/test/bench.c:181,1
    - Dst: exit
      Src: /src/libevent/test/bench.c:182,1
    - Dst: fprintf
      Src: /src/libevent/test/bench.c:184,1
    - Dst: exit
      Src: /src/libevent/test/bench.c:185,1
    - Dst: setrlimit
      Src: /src/libevent/test/bench.c:191,1
    - Dst: perror
      Src: /src/libevent/test/bench.c:192,1
    - Dst: exit
      Src: /src/libevent/test/bench.c:193,1
    - Dst: calloc
      Src: /src/libevent/test/bench.c:197,1
    - Dst: calloc
      Src: /src/libevent/test/bench.c:198,1
    - Dst: perror
      Src: /src/libevent/test/bench.c:200,1
    - Dst: exit
      Src: /src/libevent/test/bench.c:201,1
    - Dst: event_config_new
      Src: /src/libevent/test/bench.c:205,1
    - Dst: event_get_supported_methods
      Src: /src/libevent/test/bench.c:206,1
    - Dst: strcmp
      Src: /src/libevent/test/bench.c:208,1
    - Dst: event_config_avoid_method
      Src: /src/libevent/test/bench.c:209,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/bench.c:210,1
    - Dst: event_config_free
      Src: /src/libevent/test/bench.c:211,1
    - Dst: event_base_new
      Src: /src/libevent/test/bench.c:213,1
    - Dst: pipe
      Src: /src/libevent/test/bench.c:217,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/bench.c:219,1
    - Dst: perror
      Src: /src/libevent/test/bench.c:221,1
    - Dst: exit
      Src: /src/libevent/test/bench.c:222,1
    - Dst: run_once
      Src: /src/libevent/test/bench.c:227,1
    - Dst: exit
      Src: /src/libevent/test/bench.c:229,1
    - Dst: fprintf
      Src: /src/libevent/test/bench.c:230,1
    - Dst: exit
      Src: /src/libevent/test/bench.c:234,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 66
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 142
    functionDepth: 5
    functionLinenumber: 142
    functionLinenumberEnd: 235
    functionName: main
    functionSourceFile: /src/libevent/test/bench.c
    functionUses: 1
    functionsReached:
    - calloc
    - printf
    - setrlimit
    - run_once
    - pipe
    - event_get_version
    - atoi
    - event_config_avoid_method
    - event_base_new
    - fprintf
    - event_get_supported_methods
    - exit
    - perror
    - event_config_free
    - evutil_socketpair
    - event_config_new
    - getopt
    - strcmp
    - event_base_new_with_config
    - WSAStartup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libevent/test/regress_zlib.c:100,1
    - Dst: deflateEnd
      Src: /src/libevent/test/regress_zlib.c:100,1
    - Dst: mm_free
      Src: /src/libevent/test/regress_zlib.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts:
    - condition: (deflateEnd(p) == Z_OK)
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/libevent/test/regress_zlib.c
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: zlib_deflate_free
    functionSourceFile: /src/libevent/test/regress_zlib.c
    functionUses: 0
    functionsReached:
    - assert
    - mm_free
    - deflateEnd
    linkageType: ''
    returnType: void
    signature: void zlib_deflate_free(void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libevent/test/regress_zlib.c:109,1
    - Dst: inflateEnd
      Src: /src/libevent/test/regress_zlib.c:109,1
    - Dst: mm_free
      Src: /src/libevent/test/regress_zlib.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts:
    - condition: (inflateEnd(p) == Z_OK)
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/libevent/test/regress_zlib.c
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: zlib_inflate_free
    functionSourceFile: /src/libevent/test/regress_zlib.c
    functionUses: 0
    functionsReached:
    - inflateEnd
    - assert
    - mm_free
    linkageType: ''
    returnType: void
    signature: void zlib_inflate_free(void *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - enum bufferevent_flush_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 125
    functionName: getstate
    functionSourceFile: /src/libevent/test/regress_zlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getstate(enum bufferevent_flush_mode state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_zlib.c:145,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_zlib.c:154,1
    - Dst: inflate
      Src: /src/libevent/test/regress_zlib.c:159,1
    - Dst: getstate
      Src: /src/libevent/test/regress_zlib.c:159,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_zlib.c:165,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_zlib.c:167,1
    - Dst: assert
      Src: /src/libevent/test/regress_zlib.c:176,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_zlib.c:179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 5
    argNames:
    - src
    - dst
    - lim
    - state
    - ctx
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    - ev_ssize_t
    - enum bufferevent_flush_mode
    - void*
    assertStmts:
    - condition: (res == Z_OK || res == Z_STREAM_END)
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/libevent/test/regress_zlib.c
    constantsTouched: []
    func_position:
      end: 184
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 184
    functionName: zlib_input_filter
    functionSourceFile: /src/libevent/test/regress_zlib.c
    functionUses: 0
    functionsReached:
    - getstate
    - evbuffer_peek
    - evbuffer_reserve_space
    - evbuffer_commit_space
    - inflate
    - evbuffer_get_length
    - assert
    - evbuffer_drain
    linkageType: ''
    returnType: enum bufferevent_filter_result
    signature: "enum bufferevent_filter_result zlib_input_filter(struct evbuffer *src,
      struct evbuffer *dst,\n    ev_ssize_t lim, enum bufferevent_flush_mode state,
      void *ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_zlib.c:199,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_zlib.c:208,1
    - Dst: deflate
      Src: /src/libevent/test/regress_zlib.c:213,1
    - Dst: getstate
      Src: /src/libevent/test/regress_zlib.c:213,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_zlib.c:219,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_zlib.c:221,1
    - Dst: assert
      Src: /src/libevent/test/regress_zlib.c:230,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_zlib.c:233,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 5
    argNames:
    - src
    - dst
    - lim
    - state
    - ctx
    argTypes:
    - struct evbuffer*
    - struct evbuffer*
    - ev_ssize_t
    - enum bufferevent_flush_mode
    - void*
    assertStmts:
    - condition: (res == Z_OK || res == Z_STREAM_END)
      pos:
        line_end: 229
        line_start: 229
        source_file: /src/libevent/test/regress_zlib.c
    constantsTouched: []
    func_position:
      end: 238
      start: 186
    functionDepth: 4
    functionLinenumber: 186
    functionLinenumberEnd: 238
    functionName: zlib_output_filter
    functionSourceFile: /src/libevent/test/regress_zlib.c
    functionUses: 0
    functionsReached:
    - getstate
    - evbuffer_peek
    - evbuffer_reserve_space
    - deflate
    - evbuffer_commit_space
    - evbuffer_get_length
    - assert
    - evbuffer_drain
    linkageType: ''
    returnType: enum bufferevent_filter_result
    signature: "enum bufferevent_filter_result zlib_output_filter(struct evbuffer
      *src, struct evbuffer *dst,\n    ev_ssize_t lim, enum bufferevent_flush_mode
      state, void *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_zlib.c:247,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_zlib.c:247,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_zlib.c:248,1
    - Dst: assert
      Src: /src/libevent/test/regress_zlib.c:249,1
    - Dst: bufferevent_read_buffer
      Src: /src/libevent/test/regress_zlib.c:252,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_zlib.c:254,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_zlib.c:256,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_zlib.c:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts:
    - condition: (evbuf != NULL)
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/libevent/test/regress_zlib.c
    constantsTouched: []
    func_position:
      end: 262
      start: 244
    functionDepth: 7
    functionLinenumber: 244
    functionLinenumberEnd: 262
    functionName: readcb
    functionSourceFile: /src/libevent/test/regress_zlib.c
    functionUses: 3
    functionsReached:
    - bufferevent_read_buffer
    - bufferevent_get_input
    - evbuffer_free
    - evbuffer_get_length
    - assert
    - evbuffer_new
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void readcb(struct bufferevent *bev, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_zlib.c:267,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_zlib.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 270
    functionName: writecb
    functionSourceFile: /src/libevent/test/regress_zlib.c
    functionUses: 3
    functionsReached:
    - bufferevent_get_output
    - evbuffer_get_length
    linkageType: ''
    returnType: void
    signature: void writecb(struct bufferevent *bev, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: errorcb
    functionSourceFile: /src/libevent/test/regress_zlib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void errorcb(struct bufferevent *bev, short what, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_zlib.c:291,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress_zlib.c:292,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_zlib.c:295,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_zlib.c:296,1
    - Dst: mm_calloc
      Src: /src/libevent/test/regress_zlib.c:298,1
    - Dst: deflateInit
      Src: /src/libevent/test/regress_zlib.c:299,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_zlib.c:300,1
    - Dst: mm_calloc
      Src: /src/libevent/test/regress_zlib.c:301,1
    - Dst: inflateInit
      Src: /src/libevent/test/regress_zlib.c:302,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_zlib.c:303,1
    - Dst: bufferevent_filter_new
      Src: /src/libevent/test/regress_zlib.c:306,1
    - Dst: bufferevent_filter_new
      Src: /src/libevent/test/regress_zlib.c:308,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_zlib.c:310,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_zlib.c:311,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_zlib.c:312,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_zlib.c:313,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_zlib.c:315,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_zlib.c:316,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_zlib.c:318,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_zlib.c:324,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_zlib.c:325,1
    - Dst: bufferevent_flush
      Src: /src/libevent/test/regress_zlib.c:328,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_zlib.c:330,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_zlib.c:332,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_zlib.c:333,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_zlib.c:334,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_zlib.c:335,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_zlib.c:336,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_zlib.c:341,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_zlib.c:343,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_zlib.c:346,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_zlib.c:348,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 45
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 278
    functionDepth: 8
    functionLinenumber: 278
    functionLinenumberEnd: 349
    functionName: test_bufferevent_zlib
    functionSourceFile: /src/libevent/test/regress_zlib.c
    functionUses: 0
    functionsReached:
    - bufferevent_socket_new
    - bufferevent_filter_new
    - tt_ptr_op
    - tt_want
    - evutil_closesocket
    - mm_calloc
    - bufferevent_write
    - bufferevent_free
    - bufferevent_setcb
    - event_dispatch
    - inflateInit
    - tt_abort_perror
    - bufferevent_enable
    - deflateInit
    - tt_int_op
    - evutil_socketpair
    - bufferevent_flush
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_zlib(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/test-fdleak.c:70,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/test/test-fdleak.c:71,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/test/test-fdleak.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: my_perror
    functionSourceFile: /src/libevent/test/test-fdleak.c
    functionUses: 0
    functionsReached:
    - fprintf
    - EVUTIL_SOCKET_ERROR
    - evutil_socket_error_to_string
    linkageType: ''
    returnType: void
    signature: void my_perror(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/test-fdleak.c:84,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/test-fdleak.c:84,1
    - Dst: bufferevent_read
      Src: /src/libevent/test/test-fdleak.c:86,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/test-fdleak.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 8
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: server_read_cb
    functionSourceFile: /src/libevent/test/test-fdleak.c
    functionUses: 0
    functionsReached:
    - bufferevent_write
    - bufferevent_read
    - evbuffer_get_length
    - bufferevent_get_input
    linkageType: ''
    returnType: void
    signature: void server_read_cb(struct bufferevent *bev, void *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: my_perror
      Src: /src/libevent/test/test-fdleak.c:96,1
    - Dst: exit
      Src: /src/libevent/test/test-fdleak.c:97,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/test-fdleak.c:99,1
    - Dst: event_base_loopbreak
      Src: /src/libevent/test/test-fdleak.c:101,1
    - Dst: bufferevent_get_base
      Src: /src/libevent/test/test-fdleak.c:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - bev
    - events
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 92
    functionDepth: 6
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: server_event_cb
    functionSourceFile: /src/libevent/test/test-fdleak.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_base
    - exit
    - bufferevent_free
    - my_perror
    - event_base_loopbreak
    linkageType: ''
    returnType: void
    signature: void server_event_cb(struct bufferevent *bev, short events, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evconnlistener_get_base
      Src: /src/libevent/test/test-fdleak.c:111,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/test-fdleak.c:112,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/test-fdleak.c:114,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/test-fdleak.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - listener
    - sock
    - addr
    - len
    - ptr
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 6
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: listener_accept_cb
    functionSourceFile: /src/libevent/test/test-fdleak.c
    functionUses: 0
    functionsReached:
    - bufferevent_socket_new
    - bufferevent_setcb
    - evconnlistener_get_base
    - bufferevent_enable
    linkageType: ''
    returnType: void
    signature: "void listener_accept_cb(struct evconnlistener *listener, evutil_socket_t
      sock,\n                   struct sockaddr *addr, int len, void *ptr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: event_base_new
      Src: /src/libevent/test/test-fdleak.c:128,1
    - Dst: puts
      Src: /src/libevent/test/test-fdleak.c:130,1
    - Dst: exit
      Src: /src/libevent/test/test-fdleak.c:131,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/test-fdleak.c:134,1
    - Dst: my_perror
      Src: /src/libevent/test/test-fdleak.c:138,1
    - Dst: exit
      Src: /src/libevent/test/test-fdleak.c:139,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/test-fdleak.c:141,1
    - Dst: puts
      Src: /src/libevent/test/test-fdleak.c:143,1
    - Dst: exit
      Src: /src/libevent/test/test-fdleak.c:144,1
    - Dst: getsockname
      Src: /src/libevent/test/test-fdleak.c:146,1
    - Dst: my_perror
      Src: /src/libevent/test/test-fdleak.c:147,1
    - Dst: exit
      Src: /src/libevent/test/test-fdleak.c:148,1
    - Dst: memcpy
      Src: /src/libevent/test/test-fdleak.c:150,1
    - Dst: puts
      Src: /src/libevent/test/test-fdleak.c:152,1
    - Dst: exit
      Src: /src/libevent/test/test-fdleak.c:153,1
    - Dst: start_client
      Src: /src/libevent/test/test-fdleak.c:156,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/test-fdleak.c:158,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/test-fdleak.c:160,1
    - Dst: event_base_free
      Src: /src/libevent/test/test-fdleak.c:161,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 119
    functionDepth: 6
    functionLinenumber: 119
    functionLinenumberEnd: 162
    functionName: start_loop
    functionSourceFile: /src/libevent/test/test-fdleak.c
    functionUses: 0
    functionsReached:
    - getsockname
    - exit
    - event_base_free
    - puts
    - my_perror
    - evconnlistener_get_fd
    - memcpy
    - start_client
    - event_base_new
    - evconnlistener_free
    - evconnlistener_new_bind
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void start_loop(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_base
      Src: /src/libevent/test/test-fdleak.c:176,1
    - Dst: bufferevent_read
      Src: /src/libevent/test/test-fdleak.c:178,1
    - Dst: puts
      Src: /src/libevent/test/test-fdleak.c:180,1
    - Dst: exit
      Src: /src/libevent/test/test-fdleak.c:181,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/test-fdleak.c:183,1
    - Dst: start_client
      Src: /src/libevent/test/test-fdleak.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 172
    functionDepth: 6
    functionLinenumber: 172
    functionLinenumberEnd: 189
    functionName: client_read_cb
    functionSourceFile: /src/libevent/test/test-fdleak.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_base
    - bufferevent_read
    - exit
    - bufferevent_free
    - puts
    - start_client
    linkageType: ''
    returnType: void
    signature: void client_read_cb(struct bufferevent *bev, void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_write
      Src: /src/libevent/test/test-fdleak.c:197,1
    - Dst: puts
      Src: /src/libevent/test/test-fdleak.c:199,1
    - Dst: exit
      Src: /src/libevent/test/test-fdleak.c:200,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/test-fdleak.c:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - bev
    - events
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 192
    functionDepth: 8
    functionLinenumber: 192
    functionLinenumberEnd: 204
    functionName: client_event_cb
    functionSourceFile: /src/libevent/test/test-fdleak.c
    functionUses: 0
    functionsReached:
    - exit
    - puts
    - bufferevent_write
    - bufferevent_enable
    linkageType: ''
    returnType: void
    signature: void client_event_cb(struct bufferevent *bev, short events, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/test-fdleak.c:210,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/test-fdleak.c:212,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/test/test-fdleak.c:214,1
    - Dst: my_perror
      Src: /src/libevent/test/test-fdleak.c:216,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/test-fdleak.c:217,1
    - Dst: exit
      Src: /src/libevent/test/test-fdleak.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 207
    functionDepth: 6
    functionLinenumber: 207
    functionLinenumberEnd: 220
    functionName: start_client
    functionSourceFile: /src/libevent/test/test-fdleak.c
    functionUses: 2
    functionsReached:
    - bufferevent_socket_new
    - exit
    - bufferevent_free
    - bufferevent_setcb
    - my_perror
    - bufferevent_socket_connect
    linkageType: ''
    returnType: void
    signature: void start_client(struct event_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setrlimit
      Src: /src/libevent/test/test-fdleak.c:230,1
    - Dst: my_perror
      Src: /src/libevent/test/test-fdleak.c:231,1
    - Dst: exit
      Src: /src/libevent/test/test-fdleak.c:232,1
    - Dst: WSAStartup
      Src: /src/libevent/test/test-fdleak.c:238,1
    - Dst: memset
      Src: /src/libevent/test/test-fdleak.c:242,1
    - Dst: htonl
      Src: /src/libevent/test/test-fdleak.c:244,1
    - Dst: start_loop
      Src: /src/libevent/test/test-fdleak.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 222
    functionDepth: 7
    functionLinenumber: 222
    functionLinenumberEnd: 250
    functionName: main
    functionSourceFile: /src/libevent/test/test-fdleak.c
    functionUses: 1
    functionsReached:
    - exit
    - start_loop
    - my_perror
    - setrlimit
    - memset
    - WSAStartup
    - htonl
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/libevent/test/test-init.c:55,1
    - Dst: WSAStartup
      Src: /src/libevent/test/test-init.c:57,1
    - Dst: event_init
      Src: /src/libevent/test/test-init.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 64
    functionName: main
    functionSourceFile: /src/libevent/test/test-init.c
    functionUses: 1
    functionsReached:
    - WSAStartup
    - MAKEWORD
    - event_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - prefix
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: TT_DECLARE
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TT_DECLARE(prefix, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: TT_GRIPE
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TT_GRIPE(args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: TT_BLATHER
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TT_BLATHER(args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: TT_DIE
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TT_DIE(args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: TT_FAIL
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TT_FAIL(args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: tt_abort_printf
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_abort_printf(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: tt_abort_perror
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_abort_perror(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: tt_abort_msg
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_abort_msg(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: tt_abort
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_abort()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: tt_failprint_f
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_failprint_f(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: tt_fail_perror
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_fail_perror(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: tt_fail_msg
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_fail_msg(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: tt_fail
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_fail()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: tt_skip
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_skip()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - msg
    - ','
    - fail
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: tt_want_
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_want_(b, msg, fail)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: tt_want_msg
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_want_msg(b, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: tt_assert_msg
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_assert_msg(b, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: tt_want
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_want(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: tt_assert
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_assert(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - str_test
    - ','
    - type
    - ','
    - test
    - ','
    - printf_type
    - ','
    - printf_fmt
    - ','
    - setup_block
    - ','
    - cleanup_block
    - ','
    - die_on_fail
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 142
    functionName: tt_assert_test_fmt_type
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "tt_assert_test_fmt_type(a,b,str_test,type,test,printf_type,printf_fmt,
      \\\n    setup_block,cleanup_block,die_on_fail)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - str_test
    - ','
    - type
    - ','
    - test
    - ','
    - fmt
    - ','
    - die_on_fail
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: tt_assert_test_type
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_assert_test_type(a,b,str_test,type,test,fmt,die_on_fail)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - str_test
    - ','
    - type
    - ','
    - test
    - ','
    - fmt
    - ','
    - die_on_fail
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: tt_assert_test_type_opt
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_assert_test_type_opt(a,b,str_test,type,test,fmt,die_on_fail)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - op
    - ','
    - b
    - ','
    - type
    - ','
    - fmt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: tt_assert_op_type
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_assert_op_type(a,op,b,type,fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - op
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: tt_int_op
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_int_op(a,op,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - op
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 168
    functionName: tt_fd_op
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_fd_op(a,op,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - op
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: tt_uint_op
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_uint_op(a,op,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - op
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: tt_ptr_op
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_ptr_op(a,op,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - n
    - ','
    - a
    - ','
    - op
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: tt_nstr_op
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_nstr_op(n,a,op,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - op
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: tt_str_op
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_str_op(a,op,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - expr1
    - ','
    - op
    - ','
    - expr2
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 197
    functionName: tt_mem_op
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_mem_op(expr1, op, expr2, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - op
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: tt_want_int_op
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_want_int_op(a,op,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - op
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: tt_want_uint_op
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_want_uint_op(a,op,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - op
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: tt_want_ptr_op
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_want_ptr_op(a,op,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - op
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: tt_want_str_op
    functionSourceFile: /src/libevent/test/tinytest_macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_want_str_op(a,op,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/test/regress_iocp.c:64,1
    - Dst: EVTHREAD_ALLOC_COND
      Src: /src/libevent/test/regress_iocp.c:65,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:67,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 72
    functionName: count_init
    functionSourceFile: /src/libevent/test/regress_iocp.c
    functionUses: 0
    functionsReached:
    - EVTHREAD_ALLOC_LOCK
    - EVTHREAD_ALLOC_COND
    - tt_assert
    linkageType: ''
    returnType: void
    signature: void count_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/test/regress_iocp.c:77,1
    - Dst: EVTHREAD_FREE_COND
      Src: /src/libevent/test/regress_iocp.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: count_free
    functionSourceFile: /src/libevent/test/regress_iocp.c
    functionUses: 0
    functionsReached:
    - EVTHREAD_FREE_LOCK
    - EVTHREAD_FREE_COND
    linkageType: ''
    returnType: void
    signature: void count_free(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/test/regress_iocp.c:84,1
    - Dst: EVTHREAD_COND_BROADCAST
      Src: /src/libevent/test/regress_iocp.c:86,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_iocp.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: count_incr
    functionSourceFile: /src/libevent/test/regress_iocp.c
    functionUses: 0
    functionsReached:
    - EVLOCK_LOCK
    - EVTHREAD_COND_BROADCAST
    - EVLOCK_UNLOCK
    linkageType: ''
    returnType: void
    signature: void count_incr(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/test/regress_iocp.c:97,1
    - Dst: GetTickCount
      Src: /src/libevent/test/regress_iocp.c:101,1
    - Dst: EVTHREAD_COND_WAIT_TIMED
      Src: /src/libevent/test/regress_iocp.c:102,1
    - Dst: GetTickCount
      Src: /src/libevent/test/regress_iocp.c:103,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_iocp.c:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - i
    - ms
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 111
    functionName: count_wait_for
    functionSourceFile: /src/libevent/test/regress_iocp.c
    functionUses: 0
    functionsReached:
    - GetTickCount
    - EVLOCK_UNLOCK
    - EVLOCK_LOCK
    - EVTHREAD_COND_WAIT_TIMED
    linkageType: ''
    returnType: int
    signature: int count_wait_for(int i, int ms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_UPCAST
      Src: /src/libevent/test/regress_iocp.c:125,1
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/test/regress_iocp.c:127,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_iocp.c:133,1
    - Dst: count_incr
      Src: /src/libevent/test/regress_iocp.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - o
    - key
    - n
    - ok
    argTypes:
    - struct event_overlapped*
    - uintptr_t
    - ev_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 136
    functionName: dummy_cb
    functionSourceFile: /src/libevent/test/regress_iocp.c
    functionUses: 0
    functionsReached:
    - count_incr
    - EVLOCK_LOCK
    - EVUTIL_UPCAST
    - EVLOCK_UNLOCK
    linkageType: ''
    returnType: void
    signature: void dummy_cb(struct event_overlapped *o, uintptr_t key, ev_ssize_t
      n, int ok)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/test/regress_iocp.c:143,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_iocp.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - o
    - key
    - n
    argTypes:
    - struct dummy_overlapped*
    - uintptr_t
    - ev_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 152
    functionName: pair_is_in
    functionSourceFile: /src/libevent/test/regress_iocp.c
    functionUses: 0
    functionsReached:
    - EVLOCK_LOCK
    - EVLOCK_UNLOCK
    linkageType: ''
    returnType: int
    signature: int pair_is_in(struct dummy_overlapped *o, uintptr_t key, ev_ssize_t
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_iocp.c:160,1
    - Dst: memset
      Src: /src/libevent/test/regress_iocp.c:161,1
    - Dst: count_init
      Src: /src/libevent/test/regress_iocp.c:163,1
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/test/regress_iocp.c:164,1
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/test/regress_iocp.c:165,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:167,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:168,1
    - Dst: event_overlapped_init_
      Src: /src/libevent/test/regress_iocp.c:170,1
    - Dst: event_overlapped_init_
      Src: /src/libevent/test/regress_iocp.c:171,1
    - Dst: event_iocp_port_launch_
      Src: /src/libevent/test/regress_iocp.c:173,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:174,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:176,1
    - Dst: event_iocp_activate_overlapped_
      Src: /src/libevent/test/regress_iocp.c:176,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:177,1
    - Dst: event_iocp_activate_overlapped_
      Src: /src/libevent/test/regress_iocp.c:177,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:179,1
    - Dst: event_iocp_activate_overlapped_
      Src: /src/libevent/test/regress_iocp.c:179,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:180,1
    - Dst: event_iocp_activate_overlapped_
      Src: /src/libevent/test/regress_iocp.c:180,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:182,1
    - Dst: event_iocp_activate_overlapped_
      Src: /src/libevent/test/regress_iocp.c:182,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:183,1
    - Dst: event_iocp_activate_overlapped_
      Src: /src/libevent/test/regress_iocp.c:183,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:185,1
    - Dst: event_iocp_activate_overlapped_
      Src: /src/libevent/test/regress_iocp.c:185,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:186,1
    - Dst: event_iocp_activate_overlapped_
      Src: /src/libevent/test/regress_iocp.c:186,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_iocp.c:188,1
    - Dst: count_wait_for
      Src: /src/libevent/test/regress_iocp.c:188,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_iocp.c:190,1
    - Dst: event_iocp_shutdown_
      Src: /src/libevent/test/regress_iocp.c:190,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_iocp.c:192,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_iocp.c:193,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_iocp.c:195,1
    - Dst: pair_is_in
      Src: /src/libevent/test/regress_iocp.c:195,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_iocp.c:196,1
    - Dst: pair_is_in
      Src: /src/libevent/test/regress_iocp.c:196,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_iocp.c:197,1
    - Dst: pair_is_in
      Src: /src/libevent/test/regress_iocp.c:197,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_iocp.c:198,1
    - Dst: pair_is_in
      Src: /src/libevent/test/regress_iocp.c:198,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_iocp.c:200,1
    - Dst: pair_is_in
      Src: /src/libevent/test/regress_iocp.c:200,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_iocp.c:201,1
    - Dst: pair_is_in
      Src: /src/libevent/test/regress_iocp.c:201,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_iocp.c:202,1
    - Dst: pair_is_in
      Src: /src/libevent/test/regress_iocp.c:202,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_iocp.c:203,1
    - Dst: pair_is_in
      Src: /src/libevent/test/regress_iocp.c:203,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/test/regress_iocp.c:206,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/test/regress_iocp.c:207,1
    - Dst: count_free
      Src: /src/libevent/test/regress_iocp.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 209
    functionName: test_iocp_port
    functionSourceFile: /src/libevent/test/regress_iocp.c
    functionUses: 0
    functionsReached:
    - EVTHREAD_ALLOC_LOCK
    - tt_assert
    - event_overlapped_init_
    - count_wait_for
    - tt_want
    - pair_is_in
    - event_iocp_activate_overlapped_
    - memset
    - EVTHREAD_FREE_LOCK
    - event_iocp_shutdown_
    - count_init
    - tt_int_op
    - event_iocp_port_launch_
    - count_free
    linkageType: ''
    returnType: void
    signature: void test_iocp_port(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:217,1
    - Dst: evbuffer_commit_read_
      Src: /src/libevent/test/regress_iocp.c:218,1
    - Dst: count_incr
      Src: /src/libevent/test/regress_iocp.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - eo
    - key
    - nbytes
    - ok
    argTypes:
    - struct event_overlapped*
    - uintptr_t
    - ev_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 222
    functionName: read_complete
    functionSourceFile: /src/libevent/test/regress_iocp.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_commit_read_
    - count_incr
    linkageType: ''
    returnType: void
    signature: "void read_complete(struct event_overlapped *eo, uintptr_t key,\n    ev_ssize_t
      nbytes, int ok)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:228,1
    - Dst: evbuffer_commit_write_
      Src: /src/libevent/test/regress_iocp.c:229,1
    - Dst: count_incr
      Src: /src/libevent/test/regress_iocp.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - eo
    - key
    - nbytes
    - ok
    argTypes:
    - struct event_overlapped*
    - uintptr_t
    - ev_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 233
    functionName: write_complete
    functionSourceFile: /src/libevent/test/regress_iocp.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - count_incr
    - evbuffer_commit_write_
    linkageType: ''
    returnType: void
    signature: "void write_complete(struct event_overlapped *eo, uintptr_t key,\n
      \   ev_ssize_t nbytes, int ok)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: count_init
      Src: /src/libevent/test/regress_iocp.c:246,1
    - Dst: event_overlapped_init_
      Src: /src/libevent/test/regress_iocp.c:247,1
    - Dst: event_overlapped_init_
      Src: /src/libevent/test/regress_iocp.c:248,1
    - Dst: evbuffer_overlapped_new_
      Src: /src/libevent/test/regress_iocp.c:253,1
    - Dst: evbuffer_overlapped_new_
      Src: /src/libevent/test/regress_iocp.c:254,1
    - Dst: evbuffer_enable_locking
      Src: /src/libevent/test/regress_iocp.c:255,1
    - Dst: evbuffer_enable_locking
      Src: /src/libevent/test/regress_iocp.c:256,1
    - Dst: event_iocp_port_launch_
      Src: /src/libevent/test/regress_iocp.c:258,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:259,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:260,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:261,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:263,1
    - Dst: event_iocp_port_associate_
      Src: /src/libevent/test/regress_iocp.c:263,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:264,1
    - Dst: event_iocp_port_associate_
      Src: /src/libevent/test/regress_iocp.c:264,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_iocp.c:267,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_iocp.c:269,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:270,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_iocp.c:271,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:272,1
    - Dst: evbuffer_launch_read_
      Src: /src/libevent/test/regress_iocp.c:272,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_iocp.c:273,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_iocp.c:274,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_iocp.c:274,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_iocp.c:276,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:277,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_iocp.c:277,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:278,1
    - Dst: evbuffer_launch_write_
      Src: /src/libevent/test/regress_iocp.c:278,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_iocp.c:280,1
    - Dst: count_wait_for
      Src: /src/libevent/test/regress_iocp.c:280,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_iocp.c:282,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_iocp.c:282,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_iocp.c:286,1
    - Dst: event_iocp_shutdown_
      Src: /src/libevent/test/regress_iocp.c:286,1
    - Dst: count_free
      Src: /src/libevent/test/regress_iocp.c:288,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_iocp.c:289,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_iocp.c:290,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_iocp.c:291,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 235
    functionDepth: 7
    functionLinenumber: 235
    functionLinenumberEnd: 292
    functionName: test_iocp_evbuffer
    functionSourceFile: /src/libevent/test/regress_iocp.c
    functionUses: 0
    functionsReached:
    - count_wait_for
    - evbuffer_add
    - evbuffer_launch_write_
    - evbuffer_free
    - evbuffer_get_length
    - event_iocp_shutdown_
    - evbuffer_new
    - event_iocp_port_associate_
    - tt_want
    - evbuffer_launch_read_
    - evbuffer_enable_locking
    - tt_int_op
    - evbuffer_overlapped_new_
    - tt_assert
    - event_overlapped_init_
    - evbuffer_add_buffer
    - count_init
    - event_iocp_port_launch_
    - count_free
    linkageType: ''
    returnType: void
    signature: void test_iocp_evbuffer(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_iocp.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 302
    functionName: async_readcb
    functionSourceFile: /src/libevent/test/regress_iocp.c
    functionUses: 0
    functionsReached:
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void async_readcb(struct bufferevent *bev, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_start_iocp_
      Src: /src/libevent/test/regress_iocp.c:313,1
    - Dst: event_base_get_iocp_
      Src: /src/libevent/test/regress_iocp.c:314,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:315,1
    - Dst: bufferevent_async_new_
      Src: /src/libevent/test/regress_iocp.c:317,1
    - Dst: bufferevent_async_new_
      Src: /src/libevent/test/regress_iocp.c:319,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:321,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_iocp.c:322,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_iocp.c:324,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_iocp.c:325,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_iocp.c:326,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_iocp.c:328,1
    - Dst: strlen
      Src: /src/libevent/test/regress_iocp.c:328,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_iocp.c:330,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_iocp.c:332,1
    - Dst: bufferevent_read
      Src: /src/libevent/test/regress_iocp.c:333,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_iocp.c:335,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_iocp.c:338,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_iocp.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 304
    functionDepth: 8
    functionLinenumber: 304
    functionLinenumberEnd: 340
    functionName: test_iocp_bufferevent_async
    functionSourceFile: /src/libevent/test/regress_iocp.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_str_op
    - event_base_start_iocp_
    - bufferevent_read
    - bufferevent_write
    - tt_int_op
    - bufferevent_free
    - bufferevent_setcb
    - event_base_get_iocp_
    - strlen
    - bufferevent_enable
    - bufferevent_async_new_
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_iocp_bufferevent_async(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_watch.c:51,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:57,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:58,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:59,1
    - Dst: event_base_gettimeofday_cached
      Src: /src/libevent/test/regress_watch.c:65,1
    - Dst: evwatch_base
      Src: /src/libevent/test/regress_watch.c:65,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:66,1
    - Dst: evwatch_prepare_get_timeout
      Src: /src/libevent/test/regress_watch.c:66,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:69,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - watcher
    - info
    - arg
    argTypes:
    - struct evwatch*
    - struct evwatch_prepare_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 74
    functionName: prepare_callback_1
    functionSourceFile: /src/libevent/test/regress_watch.c
    functionUses: 0
    functionsReached:
    - tt_ptr_op
    - evwatch_base
    - event_base_gettimeofday_cached
    - tt_int_op
    - evwatch_prepare_get_timeout
    linkageType: ''
    returnType: void
    signature: void prepare_callback_1(struct evwatch *watcher, const struct evwatch_prepare_cb_info
      *info, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_watch.c:80,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:86,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:87,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - watcher
    - info
    - arg
    argTypes:
    - struct evwatch*
    - struct evwatch_prepare_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 91
    functionName: prepare_callback_2
    functionSourceFile: /src/libevent/test/regress_watch.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    - tt_ptr_op
    linkageType: ''
    returnType: void
    signature: void prepare_callback_2(struct evwatch *watcher, const struct evwatch_prepare_cb_info
      *info, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_watch.c:97,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:102,1
    - Dst: event_base_gettimeofday_cached
      Src: /src/libevent/test/regress_watch.c:106,1
    - Dst: evwatch_base
      Src: /src/libevent/test/regress_watch.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - watcher
    - info
    - arg
    argTypes:
    - struct evwatch*
    - struct evwatch_check_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 109
    functionName: check_callback_1
    functionSourceFile: /src/libevent/test/regress_watch.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    - event_base_gettimeofday_cached
    - tt_ptr_op
    - evwatch_base
    linkageType: ''
    returnType: void
    signature: void check_callback_1(struct evwatch *watcher, const struct evwatch_check_cb_info
      *info, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_watch.c:115,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - watcher
    - info
    - arg
    argTypes:
    - struct evwatch*
    - struct evwatch_check_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 123
    functionName: check_callback_2
    functionSourceFile: /src/libevent/test/regress_watch.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    - tt_ptr_op
    linkageType: ''
    returnType: void
    signature: void check_callback_2(struct evwatch *watcher, const struct evwatch_check_cb_info
      *info, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: timeout_callback
    functionSourceFile: /src/libevent/test/regress_watch.c
    functionUses: 1
    functionsReached:
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void timeout_callback(evutil_socket_t fd, short events, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evwatch_prepare_new
      Src: /src/libevent/test/regress_watch.c:157,1
    - Dst: evwatch_check_new
      Src: /src/libevent/test/regress_watch.c:158,1
    - Dst: evwatch_prepare_new
      Src: /src/libevent/test/regress_watch.c:159,1
    - Dst: evwatch_check_new
      Src: /src/libevent/test/regress_watch.c:160,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_watch.c:166,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_watch.c:167,1
    - Dst: evwatch_free
      Src: /src/libevent/test/regress_watch.c:173,1
    - Dst: evwatch_free
      Src: /src/libevent/test/regress_watch.c:174,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_watch.c:175,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_watch.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 177
    functionName: test_callback_ordering
    functionSourceFile: /src/libevent/test/regress_watch.c
    functionUses: 0
    functionsReached:
    - evwatch_free
    - evwatch_check_new
    - event_base_once
    - evwatch_prepare_new
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_callback_ordering(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:184,1
    - Dst: evwatch_prepare_get_timeout
      Src: /src/libevent/test/regress_watch.c:184,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:185,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_watch.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - watcher
    - info
    - arg
    argTypes:
    - struct evwatch*
    - struct evwatch_prepare_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 189
    functionName: prepare_callback_3
    functionSourceFile: /src/libevent/test/regress_watch.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    - evwatch_prepare_get_timeout
    linkageType: ''
    returnType: void
    signature: void prepare_callback_3(struct evwatch *watcher, const struct evwatch_prepare_cb_info
      *info, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evwatch_prepare_new
      Src: /src/libevent/test/regress_watch.c:201,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_watch.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 203
    functionName: test_timeout_unavailable
    functionSourceFile: /src/libevent/test/regress_watch.c
    functionUses: 0
    functionsReached:
    - evwatch_prepare_new
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_timeout_unavailable(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 210
    functionName: bad_malloc
    functionSourceFile: /src/libevent/test/regress_watch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      bad_malloc(size_t sz)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_set_mem_functions
      Src: /src/libevent/test/regress_watch.c:223,1
    - Dst: evwatch_prepare_new
      Src: /src/libevent/test/regress_watch.c:224,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_watch.c:225,1
    - Dst: evwatch_check_new
      Src: /src/libevent/test/regress_watch.c:227,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_watch.c:228,1
    - Dst: event_set_mem_functions
      Src: /src/libevent/test/regress_watch.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 216
    functionDepth: 3
    functionLinenumber: 216
    functionLinenumberEnd: 233
    functionName: test_malloc_failure
    functionSourceFile: /src/libevent/test/regress_watch.c
    functionUses: 0
    functionsReached:
    - evwatch_check_new
    - event_set_mem_functions
    - tt_ptr_op
    - evwatch_prepare_new
    linkageType: ''
    returnType: void
    signature: void test_malloc_failure(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: trigger_timer
    functionSourceFile: /src/libevent/test/regress_timer_timeout.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void trigger_timer(evutil_socket_t fd, short events, void * arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_config_new
      Src: /src/libevent/test/regress_timer_timeout.c:30,1
    - Dst: event_config_set_flag
      Src: /src/libevent/test/regress_timer_timeout.c:31,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/regress_timer_timeout.c:32,1
    - Dst: event_config_free
      Src: /src/libevent/test/regress_timer_timeout.c:33,1
    - Dst: event_base_new
      Src: /src/libevent/test/regress_timer_timeout.c:35,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress_timer_timeout.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - test
    - flags
    argTypes:
    - EventTimeoutTest*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 38
    functionName: init_test
    functionSourceFile: /src/libevent/test/regress_timer_timeout.c
    functionUses: 0
    functionsReached:
    - event_config_new
    - event_base_new_with_config
    - evtimer_new
    - event_config_set_flag
    - event_base_new
    - event_config_free
    linkageType: ''
    returnType: void
    signature: void init_test(EventTimeoutTest *test, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_del
      Src: /src/libevent/test/regress_timer_timeout.c:41,1
    - Dst: event_free
      Src: /src/libevent/test/regress_timer_timeout.c:42,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_timer_timeout.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - test
    argTypes:
    - EventTimeoutTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: cleanup_test
    functionSourceFile: /src/libevent/test/regress_timer_timeout.c
    functionUses: 0
    functionsReached:
    - event_free
    - event_del
    - event_base_free
    linkageType: ''
    returnType: void
    signature: void cleanup_test(EventTimeoutTest *test)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_timer_timeout.c:49,1
    - Dst: evtimer_add
      Src: /src/libevent/test/regress_timer_timeout.c:50,1
    - Dst: perror
      Src: /src/libevent/test/regress_timer_timeout.c:52,1
    - Dst: exit
      Src: /src/libevent/test/regress_timer_timeout.c:53,1
    - Dst: evutil_timeradd
      Src: /src/libevent/test/regress_timer_timeout.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - test
    - delay
    argTypes:
    - EventTimeoutTest*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: set_timer_tv
    functionSourceFile: /src/libevent/test/regress_timer_timeout.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - evtimer_add
    - exit
    - perror
    - evutil_timeradd
    linkageType: ''
    returnType: void
    signature: void set_timer_tv(EventTimeoutTest *test, const struct timeval* delay)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_timer_tv
      Src: /src/libevent/test/regress_timer_timeout.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - test
    - delay_us
    argTypes:
    - EventTimeoutTest*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: set_timer
    functionSourceFile: /src/libevent/test/regress_timer_timeout.c
    functionUses: 0
    functionsReached:
    - set_timer_tv
    linkageType: ''
    returnType: void
    signature: void set_timer(EventTimeoutTest *test, const long delay_us)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evtimer_pending
      Src: /src/libevent/test/regress_timer_timeout.c:68,1
    - Dst: perror
      Src: /src/libevent/test/regress_timer_timeout.c:70,1
    - Dst: exit
      Src: /src/libevent/test/regress_timer_timeout.c:71,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_timer_timeout.c:76,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/regress_timer_timeout.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - test
    argTypes:
    - EventTimeoutTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 79
    functionName: remaining
    functionSourceFile: /src/libevent/test/regress_timer_timeout.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - exit
    - perror
    - evutil_timersub
    - evtimer_pending
    linkageType: ''
    returnType: long
    signature: long remaining(EventTimeoutTest *test)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init_test
      Src: /src/libevent/test/regress_timer_timeout.c:89,1
    - Dst: set_timer
      Src: /src/libevent/test/regress_timer_timeout.c:91,1
    - Dst: remaining
      Src: /src/libevent/test/regress_timer_timeout.c:92,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress_timer_timeout.c:98,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress_timer_timeout.c:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 81
    functionDepth: 5
    functionLinenumber: 81
    functionLinenumberEnd: 103
    functionName: test_with_flags
    functionSourceFile: /src/libevent/test/regress_timer_timeout.c
    functionUses: 0
    functionsReached:
    - evutil_usleep_
    - cleanup_test
    - set_timer
    - init_test
    - remaining
    linkageType: ''
    returnType: int
    signature: int test_with_flags(int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_with_flags
      Src: /src/libevent/test/regress_timer_timeout.c:111,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_timer_timeout.c:112,1
    - Dst: strstr
      Src: /src/libevent/test/regress_timer_timeout.c:113,1
    - Dst: test_with_flags
      Src: /src/libevent/test/regress_timer_timeout.c:114,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_timer_timeout.c:115,1
    - Dst: tt_fail_msg
      Src: /src/libevent/test/regress_timer_timeout.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 105
    functionDepth: 6
    functionLinenumber: 105
    functionLinenumberEnd: 121
    functionName: timer_timeout_test
    functionSourceFile: /src/libevent/test/regress_timer_timeout.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    - test_with_flags
    - strstr
    - tt_fail_msg
    linkageType: ''
    returnType: void
    signature: void timer_timeout_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fd
    - ','
    - buf
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: write
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 126
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: write(fd,buf,len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fd
    - ','
    - buf
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: read
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 56
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: read(fd,buf,len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libevent/test/regress.c:112,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:116,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 123
    functionName: simple_read_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - exit
    - event_add
    - read
    linkageType: ''
    returnType: void
    signature: void simple_read_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libevent/test/regress.c:132,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:135,1
    - Dst: tt_fail_msg
      Src: /src/libevent/test/regress.c:142,1
    - Dst: tt_fail_msg
      Src: /src/libevent/test/regress.c:147,1
    - Dst: tt_fail_msg
      Src: /src/libevent/test/regress.c:151,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:155,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress.c:156,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - fd
    - event
    - data
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 157
    functionName: basic_read_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_del
    - tt_fail_msg
    - tt_fail_perror
    - event_base_loopexit
    - read
    linkageType: ''
    returnType: void
    signature: void basic_read_cb(evutil_socket_t fd, short event, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: dummy_read_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dummy_read_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/libevent/test/regress.c:169,1
    - Dst: strlen
      Src: /src/libevent/test/regress.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 174
    functionName: simple_write_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - strlen
    - write
    linkageType: ''
    returnType: void
    signature: void simple_write_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/libevent/test/regress.c:186,1
    - Dst: fprintf
      Src: /src/libevent/test/regress.c:188,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:190,1
    - Dst: shutdown
      Src: /src/libevent/test/regress.c:197,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:199,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:204,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:205,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 176
    functionDepth: 4
    functionLinenumber: 176
    functionLinenumberEnd: 207
    functionName: multiple_write_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_del
    - exit
    - write
    - event_add
    - shutdown
    - fprintf
    linkageType: ''
    returnType: void
    signature: void multiple_write_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libevent/test/regress.c:215,1
    - Dst: fprintf
      Src: /src/libevent/test/regress.c:217,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:220,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:226,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:227,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 209
    functionDepth: 4
    functionLinenumber: 209
    functionLinenumberEnd: 229
    functionName: multiple_read_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_del
    - exit
    - event_add
    - read
    - fprintf
    linkageType: ''
    returnType: void
    signature: void multiple_read_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: timeout_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    linkageType: ''
    returnType: void
    signature: void timeout_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libevent/test/regress.c:249,1
    - Dst: fprintf
      Src: /src/libevent/test/regress.c:251,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:256,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 258
    functionName: combined_read_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    - event_add
    - read
    linkageType: ''
    returnType: void
    signature: void combined_read_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress.c:271,1
    - Dst: write
      Src: /src/libevent/test/regress.c:273,1
    - Dst: fprintf
      Src: /src/libevent/test/regress.c:275,1
    - Dst: shutdown
      Src: /src/libevent/test/regress.c:277,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:282,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 284
    functionName: combined_write_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - exit
    - write
    - memset
    - event_add
    - shutdown
    - fprintf
    linkageType: ''
    returnType: void
    signature: void combined_write_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 293
    functionName: setup_test
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: setup_test(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 294
    functionName: cleanup_test
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cleanup_test()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:301,1
    - Dst: write
      Src: /src/libevent/test/regress.c:303,1
    - Dst: strlen
      Src: /src/libevent/test/regress.c:303,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:304,1
    - Dst: shutdown
      Src: /src/libevent/test/regress.c:307,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:309,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:310,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:311,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:312,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 295
    functionDepth: 5
    functionLinenumber: 295
    functionLinenumberEnd: 315
    functionName: test_simpleread
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_set
    - setup_test
    - exit
    - cleanup_test
    - write
    - tt_fail_perror
    - event_dispatch
    - event_add
    - strlen
    - shutdown
    linkageType: ''
    returnType: void
    signature: void test_simpleread(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:323,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:325,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:326,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:327,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:328,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 317
    functionDepth: 5
    functionLinenumber: 317
    functionLinenumberEnd: 331
    functionName: test_simplewrite
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_set
    - setup_test
    - exit
    - cleanup_test
    - event_dispatch
    - event_add
    linkageType: ''
    returnType: void
    signature: void test_simplewrite(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 338
    functionName: simpleread_multiple_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void simpleread_multiple_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:346,1
    - Dst: write
      Src: /src/libevent/test/regress.c:348,1
    - Dst: strlen
      Src: /src/libevent/test/regress.c:348,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:349,1
    - Dst: shutdown
      Src: /src/libevent/test/regress.c:352,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:354,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:355,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:356,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:357,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:358,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:359,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:360,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 340
    functionDepth: 5
    functionLinenumber: 340
    functionLinenumberEnd: 363
    functionName: test_simpleread_multiple
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_set
    - setup_test
    - exit
    - cleanup_test
    - write
    - tt_fail_perror
    - event_dispatch
    - event_add
    - strlen
    - shutdown
    linkageType: ''
    returnType: void
    signature: void test_simpleread_multiple(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:371,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress.c:372,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - s
    - what
    - ptr
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 377
    functionName: simpleclose_close_fd_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - TT_BLATHER
    - evutil_closesocket
    linkageType: ''
    returnType: void
    signature: void simpleclose_close_fd_cb(evutil_socket_t s, short what, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - s
    - what
    - ptr
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 387
    functionName: record_event_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void record_event_cb(evutil_socket_t s, short what, void *ptr)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: event_base_new
      Src: /src/libevent/test/regress.c:393,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:400,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress.c:406,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress.c:407,1
    - Dst: strerror
      Src: /src/libevent/test/regress.c:407,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress.c:408,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress.c:409,1
    - Dst: strerror
      Src: /src/libevent/test/regress.c:409,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/test/regress.c:410,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress.c:411,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/test/regress.c:412,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress.c:413,1
    - Dst: write
      Src: /src/libevent/test/regress.c:417,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/test/regress.c:419,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/test/regress.c:420,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress.c:421,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/test/regress.c:422,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:429,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:431,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:433,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:434,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:436,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:437,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:438,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:439,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:443,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:444,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:445,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress.c:449,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:450,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:452,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:453,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:454,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress.c:458,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress.c:460,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress.c:462,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress.c:464,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:466,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:468,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:470,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:472,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 389
    functionDepth: 6
    functionLinenumber: 389
    functionLinenumberEnd: 473
    functionName: test_simpleclose_rw
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_base_free
    - EVUTIL_ERR_RW_RETRIABLE
    - event_add
    - evutil_socket_geterror
    - event_free
    - write
    - TT_BLATHER
    - strerror
    - event_base_loop
    - event_base_new
    - evutil_make_socket_nonblocking
    - memset
    - tt_int_op
    - evutil_socketpair
    - tt_assert
    - evutil_closesocket
    - event_new
    - TT_DIE
    - event_base_loopexit
    - evutil_socket_error_to_string
    linkageType: ''
    returnType: void
    signature: void test_simpleclose_rw(void *ptr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libevent/test/regress.c:482,1
    - Dst: strstr
      Src: /src/libevent/test/regress.c:483,1
    - Dst: event_base_get_features
      Src: /src/libevent/test/regress.c:488,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress.c:489,1
    - Dst: event_base_get_features
      Src: /src/libevent/test/regress.c:492,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress.c:493,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:495,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:496,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:497,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:497,1
    - Dst: strstr
      Src: /src/libevent/test/regress.c:500,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:501,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress.c:501,1
    - Dst: strstr
      Src: /src/libevent/test/regress.c:504,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:505,1
    - Dst: shutdown
      Src: /src/libevent/test/regress.c:505,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress.c:507,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:515,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress.c:515,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:518,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:518,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:519,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:523,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 475
    functionDepth: 6
    functionLinenumber: 475
    functionLinenumberEnd: 524
    functionName: test_simpleclose
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_skip
    - evutil_closesocket
    - event_new
    - tt_abort_msg
    - event_base_loopexit
    - event_free
    - event_add
    - strstr
    - event_base_loop
    - event_base_get_features
    - tt_int_op
    - shutdown
    linkageType: ''
    returnType: void
    signature: void test_simpleclose(void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:533,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:534,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:541,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:542,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:543,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:544,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:545,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:546,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:547,1
    - Dst: memcmp
      Src: /src/libevent/test/regress.c:550,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:552,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 526
    functionDepth: 5
    functionLinenumber: 526
    functionLinenumberEnd: 553
    functionName: test_multiple
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_set
    - setup_test
    - exit
    - cleanup_test
    - memset
    - event_dispatch
    - event_add
    - memcmp
    linkageType: ''
    returnType: void
    signature: void test_multiple(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:562,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:563,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:570,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:571,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:572,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:573,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:574,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:575,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:576,1
    - Dst: memcmp
      Src: /src/libevent/test/regress.c:579,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:581,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 555
    functionDepth: 5
    functionLinenumber: 555
    functionLinenumberEnd: 582
    functionName: test_persistent
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_set
    - setup_test
    - exit
    - cleanup_test
    - memset
    - event_dispatch
    - event_add
    - memcmp
    linkageType: ''
    returnType: void
    signature: void test_persistent(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:589,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:590,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:591,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:592,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:593,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:598,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:599,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:600,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:601,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:602,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:602,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:603,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:603,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:604,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:604,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:605,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:605,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:606,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:612,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 584
    functionDepth: 5
    functionLinenumber: 584
    functionLinenumberEnd: 613
    functionName: test_combined
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - event_set
    - setup_test
    - cleanup_test
    - memset
    - event_dispatch
    - event_add
    linkageType: ''
    returnType: void
    signature: void test_combined(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:621,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress.c:625,1
    - Dst: evtimer_set
      Src: /src/libevent/test/regress.c:626,1
    - Dst: evtimer_add
      Src: /src/libevent/test/regress.c:627,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:629,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:630,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress.c:631,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 615
    functionDepth: 2
    functionLinenumber: 615
    functionLinenumberEnd: 636
    functionName: test_simpletimeout
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - evtimer_add
    - evutil_timerclear
    - setup_test
    - cleanup_test
    - event_dispatch
    - evtimer_set
    - test_timeval_diff_eq
    linkageType: ''
    returnType: void
    signature: void test_simpletimeout(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress.c:648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 638
    functionDepth: 2
    functionLinenumber: 638
    functionLinenumberEnd: 650
    functionName: periodic_timeout_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: void periodic_timeout_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress.c:659,1
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:662,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:664,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:666,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 652
    functionDepth: 4
    functionLinenumber: 652
    functionLinenumberEnd: 669
    functionName: test_persistent_timeout
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_del
    - evutil_timerclear
    - event_assign
    - event_dispatch
    - event_add
    linkageType: ''
    returnType: void
    signature: void test_persistent_timeout(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:681,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:682,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress.c:684,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress.c:685,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress.c:686,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:687,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 671
    functionDepth: 4
    functionLinenumber: 671
    functionLinenumberEnd: 691
    functionName: test_persistent_timeout_jump
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_del
    - evutil_usleep_
    - event_base_loopexit
    - event_assign
    - event_add
    - tt_int_op
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_persistent_timeout_jump(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_active
      Src: /src/libevent/test/regress.c:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 699
    functionDepth: 4
    functionLinenumber: 699
    functionLinenumberEnd: 704
    functionName: activate_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_active
    linkageType: ''
    returnType: void
    signature: void activate_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 715
    functionName: persist_active_timeout_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    linkageType: ''
    returnType: void
    signature: void persist_active_timeout_cb(evutil_socket_t fd, short event, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress.c:727,1
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:731,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:733,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress.c:737,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress.c:741,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:743,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:744,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress.c:746,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:747,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:749,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:750,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:751,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:752,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress.c:753,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress.c:754,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress.c:755,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 717
    functionDepth: 4
    functionLinenumber: 717
    functionLinenumberEnd: 758
    functionName: test_persistent_active_timeout
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - event_del
    - event_base_once
    - event_base_assert_ok_
    - event_base_loopexit
    - event_assign
    - memset
    - event_add
    - tt_int_op
    - test_timeval_diff_eq
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_persistent_active_timeout(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:772,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 767
    functionDepth: 4
    functionLinenumber: 767
    functionLinenumberEnd: 775
    functionName: common_timeout_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - event_del
    linkageType: ''
    returnType: void
    signature: void common_timeout_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: event_base_init_common_timeout
      Src: /src/libevent/test/regress.c:794,1
    - Dst: event_base_init_common_timeout
      Src: /src/libevent/test/regress.c:795,1
    - Dst: event_base_init_common_timeout
      Src: /src/libevent/test/regress.c:796,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:797,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:798,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:799,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:800,1
    - Dst: event_base_init_common_timeout
      Src: /src/libevent/test/regress.c:800,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:802,1
    - Dst: event_base_init_common_timeout
      Src: /src/libevent/test/regress.c:802,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:803,1
    - Dst: event_base_init_common_timeout
      Src: /src/libevent/test/regress.c:803,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:804,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:805,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:806,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:807,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:808,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:809,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:811,1
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:815,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:822,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:823,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:826,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:827,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:830,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:831,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:833,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:836,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:840,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:841,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress.c:842,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:844,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:847,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress.c:849,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress.c:851,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:858,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:860,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:865,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 62
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 777
    functionDepth: 6
    functionLinenumber: 777
    functionLinenumberEnd: 868
    functionName: test_common_timeout
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_base_init_common_timeout
    - tt_assert
    - evutil_gettimeofday
    - tt_ptr_op
    - event_base_free
    - event_base_assert_ok_
    - event_assign
    - memset
    - event_add
    - tt_int_op
    - test_timeval_diff_eq
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_common_timeout(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_del
      Src: /src/libevent/test/regress.c:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 875
    functionDepth: 4
    functionLinenumber: 875
    functionLinenumberEnd: 879
    functionName: fork_signal_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_del
    linkageType: ''
    returnType: void
    signature: void fork_signal_cb(evutil_socket_t fd, short events, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libevent/test/regress.c:888,1
    - Dst: write
      Src: /src/libevent/test/regress.c:889,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:890,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:894,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:895,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 882
    functionDepth: 3
    functionLinenumber: 882
    functionLinenumberEnd: 901
    functionName: simple_child_read_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - exit
    - write
    - tt_fail_perror
    - event_add
    - read
    linkageType: ''
    returnType: void
    signature: void simple_child_read_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:933,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress.c:936,1
    - Dst: fprintf
      Src: /src/libevent/test/regress.c:937,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:938,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/test/regress.c:941,1
    - Dst: fprintf
      Src: /src/libevent/test/regress.c:942,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:943,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:947,1
    - Dst: evthread_make_base_notifiable
      Src: /src/libevent/test/regress.c:948,1
    - Dst: write
      Src: /src/libevent/test/regress.c:950,1
    - Dst: strlen
      Src: /src/libevent/test/regress.c:950,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:951,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:954,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:955,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:956,1
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:958,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:959,1
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:961,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:962,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:964,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:965,1
    - Dst: regress_fork
      Src: /src/libevent/test/regress.c:966,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:968,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:969,1
    - Dst: event_reinit
      Src: /src/libevent/test/regress.c:970,1
    - Dst: fprintf
      Src: /src/libevent/test/regress.c:971,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:972,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:974,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:975,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:976,1
    - Dst: evsignal_del
      Src: /src/libevent/test/regress.c:978,1
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:980,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:981,1
    - Dst: kill
      Src: /src/libevent/test/regress.c:982,1
    - Dst: getpid
      Src: /src/libevent/test/regress.c:982,1
    - Dst: kill
      Src: /src/libevent/test/regress.c:983,1
    - Dst: getpid
      Src: /src/libevent/test/regress.c:983,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:987,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:989,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:994,1
    - Dst: read
      Src: /src/libevent/test/regress.c:998,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:999,1
    - Dst: write
      Src: /src/libevent/test/regress.c:1001,1
    - Dst: strlen
      Src: /src/libevent/test/regress.c:1001,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:1002,1
    - Dst: fork_wait_check
      Src: /src/libevent/test/regress.c:1005,1
    - Dst: write
      Src: /src/libevent/test/regress.c:1008,1
    - Dst: strlen
      Src: /src/libevent/test/regress.c:1008,1
    - Dst: fprintf
      Src: /src/libevent/test/regress.c:1009,1
    - Dst: shutdown
      Src: /src/libevent/test/regress.c:1012,1
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:1014,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:1015,1
    - Dst: kill
      Src: /src/libevent/test/regress.c:1016,1
    - Dst: getpid
      Src: /src/libevent/test/regress.c:1016,1
    - Dst: kill
      Src: /src/libevent/test/regress.c:1017,1
    - Dst: getpid
      Src: /src/libevent/test/regress.c:1017,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:1019,1
    - Dst: evsignal_del
      Src: /src/libevent/test/regress.c:1021,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1022,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:1025,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress.c:1027,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress.c:1029,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 926
    functionDepth: 6
    functionLinenumber: 926
    functionLinenumberEnd: 1030
    functionName: test_fork
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_base_free
    - cleanup_test
    - tt_fail_perror
    - evsignal_add
    - regress_fork
    - event_dispatch
    - event_add
    - getpid
    - read
    - shutdown
    - kill
    - write
    - TT_BLATHER
    - event_reinit
    - fork_wait_check
    - strlen
    - fprintf
    - evutil_make_socket_nonblocking
    - event_set
    - setup_test
    - exit
    - event_base_assert_ok_
    - evsignal_del
    - tt_int_op
    - evutil_socketpair
    - tt_assert
    - evutil_closesocket
    - evsignal_set
    - evthread_make_base_notifiable
    linkageType: ''
    returnType: void
    signature: void test_fork(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1036
    functionName: signal_cb_sa
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void signal_cb_sa(int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evsignal_del
      Src: /src/libevent/test/regress.c:1043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1038
    functionDepth: 1
    functionLinenumber: 1038
    functionLinenumberEnd: 1045
    functionName: signal_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evsignal_del
    linkageType: ''
    returnType: void
    signature: void signal_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_DIE
      Src: /src/libevent/test/regress.c:1050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1047
    functionDepth: 1
    functionLinenumber: 1047
    functionLinenumberEnd: 1053
    functionName: signal_alarm_fallback
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - TT_DIE
    linkageType: ''
    returnType: void
    signature: void signal_alarm_fallback(int sig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/libevent/test/regress.c:1061,1
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:1063,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:1064,1
    - Dst: evsignal_del
      Src: /src/libevent/test/regress.c:1067,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:1068,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:1071,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1074,1
    - Dst: setitimer
      Src: /src/libevent/test/regress.c:1074,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:1076,1
    - Dst: evsignal_del
      Src: /src/libevent/test/regress.c:1078,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:1081,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - find_reorder
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1082
    functionName: test_simple_signal_impl
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - cleanup_test
    - evsignal_add
    - memset
    - event_dispatch
    - signal
    - evsignal_set
    - tt_int_op
    - evsignal_del
    - setitimer
    linkageType: ''
    returnType: void
    signature: void test_simple_signal_impl(int find_reorder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:1087,1
    - Dst: test_simple_signal_impl
      Src: /src/libevent/test/regress.c:1088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1084
    functionDepth: 3
    functionLinenumber: 1084
    functionLinenumberEnd: 1089
    functionName: test_simple_signal
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - setup_test
    - test_simple_signal_impl
    linkageType: ''
    returnType: void
    signature: void test_simple_signal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:1094,1
    - Dst: test_simple_signal_impl
      Src: /src/libevent/test/regress.c:1095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1091
    functionDepth: 3
    functionLinenumber: 1091
    functionLinenumberEnd: 1096
    functionName: test_simple_signal_re_order
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - setup_test
    - test_simple_signal_impl
    linkageType: ''
    returnType: void
    signature: void test_simple_signal_re_order(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_free
      Src: /src/libevent/test/regress.c:1103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1099
    functionDepth: 4
    functionLinenumber: 1099
    functionLinenumberEnd: 1105
    functionName: signal_cb_free_event
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_free
    linkageType: ''
    returnType: void
    signature: void signal_cb_free_event(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evsignal_new
      Src: /src/libevent/test/regress.c:1113,1
    - Dst: event_self_cbarg
      Src: /src/libevent/test/regress.c:1113,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:1114,1
    - Dst: kill
      Src: /src/libevent/test/regress.c:1116,1
    - Dst: getpid
      Src: /src/libevent/test/regress.c:1116,1
    - Dst: kill
      Src: /src/libevent/test/regress.c:1117,1
    - Dst: getpid
      Src: /src/libevent/test/regress.c:1117,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:1120,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1106
    functionDepth: 6
    functionLinenumber: 1106
    functionLinenumberEnd: 1127
    functionName: test_signal_free_in_callback
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - kill
    - evsignal_add
    - evsignal_new
    - event_base_loop
    - getpid
    - tt_int_op
    - event_self_cbarg
    linkageType: ''
    returnType: void
    signature: void test_signal_free_in_callback(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:1135,1
    - Dst: signal
      Src: /src/libevent/test/regress.c:1137,1
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:1139,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:1140,1
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:1142,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:1143,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:1145,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1148,1
    - Dst: setitimer
      Src: /src/libevent/test/regress.c:1148,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:1150,1
    - Dst: evsignal_del
      Src: /src/libevent/test/regress.c:1153,1
    - Dst: evsignal_del
      Src: /src/libevent/test/regress.c:1155,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:1158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1129
    functionDepth: 2
    functionLinenumber: 1129
    functionLinenumberEnd: 1159
    functionName: test_multiplesignal
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - setup_test
    - cleanup_test
    - evsignal_add
    - memset
    - event_dispatch
    - signal
    - evsignal_set
    - tt_int_op
    - evsignal_del
    - setitimer
    linkageType: ''
    returnType: void
    signature: void test_multiplesignal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:1167,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:1168,1
    - Dst: kill
      Src: /src/libevent/test/regress.c:1169,1
    - Dst: getpid
      Src: /src/libevent/test/regress.c:1169,1
    - Dst: event_loop
      Src: /src/libevent/test/regress.c:1170,1
    - Dst: evsignal_del
      Src: /src/libevent/test/regress.c:1171,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:1172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1161
    functionDepth: 2
    functionLinenumber: 1161
    functionLinenumberEnd: 1173
    functionName: test_immediatesignal
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - kill
    - cleanup_test
    - evsignal_add
    - event_loop
    - getpid
    - evsignal_set
    - evsignal_del
    linkageType: ''
    returnType: void
    signature: void test_immediatesignal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:1182,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1183,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:1183,1
    - Dst: event_loop
      Src: /src/libevent/test/regress.c:1184,1
    - Dst: evsignal_del
      Src: /src/libevent/test/regress.c:1185,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1186,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:1189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1175
    functionDepth: 2
    functionLinenumber: 1175
    functionLinenumberEnd: 1190
    functionName: test_signal_timeout
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - cleanup_test
    - evsignal_add
    - event_loop
    - evsignal_set
    - tt_int_op
    - evsignal_del
    linkageType: ''
    returnType: void
    signature: void test_signal_timeout(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_init
      Src: /src/libevent/test/regress.c:1197,1
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:1198,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:1199,1
    - Dst: evsignal_del
      Src: /src/libevent/test/regress.c:1200,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:1201,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:1204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1192
    functionDepth: 6
    functionLinenumber: 1192
    functionLinenumberEnd: 1205
    functionName: test_signal_dealloc
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_base_free
    - event_init
    - cleanup_test
    - evsignal_add
    - evsignal_set
    - evsignal_del
    linkageType: ''
    returnType: void
    signature: void test_signal_dealloc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_init
      Src: /src/libevent/test/regress.c:1214,1
    - Dst: event_init
      Src: /src/libevent/test/regress.c:1216,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:1217,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:1218,1
    - Dst: close
      Src: /src/libevent/test/regress.c:1219,1
    - Dst: printf
      Src: /src/libevent/test/regress.c:1221,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:1226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1207
    functionDepth: 6
    functionLinenumber: 1207
    functionLinenumberEnd: 1227
    functionName: test_signal_pipeloss
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - close
    - event_base_free
    - event_init
    - cleanup_test
    - printf
    linkageType: ''
    returnType: void
    signature: void test_signal_pipeloss(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: event_init
      Src: /src/libevent/test/regress.c:1243,1
    - Dst: event_init
      Src: /src/libevent/test/regress.c:1244,1
    - Dst: strcmp
      Src: /src/libevent/test/regress.c:1247,1
    - Dst: event_base_get_signal_method
      Src: /src/libevent/test/regress.c:1247,1
    - Dst: strcmp
      Src: /src/libevent/test/regress.c:1248,1
    - Dst: event_base_get_signal_method
      Src: /src/libevent/test/regress.c:1248,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress.c:1249,1
    - Dst: strcmp
      Src: /src/libevent/test/regress.c:1253,1
    - Dst: event_get_method
      Src: /src/libevent/test/regress.c:1253,1
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:1254,1
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:1255,1
    - Dst: event_base_set
      Src: /src/libevent/test/regress.c:1256,1
    - Dst: event_base_set
      Src: /src/libevent/test/regress.c:1257,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:1258,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:1259,1
    - Dst: fprintf
      Src: /src/libevent/test/regress.c:1260,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:1261,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:1264,1
    - Dst: event_get_base
      Src: /src/libevent/test/regress.c:1264,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:1265,1
    - Dst: event_get_base
      Src: /src/libevent/test/regress.c:1265,1
    - Dst: kill
      Src: /src/libevent/test/regress.c:1269,1
    - Dst: getpid
      Src: /src/libevent/test/regress.c:1269,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:1270,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:1276,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:1281,1
    - Dst: kill
      Src: /src/libevent/test/regress.c:1282,1
    - Dst: getpid
      Src: /src/libevent/test/regress.c:1282,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:1283,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:1284,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:1287,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:1288,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:1289,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1237
    functionDepth: 6
    functionLinenumber: 1237
    functionLinenumberEnd: 1290
    functionName: test_signal_switchbase
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_ptr_op
    - tt_skip
    - event_base_free
    - exit
    - event_init
    - kill
    - event_base_set
    - cleanup_test
    - strcmp
    - event_add
    - event_base_loop
    - getpid
    - evsignal_set
    - fprintf
    - event_get_method
    - event_get_base
    - event_base_get_signal_method
    linkageType: ''
    returnType: void
    signature: void test_signal_switchbase(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_init
      Src: /src/libevent/test/regress.c:1300,1
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:1303,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:1304,1
    - Dst: evsignal_del
      Src: /src/libevent/test/regress.c:1309,1
    - Dst: kill
      Src: /src/libevent/test/regress.c:1311,1
    - Dst: getpid
      Src: /src/libevent/test/regress.c:1311,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:1323,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:1324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1296
    functionDepth: 6
    functionLinenumber: 1296
    functionLinenumberEnd: 1326
    functionName: test_signal_assert
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_base_free
    - event_init
    - kill
    - cleanup_test
    - evsignal_add
    - getpid
    - evsignal_set
    - evsignal_del
    linkageType: ''
    returnType: void
    signature: void test_signal_assert(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: event_init
      Src: /src/libevent/test/regress.c:1335,1
    - Dst: sigemptyset
      Src: /src/libevent/test/regress.c:1344,1
    - Dst: sigaction
      Src: /src/libevent/test/regress.c:1345,1
    - Dst: signal
      Src: /src/libevent/test/regress.c:1348,1
    - Dst: evsignal_set
      Src: /src/libevent/test/regress.c:1351,1
    - Dst: evsignal_add
      Src: /src/libevent/test/regress.c:1352,1
    - Dst: evsignal_del
      Src: /src/libevent/test/regress.c:1353,1
    - Dst: kill
      Src: /src/libevent/test/regress.c:1355,1
    - Dst: getpid
      Src: /src/libevent/test/regress.c:1355,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:1360,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:1361,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1331
    functionDepth: 6
    functionLinenumber: 1331
    functionLinenumberEnd: 1363
    functionName: test_signal_restore
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - sigaction
    - sigemptyset
    - event_base_free
    - event_init
    - kill
    - cleanup_test
    - evsignal_add
    - signal
    - getpid
    - evsignal_set
    - evsignal_del
    linkageType: ''
    returnType: void
    signature: void test_signal_restore(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kill
      Src: /src/libevent/test/regress.c:1370,1
    - Dst: getpid
      Src: /src/libevent/test/regress.c:1370,1
    - Dst: event_loopexit
      Src: /src/libevent/test/regress.c:1372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - sig
    - event
    - arg
    argTypes:
    - int
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1365
    functionDepth: 2
    functionLinenumber: 1365
    functionLinenumberEnd: 1373
    functionName: signal_cb_swp
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_loopexit
    - kill
    - getpid
    linkageType: ''
    returnType: void
    signature: void signal_cb_swp(int sig, short event, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evtimer_add
      Src: /src/libevent/test/regress.c:1381,1
    - Dst: kill
      Src: /src/libevent/test/regress.c:1382,1
    - Dst: getpid
      Src: /src/libevent/test/regress.c:1382,1
    - Dst: event_loopexit
      Src: /src/libevent/test/regress.c:1386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1374
    functionDepth: 2
    functionLinenumber: 1374
    functionLinenumberEnd: 1387
    functionName: timeout_cb_swp
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_loopexit
    - kill
    - evtimer_add
    - getpid
    linkageType: ''
    returnType: void
    signature: void timeout_cb_swp(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_init
      Src: /src/libevent/test/regress.c:1392,1
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:1396,1
    - Dst: signal_set
      Src: /src/libevent/test/regress.c:1400,1
    - Dst: signal_add
      Src: /src/libevent/test/regress.c:1401,1
    - Dst: evtimer_set
      Src: /src/libevent/test/regress.c:1402,1
    - Dst: evtimer_add
      Src: /src/libevent/test/regress.c:1403,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:1404,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:1406,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:1407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1389
    functionDepth: 6
    functionLinenumber: 1389
    functionLinenumberEnd: 1409
    functionName: test_signal_while_processing
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - signal_add
    - evtimer_add
    - signal_set
    - event_base_free
    - setup_test
    - event_init
    - cleanup_test
    - event_dispatch
    - evtimer_set
    linkageType: ''
    returnType: void
    signature: void test_signal_while_processing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:1419,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:1420,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:1421,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress.c:1423,1
    - Dst: THREAD_RETURN
      Src: /src/libevent/test/regress.c:1426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1414
    functionDepth: 2
    functionLinenumber: 1414
    functionLinenumberEnd: 1427
    functionName: del_wait_thread
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - THREAD_RETURN
    - evutil_gettimeofday
    - test_timeval_diff_eq
    - event_dispatch
    linkageType: ''
    returnType: THREAD_FN
    signature: THREAD_FN del_wait_thread(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:1433,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress.c:1434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1429
    functionDepth: 1
    functionLinenumber: 1429
    functionLinenumberEnd: 1436
    functionName: del_wait_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evutil_usleep_
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void del_wait_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:1444,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:1446,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:1447,1
    - Dst: THREAD_START
      Src: /src/libevent/test/regress.c:1449,1
    - Dst: write
      Src: /src/libevent/test/regress.c:1451,1
    - Dst: strlen
      Src: /src/libevent/test/regress.c:1451,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:1452,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress.c:1457,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:1462,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:1463,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:1464,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress.c:1465,1
    - Dst: THREAD_JOIN
      Src: /src/libevent/test/regress.c:1468,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1438
    functionDepth: 5
    functionLinenumber: 1438
    functionLinenumberEnd: 1474
    functionName: test_del_wait
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_set
    - evutil_gettimeofday
    - event_del
    - evutil_usleep_
    - setup_test
    - write
    - tt_fail_perror
    - event_add
    - THREAD_JOIN
    - THREAD_START
    - tt_int_op
    - strlen
    - test_timeval_diff_eq
    linkageType: ''
    returnType: void
    signature: void test_del_wait(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1476
    functionDepth: 0
    functionLinenumber: 1476
    functionLinenumberEnd: 1476
    functionName: null_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void null_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:1481,1
    - Dst: THREAD_RETURN
      Src: /src/libevent/test/regress.c:1482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1478
    functionDepth: 2
    functionLinenumber: 1478
    functionLinenumberEnd: 1483
    functionName: test_del_notify_thread
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - THREAD_RETURN
    - event_dispatch
    linkageType: ''
    returnType: THREAD_FN
    signature: THREAD_FN test_del_notify_thread(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_set
      Src: /src/libevent/test/regress.c:1493,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:1494,1
    - Dst: THREAD_START
      Src: /src/libevent/test/regress.c:1496,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress.c:1500,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:1503,1
    - Dst: THREAD_JOIN
      Src: /src/libevent/test/regress.c:1504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1485
    functionDepth: 5
    functionLinenumber: 1485
    functionLinenumberEnd: 1505
    functionName: test_del_notify
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_set
    - event_del
    - evutil_usleep_
    - event_add
    - THREAD_JOIN
    - THREAD_START
    linkageType: ''
    returnType: void
    signature: void test_del_notify(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_init
      Src: /src/libevent/test/regress.c:1516,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:1517,1
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:1518,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:1519,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:1520,1
    - Dst: event_init
      Src: /src/libevent/test/regress.c:1522,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:1523,1
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:1524,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:1525,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:1526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1509
    functionDepth: 6
    functionLinenumber: 1509
    functionLinenumberEnd: 1529
    functionName: test_free_active_base
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - event_active
    - event_base_free
    - event_init
    - event_assign
    - event_add
    linkageType: ''
    returnType: void
    signature: void test_free_active_base(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:1538,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:1541,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1542,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:1542,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:1546,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1547,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:1547,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:1551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1531
    functionDepth: 4
    functionLinenumber: 1531
    functionLinenumberEnd: 1552
    functionName: test_manipulate_active_events
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_pending
    - event_del
    - event_active
    - event_assign
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_manipulate_active_events(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_get_base
      Src: /src/libevent/test/regress.c:1558,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:1559,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress.c:1560,1
    - Dst: tt_want
      Src: /src/libevent/test/regress.c:1561,1
    - Dst: event_base_get_running_event
      Src: /src/libevent/test/regress.c:1561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1562
      start: 1554
    functionDepth: 4
    functionLinenumber: 1554
    functionLinenumberEnd: 1562
    functionName: event_selfarg_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_want
    - event_base_assert_ok_
    - event_base_loopexit
    - event_get_base
    - event_base_get_running_event
    linkageType: ''
    returnType: void
    signature: void event_selfarg_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_new
      Src: /src/libevent/test/regress.c:1569,1
    - Dst: event_self_cbarg
      Src: /src/libevent/test/regress.c:1570,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:1572,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress.c:1573,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:1575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1564
    functionDepth: 5
    functionLinenumber: 1564
    functionLinenumberEnd: 1576
    functionName: test_event_new_selfarg
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_active
    - event_new
    - event_self_cbarg
    - event_free
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_event_new_selfarg(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:1585,1
    - Dst: event_self_cbarg
      Src: /src/libevent/test/regress.c:1586,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:1587,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress.c:1588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1578
    functionDepth: 4
    functionLinenumber: 1578
    functionLinenumberEnd: 1589
    functionName: test_event_assign_selfarg
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_assign
    - event_base_dispatch
    - event_active
    - event_self_cbarg
    linkageType: ''
    returnType: void
    signature: void test_event_assign_selfarg(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:1607,1
    - Dst: event_self_cbarg
      Src: /src/libevent/test/regress.c:1608,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:1610,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1611,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1613,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1615,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1617,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1619,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1621,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1623,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1627,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1628,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1630,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1631,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1632,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1633,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1634,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:1636,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1637,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1639,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1641,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1643,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1645,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1647,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1649,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1653,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1654,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1655,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1656,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1657,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1658,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1659,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:1661,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1662,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1664,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1666,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1668,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1670,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1672,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1674,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1678,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1679,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1680,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1681,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1682,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1683,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1684,1
    - Dst: event_base_add_virtual_
      Src: /src/libevent/test/regress.c:1686,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1687,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1689,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1691,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1693,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1695,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1697,1
    - Dst: event_base_get_num_events
      Src: /src/libevent/test/regress.c:1699,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1703,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1704,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1705,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1706,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1707,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1708,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 65
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1591
    functionDepth: 6
    functionLinenumber: 1591
    functionLinenumberEnd: 1713
    functionName: test_event_base_get_num_events
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_base_get_num_events
    - event_active
    - event_base_add_virtual_
    - event_assign
    - event_add
    - event_base_loop
    - tt_int_op
    - event_self_cbarg
    linkageType: ''
    returnType: void
    signature: void test_event_base_get_num_events(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:1732,1
    - Dst: event_self_cbarg
      Src: /src/libevent/test/regress.c:1733,1
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:1734,1
    - Dst: event_self_cbarg
      Src: /src/libevent/test/regress.c:1735,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:1737,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:1738,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:1739,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1741,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1743,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1745,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1747,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1749,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1751,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1753,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1758,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1759,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1761,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1762,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1763,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1764,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1765,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:1767,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1768,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1770,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1772,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1774,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1776,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1778,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1780,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1785,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1786,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1787,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1788,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1789,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1790,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1791,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:1793,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1794,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1796,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1798,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1800,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1802,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1804,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1806,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1811,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1812,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1813,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1814,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1815,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1816,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1817,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1819,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1821,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1823,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1825,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1826,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1827,1
    - Dst: event_base_add_virtual_
      Src: /src/libevent/test/regress.c:1829,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1830,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1832,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1834,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1836,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1838,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1840,1
    - Dst: event_base_get_max_events
      Src: /src/libevent/test/regress.c:1842,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1847,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1848,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1849,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1850,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1851,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1852,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 74
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1857
      start: 1715
    functionDepth: 6
    functionLinenumber: 1715
    functionLinenumberEnd: 1857
    functionName: test_event_base_get_max_events
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_del
    - event_active
    - event_base_add_virtual_
    - event_assign
    - event_add
    - event_base_loop
    - tt_int_op
    - event_base_get_max_events
    - event_self_cbarg
    linkageType: ''
    returnType: void
    signature: void test_event_base_get_max_events(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:1865,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1859
    functionDepth: 4
    functionLinenumber: 1859
    functionLinenumberEnd: 1870
    functionName: test_bad_assign
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_assign
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_bad_assign(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:1882,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - fd
    - what
    - ptr
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1886
      start: 1874
    functionDepth: 6
    functionLinenumber: 1874
    functionLinenumberEnd: 1886
    functionName: bad_reentrant_run_loop_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    - event_base_loop
    linkageType: ''
    returnType: void
    signature: void bad_reentrant_run_loop_cb(evutil_socket_t fd, short what, void
      *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:1895,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:1898,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:1899,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1900,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1888
    functionDepth: 6
    functionLinenumber: 1888
    functionLinenumberEnd: 1904
    functionName: test_bad_reentrant
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_assign
    - event_base_loop
    - tt_int_op
    - event_active
    linkageType: ''
    returnType: void
    signature: void test_bad_reentrant(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/libevent/test/regress.c:1913,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1909
    functionDepth: 1
    functionLinenumber: 1909
    functionLinenumberEnd: 1915
    functionName: write_a_byte_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: void
    signature: void write_a_byte_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libevent/test/regress.c:1922,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1924
      start: 1916
    functionDepth: 1
    functionLinenumber: 1916
    functionLinenumberEnd: 1924
    functionName: read_and_drain_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: void
    signature: void read_and_drain_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_active_later_
      Src: /src/libevent/test/regress.c:1931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - what
    - other_
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1932
      start: 1926
    functionDepth: 2
    functionLinenumber: 1926
    functionLinenumberEnd: 1932
    functionName: activate_other_event_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_active_later_
    linkageType: ''
    returnType: void
    signature: void activate_other_event_cb(evutil_socket_t fd, short what, void *other_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_new
      Src: /src/libevent/test/regress.c:1941,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:1942,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:1943,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:1944,1
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:1945,1
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:1946,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:1947,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:1948,1
    - Dst: event_active_later_
      Src: /src/libevent/test/regress.c:1949,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress.c:1951,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:1953,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:1955,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:1957,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:1958,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1960,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1961,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1962,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:1963,1
    - Dst: event_active_later_
      Src: /src/libevent/test/regress.c:1965,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:1966,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:1968,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:1969,1
    - Dst: event_active_later_
      Src: /src/libevent/test/regress.c:1973,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:1974,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:1978,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:1980,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:1982,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1984
      start: 1934
    functionDepth: 6
    functionLinenumber: 1934
    functionLinenumberEnd: 1984
    functionName: test_active_later
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - event_del
    - event_active
    - event_base_free
    - event_new
    - event_base_assert_ok_
    - event_base_loopexit
    - TT_BLATHER
    - event_assign
    - event_active_later_
    - event_add
    - event_base_loop
    - tt_int_op
    - event_free
    linkageType: ''
    returnType: void
    signature: void test_active_later(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1992
      start: 1987
    functionDepth: 0
    functionLinenumber: 1987
    functionLinenumberEnd: 1992
    functionName: incr_arg_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void incr_arg_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_remove_timer
      Src: /src/libevent/test/regress.c:1997,1
    - Dst: event_remove_timer
      Src: /src/libevent/test/regress.c:1998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1999
      start: 1993
    functionDepth: 5
    functionLinenumber: 1993
    functionLinenumberEnd: 1999
    functionName: remove_timers_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_remove_timer
    linkageType: ''
    returnType: void
    signature: void remove_timers_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/libevent/test/regress.c:2004,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:2005,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2006
      start: 2000
    functionDepth: 1
    functionLinenumber: 2000
    functionLinenumberEnd: 2006
    functionName: send_a_byte_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - write
    - tt_fail_perror
    linkageType: ''
    returnType: void
    signature: void send_a_byte_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libevent/test/regress.c:2019,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2020,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:2023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 2013
    functionDepth: 4
    functionLinenumber: 2013
    functionLinenumberEnd: 2026
    functionName: read_not_timeout_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    - event_del
    - read
    linkageType: ''
    returnType: void
    signature: void read_not_timeout_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:2041,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:2043,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress.c:2045,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress.c:2046,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress.c:2047,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress.c:2048,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2049,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2050,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2051,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2052,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2053,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2054,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2055,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2056,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2057,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2058,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2059,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:2060,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress.c:2062,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2064,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2065,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:2067,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:2069,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:2070,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:2071,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:2072,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:2073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2074
      start: 2028
    functionDepth: 5
    functionLinenumber: 2028
    functionLinenumberEnd: 2074
    functionName: test_event_remove_timeout
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - event_base_assert_ok_
    - event_new
    - evtimer_new
    - event_add
    - tt_int_op
    - event_free
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_event_remove_timeout(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2076
    functionDepth: 0
    functionLinenumber: 2076
    functionLinenumberEnd: 2081
    functionName: test_event_timeout_lost_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_event_timeout_lost_cb(evutil_socket_t fd, short events, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:2090,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:2092,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2093,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2097,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:2100,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress.c:2105,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:2108,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:2109,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:2110,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2112,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:2115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2116
      start: 2082
    functionDepth: 6
    functionLinenumber: 2082
    functionLinenumberEnd: 2116
    functionName: test_event_timeout_lost
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - event_active
    - evutil_usleep_
    - event_base_assert_ok_
    - event_new
    - event_add
    - event_base_loop
    - tt_int_op
    - event_free
    linkageType: ''
    returnType: void
    signature: void test_event_timeout_lost(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress.c:2123,1
    - Dst: THREAD_RETURN
      Src: /src/libevent/test/regress.c:2124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2120
    functionDepth: 2
    functionLinenumber: 2120
    functionLinenumberEnd: 2125
    functionName: event_base_dispatch_threadcb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - THREAD_RETURN
    - event_base_dispatch
    linkageType: ''
    returnType: THREAD_FN
    signature: THREAD_FN event_base_dispatch_threadcb(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_new
      Src: /src/libevent/test/regress.c:2138,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2143,1
    - Dst: THREAD_START
      Src: /src/libevent/test/regress.c:2146,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress.c:2152,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:2155,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:2156,1
    - Dst: THREAD_JOIN
      Src: /src/libevent/test/regress.c:2157,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:2159,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2161,1
    - Dst: timeval_msec_diff
      Src: /src/libevent/test/regress.c:2161,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:2163,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:2166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2167
      start: 2129
    functionDepth: 5
    functionLinenumber: 2129
    functionLinenumberEnd: 2167
    functionName: test_del_timeout_notify
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - event_del
    - evutil_usleep_
    - event_new
    - event_base_assert_ok_
    - event_add
    - THREAD_JOIN
    - THREAD_START
    - tt_int_op
    - event_free
    - timeval_msec_diff
    linkageType: ''
    returnType: void
    signature: void test_del_timeout_notify(void *ptr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/test/regress.c:2178,1
    - Dst: write
      Src: /src/libevent/test/regress.c:2179,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress.c:2182,1
    - Dst: tt_abort_printf
      Src: /src/libevent/test/regress.c:2184,1
    - Dst: shutdown
      Src: /src/libevent/test/regress.c:2187,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress.c:2188,1
    - Dst: event_base_new
      Src: /src/libevent/test/regress.c:2190,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress.c:2192,1
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:2197,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2200,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress.c:2201,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:2203,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress.c:2204,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:2208,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2170
    functionDepth: 6
    functionLinenumber: 2170
    functionLinenumberEnd: 2209
    functionName: test_event_base_new
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_base_free
    - write
    - tt_abort_msg
    - event_assign
    - event_base_new
    - event_add
    - tt_abort_perror
    - event_base_loop
    - strlen
    - shutdown
    - tt_abort_printf
    linkageType: ''
    returnType: void
    signature: void test_event_base_new(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:2217,1
    - Dst: evtimer_set
      Src: /src/libevent/test/regress.c:2221,1
    - Dst: evtimer_add
      Src: /src/libevent/test/regress.c:2222,1
    - Dst: event_loopexit
      Src: /src/libevent/test/regress.c:2226,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:2228,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:2229,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:2230,1
    - Dst: evtimer_del
      Src: /src/libevent/test/regress.c:2232,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2234,1
    - Dst: event_base_got_exit
      Src: /src/libevent/test/regress.c:2234,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2235,1
    - Dst: event_base_got_break
      Src: /src/libevent/test/regress.c:2235,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress.c:2237,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:2241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2242
      start: 2211
    functionDepth: 2
    functionLinenumber: 2211
    functionLinenumberEnd: 2242
    functionName: test_loopexit
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evutil_gettimeofday
    - event_base_got_exit
    - evtimer_add
    - setup_test
    - event_loopexit
    - evtimer_del
    - cleanup_test
    - event_dispatch
    - evtimer_set
    - event_base_got_break
    - test_timeval_diff_eq
    linkageType: ''
    returnType: void
    signature: void test_loopexit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:2250,1
    - Dst: event_base_new
      Src: /src/libevent/test/regress.c:2252,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2254,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress.c:2258,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress.c:2262,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:2264,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress.c:2265,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:2266,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2268,1
    - Dst: event_base_got_exit
      Src: /src/libevent/test/regress.c:2268,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2269,1
    - Dst: event_base_got_break
      Src: /src/libevent/test/regress.c:2269,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:2271,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress.c:2273,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:2278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2279
      start: 2244
    functionDepth: 6
    functionLinenumber: 2244
    functionLinenumberEnd: 2279
    functionName: test_loopexit_multiple
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evutil_gettimeofday
    - event_base_got_exit
    - event_base_free
    - setup_test
    - cleanup_test
    - event_base_loopexit
    - event_base_new
    - event_base_got_break
    - test_timeval_diff_eq
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_loopexit_multiple(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_loopbreak
      Src: /src/libevent/test/regress.c:2285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2286
      start: 2281
    functionDepth: 2
    functionLinenumber: 2281
    functionLinenumberEnd: 2286
    functionName: break_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_loopbreak
    linkageType: ''
    returnType: void
    signature: void break_cb(evutil_socket_t fd, short events, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2292
      start: 2288
    functionDepth: 0
    functionLinenumber: 2288
    functionLinenumberEnd: 2292
    functionName: fail_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fail_cb(evutil_socket_t fd, short events, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:2300,1
    - Dst: evtimer_set
      Src: /src/libevent/test/regress.c:2304,1
    - Dst: evtimer_add
      Src: /src/libevent/test/regress.c:2305,1
    - Dst: evtimer_set
      Src: /src/libevent/test/regress.c:2306,1
    - Dst: evtimer_add
      Src: /src/libevent/test/regress.c:2307,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:2309,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2311,1
    - Dst: event_base_got_exit
      Src: /src/libevent/test/regress.c:2311,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2312,1
    - Dst: event_base_got_break
      Src: /src/libevent/test/regress.c:2312,1
    - Dst: evtimer_del
      Src: /src/libevent/test/regress.c:2314,1
    - Dst: evtimer_del
      Src: /src/libevent/test/regress.c:2315,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:2318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2294
    functionDepth: 2
    functionLinenumber: 2294
    functionLinenumberEnd: 2319
    functionName: test_loopbreak
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - event_base_got_exit
    - evtimer_add
    - setup_test
    - evtimer_del
    - cleanup_test
    - event_dispatch
    - evtimer_set
    - event_base_got_break
    linkageType: ''
    returnType: void
    signature: void test_loopbreak(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libevent/test/regress.c:2331,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:2334,1
    - Dst: event_base_loopbreak
      Src: /src/libevent/test/regress.c:2335,1
    - Dst: event_get_base
      Src: /src/libevent/test/regress.c:2335,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2340
      start: 2322
    functionDepth: 4
    functionLinenumber: 2322
    functionLinenumberEnd: 2340
    functionName: re_add_read_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_fail_perror
    - event_add
    - read
    - event_get_base
    - event_base_loopbreak
    linkageType: ''
    returnType: void
    signature: void re_add_read_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress.c:2347,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:2348,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2350,1
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:2350,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2351,1
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:2351,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2353,1
    - Dst: write
      Src: /src/libevent/test/regress.c:2353,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2354,1
    - Dst: write
      Src: /src/libevent/test/regress.c:2354,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2356,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2356,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2357,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2357,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2358,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:2358,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2359,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2366,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2368,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:2368,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:2368,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2370,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:2370,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:2370,1
    - Dst: event_initialized
      Src: /src/libevent/test/regress.c:2374,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:2375,1
    - Dst: event_initialized
      Src: /src/libevent/test/regress.c:2376,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:2377,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - _data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2378
      start: 2341
    functionDepth: 6
    functionLinenumber: 2341
    functionLinenumberEnd: 2378
    functionName: test_nonpersist_readd
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - event_pending
    - event_del
    - write
    - event_assign
    - memset
    - event_add
    - event_base_loop
    - tt_int_op
    - event_initialized
    linkageType: ''
    returnType: void
    signature: void test_nonpersist_readd(void *_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_loopexit
      Src: /src/libevent/test/regress.c:2392,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress.c:2398,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2400
      start: 2385
    functionDepth: 3
    functionLinenumber: 2385
    functionLinenumberEnd: 2400
    functionName: test_priorities_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_loopexit
    - event_add
    - evutil_timerclear
    linkageType: ''
    returnType: void
    signature: void test_priorities_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:2408,1
    - Dst: event_base_priority_init
      Src: /src/libevent/test/regress.c:2410,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:2412,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:2413,1
    - Dst: timeout_set
      Src: /src/libevent/test/regress.c:2415,1
    - Dst: event_priority_set
      Src: /src/libevent/test/regress.c:2416,1
    - Dst: fprintf
      Src: /src/libevent/test/regress.c:2417,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:2418,1
    - Dst: timeout_set
      Src: /src/libevent/test/regress.c:2421,1
    - Dst: event_priority_set
      Src: /src/libevent/test/regress.c:2422,1
    - Dst: fprintf
      Src: /src/libevent/test/regress.c:2423,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:2424,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress.c:2427,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2429,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:2430,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2431,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:2432,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:2434,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:2436,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:2437,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 1
    argNames:
    - npriorities
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2450
      start: 2402
    functionDepth: 4
    functionLinenumber: 2402
    functionLinenumberEnd: 2450
    functionName: test_priorities_impl
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_del
    - evutil_timerclear
    - exit
    - event_base_priority_init
    - TT_BLATHER
    - memset
    - event_dispatch
    - event_add
    - timeout_set
    - fprintf
    - event_priority_set
    linkageType: ''
    returnType: void
    signature: void test_priorities_impl(int npriorities)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_priorities_impl
      Src: /src/libevent/test/regress.c:2455,1
    - Dst: test_priorities_impl
      Src: /src/libevent/test/regress.c:2457,1
    - Dst: test_priorities_impl
      Src: /src/libevent/test/regress.c:2459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2460
      start: 2452
    functionDepth: 5
    functionLinenumber: 2452
    functionLinenumberEnd: 2460
    functionName: test_priorities
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - test_priorities_impl
    linkageType: ''
    returnType: void
    signature: void test_priorities(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_active
      Src: /src/libevent/test/regress.c:2475,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:2478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2480
      start: 2467
    functionDepth: 4
    functionLinenumber: 2467
    functionLinenumberEnd: 2480
    functionName: prio_active_inversion_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_active
    linkageType: ''
    returnType: void
    signature: void prio_active_inversion_cb(evutil_socket_t fd, short what, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2489,1
    - Dst: event_base_priority_init
      Src: /src/libevent/test/regress.c:2489,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:2492,1
    - Dst: event_assign
      Src: /src/libevent/test/regress.c:2495,1
    - Dst: event_priority_set
      Src: /src/libevent/test/regress.c:2499,1
    - Dst: event_priority_set
      Src: /src/libevent/test/regress.c:2500,1
    - Dst: event_priority_set
      Src: /src/libevent/test/regress.c:2501,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:2503,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress.c:2505,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2506,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2507,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2508,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - data_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2512
      start: 2482
    functionDepth: 4
    functionLinenumber: 2482
    functionLinenumberEnd: 2512
    functionName: test_priority_active_inversion
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_active
    - event_base_priority_init
    - event_assign
    - memset
    - tt_int_op
    - event_priority_set
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_priority_active_inversion(void *data_)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2522
      start: 2515
    functionDepth: 0
    functionLinenumber: 2515
    functionLinenumberEnd: 2522
    functionName: test_multiple_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_multiple_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:2529,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:2531,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2532,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:2533,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2534,1
    - Dst: event_loop
      Src: /src/libevent/test/regress.c:2535,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:2536,1
    - Dst: write
      Src: /src/libevent/test/regress.c:2538,1
    - Dst: strlen
      Src: /src/libevent/test/regress.c:2538,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:2539,1
    - Dst: event_loop
      Src: /src/libevent/test/regress.c:2542,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:2543,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:2548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2549
      start: 2524
    functionDepth: 5
    functionLinenumber: 2524
    functionLinenumberEnd: 2549
    functionName: test_multiple_events_for_same_fd
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_set
    - event_del
    - setup_test
    - cleanup_test
    - write
    - tt_fail_perror
    - event_loop
    - event_add
    - strlen
    linkageType: ''
    returnType: void
    signature: void test_multiple_events_for_same_fd(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/libevent/test/regress.c:2562,1
    - Dst: write
      Src: /src/libevent/test/regress.c:2568,1
    - Dst: strlen
      Src: /src/libevent/test/regress.c:2568,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:2569,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2577
      start: 2556
    functionDepth: 1
    functionLinenumber: 2556
    functionLinenumberEnd: 2577
    functionName: read_once_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - strlen
    - write
    - tt_fail_perror
    - read
    linkageType: ''
    returnType: void
    signature: void read_once_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_test
      Src: /src/libevent/test/regress.c:2586,1
    - Dst: write
      Src: /src/libevent/test/regress.c:2588,1
    - Dst: strlen
      Src: /src/libevent/test/regress.c:2588,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:2589,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress.c:2593,1
    - Dst: event_loopexit
      Src: /src/libevent/test/regress.c:2595,1
    - Dst: event_set
      Src: /src/libevent/test/regress.c:2597,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:2598,1
    - Dst: exit
      Src: /src/libevent/test/regress.c:2599,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress.c:2600,1
    - Dst: cleanup_test
      Src: /src/libevent/test/regress.c:2602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2603
      start: 2579
    functionDepth: 5
    functionLinenumber: 2579
    functionLinenumberEnd: 2603
    functionName: test_want_only_once
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_set
    - evutil_timerclear
    - setup_test
    - event_loopexit
    - exit
    - write
    - tt_fail_perror
    - cleanup_test
    - event_dispatch
    - event_add
    - strlen
    linkageType: ''
    returnType: void
    signature: void test_want_only_once(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress.c:2610,1
    - Dst: evtag_init
      Src: /src/libevent/test/regress.c:2618,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/libevent/test/regress.c:2622,1
    - Dst: evtag_encode_int
      Src: /src/libevent/test/regress.c:2623,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/libevent/test/regress.c:2624,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:2625,1
    - Dst: evtag_encode_int64
      Src: /src/libevent/test/regress.c:2629,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2633,1
    - Dst: evtag_decode_int
      Src: /src/libevent/test/regress.c:2633,1
    - Dst: tt_uint_op
      Src: /src/libevent/test/regress.c:2634,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2635,1
    - Dst: evtag_decode_int64
      Src: /src/libevent/test/regress.c:2635,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2636,1
    - Dst: tt_uint_op
      Src: /src/libevent/test/regress.c:2639,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/libevent/test/regress.c:2639,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress.c:2641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2642
      start: 2607
    functionDepth: 8
    functionLinenumber: 2607
    functionLinenumberEnd: 2642
    functionName: evtag_int_test
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evtag_encode_int
    - evtag_init
    - evbuffer_free
    - TT_BLATHER
    - evtag_encode_int64
    - tt_uint_op
    - evtag_decode_int64
    - tt_int_op
    - evbuffer_new
    - evtag_decode_int
    - EVBUFFER_LENGTH
    linkageType: ''
    returnType: void
    signature: void evtag_int_test(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress.c:2648,1
    - Dst: evtag_init
      Src: /src/libevent/test/regress.c:2654,1
    - Dst: test_weakrand
      Src: /src/libevent/test/regress.c:2658,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress.c:2659,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress.c:2660,1
    - Dst: evtag_unmarshal_timeval
      Src: /src/libevent/test/regress.c:2662,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2667,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress.c:2670,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress.c:2671,1
    - Dst: evtag_marshal_timeval
      Src: /src/libevent/test/regress.c:2673,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress.c:2674,1
    - Dst: EVBUFFER_DATA
      Src: /src/libevent/test/regress.c:2676,1
    - Dst: evtag_unmarshal_timeval
      Src: /src/libevent/test/regress.c:2677,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress.c:2678,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress.c:2682,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2683
      start: 2644
    functionDepth: 10
    functionLinenumber: 2644
    functionLinenumberEnd: 2683
    functionName: evtag_fuzz
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    - evtag_init
    - evutil_timerclear
    - EVBUFFER_DATA
    - evbuffer_free
    - tt_abort_msg
    - evtag_unmarshal_timeval
    - tt_int_op
    - evtag_marshal_timeval
    - test_weakrand
    - evbuffer_new
    - evbuffer_drain
    linkageType: ''
    returnType: void
    signature: void evtag_fuzz(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress.c:2688,1
    - Dst: evtag_init
      Src: /src/libevent/test/regress.c:2695,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/libevent/test/regress.c:2699,1
    - Dst: evtag_encode_tag
      Src: /src/libevent/test/regress.c:2700,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/libevent/test/regress.c:2701,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:2702,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2707,1
    - Dst: evtag_decode_tag
      Src: /src/libevent/test/regress.c:2707,1
    - Dst: tt_uint_op
      Src: /src/libevent/test/regress.c:2708,1
    - Dst: tt_uint_op
      Src: /src/libevent/test/regress.c:2711,1
    - Dst: EVBUFFER_LENGTH
      Src: /src/libevent/test/regress.c:2711,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress.c:2714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2685
    functionDepth: 8
    functionLinenumber: 2685
    functionLinenumberEnd: 2715
    functionName: evtag_tag_encoding
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evtag_init
    - EVBUFFER_LENGTH
    - evbuffer_free
    - TT_BLATHER
    - tt_uint_op
    - evtag_decode_tag
    - tt_int_op
    - evbuffer_new
    - evtag_encode_tag
    linkageType: ''
    returnType: void
    signature: void evtag_tag_encoding(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress.c:2720,1
    - Dst: evtag_marshal_int
      Src: /src/libevent/test/regress.c:2723,1
    - Dst: evtag_marshal_string
      Src: /src/libevent/test/regress.c:2724,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2726,1
    - Dst: evtag_peek
      Src: /src/libevent/test/regress.c:2726,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2727,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2728,1
    - Dst: evtag_peek_length
      Src: /src/libevent/test/regress.c:2728,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2729,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2730,1
    - Dst: evtag_consume
      Src: /src/libevent/test/regress.c:2730,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2732,1
    - Dst: evtag_peek
      Src: /src/libevent/test/regress.c:2732,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2733,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2734,1
    - Dst: evtag_peek_length
      Src: /src/libevent/test/regress.c:2734,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2735,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2736,1
    - Dst: evtag_payload_length
      Src: /src/libevent/test/regress.c:2736,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2737,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress.c:2740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2741
      start: 2717
    functionDepth: 10
    functionLinenumber: 2717
    functionLinenumberEnd: 2741
    functionName: evtag_test_peek
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evtag_peek_length
    - evbuffer_free
    - tt_int_op
    - evtag_marshal_string
    - evtag_peek
    - evtag_payload_length
    - evtag_marshal_int
    - evtag_consume
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void evtag_test_peek(void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: event_get_supported_methods
      Src: /src/libevent/test/regress.c:2747,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2753,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:2757,1
    - Dst: event_config_new
      Src: /src/libevent/test/regress.c:2762,1
    - Dst: assert
      Src: /src/libevent/test/regress.c:2763,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2765,1
    - Dst: event_config_avoid_method
      Src: /src/libevent/test/regress.c:2765,1
    - Dst: event_config_set_flag
      Src: /src/libevent/test/regress.c:2766,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/regress.c:2768,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2770,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress.c:2771,1
    - Dst: event_base_get_method
      Src: /src/libevent/test/regress.c:2771,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2773,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:2778,1
    - Dst: event_config_free
      Src: /src/libevent/test/regress.c:2780,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts:
    - condition: (cfg != NULL)
      pos:
        line_end: 2762
        line_start: 2762
        source_file: /src/libevent/test/regress.c
    constantsTouched: []
    func_position:
      end: 2781
      start: 2744
    functionDepth: 6
    functionLinenumber: 2744
    functionLinenumberEnd: 2781
    functionName: test_methods
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_str_op
    - event_base_get_method
    - event_get_supported_methods
    - event_config_new
    - event_config_avoid_method
    - event_base_free
    - event_config_free
    - tt_int_op
    - TT_BLATHER
    - event_base_new_with_config
    - event_config_set_flag
    - assert
    linkageType: ''
    returnType: void
    signature: void test_methods(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_get_version
      Src: /src/libevent/test/regress.c:2790,1
    - Dst: event_get_version_number
      Src: /src/libevent/test/regress.c:2791,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2793,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2794,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress.c:2796,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2797,1
    - Dst: sscanf
      Src: /src/libevent/test/regress.c:2799,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2800,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2804
      start: 2783
    functionDepth: 1
    functionLinenumber: 2783
    functionLinenumberEnd: 2804
    functionName: test_version
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_str_op
    - event_get_version_number
    - sscanf
    - tt_int_op
    - event_get_version
    linkageType: ''
    returnType: void
    signature: void test_version(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: event_config_new
      Src: /src/libevent/test/regress.c:2812,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2814,1
    - Dst: event_config_require_features
      Src: /src/libevent/test/regress.c:2814,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/regress.c:2816,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2818,1
    - Dst: event_base_get_features
      Src: /src/libevent/test/regress.c:2819,1
    - Dst: event_base_new
      Src: /src/libevent/test/regress.c:2821,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2822,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2823,1
    - Dst: event_base_get_features
      Src: /src/libevent/test/regress.c:2823,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:2828,1
    - Dst: event_config_free
      Src: /src/libevent/test/regress.c:2830,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2831
      start: 2806
    functionDepth: 6
    functionLinenumber: 2806
    functionLinenumberEnd: 2831
    functionName: test_base_features
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - event_config_new
    - event_base_free
    - event_config_free
    - event_base_new_with_config
    - event_base_new
    - event_base_get_features
    - tt_int_op
    - event_config_require_features
    linkageType: ''
    returnType: void
    signature: void test_base_features(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress.c:2839,1
    - Dst: putenv
      Src: /src/libevent/test/regress.c:2840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - k
    - v
    - o_
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2841
      start: 2836
    functionDepth: 2
    functionLinenumber: 2836
    functionLinenumberEnd: 2841
    functionName: setenv
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 8
    functionsReached:
    - evutil_snprintf
    - putenv
    linkageType: ''
    returnType: void
    signature: void setenv(const char *k, const char *v, int o_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress.c:2851,1
    - Dst: putenv
      Src: /src/libevent/test/regress.c:2852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - k
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2853
      start: 2848
    functionDepth: 2
    functionLinenumber: 2848
    functionLinenumberEnd: 2853
    functionName: unsetenv
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 4
    functionsReached:
    - evutil_snprintf
    - putenv
    linkageType: ''
    returnType: void
    signature: void unsetenv(const char *k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress.c:2862,1
    - Dst: EVUTIL_TOUPPER_
      Src: /src/libevent/test/regress.c:2864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - mname
    - buf
    - buflen
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2866
      start: 2858
    functionDepth: 2
    functionLinenumber: 2858
    functionLinenumberEnd: 2866
    functionName: methodname_to_envvar
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - evutil_snprintf
    - EVUTIL_TOUPPER_
    linkageType: ''
    returnType: void
    signature: void methodname_to_envvar(const char *mname, char *buf, size_t buflen)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/libevent/test/regress.c:2882,1
    - Dst: unsetenv
      Src: /src/libevent/test/regress.c:2883,1
    - Dst: getenv
      Src: /src/libevent/test/regress.c:2884,1
    - Dst: TT_DECLARE
      Src: /src/libevent/test/regress.c:2886,1
    - Dst: TT_DECLARE
      Src: /src/libevent/test/regress.c:2888,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress.c:2890,1
    - Dst: event_get_supported_methods
      Src: /src/libevent/test/regress.c:2893,1
    - Dst: methodname_to_envvar
      Src: /src/libevent/test/regress.c:2895,1
    - Dst: unsetenv
      Src: /src/libevent/test/regress.c:2896,1
    - Dst: event_base_new
      Src: /src/libevent/test/regress.c:2900,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2901,1
    - Dst: event_base_get_method
      Src: /src/libevent/test/regress.c:2903,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress.c:2904,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:2905,1
    - Dst: strcmp
      Src: /src/libevent/test/regress.c:2909,1
    - Dst: setenv
      Src: /src/libevent/test/regress.c:2910,1
    - Dst: methodname_to_envvar
      Src: /src/libevent/test/regress.c:2913,1
    - Dst: setenv
      Src: /src/libevent/test/regress.c:2914,1
    - Dst: event_config_new
      Src: /src/libevent/test/regress.c:2919,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/regress.c:2920,1
    - Dst: event_config_free
      Src: /src/libevent/test/regress.c:2921,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2924,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2926,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress.c:2927,1
    - Dst: event_base_get_method
      Src: /src/libevent/test/regress.c:2927,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:2928,1
    - Dst: event_config_new
      Src: /src/libevent/test/regress.c:2933,1
    - Dst: event_config_set_flag
      Src: /src/libevent/test/regress.c:2934,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/regress.c:2935,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:2936,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress.c:2937,1
    - Dst: event_base_get_method
      Src: /src/libevent/test/regress.c:2937,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress.c:2939,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:2944,1
    - Dst: event_config_free
      Src: /src/libevent/test/regress.c:2946,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 52
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2947
      start: 2869
    functionDepth: 6
    functionLinenumber: 2869
    functionLinenumberEnd: 2947
    functionName: test_base_environ
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_str_op
    - setenv
    - unsetenv
    - event_get_supported_methods
    - event_base_get_method
    - tt_skip
    - event_base_free
    - event_config_new
    - TT_DECLARE
    - TT_BLATHER
    - strcmp
    - event_base_new_with_config
    - event_config_set_flag
    - event_base_new
    - event_config_free
    - methodname_to_envvar
    - getenv
    linkageType: ''
    returnType: void
    signature: void test_base_environ(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2956
      start: 2949
    functionDepth: 1
    functionLinenumber: 2949
    functionLinenumberEnd: 2956
    functionName: read_called_once_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void read_called_once_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2965
      start: 2958
    functionDepth: 1
    functionLinenumber: 2958
    functionLinenumberEnd: 2965
    functionName: timeout_called_once_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void timeout_called_once_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2974
      start: 2967
    functionDepth: 1
    functionLinenumber: 2967
    functionLinenumberEnd: 2974
    functionName: immediate_called_twice_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void immediate_called_twice_cb(evutil_socket_t fd, short event, void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_once
      Src: /src/libevent/test/regress.c:2986,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2988,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress.c:2989,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2991,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress.c:2992,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2993,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress.c:2994,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:2996,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress.c:2999,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3001,1
    - Dst: write
      Src: /src/libevent/test/regress.c:3003,1
    - Dst: strlen
      Src: /src/libevent/test/regress.c:3003,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress.c:3004,1
    - Dst: shutdown
      Src: /src/libevent/test/regress.c:3007,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress.c:3009,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3011,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3014
      start: 2976
    functionDepth: 2
    functionLinenumber: 2976
    functionLinenumberEnd: 3014
    functionName: test_event_once
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_base_once
    - write
    - tt_fail_perror
    - strlen
    - tt_int_op
    - shutdown
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_event_once(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_once
      Src: /src/libevent/test/regress.c:3026,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress.c:3032,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress.c:3034,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3039
      start: 3016
    functionDepth: 2
    functionLinenumber: 3016
    functionLinenumberEnd: 3039
    functionName: test_event_once_never
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_base_once
    - tt_int_op
    - event_base_loopexit
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_event_once_never(void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3050,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3052,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress.c:3054,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3056,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3057,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3058,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:3060,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3061,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3062,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3064,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:3064,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3065,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:3065,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3066,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:3066,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3067,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:3067,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3068,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:3068,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3069,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:3069,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3070,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:3070,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3072,1
    - Dst: evutil_timercmp
      Src: /src/libevent/test/regress.c:3072,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress.c:3074,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:3078,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3079,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:3082,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3083,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:3086,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3087,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3089
      start: 3041
    functionDepth: 5
    functionLinenumber: 3041
    functionLinenumberEnd: 3089
    functionName: test_event_pending
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evutil_gettimeofday
    - event_pending
    - event_del
    - event_new
    - evutil_timercmp
    - evtimer_new
    - event_add
    - event_free
    - test_timeval_diff_eq
    linkageType: ''
    returnType: void
    signature: void test_event_pending(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - e
    - data
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3095
      start: 3091
    functionDepth: 0
    functionLinenumber: 3091
    functionLinenumberEnd: 3095
    functionName: dfd_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dfd_cb(evutil_socket_t fd, short e, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libevent/test/regress.c:3105,1
    - Dst: event_base_get_method
      Src: /src/libevent/test/regress.c:3105,1
    - Dst: tinytest_set_test_skipped_
      Src: /src/libevent/test/regress.c:3106,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3110,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3111,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3115,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3116,1
    - Dst: event_pending
      Src: /src/libevent/test/regress.c:3116,1
    - Dst: close
      Src: /src/libevent/test/regress.c:3117,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:3119,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3120,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:3124,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3127
      start: 3097
    functionDepth: 6
    functionLinenumber: 3097
    functionLinenumberEnd: 3127
    functionName: test_event_closed_fd_poll
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - event_pending
    - event_base_get_method
    - close
    - event_del
    - event_new
    - tinytest_set_test_skipped_
    - strcmp
    - event_add
    - event_base_loop
    - tt_int_op
    - event_free
    linkageType: ''
    returnType: void
    signature: void test_event_closed_fd_poll(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3144,1
    - Dst: write
      Src: /src/libevent/test/regress.c:3144,1
    - Dst: strlen
      Src: /src/libevent/test/regress.c:3145,1
    - Dst: dup
      Src: /src/libevent/test/regress.c:3148,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3149,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3151,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3152,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3153,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3154,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3156,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3157,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:3158,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3159,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3160,1
    - Dst: close
      Src: /src/libevent/test/regress.c:3165,1
    - Dst: event_del
      Src: /src/libevent/test/regress.c:3166,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:3168,1
    - Dst: tt_want_int_op
      Src: /src/libevent/test/regress.c:3169,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3170,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3177,1
    - Dst: dup2
      Src: /src/libevent/test/regress.c:3177,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3178,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3179,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3180,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3181,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:3183,1
    - Dst: tt_want_int_op
      Src: /src/libevent/test/regress.c:3184,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3185,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3189,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3191,1
    - Dst: close
      Src: /src/libevent/test/regress.c:3193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3194
      start: 3135
    functionDepth: 6
    functionLinenumber: 3135
    functionLinenumberEnd: 3194
    functionName: test_dup_fd
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - close
    - event_del
    - event_new
    - write
    - tt_want_int_op
    - event_free
    - dup
    - event_add
    - event_base_loop
    - strlen
    - tt_int_op
    - dup2
    linkageType: ''
    returnType: void
    signature: void test_dup_fd(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tinytest_set_test_skipped_
      Src: /src/libevent/test/regress.c:3201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3202
      start: 3198
    functionDepth: 1
    functionLinenumber: 3198
    functionLinenumberEnd: 3202
    functionName: test_mm_functions
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tinytest_set_test_skipped_
    linkageType: ''
    returnType: void
    signature: void test_mm_functions(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/libevent/test/regress.c:3209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mem_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3210
      start: 3204
    functionDepth: 0
    functionLinenumber: 3204
    functionLinenumberEnd: 3210
    functionName: check_dummy_mem_ok
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int check_dummy_mem_ok(void *mem_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libevent/test/regress.c:3215,1
    - Dst: memcpy
      Src: /src/libevent/test/regress.c:3216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3218
      start: 3212
    functionDepth: 0
    functionLinenumber: 3212
    functionLinenumberEnd: 3218
    functionName: dummy_malloc
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - memcpy
    - malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      dummy_malloc(size_t len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dummy_malloc
      Src: /src/libevent/test/regress.c:3225,1
    - Dst: tt_want
      Src: /src/libevent/test/regress.c:3226,1
    - Dst: check_dummy_mem_ok
      Src: /src/libevent/test/regress.c:3226,1
    - Dst: realloc
      Src: /src/libevent/test/regress.c:3228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mem_
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3230
      start: 3220
    functionDepth: 1
    functionLinenumber: 3220
    functionLinenumberEnd: 3230
    functionName: dummy_realloc
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - realloc
    - dummy_malloc
    - check_dummy_mem_ok
    - tt_want
    linkageType: ''
    returnType: void
    signature: 'void *

      dummy_realloc(void *mem_, size_t len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_want
      Src: /src/libevent/test/regress.c:3236,1
    - Dst: check_dummy_mem_ok
      Src: /src/libevent/test/regress.c:3236,1
    - Dst: free
      Src: /src/libevent/test/regress.c:3238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mem_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3239
      start: 3232
    functionDepth: 1
    functionLinenumber: 3232
    functionLinenumberEnd: 3239
    functionName: dummy_free
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - free
    - tt_want
    - check_dummy_mem_ok
    linkageType: ''
    returnType: void
    signature: void dummy_free(void *mem_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_set_mem_functions
      Src: /src/libevent/test/regress.c:3246,1
    - Dst: event_config_new
      Src: /src/libevent/test/regress.c:3247,1
    - Dst: event_config_avoid_method
      Src: /src/libevent/test/regress.c:3248,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/regress.c:3249,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3250,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3251,1
    - Dst: check_dummy_mem_ok
      Src: /src/libevent/test/regress.c:3251,1
    - Dst: event_config_free
      Src: /src/libevent/test/regress.c:3254,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:3256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3257
      start: 3241
    functionDepth: 6
    functionLinenumber: 3241
    functionLinenumberEnd: 3257
    functionName: test_mm_functions
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - event_config_new
    - event_config_avoid_method
    - event_base_free
    - event_set_mem_functions
    - event_base_new_with_config
    - check_dummy_mem_ok
    - event_config_free
    linkageType: ''
    returnType: void
    signature: void test_mm_functions(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3265
      start: 3260
    functionDepth: 0
    functionLinenumber: 3260
    functionLinenumberEnd: 3265
    functionName: many_event_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void many_event_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress.c:3289,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:3290,1
    - Dst: memset
      Src: /src/libevent/test/regress.c:3291,1
    - Dst: socket
      Src: /src/libevent/test/regress.c:3297,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3298,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3299,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/test/regress.c:3299,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3301,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3303,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3304,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:3306,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:3309,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3313,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3315,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3321,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress.c:3323,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3326
      start: 3267
    functionDepth: 6
    functionLinenumber: 3267
    functionLinenumberEnd: 3326
    functionName: test_many_events
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evutil_closesocket
    - event_new
    - memset
    - socket
    - event_add
    - event_base_loop
    - tt_int_op
    - event_free
    - evutil_make_socket_nonblocking
    linkageType: ''
    returnType: void
    signature: void test_many_events(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3331,1
    - Dst: event_get_struct_event_size
      Src: /src/libevent/test/regress.c:3331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3334
      start: 3328
    functionDepth: 1
    functionLinenumber: 3328
    functionLinenumberEnd: 3334
    functionName: test_struct_event_size
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    - event_get_struct_event_size
    linkageType: ''
    returnType: void
    signature: void test_struct_event_size(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3350,1
    - Dst: event_get_assignment
      Src: /src/libevent/test/regress.c:3351,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:3353,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress.c:3354,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3355,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:3356,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:3357,1
    - Dst: event_get_assignment
      Src: /src/libevent/test/regress.c:3360,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3365
      start: 3336
    functionDepth: 5
    functionLinenumber: 3336
    functionLinenumberEnd: 3365
    functionName: test_get_assignment
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_ptr_op
    - event_new
    - event_get_assignment
    - tt_int_op
    - event_free
    - tt_fd_op
    linkageType: ''
    returnType: void
    signature: void test_get_assignment(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_get_callback_arg
      Src: /src/libevent/test/regress.c:3375,1
    - Dst: event_get_callback
      Src: /src/libevent/test/regress.c:3377,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:3379,1
    - Dst: event_get_base
      Src: /src/libevent/test/regress.c:3379,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - base
    - ev
    - arg
    argTypes:
    - struct event_base*
    - struct event*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3386
      start: 3372
    functionDepth: 4
    functionLinenumber: 3372
    functionLinenumberEnd: 3386
    functionName: foreach_count_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_ptr_op
    - event_get_callback
    - event_get_callback_arg
    - tt_int_op
    - event_get_base
    linkageType: ''
    returnType: int
    signature: int foreach_count_cb(const struct event_base *base, const struct event
      *ev, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_get_callback_arg
      Src: /src/libevent/test/regress.c:3392,1
    - Dst: event_get_callback
      Src: /src/libevent/test/regress.c:3393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - base
    - ev
    - arg
    argTypes:
    - struct event_base*
    - struct event*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3400
      start: 3388
    functionDepth: 4
    functionLinenumber: 3388
    functionLinenumberEnd: 3400
    functionName: foreach_find_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - event_get_callback
    - event_get_callback_arg
    linkageType: ''
    returnType: int
    signature: int foreach_find_cb(const struct event_base *base, const struct event
      *ev, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3416,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3417,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3420,1
    - Dst: event_base_foreach_event
      Src: /src/libevent/test/regress.c:3420,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3421,1
    - Dst: event_base_foreach_event
      Src: /src/libevent/test/regress.c:3421,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3423,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3424,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:3425,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:3426,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3427,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3430,1
    - Dst: event_base_foreach_event
      Src: /src/libevent/test/regress.c:3430,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3432,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3433,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3434,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3435,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:3436,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:3437,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:3438,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:3439,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3442,1
    - Dst: event_base_foreach_event
      Src: /src/libevent/test/regress.c:3442,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress.c:3444,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3448,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3450
      start: 3402
    functionDepth: 5
    functionLinenumber: 3402
    functionLinenumberEnd: 3450
    functionName: test_event_foreach
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_ptr_op
    - event_active
    - event_new
    - event_base_foreach_event
    - event_add
    - tt_int_op
    - event_free
    linkageType: ''
    returnType: void
    signature: void test_event_foreach(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3459,1
    - Dst: event_base_gettimeofday_cached
      Src: /src/libevent/test/regress.c:3459,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress.c:3462,1
    - Dst: event_base_update_cache_time
      Src: /src/libevent/test/regress.c:3465,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3469
      start: 3455
    functionDepth: 4
    functionLinenumber: 3455
    functionLinenumberEnd: 3469
    functionName: cache_time_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    - event_base_gettimeofday_cached
    - event_base_update_cache_time
    - evutil_usleep_
    linkageType: ''
    returnType: void
    signature: void cache_time_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libevent/test/regress.c:3479,1
    - Dst: event_config_new
      Src: /src/libevent/test/regress.c:3481,1
    - Dst: event_config_set_flag
      Src: /src/libevent/test/regress.c:3483,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/regress.c:3485,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3486,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress.c:3489,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3490,1
    - Dst: event_base_gettimeofday_cached
      Src: /src/libevent/test/regress.c:3490,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3491,1
    - Dst: event_base_gettimeofday_cached
      Src: /src/libevent/test/regress.c:3491,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3492,1
    - Dst: timeval_msec_diff
      Src: /src/libevent/test/regress.c:3492,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3493,1
    - Dst: timeval_msec_diff
      Src: /src/libevent/test/regress.c:3493,1
    - Dst: strstr
      Src: /src/libevent/test/regress.c:3495,1
    - Dst: strstr
      Src: /src/libevent/test/regress.c:3496,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3498,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3499,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3500,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:3502,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:3503,1
    - Dst: event_active
      Src: /src/libevent/test/regress.c:3504,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress.c:3506,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3509,1
    - Dst: labs
      Src: /src/libevent/test/regress.c:3509,1
    - Dst: timeval_msec_diff
      Src: /src/libevent/test/regress.c:3509,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3510,1
    - Dst: labs
      Src: /src/libevent/test/regress.c:3510,1
    - Dst: timeval_msec_diff
      Src: /src/libevent/test/regress.c:3510,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3512,1
    - Dst: labs
      Src: /src/libevent/test/regress.c:3512,1
    - Dst: timeval_msec_diff
      Src: /src/libevent/test/regress.c:3512,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3513,1
    - Dst: labs
      Src: /src/libevent/test/regress.c:3513,1
    - Dst: timeval_msec_diff
      Src: /src/libevent/test/regress.c:3513,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3515,1
    - Dst: evutil_timercmp
      Src: /src/libevent/test/regress.c:3515,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3516,1
    - Dst: evutil_timercmp
      Src: /src/libevent/test/regress.c:3516,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3521,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3523,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3525,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress.c:3527,1
    - Dst: event_config_free
      Src: /src/libevent/test/regress.c:3529,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3530
      start: 3471
    functionDepth: 6
    functionLinenumber: 3471
    functionLinenumberEnd: 3530
    functionName: test_gettimeofday_cached
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evutil_gettimeofday
    - labs
    - event_config_new
    - event_active
    - event_base_free
    - event_config_free
    - event_new
    - evutil_timercmp
    - event_base_new_with_config
    - event_base_gettimeofday_cached
    - event_config_set_flag
    - strstr
    - tt_int_op
    - event_free
    - timeval_msec_diff
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_gettimeofday_cached(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3538
      start: 3532
    functionDepth: 0
    functionLinenumber: 3532
    functionLinenumberEnd: 3538
    functionName: tabf_cb
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tabf_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evsignal_new
      Src: /src/libevent/test/regress.c:3552,1
    - Dst: evsignal_new
      Src: /src/libevent/test/regress.c:3553,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3554,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3555,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3556,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3557,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3558,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3559,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3561,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3562,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3563,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3564,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3565,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3566,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3567,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3568,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3572,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3573,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3575,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3578
      start: 3540
    functionDepth: 5
    functionLinenumber: 3540
    functionLinenumberEnd: 3578
    functionName: test_evmap_invalid_slots
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - event_new
    - evsignal_new
    - event_add
    - tt_int_op
    - event_free
    linkageType: ''
    returnType: void
    signature: void test_evmap_invalid_slots(void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: event_base_active_by_fd
      Src: /src/libevent/test/regress.c:3594,1
    - Dst: event_base_active_by_fd
      Src: /src/libevent/test/regress.c:3597,1
    - Dst: event_base_active_by_signal
      Src: /src/libevent/test/regress.c:3600,1
    - Dst: event_base_active_by_signal
      Src: /src/libevent/test/regress.c:3601,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:3603,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3606,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3607,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3608,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3609,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3610,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3611,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3612,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3613,1
    - Dst: event_new
      Src: /src/libevent/test/regress.c:3615,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress.c:3616,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3617,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3620,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3621,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3622,1
    - Dst: event_add
      Src: /src/libevent/test/regress.c:3623,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:3626,1
    - Dst: event_base_active_by_fd
      Src: /src/libevent/test/regress.c:3629,1
    - Dst: event_base_active_by_fd
      Src: /src/libevent/test/regress.c:3630,1
    - Dst: event_base_active_by_fd
      Src: /src/libevent/test/regress.c:3631,1
    - Dst: event_base_active_by_signal
      Src: /src/libevent/test/regress.c:3633,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress.c:3636,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress.c:3638,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3640,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3641,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3642,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3644,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress.c:3646,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3651,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3653,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3655,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3657,1
    - Dst: event_free
      Src: /src/libevent/test/regress.c:3660,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3662
      start: 3580
    functionDepth: 6
    functionLinenumber: 3580
    functionLinenumberEnd: 3662
    functionName: test_active_by_fd
    functionSourceFile: /src/libevent/test/regress.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - event_base_active_by_fd
    - event_base_assert_ok_
    - event_new
    - event_base_active_by_signal
    - event_add
    - event_base_loop
    - tt_int_op
    - event_free
    linkageType: ''
    returnType: void
    signature: void test_active_by_fd(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_new
      Src: /src/libevent/test/regress_rpc.c:82,1
    - Dst: event_errx
      Src: /src/libevent/test/regress_rpc.c:84,1
    - Dst: evhttp_bind_socket_with_handle
      Src: /src/libevent/test/regress_rpc.c:87,1
    - Dst: event_errx
      Src: /src/libevent/test/regress_rpc.c:89,1
    - Dst: regress_get_socket_port
      Src: /src/libevent/test/regress_rpc.c:91,1
    - Dst: evhttp_bound_socket_get_fd
      Src: /src/libevent/test/regress_rpc.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pport
    argTypes:
    - ev_uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 95
    functionName: http_setup
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - evhttp_bound_socket_get_fd
    - event_errx
    - regress_get_socket_port
    - evhttp_new
    - evhttp_bind_socket_with_handle
    linkageType: ''
    returnType: struct evhttp
    signature: 'struct evhttp *

      http_setup(ev_uint16_t *pport)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_rpc.c:143,1
    - Dst: evrpc_init
      Src: /src/libevent/test/regress_rpc.c:144,1
    - Dst: EVRPC_REGISTER
      Src: /src/libevent/test/regress_rpc.c:146,1
    - Dst: EVRPC_REGISTER
      Src: /src/libevent/test/regress_rpc.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - phttp
    - pport
    - pbase
    argTypes:
    - struct evhttp**
    - ev_uint16_t*
    - struct evrpc_base**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 155
    functionName: rpc_setup
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - http_setup
    - EVRPC_REGISTER
    - evrpc_init
    linkageType: ''
    returnType: void
    signature: void rpc_setup(struct evhttp **phttp, ev_uint16_t *pport, struct evrpc_base
      **pbase)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:160,1
    - Dst: EVRPC_UNREGISTER
      Src: /src/libevent/test/regress_rpc.c:160,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:161,1
    - Dst: EVRPC_UNREGISTER
      Src: /src/libevent/test/regress_rpc.c:161,1
    - Dst: evrpc_free
      Src: /src/libevent/test/regress_rpc.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct evrpc_base*
    assertStmts:
    - condition: (EVRPC_UNREGISTER(base, Message) == 0)
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/libevent/test/regress_rpc.c
    - condition: (EVRPC_UNREGISTER(base, NeverReply) == 0)
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/libevent/test/regress_rpc.c
    constantsTouched: []
    func_position:
      end: 164
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 164
    functionName: rpc_teardown
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - assert
    - EVRPC_UNREGISTER
    - evrpc_free
    linkageType: ''
    returnType: void
    signature: void rpc_teardown(struct evrpc_base *base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_rpc.c:171,1
    - Dst: exit
      Src: /src/libevent/test/regress_rpc.c:172,1
    - Dst: event_loopexit
      Src: /src/libevent/test/regress_rpc.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 177
    functionName: rpc_postrequest_failure
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    - event_loopexit
    linkageType: ''
    returnType: void
    signature: void rpc_postrequest_failure(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rpc_setup
      Src: /src/libevent/test/regress_rpc.c:192,1
    - Dst: evhttp_connection_new
      Src: /src/libevent/test/regress_rpc.c:194,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:195,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_rpc.c:202,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:203,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_rpc.c:206,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_rpc.c:207,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_rpc.c:209,1
    - Dst: tt_abort
      Src: /src/libevent/test/regress_rpc.c:212,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_rpc.c:217,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_rpc.c:219,1
    - Dst: rpc_teardown
      Src: /src/libevent/test/regress_rpc.c:221,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:223,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_rpc.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 183
    functionDepth: 9
    functionLinenumber: 183
    functionLinenumberEnd: 227
    functionName: rpc_basic_test
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - rpc_setup
    - tt_assert
    - evhttp_make_request
    - evhttp_connection_free
    - rpc_teardown
    - evhttp_free
    - evhttp_add_header
    - evhttp_request_new
    - tt_abort
    - evbuffer_add_printf
    - event_dispatch
    - evhttp_connection_new
    linkageType: ''
    returnType: void
    signature: void rpc_basic_test(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_rpc.c:235,1
    - Dst: exit
      Src: /src/libevent/test/regress_rpc.c:236,1
    - Dst: kill_new
      Src: /src/libevent/test/regress_rpc.c:239,1
    - Dst: kill_unmarshal
      Src: /src/libevent/test/regress_rpc.c:241,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_rpc.c:242,1
    - Dst: exit
      Src: /src/libevent/test/regress_rpc.c:243,1
    - Dst: kill_free
      Src: /src/libevent/test/regress_rpc.c:246,1
    - Dst: event_loopexit
      Src: /src/libevent/test/regress_rpc.c:249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 250
    functionName: rpc_postrequest_done
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - kill_unmarshal
    - exit
    - kill_new
    - event_loopexit
    - kill_free
    - fprintf
    linkageType: ''
    returnType: void
    signature: void rpc_postrequest_done(struct evhttp_request *req, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rpc_setup
      Src: /src/libevent/test/regress_rpc.c:262,1
    - Dst: evhttp_connection_new
      Src: /src/libevent/test/regress_rpc.c:264,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:265,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_rpc.c:272,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_rpc.c:274,1
    - Dst: exit
      Src: /src/libevent/test/regress_rpc.c:275,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_rpc.c:279,1
    - Dst: msg_new
      Src: /src/libevent/test/regress_rpc.c:282,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:283,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:284,1
    - Dst: msg_marshal
      Src: /src/libevent/test/regress_rpc.c:285,1
    - Dst: msg_free
      Src: /src/libevent/test/regress_rpc.c:286,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_rpc.c:288,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_rpc.c:291,1
    - Dst: exit
      Src: /src/libevent/test/regress_rpc.c:292,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_rpc.c:297,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_rpc.c:299,1
    - Dst: rpc_teardown
      Src: /src/libevent/test/regress_rpc.c:301,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_rpc.c:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 252
    functionDepth: 6
    functionLinenumber: 252
    functionLinenumberEnd: 305
    functionName: rpc_basic_message
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - rpc_setup
    - tt_assert
    - evhttp_make_request
    - evhttp_connection_free
    - exit
    - rpc_teardown
    - evhttp_free
    - evhttp_add_header
    - evhttp_request_new
    - event_dispatch
    - msg_new
    - msg_marshal
    - msg_free
    - EVTAG_ASSIGN
    - fprintf
    - evhttp_connection_new
    linkageType: ''
    returnType: void
    signature: void rpc_basic_message(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evrpc_pool_new
      Src: /src/libevent/test/regress_rpc.c:313,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:314,1
    - Dst: evhttp_connection_new
      Src: /src/libevent/test/regress_rpc.c:316,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:317,1
    - Dst: evrpc_pool_add_connection
      Src: /src/libevent/test/regress_rpc.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - port
    argTypes:
    - ev_uint16_t
    assertStmts:
    - condition: (evcon != NULL)
      pos:
        line_end: 316
        line_start: 316
        source_file: /src/libevent/test/regress_rpc.c
    - condition: (pool != NULL)
      pos:
        line_end: 313
        line_start: 313
        source_file: /src/libevent/test/regress_rpc.c
    constantsTouched: []
    func_position:
      end: 322
      start: 307
    functionDepth: 4
    functionLinenumber: 307
    functionLinenumberEnd: 322
    functionName: rpc_pool_with_connection
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - evrpc_pool_new
    - assert
    - evhttp_connection_new
    - evrpc_pool_add_connection
    linkageType: ''
    returnType: struct evrpc_pool
    signature: 'struct evrpc_pool *

      rpc_pool_with_connection(ev_uint16_t port)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_rpc.c:333,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:335,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:336,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_rpc.c:336,1
    - Dst: EVTAG_GET
      Src: /src/libevent/test/regress_rpc.c:342,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_rpc.c:343,1
    - Dst: EVTAG_GET
      Src: /src/libevent/test/regress_rpc.c:346,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_rpc.c:347,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_rpc.c:351,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_rpc.c:354,1
    - Dst: event_loopexit
      Src: /src/libevent/test/regress_rpc.c:360,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 4
    argNames:
    - status
    - msg
    - kill
    - arg
    argTypes:
    - struct evrpc_status*
    - struct msg*
    - struct kill*
    - void*
    assertStmts:
    - condition: (header)
      pos:
        line_end: 334
        line_start: 334
        source_file: /src/libevent/test/regress_rpc.c
    - condition: (strcmp(header, "ran") == 0)
      pos:
        line_end: 335
        line_start: 335
        source_file: /src/libevent/test/regress_rpc.c
    constantsTouched: []
    func_position:
      end: 361
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 361
    functionName: GotKillCb
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - EVTAG_GET
    - event_loopexit
    - strcmp
    - assert
    - fprintf
    - evhttp_find_header
    linkageType: ''
    returnType: void
    signature: "void GotKillCb(struct evrpc_status *status,\n    struct msg *msg,
      struct kill *kill, void *arg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVTAG_GET
      Src: /src/libevent/test/regress_rpc.c:373,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_rpc.c:374,1
    - Dst: EVTAG_GET
      Src: /src/libevent/test/regress_rpc.c:377,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_rpc.c:378,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_rpc.c:382,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_rpc.c:385,1
    - Dst: event_loopexit
      Src: /src/libevent/test/regress_rpc.c:392,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 4
    argNames:
    - status
    - msg
    - kill
    - arg
    argTypes:
    - struct evrpc_status*
    - struct msg*
    - struct kill*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 393
    functionName: GotKillCbTwo
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - event_loopexit
    - fprintf
    - EVTAG_GET
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void GotKillCbTwo(struct evrpc_status *status,\n    struct msg *msg,
      struct kill *kill, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libevent/test/regress_rpc.c:400,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_rpc.c:401,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_rpc.c:403,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:405,1
    - Dst: evrpc_hook_get_connection
      Src: /src/libevent/test/regress_rpc.c:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - req
    - evbuf
    - arg
    argTypes:
    - void*
    - struct evhttp_request*
    - struct evbuffer*
    - void*
    assertStmts:
    - condition: (evrpc_hook_get_connection(ctx) != NULL)
      pos:
        line_end: 404
        line_start: 404
        source_file: /src/libevent/test/regress_rpc.c
    constantsTouched: []
    func_position:
      end: 408
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 408
    functionName: rpc_hook_add_header
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - assert
    - evhttp_add_header
    - evrpc_hook_get_connection
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int rpc_hook_add_header(void *ctx, struct evhttp_request *req,\n    struct
      evbuffer *evbuf, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evrpc_hook_add_meta
      Src: /src/libevent/test/regress_rpc.c:414,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:416,1
    - Dst: evrpc_hook_get_connection
      Src: /src/libevent/test/regress_rpc.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - req
    - evbuf
    - arg
    argTypes:
    - void*
    - struct evhttp_request*
    - struct evbuffer*
    - void*
    assertStmts:
    - condition: (evrpc_hook_get_connection(ctx) != NULL)
      pos:
        line_end: 415
        line_start: 415
        source_file: /src/libevent/test/regress_rpc.c
    constantsTouched: []
    func_position:
      end: 419
      start: 410
    functionDepth: 4
    functionLinenumber: 410
    functionLinenumberEnd: 419
    functionName: rpc_hook_add_meta
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 1
    functionsReached:
    - assert
    - evrpc_hook_add_meta
    - evrpc_hook_get_connection
    linkageType: ''
    returnType: int
    signature: "int rpc_hook_add_meta(void *ctx, struct evhttp_request *req,\n    struct
      evbuffer *evbuf, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_rpc.c:425,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:429,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:430,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_rpc.c:430,1
    - Dst: evhttp_remove_header
      Src: /src/libevent/test/regress_rpc.c:432,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_rpc.c:433,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:435,1
    - Dst: evrpc_hook_find_meta
      Src: /src/libevent/test/regress_rpc.c:435,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:436,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:437,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:439,1
    - Dst: evrpc_hook_get_connection
      Src: /src/libevent/test/regress_rpc.c:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - req
    - evbuf
    - arg
    argTypes:
    - void*
    - struct evhttp_request*
    - struct evbuffer*
    - void*
    assertStmts:
    - condition: (strcmp(header, arg) == 0)
      pos:
        line_end: 429
        line_start: 429
        source_file: /src/libevent/test/regress_rpc.c
    - condition: (header != NULL)
      pos:
        line_end: 428
        line_start: 428
        source_file: /src/libevent/test/regress_rpc.c
    - condition: (evrpc_hook_find_meta(ctx, "meta", &data, &data_len) == 0)
      pos:
        line_end: 434
        line_start: 434
        source_file: /src/libevent/test/regress_rpc.c
    - condition: (data != NULL)
      pos:
        line_end: 435
        line_start: 435
        source_file: /src/libevent/test/regress_rpc.c
    - condition: (data_len == 5)
      pos:
        line_end: 436
        line_start: 436
        source_file: /src/libevent/test/regress_rpc.c
    - condition: (evrpc_hook_get_connection(ctx) != NULL)
      pos:
        line_end: 438
        line_start: 438
        source_file: /src/libevent/test/regress_rpc.c
    constantsTouched: []
    func_position:
      end: 442
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 442
    functionName: rpc_hook_remove_header
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - evhttp_add_header
    - evrpc_hook_get_connection
    - strcmp
    - evhttp_remove_header
    - evrpc_hook_find_meta
    - assert
    - evhttp_find_header
    linkageType: ''
    returnType: int
    signature: "int rpc_hook_remove_header(void *ctx, struct evhttp_request *req,\n
      \   struct evbuffer *evbuf, void *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rpc_setup
      Src: /src/libevent/test/regress_rpc.c:454,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:459,1
    - Dst: evrpc_add_hook
      Src: /src/libevent/test/regress_rpc.c:459,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:461,1
    - Dst: evrpc_add_hook
      Src: /src/libevent/test/regress_rpc.c:461,1
    - Dst: rpc_pool_with_connection
      Src: /src/libevent/test/regress_rpc.c:464,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:465,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:467,1
    - Dst: evrpc_add_hook
      Src: /src/libevent/test/regress_rpc.c:467,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:468,1
    - Dst: evrpc_add_hook
      Src: /src/libevent/test/regress_rpc.c:468,1
    - Dst: msg_new
      Src: /src/libevent/test/regress_rpc.c:471,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:472,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:473,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:474,1
    - Dst: kill_new
      Src: /src/libevent/test/regress_rpc.c:476,1
    - Dst: EVRPC_MAKE_REQUEST
      Src: /src/libevent/test/regress_rpc.c:478,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_rpc.c:482,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:484,1
    - Dst: kill_clear
      Src: /src/libevent/test/regress_rpc.c:487,1
    - Dst: EVRPC_MAKE_REQUEST
      Src: /src/libevent/test/regress_rpc.c:489,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_rpc.c:491,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:493,1
    - Dst: kill_clear
      Src: /src/libevent/test/regress_rpc.c:496,1
    - Dst: EVRPC_MAKE_CTX
      Src: /src/libevent/test/regress_rpc.c:500,1
    - Dst: evrpc_make_request
      Src: /src/libevent/test/regress_rpc.c:502,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_rpc.c:505,1
    - Dst: rpc_teardown
      Src: /src/libevent/test/regress_rpc.c:507,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:509,1
    - Dst: msg_free
      Src: /src/libevent/test/regress_rpc.c:513,1
    - Dst: kill_free
      Src: /src/libevent/test/regress_rpc.c:515,1
    - Dst: evrpc_pool_free
      Src: /src/libevent/test/regress_rpc.c:518,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_rpc.c:520,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "(evrpc_add_hook(base, EVRPC_INPUT, rpc_hook_add_header, (void*)\"input\")\n\t
        \   != NULL)"
      pos:
        line_end: 459
        line_start: 458
        source_file: /src/libevent/test/regress_rpc.c
    - condition: (evrpc_add_hook(pool, EVRPC_OUTPUT, rpc_hook_add_meta, NULL))
      pos:
        line_end: 466
        line_start: 466
        source_file: /src/libevent/test/regress_rpc.c
    - condition: (evrpc_add_hook(pool, EVRPC_INPUT, rpc_hook_remove_header, (void*)"output"))
      pos:
        line_end: 467
        line_start: 467
        source_file: /src/libevent/test/regress_rpc.c
    - condition: "(evrpc_add_hook(base, EVRPC_OUTPUT, rpc_hook_add_header, (void*)\"output\")\n\t
        \   != NULL)"
      pos:
        line_end: 461
        line_start: 460
        source_file: /src/libevent/test/regress_rpc.c
    constantsTouched: []
    func_position:
      end: 524
      start: 444
    functionDepth: 5
    functionLinenumber: 444
    functionLinenumberEnd: 524
    functionName: rpc_basic_client
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - rpc_setup
    - tt_assert
    - msg_free
    - rpc_pool_with_connection
    - kill_new
    - rpc_teardown
    - evrpc_add_hook
    - kill_clear
    - evhttp_free
    - event_dispatch
    - msg_new
    - kill_free
    - EVRPC_MAKE_REQUEST
    - evrpc_make_request
    - evrpc_pool_free
    - assert
    - EVTAG_ASSIGN
    - EVRPC_MAKE_CTX
    linkageType: ''
    returnType: void
    signature: void rpc_basic_client(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rpc_setup
      Src: /src/libevent/test/regress_rpc.c:540,1
    - Dst: rpc_pool_with_connection
      Src: /src/libevent/test/regress_rpc.c:542,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:543,1
    - Dst: msg_new
      Src: /src/libevent/test/regress_rpc.c:546,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:547,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:548,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:549,1
    - Dst: kill_new
      Src: /src/libevent/test/regress_rpc.c:551,1
    - Dst: kill_new
      Src: /src/libevent/test/regress_rpc.c:552,1
    - Dst: EVRPC_MAKE_REQUEST
      Src: /src/libevent/test/regress_rpc.c:554,1
    - Dst: EVRPC_MAKE_REQUEST
      Src: /src/libevent/test/regress_rpc.c:555,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_rpc.c:559,1
    - Dst: rpc_teardown
      Src: /src/libevent/test/regress_rpc.c:561,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:563,1
    - Dst: msg_free
      Src: /src/libevent/test/regress_rpc.c:567,1
    - Dst: kill_free
      Src: /src/libevent/test/regress_rpc.c:569,1
    - Dst: kill_free
      Src: /src/libevent/test/regress_rpc.c:571,1
    - Dst: evrpc_pool_free
      Src: /src/libevent/test/regress_rpc.c:574,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_rpc.c:576,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 530
    functionDepth: 5
    functionLinenumber: 530
    functionLinenumberEnd: 577
    functionName: rpc_basic_queued_client
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - rpc_setup
    - tt_assert
    - rpc_pool_with_connection
    - kill_new
    - rpc_teardown
    - evhttp_free
    - event_dispatch
    - msg_new
    - kill_free
    - EVRPC_MAKE_REQUEST
    - msg_free
    - evrpc_pool_free
    - EVTAG_ASSIGN
    linkageType: ''
    returnType: void
    signature: void rpc_basic_queued_client(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kill_complete
      Src: /src/libevent/test/regress_rpc.c:587,1
    - Dst: event_loopexit
      Src: /src/libevent/test/regress_rpc.c:593,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - status
    - msg
    - kill
    - arg
    argTypes:
    - struct evrpc_status*
    - struct msg*
    - struct kill*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 579
    functionDepth: 2
    functionLinenumber: 579
    functionLinenumberEnd: 594
    functionName: GotErrorCb
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - event_loopexit
    - kill_complete
    linkageType: ''
    returnType: void
    signature: "void GotErrorCb(struct evrpc_status *status,\n    struct msg *msg,
      struct kill *kill, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evrpc_resume_request
      Src: /src/libevent/test/regress_rpc.c:610,1
    - Dst: free
      Src: /src/libevent/test/regress_rpc.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 612
    functionName: rpc_hook_pause_cb
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - free
    - evrpc_resume_request
    linkageType: ''
    returnType: void
    signature: void rpc_hook_pause_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libevent/test/regress_rpc.c:618,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:621,1
    - Dst: memset
      Src: /src/libevent/test/regress_rpc.c:625,1
    - Dst: event_once
      Src: /src/libevent/test/regress_rpc.c:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - req
    - evbuf
    - arg
    argTypes:
    - void*
    - struct evhttp_request*
    - struct evbuffer*
    - void*
    assertStmts:
    - condition: (tmp != NULL)
      pos:
        line_end: 620
        line_start: 620
        source_file: /src/libevent/test/regress_rpc.c
    constantsTouched: []
    func_position:
      end: 628
      start: 614
    functionDepth: 2
    functionLinenumber: 614
    functionLinenumberEnd: 628
    functionName: rpc_hook_pause
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - event_once
    - assert
    - memset
    - malloc
    linkageType: ''
    returnType: int
    signature: "int rpc_hook_pause(void *ctx, struct evhttp_request *req, struct evbuffer
      *evbuf,\n    void *arg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rpc_setup
      Src: /src/libevent/test/regress_rpc.c:640,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:642,1
    - Dst: evrpc_add_hook
      Src: /src/libevent/test/regress_rpc.c:642,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:643,1
    - Dst: evrpc_add_hook
      Src: /src/libevent/test/regress_rpc.c:643,1
    - Dst: rpc_pool_with_connection
      Src: /src/libevent/test/regress_rpc.c:645,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:646,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:647,1
    - Dst: evrpc_add_hook
      Src: /src/libevent/test/regress_rpc.c:647,1
    - Dst: assert
      Src: /src/libevent/test/regress_rpc.c:648,1
    - Dst: evrpc_add_hook
      Src: /src/libevent/test/regress_rpc.c:648,1
    - Dst: msg_new
      Src: /src/libevent/test/regress_rpc.c:651,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:652,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:653,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:654,1
    - Dst: kill_new
      Src: /src/libevent/test/regress_rpc.c:656,1
    - Dst: EVRPC_MAKE_REQUEST
      Src: /src/libevent/test/regress_rpc.c:658,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_rpc.c:662,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_rpc.c:664,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_rpc.c:665,1
    - Dst: rpc_teardown
      Src: /src/libevent/test/regress_rpc.c:669,1
    - Dst: msg_free
      Src: /src/libevent/test/regress_rpc.c:672,1
    - Dst: kill_free
      Src: /src/libevent/test/regress_rpc.c:674,1
    - Dst: evrpc_pool_free
      Src: /src/libevent/test/regress_rpc.c:677,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_rpc.c:679,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (evrpc_add_hook(base, EVRPC_OUTPUT, rpc_hook_pause, base))
      pos:
        line_end: 642
        line_start: 642
        source_file: /src/libevent/test/regress_rpc.c
    - condition: (evrpc_add_hook(pool, EVRPC_OUTPUT, rpc_hook_pause, pool))
      pos:
        line_end: 647
        line_start: 647
        source_file: /src/libevent/test/regress_rpc.c
    - condition: (evrpc_add_hook(base, EVRPC_INPUT, rpc_hook_pause, base))
      pos:
        line_end: 641
        line_start: 641
        source_file: /src/libevent/test/regress_rpc.c
    - condition: (evrpc_add_hook(pool, EVRPC_INPUT, rpc_hook_pause, pool))
      pos:
        line_end: 646
        line_start: 646
        source_file: /src/libevent/test/regress_rpc.c
    constantsTouched: []
    func_position:
      end: 680
      start: 630
    functionDepth: 5
    functionLinenumber: 630
    functionLinenumberEnd: 680
    functionName: rpc_basic_client_with_pause
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - rpc_setup
    - tt_assert
    - rpc_pool_with_connection
    - kill_new
    - rpc_teardown
    - evrpc_add_hook
    - tt_int_op
    - evhttp_free
    - event_dispatch
    - msg_new
    - kill_free
    - EVRPC_MAKE_REQUEST
    - msg_free
    - evrpc_pool_free
    - assert
    - EVTAG_ASSIGN
    linkageType: ''
    returnType: void
    signature: void rpc_basic_client_with_pause(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rpc_setup
      Src: /src/libevent/test/regress_rpc.c:692,1
    - Dst: rpc_pool_with_connection
      Src: /src/libevent/test/regress_rpc.c:694,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:695,1
    - Dst: evrpc_pool_set_timeout
      Src: /src/libevent/test/regress_rpc.c:698,1
    - Dst: msg_new
      Src: /src/libevent/test/regress_rpc.c:701,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:702,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:703,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:704,1
    - Dst: kill_new
      Src: /src/libevent/test/regress_rpc.c:706,1
    - Dst: EVRPC_MAKE_REQUEST
      Src: /src/libevent/test/regress_rpc.c:708,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_rpc.c:712,1
    - Dst: EVRPC_REQUEST_DONE
      Src: /src/libevent/test/regress_rpc.c:715,1
    - Dst: rpc_teardown
      Src: /src/libevent/test/regress_rpc.c:717,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:719,1
    - Dst: msg_free
      Src: /src/libevent/test/regress_rpc.c:723,1
    - Dst: kill_free
      Src: /src/libevent/test/regress_rpc.c:725,1
    - Dst: evrpc_pool_free
      Src: /src/libevent/test/regress_rpc.c:728,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_rpc.c:730,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 682
    functionDepth: 5
    functionLinenumber: 682
    functionLinenumberEnd: 731
    functionName: rpc_client_timeout
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - rpc_setup
    - tt_assert
    - EVRPC_REQUEST_DONE
    - rpc_pool_with_connection
    - evrpc_pool_set_timeout
    - kill_new
    - rpc_teardown
    - evhttp_free
    - event_dispatch
    - msg_new
    - kill_free
    - EVRPC_MAKE_REQUEST
    - msg_free
    - evrpc_pool_free
    - EVTAG_ASSIGN
    linkageType: ''
    returnType: void
    signature: void rpc_client_timeout(void)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_rpc.c:739,1
    - Dst: msg_new
      Src: /src/libevent/test/regress_rpc.c:744,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:746,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:748,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:749,1
    - Dst: EVTAG_GET
      Src: /src/libevent/test/regress_rpc.c:751,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:752,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:755,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:756,1
    - Dst: EVTAG_ARRAY_ADD_VALUE
      Src: /src/libevent/test/regress_rpc.c:758,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:759,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_rpc.c:763,1
    - Dst: EVTAG_ARRAY_ADD
      Src: /src/libevent/test/regress_rpc.c:765,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:767,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:769,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:770,1
    - Dst: EVTAG_ARRAY_ADD_VALUE
      Src: /src/libevent/test/regress_rpc.c:773,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:775,1
    - Dst: EVTAG_ARRAY_ADD_VALUE
      Src: /src/libevent/test/regress_rpc.c:777,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:778,1
    - Dst: EVTAG_ASSIGN
      Src: /src/libevent/test/regress_rpc.c:781,1
    - Dst: EVTAG_ARRAY_ADD_VALUE
      Src: /src/libevent/test/regress_rpc.c:782,1
    - Dst: EVTAG_ARRAY_ADD_VALUE
      Src: /src/libevent/test/regress_rpc.c:783,1
    - Dst: msg_complete
      Src: /src/libevent/test/regress_rpc.c:786,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:787,1
    - Dst: evtag_marshal_msg
      Src: /src/libevent/test/regress_rpc.c:789,1
    - Dst: evtag_peek
      Src: /src/libevent/test/regress_rpc.c:791,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:792,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_rpc.c:795,1
    - Dst: msg_new
      Src: /src/libevent/test/regress_rpc.c:797,1
    - Dst: evtag_unmarshal_msg
      Src: /src/libevent/test/regress_rpc.c:798,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:799,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_rpc.c:801,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/regress_rpc.c:802,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_rpc.c:803,1
    - Dst: EVTAG_HAS
      Src: /src/libevent/test/regress_rpc.c:807,1
    - Dst: EVTAG_HAS
      Src: /src/libevent/test/regress_rpc.c:808,1
    - Dst: EVTAG_HAS
      Src: /src/libevent/test/regress_rpc.c:809,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:810,1
    - Dst: EVTAG_GET
      Src: /src/libevent/test/regress_rpc.c:813,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:814,1
    - Dst: EVTAG_ARRAY_LEN
      Src: /src/libevent/test/regress_rpc.c:817,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:818,1
    - Dst: EVTAG_ARRAY_GET
      Src: /src/libevent/test/regress_rpc.c:822,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:823,1
    - Dst: EVTAG_ARRAY_LEN
      Src: /src/libevent/test/regress_rpc.c:830,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:831,1
    - Dst: EVTAG_ARRAY_GET
      Src: /src/libevent/test/regress_rpc.c:834,1
    - Dst: EVTAG_ARRAY_GET
      Src: /src/libevent/test/regress_rpc.c:835,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:836,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_rpc.c:839,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_rpc.c:840,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:841,1
    - Dst: EVTAG_GET
      Src: /src/libevent/test/regress_rpc.c:844,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:846,1
    - Dst: EVTAG_ARRAY_LEN
      Src: /src/libevent/test/regress_rpc.c:849,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:850,1
    - Dst: EVTAG_ARRAY_GET
      Src: /src/libevent/test/regress_rpc.c:853,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_rpc.c:855,1
    - Dst: tt_uint_op
      Src: /src/libevent/test/regress_rpc.c:857,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_rpc.c:860,1
    - Dst: EVTAG_ARRAY_LEN
      Src: /src/libevent/test/regress_rpc.c:860,1
    - Dst: EVTAG_ARRAY_GET
      Src: /src/libevent/test/regress_rpc.c:864,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_rpc.c:865,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_rpc.c:868,1
    - Dst: msg_free
      Src: /src/libevent/test/regress_rpc.c:875,1
    - Dst: msg_free
      Src: /src/libevent/test/regress_rpc.c:877,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_rpc.c:879,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 96
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 733
    functionDepth: 6
    functionLinenumber: 733
    functionLinenumberEnd: 880
    functionName: rpc_test
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - evbuffer_free
    - EVTAG_HAS
    - msg_complete
    - tt_uint_op
    - EVTAG_ARRAY_GET
    - evtag_unmarshal_msg
    - evutil_gettimeofday
    - EVTAG_ARRAY_LEN
    - EVTAG_ARRAY_ADD_VALUE
    - tt_abort_msg
    - TT_BLATHER
    - evtag_peek
    - msg_new
    - evtag_marshal_msg
    - msg_free
    - EVTAG_ARRAY_ADD
    - tt_int_op
    - tt_assert
    - EVTAG_GET
    - TT_DIE
    - strcmp
    - evutil_timersub
    - EVTAG_ASSIGN
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void rpc_test(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rpc_setup
      Src: /src/libevent/test/regress_rpc.c:891,1
    - Dst: evhttp_connection_new
      Src: /src/libevent/test/regress_rpc.c:893,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:894,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_rpc.c:901,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:902,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_rpc.c:905,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_rpc.c:906,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_rpc.c:908,1
    - Dst: tt_abort
      Src: /src/libevent/test/regress_rpc.c:911,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_rpc.c:916,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_rpc.c:918,1
    - Dst: rpc_teardown
      Src: /src/libevent/test/regress_rpc.c:920,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_rpc.c:922,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_rpc.c:925,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 882
    functionDepth: 9
    functionLinenumber: 882
    functionLinenumberEnd: 926
    functionName: rpc_invalid_type
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached:
    - rpc_setup
    - tt_assert
    - evhttp_make_request
    - evhttp_connection_free
    - rpc_teardown
    - evhttp_free
    - evhttp_add_header
    - evhttp_request_new
    - tt_abort
    - evbuffer_add_printf
    - event_dispatch
    - evhttp_connection_new
    linkageType: ''
    returnType: void
    signature: void rpc_invalid_type(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 929
    functionDepth: 0
    functionLinenumber: 929
    functionLinenumberEnd: 933
    functionName: RPC_LEGACY
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RPC_LEGACY(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 938
    functionName: RPC_LEGACY
    functionSourceFile: /src/libevent/test/regress_rpc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RPC_LEGACY(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_weakrand_
      Src: /src/libevent/test/test-time.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: rand_int
    functionSourceFile: /src/libevent/test/test-time.c
    functionUses: 0
    functionsReached:
    - evutil_weakrand_
    linkageType: ''
    returnType: int
    signature: int rand_int(int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rand_int
      Src: /src/libevent/test/test-time.c:70,1
    - Dst: rand_int
      Src: /src/libevent/test/test-time.c:72,1
    - Dst: evtimer_add
      Src: /src/libevent/test/test-time.c:74,1
    - Dst: evtimer_del
      Src: /src/libevent/test/test-time.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 79
    functionName: time_cb
    functionSourceFile: /src/libevent/test/test-time.c
    functionUses: 0
    functionsReached:
    - evtimer_del
    - evtimer_add
    - rand_int
    linkageType: ''
    returnType: void
    signature: void time_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/libevent/test/test-time.c:92,1
    - Dst: WSAStartup
      Src: /src/libevent/test/test-time.c:94,1
    - Dst: evutil_weakrand_seed_
      Src: /src/libevent/test/test-time.c:97,1
    - Dst: getenv
      Src: /src/libevent/test/test-time.c:99,1
    - Dst: event_enable_debug_logging
      Src: /src/libevent/test/test-time.c:100,1
    - Dst: event_base_new
      Src: /src/libevent/test/test-time.c:103,1
    - Dst: evtimer_new
      Src: /src/libevent/test/test-time.c:106,1
    - Dst: event_self_cbarg
      Src: /src/libevent/test/test-time.c:106,1
    - Dst: rand_int
      Src: /src/libevent/test/test-time.c:111,1
    - Dst: evtimer_add
      Src: /src/libevent/test/test-time.c:112,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/test-time.c:115,1
    - Dst: printf
      Src: /src/libevent/test/test-time.c:117,1
    - Dst: event_free
      Src: /src/libevent/test/test-time.c:129,1
    - Dst: event_base_free
      Src: /src/libevent/test/test-time.c:132,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 81
    functionDepth: 6
    functionLinenumber: 81
    functionLinenumberEnd: 134
    functionName: main
    functionSourceFile: /src/libevent/test/test-time.c
    functionUses: 1
    functionsReached:
    - MAKEWORD
    - evutil_weakrand_seed_
    - evtimer_add
    - event_base_free
    - rand_int
    - printf
    - event_free
    - event_enable_debug_logging
    - evtimer_new
    - event_base_new
    - WSAStartup
    - event_base_dispatch
    - getenv
    - event_self_cbarg
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: timeval_msec_diff
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long timeval_msec_diff(const struct timeval *start, const struct timeval
      *end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_main.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - m
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: dnslogcb
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 0
    functionsReached:
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void dnslogcb(int w, const char *m)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/libevent/test/regress_main.c:138,1
    - Dst: snprintf
      Src: /src/libevent/test/regress_main.c:144,1
    - Dst: umask
      Src: /src/libevent/test/regress_main.c:146,1
    - Dst: mkstemp
      Src: /src/libevent/test/regress_main.c:148,1
    - Dst: write
      Src: /src/libevent/test/regress_main.c:151,1
    - Dst: close
      Src: /src/libevent/test/regress_main.c:152,1
    - Dst: unlink
      Src: /src/libevent/test/regress_main.c:153,1
    - Dst: lseek
      Src: /src/libevent/test/regress_main.c:156,1
    - Dst: strdup
      Src: /src/libevent/test/regress_main.c:157,1
    - Dst: GetTempPathW
      Src: /src/libevent/test/regress_main.c:168,1
    - Dst: GetLongPathNameW
      Src: /src/libevent/test/regress_main.c:171,1
    - Dst: GetTempFileNameW
      Src: /src/libevent/test/regress_main.c:175,1
    - Dst: GetLastError
      Src: /src/libevent/test/regress_main.c:177,1
    - Dst: CreateFileW
      Src: /src/libevent/test/regress_main.c:180,1
    - Dst: WideCharToMultiByte
      Src: /src/libevent/test/regress_main.c:188,1
    - Dst: strdup
      Src: /src/libevent/test/regress_main.c:191,1
    - Dst: WriteFile
      Src: /src/libevent/test/regress_main.c:192,1
    - Dst: _open_osfhandle
      Src: /src/libevent/test/regress_main.c:194,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - data
    - datalen
    - filename_out
    argTypes:
    - void*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 196
    functionName: regress_make_tmpfile
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 0
    functionsReached:
    - mkstemp
    - close
    - unlink
    - GetLastError
    - _open_osfhandle
    - lseek
    - write
    - GetTempFileNameW
    - GetTempPathW
    - WriteFile
    - umask
    - WideCharToMultiByte
    - GetLongPathNameW
    - CreateFileW
    - snprintf
    - getenv
    - strdup
    linkageType: ''
    returnType: int
    signature: int regress_make_tmpfile(const void *data, size_t datalen, char **filename_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/libevent/test/regress_main.c:202,1
    - Dst: vproc_transaction_begin
      Src: /src/libevent/test/regress_main.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 207
    functionName: regress_fork
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 1
    functionsReached:
    - vproc_transaction_begin
    - fork
    linkageType: ''
    returnType: pid_t
    signature: pid_t regress_fork(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - s
    - msg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: ignore_log_cb
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ignore_log_cb(int s, const char *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mach_timebase_info
      Src: /src/libevent/test/regress_main.c:223,1
    - Dst: thread_policy_set
      Src: /src/libevent/test/regress_main.c:235,1
    - Dst: pthread_mach_thread_np
      Src: /src/libevent/test/regress_main.c:235,1
    - Dst: mach_error
      Src: /src/libevent/test/regress_main.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pthread
    argTypes:
    - pthread_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 242
    functionName: move_pthread_to_realtime_scheduling_class
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 0
    functionsReached:
    - mach_timebase_info
    - pthread_mach_thread_np
    - mach_error
    - thread_policy_set
    linkageType: ''
    returnType: void
    signature: void move_pthread_to_realtime_scheduling_class(pthread_t pthread)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: move_pthread_to_realtime_scheduling_class
      Src: /src/libevent/test/regress_main.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pthread
    argTypes:
    - THREAD_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: thread_setup
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 0
    functionsReached:
    - move_pthread_to_realtime_scheduling_class
    linkageType: ''
    returnType: void
    signature: void thread_setup(THREAD_T pthread)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pthread
    argTypes:
    - THREAD_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 249
    functionName: thread_setup
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void thread_setup(THREAD_T pthread)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: THREAD_SELF
      Src: /src/libevent/test/regress_main.c:269,1
    - Dst: thread_setup
      Src: /src/libevent/test/regress_main.c:271,1
    - Dst: thread_setup
      Src: /src/libevent/test/regress_main.c:273,1
    - Dst: THREAD_SELF
      Src: /src/libevent/test/regress_main.c:273,1
    - Dst: event_enable_debug_mode
      Src: /src/libevent/test/regress_main.c:283,1
    - Dst: evthread_use_pthreads_with_flags
      Src: /src/libevent/test/regress_main.c:291,1
    - Dst: exit
      Src: /src/libevent/test/regress_main.c:292,1
    - Dst: evthread_use_windows_threads
      Src: /src/libevent/test/regress_main.c:294,1
    - Dst: exit
      Src: /src/libevent/test/regress_main.c:295,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_main.c:302,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_main.c:303,1
    - Dst: exit
      Src: /src/libevent/test/regress_main.c:304,1
    - Dst: event_init
      Src: /src/libevent/test/regress_main.c:309,1
    - Dst: event_base_new
      Src: /src/libevent/test/regress_main.c:311,1
    - Dst: exit
      Src: /src/libevent/test/regress_main.c:313,1
    - Dst: event_base_start_iocp_
      Src: /src/libevent/test/regress_main.c:316,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_main.c:317,1
    - Dst: evdns_set_log_fn
      Src: /src/libevent/test/regress_main.c:323,1
    - Dst: evdns_init
      Src: /src/libevent/test/regress_main.c:324,1
    - Dst: event_set_log_callback
      Src: /src/libevent/test/regress_main.c:329,1
    - Dst: calloc
      Src: /src/libevent/test/regress_main.c:331,1
    - Dst: exit
      Src: /src/libevent/test/regress_main.c:333,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 1
    argNames:
    - testcase
    argTypes:
    - struct testcase_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 253
    functionDepth: 10
    functionLinenumber: 253
    functionLinenumberEnd: 339
    functionName: basic_test_setup
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 0
    functionsReached:
    - thread_setup
    - event_base_start_iocp_
    - evdns_init
    - calloc
    - event_base_free
    - exit
    - event_enable_debug_mode
    - event_init
    - evdns_set_log_fn
    - event_set_log_callback
    - evthread_use_pthreads_with_flags
    - fprintf
    - THREAD_SELF
    - event_base_new
    - evutil_socketpair
    - evthread_use_windows_threads
    linkageType: ''
    returnType: void
    signature: 'void *

      basic_test_setup(const struct testcase_t *testcase)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: event_set_log_callback
      Src: /src/libevent/test/regress_main.c:347,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_main.c:351,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_main.c:353,1
    - Dst: evdns_shutdown
      Src: /src/libevent/test/regress_main.c:357,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress_main.c:362,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_main.c:363,1
    - Dst: libevent_global_shutdown
      Src: /src/libevent/test/regress_main.c:368,1
    - Dst: free
      Src: /src/libevent/test/regress_main.c:370,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - testcase
    - ptr
    argTypes:
    - struct testcase_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 341
    functionDepth: 7
    functionLinenumber: 341
    functionLinenumberEnd: 373
    functionName: basic_test_cleanup
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 0
    functionsReached:
    - event_base_free
    - evutil_closesocket
    - event_base_assert_ok_
    - event_set_log_callback
    - libevent_global_shutdown
    - evdns_shutdown
    - free
    linkageType: ''
    returnType: int
    signature: int basic_test_cleanup(const struct testcase_t *testcase, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: basic_test_setup
      Src: /src/libevent/test/regress_main.c:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - testcase
    argTypes:
    - struct testcase_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 384
    functionDepth: 11
    functionLinenumber: 384
    functionLinenumberEnd: 395
    functionName: legacy_test_setup
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 0
    functionsReached:
    - basic_test_setup
    linkageType: ''
    returnType: void
    signature: 'void *

      legacy_test_setup(const struct testcase_t *testcase)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct basic_test_data*::legacy_test_fn
      Src: /src/libevent/test/regress_main.c:408,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_main.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 416
    functionName: run_legacy_test_fn
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 0
    functionsReached:
    - struct basic_test_data*::legacy_test_fn
    - tt_abort_msg
    linkageType: ''
    returnType: void
    signature: void run_legacy_test_fn(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_test_cleanup
      Src: /src/libevent/test/regress_main.c:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - testcase
    - ptr
    argTypes:
    - struct testcase_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 422
    functionDepth: 8
    functionLinenumber: 422
    functionLinenumberEnd: 429
    functionName: legacy_test_cleanup
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 0
    functionsReached:
    - basic_test_cleanup
    linkageType: ''
    returnType: int
    signature: int legacy_test_cleanup(const struct testcase_t *testcase, void *ptr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/libevent/test/regress_main.c:507,1
    - Dst: WSAStartup
      Src: /src/libevent/test/regress_main.c:509,1
    - Dst: signal
      Src: /src/libevent/test/regress_main.c:513,1
    - Dst: tinytest_skip
      Src: /src/libevent/test/regress_main.c:518,1
    - Dst: tinytest_skip
      Src: /src/libevent/test/regress_main.c:519,1
    - Dst: tinytest_skip
      Src: /src/libevent/test/regress_main.c:520,1
    - Dst: getenv
      Src: /src/libevent/test/regress_main.c:524,1
    - Dst: evthread_enable_lock_debugging
      Src: /src/libevent/test/regress_main.c:525,1
    - Dst: getenv
      Src: /src/libevent/test/regress_main.c:528,1
    - Dst: event_enable_debug_mode
      Src: /src/libevent/test/regress_main.c:529,1
    - Dst: getenv
      Src: /src/libevent/test/regress_main.c:532,1
    - Dst: event_enable_debug_logging
      Src: /src/libevent/test/regress_main.c:533,1
    - Dst: tinytest_set_aliases
      Src: /src/libevent/test/regress_main.c:536,1
    - Dst: evutil_weakrand_seed_
      Src: /src/libevent/test/regress_main.c:538,1
    - Dst: getenv
      Src: /src/libevent/test/regress_main.c:540,1
    - Dst: setbuf
      Src: /src/libevent/test/regress_main.c:541,1
    - Dst: setbuf
      Src: /src/libevent/test/regress_main.c:542,1
    - Dst: tinytest_main
      Src: /src/libevent/test/regress_main.c:545,1
    - Dst: libevent_global_shutdown
      Src: /src/libevent/test/regress_main.c:548,1
    - Dst: WSACleanup
      Src: /src/libevent/test/regress_main.c:551,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 500
    functionDepth: 6
    functionLinenumber: 500
    functionLinenumberEnd: 555
    functionName: main
    functionSourceFile: /src/libevent/test/regress_main.c
    functionUses: 2
    functionsReached:
    - setbuf
    - MAKEWORD
    - evutil_weakrand_seed_
    - evthread_enable_lock_debugging
    - event_enable_debug_mode
    - tinytest_set_aliases
    - libevent_global_shutdown
    - tinytest_skip
    - event_enable_debug_logging
    - signal
    - WSACleanup
    - WSAStartup
    - tinytest_main
    - getenv
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/libevent/test/bench_cascade.c:72,1
    - Dst: send
      Src: /src/libevent/test/bench_cascade.c:74,1
    - Dst: perror
      Src: /src/libevent/test/bench_cascade.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - fd
    - which
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 78
    functionName: read_cb
    functionSourceFile: /src/libevent/test/bench_cascade.c
    functionUses: 0
    functionsReached:
    - recv
    - perror
    - send
    linkageType: ''
    returnType: void
    signature: void read_cb(evutil_socket_t fd, short which, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/libevent/test/bench_cascade.c:87,1
    - Dst: calloc
      Src: /src/libevent/test/bench_cascade.c:88,1
    - Dst: perror
      Src: /src/libevent/test/bench_cascade.c:91,1
    - Dst: exit
      Src: /src/libevent/test/bench_cascade.c:92,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/bench_cascade.c:96,1
    - Dst: perror
      Src: /src/libevent/test/bench_cascade.c:97,1
    - Dst: exit
      Src: /src/libevent/test/bench_cascade.c:98,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/bench_cascade.c:103,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/bench_cascade.c:106,1
    - Dst: event_set
      Src: /src/libevent/test/bench_cascade.c:111,1
    - Dst: event_add
      Src: /src/libevent/test/bench_cascade.c:113,1
    - Dst: send
      Src: /src/libevent/test/bench_cascade.c:119,1
    - Dst: perror
      Src: /src/libevent/test/bench_cascade.c:120,1
    - Dst: event_dispatch
      Src: /src/libevent/test/bench_cascade.c:122,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/bench_cascade.c:124,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/bench_cascade.c:125,1
    - Dst: event_del
      Src: /src/libevent/test/bench_cascade.c:128,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/bench_cascade.c:129,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/bench_cascade.c:130,1
    - Dst: free
      Src: /src/libevent/test/bench_cascade.c:133,1
    - Dst: free
      Src: /src/libevent/test/bench_cascade.c:134,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 1
    argNames:
    - num_pipes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 80
    functionDepth: 5
    functionLinenumber: 80
    functionLinenumberEnd: 137
    functionName: run_once
    functionSourceFile: /src/libevent/test/bench_cascade.c
    functionUses: 1
    functionsReached:
    - evutil_gettimeofday
    - event_set
    - calloc
    - evutil_timerclear
    - event_del
    - exit
    - evutil_closesocket
    - perror
    - evutil_timersub
    - event_dispatch
    - free
    - event_add
    - evutil_socketpair
    - send
    linkageType: ''
    returnType: struct timeval
    signature: 'struct timeval *

      run_once(int num_pipes)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WSAStartup
      Src: /src/libevent/test/bench_cascade.c:151,1
    - Dst: getopt
      Src: /src/libevent/test/bench_cascade.c:154,1
    - Dst: atoi
      Src: /src/libevent/test/bench_cascade.c:157,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_cascade.c:160,1
    - Dst: exit
      Src: /src/libevent/test/bench_cascade.c:161,1
    - Dst: setrlimit
      Src: /src/libevent/test/bench_cascade.c:167,1
    - Dst: perror
      Src: /src/libevent/test/bench_cascade.c:168,1
    - Dst: exit
      Src: /src/libevent/test/bench_cascade.c:169,1
    - Dst: event_init
      Src: /src/libevent/test/bench_cascade.c:173,1
    - Dst: run_once
      Src: /src/libevent/test/bench_cascade.c:176,1
    - Dst: exit
      Src: /src/libevent/test/bench_cascade.c:178,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_cascade.c:179,1
    - Dst: WSACleanup
      Src: /src/libevent/test/bench_cascade.c:184,1
    - Dst: exit
      Src: /src/libevent/test/bench_cascade.c:187,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 188
    functionName: main
    functionSourceFile: /src/libevent/test/bench_cascade.c
    functionUses: 2
    functionsReached:
    - exit
    - event_init
    - perror
    - getopt
    - setrlimit
    - WSACleanup
    - WSAStartup
    - fprintf
    - run_once
    - atoi
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_mem_buf
      Src: /src/libevent/test/regress_openssl.c:61,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_openssl.c:62,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/libevent/test/regress_openssl.c:64,1
    - Dst: BIO_free
      Src: /src/libevent/test/regress_openssl.c:65,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_openssl.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 71
    functionName: ssl_getkey
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - BIO_free
    - BIO_new_mem_buf
    - PEM_read_bio_PrivateKey
    linkageType: ''
    returnType: EVP_PKEY
    signature: 'EVP_PKEY *

      ssl_getkey(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/libevent/test/regress_openssl.c:82,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_openssl.c:84,1
    - Dst: X509_new
      Src: /src/libevent/test/regress_openssl.c:86,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_openssl.c:87,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_openssl.c:88,1
    - Dst: X509_set_version
      Src: /src/libevent/test/regress_openssl.c:88,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_openssl.c:89,1
    - Dst: ASN1_INTEGER_set
      Src: /src/libevent/test/regress_openssl.c:89,1
    - Dst: X509_get_serialNumber
      Src: /src/libevent/test/regress_openssl.c:89,1
    - Dst: X509_NAME_new
      Src: /src/libevent/test/regress_openssl.c:91,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_openssl.c:92,1
    - Dst: OBJ_txt2nid
      Src: /src/libevent/test/regress_openssl.c:93,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_openssl.c:94,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_openssl.c:95,1
    - Dst: X509_NAME_add_entry_by_NID
      Src: /src/libevent/test/regress_openssl.c:95,1
    - Dst: X509_set_subject_name
      Src: /src/libevent/test/regress_openssl.c:98,1
    - Dst: X509_set_issuer_name
      Src: /src/libevent/test/regress_openssl.c:99,1
    - Dst: X509_NAME_free
      Src: /src/libevent/test/regress_openssl.c:100,1
    - Dst: X509_time_adj
      Src: /src/libevent/test/regress_openssl.c:102,1
    - Dst: X509_getm_notBefore
      Src: /src/libevent/test/regress_openssl.c:102,1
    - Dst: X509_time_adj
      Src: /src/libevent/test/regress_openssl.c:104,1
    - Dst: X509_getm_notAfter
      Src: /src/libevent/test/regress_openssl.c:104,1
    - Dst: X509_set_pubkey
      Src: /src/libevent/test/regress_openssl.c:105,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_openssl.c:106,1
    - Dst: X509_sign
      Src: /src/libevent/test/regress_openssl.c:106,1
    - Dst: EVP_sha256
      Src: /src/libevent/test/regress_openssl.c:106,1
    - Dst: X509_free
      Src: /src/libevent/test/regress_openssl.c:110,1
    - Dst: X509_NAME_free
      Src: /src/libevent/test/regress_openssl.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - key
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 113
    functionName: ssl_getcert
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - X509_NAME_new
    - X509_set_issuer_name
    - X509_NAME_free
    - X509_set_pubkey
    - EVP_sha256
    - X509_free
    - X509_getm_notAfter
    - X509_get_serialNumber
    - X509_NAME_add_entry_by_NID
    - ASN1_INTEGER_set
    - X509_getm_notBefore
    - X509_new
    - X509_set_subject_name
    - tt_assert
    - X509_set_version
    - time
    - X509_time_adj
    - OBJ_txt2nid
    - X509_sign
    linkageType: ''
    returnType: X509
    signature: 'X509 *

      ssl_getcert(EVP_PKEY *key)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/libevent/test/regress_openssl.c:122,1
    - Dst: SSLv23_method
      Src: /src/libevent/test/regress_openssl.c:122,1
    - Dst: SSL_CTX_set_options
      Src: /src/libevent/test/regress_openssl.c:131,1
    - Dst: SSL_CTX_set_options
      Src: /src/libevent/test/regress_openssl.c:136,1
    - Dst: SSL_CTX_set_options
      Src: /src/libevent/test/regress_openssl.c:139,1
    - Dst: SSL_CTX_set_options
      Src: /src/libevent/test/regress_openssl.c:144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 148
    functionName: get_ssl_ctx
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - SSLv23_method
    - SSL_CTX_new
    - SSL_CTX_set_options
    linkageType: ''
    returnType: SSL_CTX
    signature: 'SSL_CTX *

      get_ssl_ctx(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_library_init
      Src: /src/libevent/test/regress_openssl.c:162,1
    - Dst: ERR_load_crypto_strings
      Src: /src/libevent/test/regress_openssl.c:163,1
    - Dst: SSL_load_error_strings
      Src: /src/libevent/test/regress_openssl.c:164,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/libevent/test/regress_openssl.c:165,1
    - Dst: SSLeay
      Src: /src/libevent/test/regress_openssl.c:166,1
    - Dst: TT_DECLARE
      Src: /src/libevent/test/regress_openssl.c:167,1
    - Dst: SSLeay
      Src: /src/libevent/test/regress_openssl.c:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 173
    functionName: init_ssl
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - ERR_load_crypto_strings
    - TT_DECLARE
    - OpenSSL_add_all_algorithms
    - SSLeay
    - SSL_library_init
    - SSL_load_error_strings
    linkageType: ''
    returnType: void
    signature: void init_ssl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_ssl
      Src: /src/libevent/test/regress_openssl.c:178,1
    - Dst: ssl_getkey
      Src: /src/libevent/test/regress_openssl.c:180,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/test/regress_openssl.c:181,1
    - Dst: ssl_getcert
      Src: /src/libevent/test/regress_openssl.c:183,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/test/regress_openssl.c:184,1
    - Dst: basic_test_setup
      Src: /src/libevent/test/regress_openssl.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - testcase
    argTypes:
    - struct testcase_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 175
    functionDepth: 11
    functionLinenumber: 175
    functionLinenumberEnd: 189
    functionName: ssl_test_setup
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - basic_test_setup
    - EVUTIL_ASSERT
    - ssl_getkey
    - ssl_getcert
    - init_ssl
    linkageType: ''
    returnType: void
    signature: 'void *

      ssl_test_setup(const struct testcase_t *testcase)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: basic_test_cleanup
      Src: /src/libevent/test/regress_openssl.c:193,1
    - Dst: X509_free
      Src: /src/libevent/test/regress_openssl.c:208,1
    - Dst: EVP_PKEY_free
      Src: /src/libevent/test/regress_openssl.c:209,1
    - Dst: SSL_CTX_free
      Src: /src/libevent/test/regress_openssl.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - testcase
    - ptr
    argTypes:
    - struct testcase_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 190
    functionDepth: 8
    functionLinenumber: 190
    functionLinenumberEnd: 215
    functionName: ssl_test_cleanup
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - basic_test_cleanup
    - SSL_CTX_free
    - X509_free
    linkageType: ''
    returnType: int
    signature: int ssl_test_cleanup(const struct testcase_t *testcase, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_set_init
      Src: /src/libevent/test/regress_openssl.c:220,1
    - Dst: BIO_set_data
      Src: /src/libevent/test/regress_openssl.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 223
    functionName: bio_rwcount_new
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_set_init
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int bio_rwcount_new(BIO *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_openssl.c:227,1
    - Dst: BIO_get_shutdown
      Src: /src/libevent/test/regress_openssl.c:230,1
    - Dst: BIO_set_init
      Src: /src/libevent/test/regress_openssl.c:231,1
    - Dst: BIO_set_data
      Src: /src/libevent/test/regress_openssl.c:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 235
    functionName: bio_rwcount_free
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_get_shutdown
    - BIO_set_init
    - TT_BLATHER
    - BIO_set_data
    linkageType: ''
    returnType: int
    signature: int bio_rwcount_free(BIO *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/libevent/test/regress_openssl.c:239,1
    - Dst: recv
      Src: /src/libevent/test/regress_openssl.c:240,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/test/regress_openssl.c:242,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/test/regress_openssl.c:242,1
    - Dst: BIO_set_retry_read
      Src: /src/libevent/test/regress_openssl.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - b
    - out
    - outlen
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 246
    functionName: bio_rwcount_read
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_set_retry_read
    - recv
    - EVUTIL_ERR_RW_RETRIABLE
    - EVUTIL_SOCKET_ERROR
    - BIO_get_data
    linkageType: ''
    returnType: int
    signature: int bio_rwcount_read(BIO *b, char *out, int outlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/libevent/test/regress_openssl.c:250,1
    - Dst: send
      Src: /src/libevent/test/regress_openssl.c:251,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/test/regress_openssl.c:253,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/test/regress_openssl.c:253,1
    - Dst: BIO_set_retry_write
      Src: /src/libevent/test/regress_openssl.c:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - b
    - in
    - inlen
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 257
    functionName: bio_rwcount_write
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_set_retry_write
    - EVUTIL_ERR_RW_RETRIABLE
    - EVUTIL_SOCKET_ERROR
    - BIO_get_data
    - send
    linkageType: ''
    returnType: int
    signature: int bio_rwcount_write(BIO *b, const char *in, int inlen)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIO_get_data
      Src: /src/libevent/test/regress_openssl.c:261,1
    - Dst: BIO_get_shutdown
      Src: /src/libevent/test/regress_openssl.c:268,1
    - Dst: BIO_set_shutdown
      Src: /src/libevent/test/regress_openssl.c:271,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - b
    - cmd
    - num
    - ptr
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 285
    functionName: bio_rwcount_ctrl
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_get_data
    - BIO_set_shutdown
    - BIO_get_shutdown
    linkageType: ''
    returnType: long
    signature: long bio_rwcount_ctrl(BIO *b, int cmd, long num, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bio_rwcount_write
      Src: /src/libevent/test/regress_openssl.c:289,1
    - Dst: strlen
      Src: /src/libevent/test/regress_openssl.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - s
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 290
    functionName: bio_rwcount_puts
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - strlen
    - bio_rwcount_write
    linkageType: ''
    returnType: int
    signature: int bio_rwcount_puts(BIO *b, const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_meth_new
      Src: /src/libevent/test/regress_openssl.c:298,1
    - Dst: BIO_meth_set_write
      Src: /src/libevent/test/regress_openssl.c:301,1
    - Dst: BIO_meth_set_read
      Src: /src/libevent/test/regress_openssl.c:302,1
    - Dst: BIO_meth_set_puts
      Src: /src/libevent/test/regress_openssl.c:303,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/libevent/test/regress_openssl.c:304,1
    - Dst: BIO_meth_set_create
      Src: /src/libevent/test/regress_openssl.c:305,1
    - Dst: BIO_meth_set_destroy
      Src: /src/libevent/test/regress_openssl.c:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 309
    functionName: BIO_s_rwcount
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_meth_new
    - BIO_meth_set_destroy
    - BIO_meth_set_ctrl
    - BIO_meth_set_puts
    - BIO_meth_set_read
    - BIO_meth_set_write
    - BIO_meth_set_create
    linkageType: ''
    returnType: BIO_METHOD
    signature: 'BIO_METHOD *

      BIO_s_rwcount(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/libevent/test/regress_openssl.c:314,1
    - Dst: BIO_s_rwcount
      Src: /src/libevent/test/regress_openssl.c:314,1
    - Dst: BIO_set_init
      Src: /src/libevent/test/regress_openssl.c:316,1
    - Dst: BIO_set_data
      Src: /src/libevent/test/regress_openssl.c:317,1
    - Dst: BIO_set_shutdown
      Src: /src/libevent/test/regress_openssl.c:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - close_flag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 320
    functionName: BIO_new_rwcount
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - BIO_s_rwcount
    - BIO_set_init
    - BIO_new
    - BIO_set_shutdown
    - BIO_set_data
    linkageType: ''
    returnType: BIO
    signature: 'BIO *

      BIO_new_rwcount(int close_flag)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new_rwcount
      Src: /src/libevent/test/regress_openssl.c:325,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_openssl.c:326,1
    - Dst: BIO_set_data
      Src: /src/libevent/test/regress_openssl.c:327,1
    - Dst: SSL_set_bio
      Src: /src/libevent/test/regress_openssl.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ssl
    - rw
    argTypes:
    - SSL*
    - struct rwcount*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 331
    functionName: BIO_setup
    functionSourceFile: /src/libevent/test/regress_openssl.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - BIO_new_rwcount
    - SSL_set_bio
    - BIO_set_data
    linkageType: ''
    returnType: void
    signature: void BIO_setup(SSL *ssl, struct rwcount *rw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/test/test-closed.c:59,1
    - Dst: exit
      Src: /src/libevent/test/test-closed.c:60,1
    - Dst: printf
      Src: /src/libevent/test/test-closed.c:64,1
    - Dst: printf
      Src: /src/libevent/test/test-closed.c:68,1
    - Dst: exit
      Src: /src/libevent/test/test-closed.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 70
    functionName: closed_cb
    functionSourceFile: /src/libevent/test/test-closed.c
    functionUses: 0
    functionsReached:
    - exit
    - printf
    linkageType: ''
    returnType: void
    signature: void closed_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: event_config_new
      Src: /src/libevent/test/test-closed.c:84,1
    - Dst: perror
      Src: /src/libevent/test/test-closed.c:86,1
    - Dst: event_config_require_features
      Src: /src/libevent/test/test-closed.c:89,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/test-closed.c:90,1
    - Dst: event_config_free
      Src: /src/libevent/test/test-closed.c:91,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/test-closed.c:98,1
    - Dst: perror
      Src: /src/libevent/test/test-closed.c:99,1
    - Dst: send
      Src: /src/libevent/test/test-closed.c:104,1
    - Dst: strlen
      Src: /src/libevent/test/test-closed.c:104,1
    - Dst: perror
      Src: /src/libevent/test/test-closed.c:105,1
    - Dst: shutdown
      Src: /src/libevent/test/test-closed.c:108,1
    - Dst: event_new
      Src: /src/libevent/test/test-closed.c:111,1
    - Dst: event_self_cbarg
      Src: /src/libevent/test/test-closed.c:111,1
    - Dst: perror
      Src: /src/libevent/test/test-closed.c:113,1
    - Dst: event_add
      Src: /src/libevent/test/test-closed.c:116,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/test-closed.c:117,1
    - Dst: event_free
      Src: /src/libevent/test/test-closed.c:120,1
    - Dst: event_base_free
      Src: /src/libevent/test/test-closed.c:121,1
    - Dst: event_free
      Src: /src/libevent/test/test-closed.c:126,1
    - Dst: event_base_free
      Src: /src/libevent/test/test-closed.c:128,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 72
    functionDepth: 6
    functionLinenumber: 72
    functionLinenumberEnd: 130
    functionName: main
    functionSourceFile: /src/libevent/test/test-closed.c
    functionUses: 2
    functionsReached:
    - event_config_new
    - event_base_free
    - event_new
    - perror
    - event_free
    - event_base_new_with_config
    - event_self_cbarg
    - event_add
    - event_base_dispatch
    - shutdown
    - strlen
    - event_config_free
    - evutil_socketpair
    - event_config_require_features
    - send
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/bench_httpclient.c:76,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/bench_httpclient.c:77,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/bench_httpclient.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - b
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 4
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: readcb
    functionSourceFile: /src/libevent/test/bench_httpclient.c
    functionUses: 3
    functionsReached:
    - evbuffer_drain
    - evbuffer_get_length
    - bufferevent_get_input
    linkageType: ''
    returnType: void
    signature: void readcb(struct bufferevent *b, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/bench_httpclient.c:91,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/bench_httpclient.c:92,1
    - Dst: evutil_timeradd
      Src: /src/libevent/test/bench_httpclient.c:93,1
    - Dst: printf
      Src: /src/libevent/test/bench_httpclient.c:96,1
    - Dst: launch_request
      Src: /src/libevent/test/bench_httpclient.c:99,1
    - Dst: perror
      Src: /src/libevent/test/bench_httpclient.c:100,1
    - Dst: perror
      Src: /src/libevent/test/bench_httpclient.c:104,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/bench_httpclient.c:107,1
    - Dst: free
      Src: /src/libevent/test/bench_httpclient.c:108,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/bench_httpclient.c:109,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/bench_httpclient.c:110,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - b
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 83
    functionDepth: 6
    functionLinenumber: 83
    functionLinenumberEnd: 111
    functionName: errorcb
    functionSourceFile: /src/libevent/test/bench_httpclient.c
    functionUses: 5
    functionsReached:
    - evutil_gettimeofday
    - launch_request
    - bufferevent_free
    - perror
    - printf
    - evutil_timersub
    - bufferevent_setcb
    - free
    - evutil_timeradd
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void errorcb(struct bufferevent *b, short what, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/libevent/test/bench_httpclient.c:120,1
    - Dst: perror
      Src: /src/libevent/test/bench_httpclient.c:121,1
    - Dst: setsockopt
      Src: /src/libevent/test/bench_httpclient.c:125,1
    - Dst: perror
      Src: /src/libevent/test/bench_httpclient.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - sock
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 128
    functionName: frob_socket
    functionSourceFile: /src/libevent/test/bench_httpclient.c
    functionUses: 0
    functionsReached:
    - perror
    - setsockopt
    linkageType: ''
    returnType: void
    signature: void frob_socket(evutil_socket_t sock)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/bench_httpclient.c:139,1
    - Dst: htonl
      Src: /src/libevent/test/bench_httpclient.c:144,1
    - Dst: htons
      Src: /src/libevent/test/bench_httpclient.c:145,1
    - Dst: socket
      Src: /src/libevent/test/bench_httpclient.c:146,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/test/bench_httpclient.c:148,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/bench_httpclient.c:149,1
    - Dst: frob_socket
      Src: /src/libevent/test/bench_httpclient.c:152,1
    - Dst: connect
      Src: /src/libevent/test/bench_httpclient.c:153,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/test/bench_httpclient.c:154,1
    - Dst: EVUTIL_ERR_CONNECT_RETRIABLE
      Src: /src/libevent/test/bench_httpclient.c:155,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/bench_httpclient.c:156,1
    - Dst: malloc
      Src: /src/libevent/test/bench_httpclient.c:161,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/bench_httpclient.c:163,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/bench_httpclient.c:165,1
    - Dst: perror
      Src: /src/libevent/test/bench_httpclient.c:167,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/bench_httpclient.c:168,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/bench_httpclient.c:171,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/bench_httpclient.c:172,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/bench_httpclient.c:174,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/bench_httpclient.c:174,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 130
    functionDepth: 9
    functionLinenumber: 130
    functionLinenumberEnd: 178
    functionName: launch_request
    functionSourceFile: /src/libevent/test/bench_httpclient.c
    functionUses: 1
    functionsReached:
    - EVUTIL_ERR_CONNECT_RETRIABLE
    - frob_socket
    - evutil_gettimeofday
    - bufferevent_socket_new
    - bufferevent_get_output
    - evutil_closesocket
    - connect
    - perror
    - evbuffer_add_printf
    - memset
    - bufferevent_setcb
    - socket
    - htons
    - malloc
    - bufferevent_enable
    - evutil_socket_geterror
    - evutil_make_socket_nonblocking
    - htonl
    linkageType: ''
    returnType: int
    signature: int launch_request(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WSAStartup
      Src: /src/libevent/test/bench_httpclient.c:191,1
    - Dst: setvbuf
      Src: /src/libevent/test/bench_httpclient.c:196,1
    - Dst: event_base_new
      Src: /src/libevent/test/bench_httpclient.c:198,1
    - Dst: launch_request
      Src: /src/libevent/test/bench_httpclient.c:205,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_httpclient.c:206,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/bench_httpclient.c:209,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/bench_httpclient.c:211,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/bench_httpclient.c:213,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/bench_httpclient.c:214,1
    - Dst: puts
      Src: /src/libevent/test/bench_httpclient.c:218,1
    - Dst: printf
      Src: /src/libevent/test/bench_httpclient.c:234,1
    - Dst: WSACleanup
      Src: /src/libevent/test/bench_httpclient.c:244,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 181
    functionDepth: 10
    functionLinenumber: 181
    functionLinenumberEnd: 248
    functionName: main
    functionSourceFile: /src/libevent/test/bench_httpclient.c
    functionUses: 2
    functionsReached:
    - evutil_gettimeofday
    - launch_request
    - printf
    - evutil_timersub
    - puts
    - WSACleanup
    - event_base_new
    - WSAStartup
    - fprintf
    - setvbuf
    - event_base_dispatch
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: MIN
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/test-ratelim.c:131,1
    - Dst: evutil_weakrand_
      Src: /src/libevent/test/test-ratelim.c:133,1
    - Dst: memset
      Src: /src/libevent/test/test-ratelim.c:134,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/test-ratelim.c:135,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/test-ratelim.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 127
    functionDepth: 7
    functionLinenumber: 127
    functionLinenumberEnd: 139
    functionName: loud_writecb
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_output
    - evbuffer_add
    - memset
    - evbuffer_get_length
    - evutil_weakrand_
    linkageType: ''
    returnType: void
    signature: void loud_writecb(struct bufferevent *bev, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/test-ratelim.c:145,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/test-ratelim.c:146,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/test-ratelim.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 141
    functionDepth: 4
    functionLinenumber: 141
    functionLinenumberEnd: 149
    functionName: discard_readcb
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - evbuffer_drain
    - evbuffer_get_length
    - bufferevent_get_input
    linkageType: ''
    returnType: void
    signature: void discard_readcb(struct bufferevent *bev, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: loud_writecb
      Src: /src/libevent/test/test-ratelim.c:155,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/test-ratelim.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bev
    - what
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 151
    functionDepth: 8
    functionLinenumber: 151
    functionLinenumberEnd: 159
    functionName: write_on_connectedcb
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - bufferevent_enable
    - loud_writecb
    linkageType: ''
    returnType: void
    signature: void write_on_connectedcb(struct bufferevent *bev, short what, void
      *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/test-ratelim.c:164,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/test-ratelim.c:165,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/test-ratelim.c:167,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/test-ratelim.c:168,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/test-ratelim.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 161
    functionDepth: 6
    functionLinenumber: 161
    functionLinenumberEnd: 170
    functionName: echo_readcb
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_output
    - bufferevent_get_input
    - evbuffer_add_buffer
    - evbuffer_get_length
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void echo_readcb(struct bufferevent *bev, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/test-ratelim.c:175,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/test-ratelim.c:176,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/test-ratelim.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 178
    functionName: echo_writecb
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - bufferevent_enable
    - bufferevent_get_output
    - evbuffer_get_length
    linkageType: ''
    returnType: void
    signature: void echo_writecb(struct bufferevent *bev, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_free
      Src: /src/libevent/test/test-ratelim.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bev
    - what
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 6
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: echo_eventcb
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - bufferevent_free
    linkageType: ''
    returnType: void
    signature: void echo_eventcb(struct bufferevent *bev, short what, void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/test-ratelim.c:197,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/test-ratelim.c:198,1
    - Dst: event_new
      Src: /src/libevent/test/test-ratelim.c:201,1
    - Dst: bufferevent_set_rate_limit
      Src: /src/libevent/test/test-ratelim.c:202,1
    - Dst: assert
      Src: /src/libevent/test/test-ratelim.c:204,1
    - Dst: bufferevent_get_token_bucket_cfg
      Src: /src/libevent/test/test-ratelim.c:204,1
    - Dst: event_add
      Src: /src/libevent/test/test-ratelim.c:205,1
    - Dst: bufferevent_add_to_rate_limit_group
      Src: /src/libevent/test/test-ratelim.c:208,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/test-ratelim.c:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - listener
    - newsock
    - sourceaddr
    - socklen
    - ctx
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts:
    - condition: (bufferevent_get_token_bucket_cfg(bev) != NULL)
      pos:
        line_end: 203
        line_start: 203
        source_file: /src/libevent/test/test-ratelim.c
    constantsTouched: []
    func_position:
      end: 211
      start: 189
    functionDepth: 6
    functionLinenumber: 189
    functionLinenumberEnd: 211
    functionName: echo_listenercb
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - bufferevent_socket_new
    - bufferevent_add_to_rate_limit_group
    - event_new
    - bufferevent_set_rate_limit
    - bufferevent_setcb
    - event_add
    - bufferevent_enable
    - assert
    - bufferevent_get_token_bucket_cfg
    linkageType: ''
    returnType: void
    signature: "void echo_listenercb(struct evconnlistener *listener, evutil_socket_t
      newsock,\n    struct sockaddr *sourceaddr, int socklen, void *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_read_limit
      Src: /src/libevent/test/test-ratelim.c:219,1
    - Dst: bufferevent_get_write_limit
      Src: /src/libevent/test/test-ratelim.c:220,1
    - Dst: bufferevent_get_max_to_read
      Src: /src/libevent/test/test-ratelim.c:221,1
    - Dst: bufferevent_get_max_to_write
      Src: /src/libevent/test/test-ratelim.c:222,1
    - Dst: B
      Src: /src/libevent/test/test-ratelim.c:234,1
    - Dst: B
      Src: /src/libevent/test/test-ratelim.c:235,1
    - Dst: event_free
      Src: /src/libevent/test/test-ratelim.c:240,1
    - Dst: event_base_get_running_event
      Src: /src/libevent/test/test-ratelim.c:240,1
    - Dst: bufferevent_get_base
      Src: /src/libevent/test/test-ratelim.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 214
    functionDepth: 6
    functionLinenumber: 214
    functionLinenumberEnd: 242
    functionName: check_bucket_levels_cb
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_base
    - bufferevent_get_max_to_read
    - bufferevent_get_max_to_write
    - B
    - bufferevent_get_write_limit
    - event_free
    - bufferevent_get_read_limit
    - event_base_get_running_event
    linkageType: ''
    returnType: void
    signature: void check_bucket_levels_cb(evutil_socket_t fd, short events, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 234
    functionName: B
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_rate_limit_group_get_read_limit
      Src: /src/libevent/test/test-ratelim.c:248,1
    - Dst: bufferevent_rate_limit_group_get_write_limit
      Src: /src/libevent/test/test-ratelim.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 254
    functionName: check_group_bucket_levels_cb
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - bufferevent_rate_limit_group_get_read_limit
    - bufferevent_rate_limit_group_get_write_limit
    linkageType: ''
    returnType: void
    signature: void check_group_bucket_levels_cb(evutil_socket_t fd, short events,
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_rate_limit_group_decrement_read
      Src: /src/libevent/test/test-ratelim.c:259,1
    - Dst: bufferevent_rate_limit_group_decrement_write
      Src: /src/libevent/test/test-ratelim.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 261
    functionName: group_drain_cb
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - bufferevent_rate_limit_group_decrement_read
    - bufferevent_rate_limit_group_decrement_write
    linkageType: ''
    returnType: void
    signature: void group_drain_cb(evutil_socket_t fd, short events, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/test-ratelim.c:271,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/test-ratelim.c:272,1
    - Dst: event_del
      Src: /src/libevent/test/test-ratelim.c:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 263
    functionDepth: 4
    functionLinenumber: 263
    functionLinenumberEnd: 278
    functionName: timer_bias_cb
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - evutil_timersub
    - evutil_gettimeofday
    - event_del
    linkageType: ''
    returnType: void
    signature: void timer_bias_cb(evutil_socket_t fd, short events, void *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: event_config_new
      Src: /src/libevent/test/test-ratelim.c:288,1
    - Dst: event_config_set_flag
      Src: /src/libevent/test/test-ratelim.c:291,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/test-ratelim.c:293,1
    - Dst: event_new
      Src: /src/libevent/test/test-ratelim.c:297,1
    - Dst: event_self_cbarg
      Src: /src/libevent/test/test-ratelim.c:297,1
    - Dst: event_add
      Src: /src/libevent/test/test-ratelim.c:298,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/test-ratelim.c:302,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/test-ratelim.c:303,1
    - Dst: event_config_free
      Src: /src/libevent/test/test-ratelim.c:308,1
    - Dst: event_free
      Src: /src/libevent/test/test-ratelim.c:310,1
    - Dst: event_base_free
      Src: /src/libevent/test/test-ratelim.c:312,1
    - Dst: MIN
      Src: /src/libevent/test/test-ratelim.c:315,1
    - Dst: fprintf
      Src: /src/libevent/test/test-ratelim.c:317,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 279
    functionDepth: 6
    functionLinenumber: 279
    functionLinenumberEnd: 319
    functionName: timer_bias_calculate
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - event_config_new
    - event_base_free
    - event_new
    - event_free
    - fprintf
    - event_base_new_with_config
    - event_add
    - MIN
    - event_config_set_flag
    - event_config_free
    - event_base_dispatch
    - event_self_cbarg
    linkageType: ''
    returnType: double
    signature: double timer_bias_calculate(void)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/test-ratelim.c:345,1
    - Dst: htonl
      Src: /src/libevent/test/test-ratelim.c:347,1
    - Dst: event_enable_debug_mode
      Src: /src/libevent/test/test-ratelim.c:351,1
    - Dst: timer_bias_calculate
      Src: /src/libevent/test/test-ratelim.c:353,1
    - Dst: fprintf
      Src: /src/libevent/test/test-ratelim.c:355,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:360,1
    - Dst: event_config_new
      Src: /src/libevent/test/test-ratelim.c:363,1
    - Dst: evthread_use_windows_threads
      Src: /src/libevent/test/test-ratelim.c:368,1
    - Dst: event_config_set_flag
      Src: /src/libevent/test/test-ratelim.c:370,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/test-ratelim.c:374,1
    - Dst: event_config_free
      Src: /src/libevent/test/test-ratelim.c:375,1
    - Dst: fprintf
      Src: /src/libevent/test/test-ratelim.c:377,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/test-ratelim.c:381,1
    - Dst: fprintf
      Src: /src/libevent/test/test-ratelim.c:385,1
    - Dst: getsockname
      Src: /src/libevent/test/test-ratelim.c:390,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/test-ratelim.c:390,1
    - Dst: perror
      Src: /src/libevent/test/test-ratelim.c:392,1
    - Dst: ev_token_bucket_cfg_new
      Src: /src/libevent/test/test-ratelim.c:397,1
    - Dst: assert
      Src: /src/libevent/test/test-ratelim.c:401,1
    - Dst: ev_token_bucket_cfg_new
      Src: /src/libevent/test/test-ratelim.c:405,1
    - Dst: bufferevent_rate_limit_group_new
      Src: /src/libevent/test/test-ratelim.c:409,1
    - Dst: bufferevent_rate_limit_group_set_min_share
      Src: /src/libevent/test/test-ratelim.c:416,1
    - Dst: calloc
      Src: /src/libevent/test/test-ratelim.c:428,1
    - Dst: calloc
      Src: /src/libevent/test/test-ratelim.c:429,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/test-ratelim.c:432,1
    - Dst: assert
      Src: /src/libevent/test/test-ratelim.c:434,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/test-ratelim.c:435,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/test-ratelim.c:437,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/test/test-ratelim.c:438,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/test-ratelim.c:445,1
    - Dst: event_base_init_common_timeout
      Src: /src/libevent/test/test-ratelim.c:449,1
    - Dst: event_new
      Src: /src/libevent/test/test-ratelim.c:451,1
    - Dst: event_add
      Src: /src/libevent/test/test-ratelim.c:452,1
    - Dst: event_new
      Src: /src/libevent/test/test-ratelim.c:455,1
    - Dst: event_add
      Src: /src/libevent/test/test-ratelim.c:456,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/test-ratelim.c:459,1
    - Dst: event_free
      Src: /src/libevent/test/test-ratelim.c:462,1
    - Dst: event_free
      Src: /src/libevent/test/test-ratelim.c:464,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/test-ratelim.c:467,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/test-ratelim.c:469,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:476,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/test-ratelim.c:479,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/test-ratelim.c:480,1
    - Dst: bufferevent_rate_limit_group_free
      Src: /src/libevent/test/test-ratelim.c:484,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:487,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:489,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:491,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:493,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:495,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:497,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:501,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:503,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:516,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:518,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:523,1
    - Dst: fabs
      Src: /src/libevent/test/test-ratelim.c:525,1
    - Dst: fprintf
      Src: /src/libevent/test/test-ratelim.c:526,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:531,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:535,1
    - Dst: fabs
      Src: /src/libevent/test/test-ratelim.c:537,1
    - Dst: fprintf
      Src: /src/libevent/test/test-ratelim.c:538,1
    - Dst: printf
      Src: /src/libevent/test/test-ratelim.c:545,1
    - Dst: sqrt
      Src: /src/libevent/test/test-ratelim.c:545,1
    - Dst: sqrt
      Src: /src/libevent/test/test-ratelim.c:547,1
    - Dst: fprintf
      Src: /src/libevent/test/test-ratelim.c:548,1
    - Dst: event_base_free
      Src: /src/libevent/test/test-ratelim.c:552,1
    - Dst: free
      Src: /src/libevent/test/test-ratelim.c:553,1
    - Dst: free
      Src: /src/libevent/test/test-ratelim.c:554,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 145
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (conn_bucket_cfg)
      pos:
        line_end: 400
        line_start: 400
        source_file: /src/libevent/test/test-ratelim.c
    - condition: (bevs[i])
      pos:
        line_end: 433
        line_start: 433
        source_file: /src/libevent/test/test-ratelim.c
    constantsTouched: []
    func_position:
      end: 557
      start: 321
    functionDepth: 7
    functionLinenumber: 321
    functionLinenumberEnd: 557
    functionName: test_ratelimiting
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - calloc
    - event_base_free
    - bufferevent_free
    - printf
    - event_add
    - event_free
    - evconnlistener_new_bind
    - sqrt
    - fabs
    - htonl
    - timer_bias_calculate
    - bufferevent_setcb
    - assert
    - fprintf
    - bufferevent_rate_limit_group_new
    - perror
    - bufferevent_rate_limit_group_set_min_share
    - memset
    - bufferevent_rate_limit_group_free
    - event_config_free
    - bufferevent_socket_connect
    - evthread_use_windows_threads
    - bufferevent_socket_new
    - event_base_init_common_timeout
    - event_config_new
    - evconnlistener_free
    - getsockname
    - event_enable_debug_mode
    - event_new
    - event_base_loopexit
    - event_base_new_with_config
    - free
    - event_config_set_flag
    - ev_token_bucket_cfg_new
    - bufferevent_enable
    - evconnlistener_get_fd
    - event_base_dispatch
    linkageType: ''
    returnType: int
    signature: int test_ratelimiting(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/test-ratelim.c:590,1
    - Dst: strtol
      Src: /src/libevent/test/test-ratelim.c:593,1
    - Dst: fprintf
      Src: /src/libevent/test/test-ratelim.c:595,1
    - Dst: fprintf
      Src: /src/libevent/test/test-ratelim.c:600,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - argc
    - argv
    - i
    - opt
    argTypes:
    - int
    - char**
    - int*
    - struct option*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 607
    functionName: handle_option
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 0
    functionsReached:
    - fprintf
    - strtol
    linkageType: ''
    returnType: int
    signature: int handle_option(int argc, char **argv, int *i, const struct option
      *opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/test-ratelim.c:612,1
    - Dst: fprintf
      Src: /src/libevent/test/test-ratelim.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 625
    functionName: usage
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 2
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/libevent/test/test-ratelim.c:634,1
    - Dst: WSAStartup
      Src: /src/libevent/test/test-ratelim.c:637,1
    - Dst: evutil_weakrand_seed_
      Src: /src/libevent/test/test-ratelim.c:640,1
    - Dst: signal
      Src: /src/libevent/test/test-ratelim.c:643,1
    - Dst: strcmp
      Src: /src/libevent/test/test-ratelim.c:648,1
    - Dst: handle_option
      Src: /src/libevent/test/test-ratelim.c:649,1
    - Dst: fprintf
      Src: /src/libevent/test/test-ratelim.c:654,1
    - Dst: usage
      Src: /src/libevent/test/test-ratelim.c:655,1
    - Dst: usage
      Src: /src/libevent/test/test-ratelim.c:661,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/test-ratelim.c:675,1
    - Dst: srand
      Src: /src/libevent/test/test-ratelim.c:677,1
    - Dst: srandom
      Src: /src/libevent/test/test-ratelim.c:679,1
    - Dst: evthread_enable_lock_debugging
      Src: /src/libevent/test/test-ratelim.c:684,1
    - Dst: test_ratelimiting
      Src: /src/libevent/test/test-ratelim.c:687,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 627
    functionDepth: 8
    functionLinenumber: 627
    functionLinenumberEnd: 688
    functionName: main
    functionSourceFile: /src/libevent/test/test-ratelim.c
    functionUses: 2
    functionsReached:
    - evutil_gettimeofday
    - MAKEWORD
    - evutil_weakrand_seed_
    - evthread_enable_lock_debugging
    - srand
    - strcmp
    - test_ratelimiting
    - signal
    - handle_option
    - WSAStartup
    - fprintf
    - usage
    - srandom
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - groups
    - ','
    - named
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: tinytest_skip
    functionSourceFile: /src/libevent/test/tinytest.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tinytest_skip(groups, named)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: ARRAY_SIZE
    functionSourceFile: /src/libevent/test/regress_testutils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE(a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getsockname
      Src: /src/libevent/test/regress_testutils.c:86,1
    - Dst: ntohs
      Src: /src/libevent/test/regress_testutils.c:89,1
    - Dst: ntohs
      Src: /src/libevent/test/regress_testutils.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: regress_get_socket_port
    functionSourceFile: /src/libevent/test/regress_testutils.c
    functionUses: 1
    functionsReached:
    - ntohs
    - getsockname
    linkageType: ''
    returnType: int
    signature: int regress_get_socket_port(evutil_socket_t fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/libevent/test/regress_testutils.c:107,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress_testutils.c:109,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/test/regress_testutils.c:112,1
    - Dst: memset
      Src: /src/libevent/test/regress_testutils.c:114,1
    - Dst: htons
      Src: /src/libevent/test/regress_testutils.c:116,1
    - Dst: inet_addr
      Src: /src/libevent/test/regress_testutils.c:117,1
    - Dst: bind
      Src: /src/libevent/test/regress_testutils.c:118,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/test/regress_testutils.c:119,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_testutils.c:120,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_testutils.c:121,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/test/regress_testutils.c:122,1
    - Dst: evdns_add_server_port_with_base
      Src: /src/libevent/test/regress_testutils.c:124,1
    - Dst: regress_get_socket_port
      Src: /src/libevent/test/regress_testutils.c:126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - base
    - portnum
    - psock
    - cb
    - arg
    argTypes:
    - struct event_base*
    - ev_uint16_t*
    - evutil_socket_t*
    - evdns_request_callback_fn_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 133
    functionName: regress_get_udp_dnsserver
    functionSourceFile: /src/libevent/test/regress_testutils.c
    functionUses: 0
    functionsReached:
    - regress_get_socket_port
    - evdns_add_server_port_with_base
    - evutil_closesocket
    - TT_DIE
    - memset
    - socket
    - htons
    - tt_abort_perror
    - bind
    - EVUTIL_SOCKET_ERROR
    - evutil_socket_error_to_string
    - inet_addr
    - evutil_make_socket_nonblocking
    linkageType: ''
    returnType: struct evdns_server_port
    signature: "struct evdns_server_port *\nregress_get_udp_dnsserver(struct event_base
      *base,\n    ev_uint16_t *portnum,\n    evutil_socket_t *psock,\n    evdns_request_callback_fn_type
      cb,\n    void *arg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_testutils.c:147,1
    - Dst: htons
      Src: /src/libevent/test/regress_testutils.c:149,1
    - Dst: htonl
      Src: /src/libevent/test/regress_testutils.c:150,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_testutils.c:152,1
    - Dst: evdns_add_server_port_with_listener
      Src: /src/libevent/test/regress_testutils.c:157,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_testutils.c:161,1
    - Dst: regress_get_socket_port
      Src: /src/libevent/test/regress_testutils.c:163,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_testutils.c:170,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 5
    argNames:
    - base
    - portnum
    - psock
    - cb
    - arg
    argTypes:
    - struct event_base*
    - ev_uint16_t*
    - evutil_socket_t*
    - evdns_request_callback_fn_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 135
    functionDepth: 5
    functionLinenumber: 135
    functionLinenumberEnd: 172
    functionName: regress_get_tcp_dnsserver
    functionSourceFile: /src/libevent/test/regress_testutils.c
    functionUses: 0
    functionsReached:
    - evconnlistener_free
    - evdns_add_server_port_with_listener
    - memset
    - htonl
    - evconnlistener_get_fd
    - htons
    - regress_get_socket_port
    - evconnlistener_new_bind
    linkageType: ''
    returnType: struct evdns_server_port
    signature: "struct evdns_server_port *\nregress_get_tcp_dnsserver(struct event_base
      *base,\n\tev_uint16_t *portnum,\n\tevutil_socket_t *psock,\n\tevdns_request_callback_fn_type
      cb,\n\tvoid *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_testutils.c:178,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_testutils.c:182,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_testutils.c:187,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_testutils.c:191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 174
    functionDepth: 5
    functionLinenumber: 174
    functionLinenumberEnd: 194
    functionName: regress_clean_dnsserver
    functionSourceFile: /src/libevent/test/regress_testutils.c
    functionUses: 0
    functionsReached:
    - evdns_close_server_port
    - evutil_closesocket
    linkageType: ''
    returnType: void
    signature: void regress_clean_dnsserver(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_TOLOWER_
      Src: /src/libevent/test/regress_testutils.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: strtolower
    functionSourceFile: /src/libevent/test/regress_testutils.c
    functionUses: 0
    functionsReached:
    - EVUTIL_TOLOWER_
    linkageType: ''
    returnType: void
    signature: void strtolower(char *s)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_testutils.c:210,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_testutils.c:215,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_testutils.c:216,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_testutils.c:219,1
    - Dst: strtolower
      Src: /src/libevent/test/regress_testutils.c:224,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_testutils.c:226,1
    - Dst: atoi
      Src: /src/libevent/test/regress_testutils.c:227,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_testutils.c:229,1
    - Dst: evdns_server_request_drop
      Src: /src/libevent/test/regress_testutils.c:229,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_testutils.c:231,1
    - Dst: evdns_server_request_respond
      Src: /src/libevent/test/regress_testutils.c:231,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_testutils.c:234,1
    - Dst: atoi
      Src: /src/libevent/test/regress_testutils.c:235,1
    - Dst: evdns_server_request_add_reply
      Src: /src/libevent/test/regress_testutils.c:245,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_testutils.c:249,1
    - Dst: evdns_server_request_respond
      Src: /src/libevent/test/regress_testutils.c:249,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_testutils.c:251,1
    - Dst: parse_csv_address_list
      Src: /src/libevent/test/regress_testutils.c:253,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_testutils.c:253,1
    - Dst: evdns_server_request_add_a_reply
      Src: /src/libevent/test/regress_testutils.c:254,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_testutils.c:255,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/test/regress_testutils.c:257,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_testutils.c:258,1
    - Dst: evdns_server_request_add_aaaa_reply
      Src: /src/libevent/test/regress_testutils.c:260,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_testutils.c:262,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/test/regress_testutils.c:264,1
    - Dst: evdns_server_request_add_a_reply
      Src: /src/libevent/test/regress_testutils.c:265,1
    - Dst: evdns_server_request_add_cname_reply
      Src: /src/libevent/test/regress_testutils.c:266,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_testutils.c:268,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_testutils.c:270,1
    - Dst: evdns_server_request_respond
      Src: /src/libevent/test/regress_testutils.c:270,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_testutils.c:273,1
    - Dst: evdns_server_request_drop
      Src: /src/libevent/test/regress_testutils.c:273,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 2
    argNames:
    - req
    - data
    argTypes:
    - struct evdns_server_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 203
    functionDepth: 6
    functionLinenumber: 203
    functionLinenumberEnd: 274
    functionName: regress_dns_server_cb
    functionSourceFile: /src/libevent/test/regress_testutils.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evdns_server_request_add_cname_reply
    - evdns_server_request_add_reply
    - evutil_ascii_strcasecmp
    - tt_want
    - evdns_server_request_drop
    - TT_DIE
    - strtolower
    - evdns_server_request_respond
    - ARRAY_SIZE
    - strcmp
    - evutil_inet_pton
    - parse_csv_address_list
    - evdns_server_request_add_aaaa_reply
    - evdns_server_request_add_a_reply
    - atoi
    linkageType: ''
    returnType: void
    signature: void regress_dns_server_cb(struct evdns_server_request *req, void *data)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_testutils.c:287,1
    - Dst: htonl
      Src: /src/libevent/test/regress_testutils.c:289,1
    - Dst: socket
      Src: /src/libevent/test/regress_testutils.c:298,1
    - Dst: bind
      Src: /src/libevent/test/regress_testutils.c:301,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/test/regress_testutils.c:302,1
    - Dst: printf
      Src: /src/libevent/test/regress_testutils.c:303,1
    - Dst: ntohs
      Src: /src/libevent/test/regress_testutils.c:304,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/test/regress_testutils.c:305,1
    - Dst: regress_get_socket_port
      Src: /src/libevent/test/regress_testutils.c:308,1
    - Dst: htons
      Src: /src/libevent/test/regress_testutils.c:309,1
    - Dst: socket
      Src: /src/libevent/test/regress_testutils.c:313,1
    - Dst: bind
      Src: /src/libevent/test/regress_testutils.c:316,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/test/regress_testutils.c:317,1
    - Dst: printf
      Src: /src/libevent/test/regress_testutils.c:318,1
    - Dst: ntohs
      Src: /src/libevent/test/regress_testutils.c:319,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/test/regress_testutils.c:320,1
    - Dst: regress_get_socket_port
      Src: /src/libevent/test/regress_testutils.c:324,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_testutils.c:329,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_testutils.c:331,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_testutils.c:336,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_testutils.c:340,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 3
    argNames:
    - port
    - need_udp
    - need_tcp
    argTypes:
    - ev_uint16_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 345
    functionName: regress_pick_port
    functionSourceFile: /src/libevent/test/regress_testutils.c
    functionUses: 0
    functionsReached:
    - ntohs
    - evutil_closesocket
    - printf
    - memset
    - socket
    - EVUTIL_SOCKET_ERROR
    - bind
    - evutil_socket_error_to_string
    - htons
    - regress_get_socket_port
    - htonl
    linkageType: ''
    returnType: int
    signature: int regress_pick_port(ev_uint16_t *port, int need_udp, int need_tcp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: regress_pick_port
      Src: /src/libevent/test/regress_testutils.c:355,1
    - Dst: printf
      Src: /src/libevent/test/regress_testutils.c:356,1
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_testutils.c:361,1
    - Dst: printf
      Src: /src/libevent/test/regress_testutils.c:364,1
    - Dst: regress_get_tcp_dnsserver
      Src: /src/libevent/test/regress_testutils.c:371,1
    - Dst: printf
      Src: /src/libevent/test/regress_testutils.c:374,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_testutils.c:382,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - base
    - port
    - udp_seach_table
    - tcp_seach_table
    argTypes:
    - struct event_base*
    - ev_uint16_t*
    - struct regress_dns_server_table*
    - struct regress_dns_server_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 347
    functionDepth: 6
    functionLinenumber: 347
    functionLinenumberEnd: 384
    functionName: regress_dnsserver
    functionSourceFile: /src/libevent/test/regress_testutils.c
    functionUses: 0
    functionsReached:
    - regress_get_udp_dnsserver
    - printf
    - regress_pick_port
    - regress_get_tcp_dnsserver
    - regress_clean_dnsserver
    linkageType: ''
    returnType: int
    signature: "int regress_dnsserver(struct event_base *base, ev_uint16_t *port,\n\tstruct
      regress_dns_server_table *udp_seach_table,\n\tstruct regress_dns_server_table
      *tcp_seach_table)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_testutils.c:390,1
    - Dst: getsockname
      Src: /src/libevent/test/regress_testutils.c:393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - lev
    - sa
    - socklen
    argTypes:
    - struct evconnlistener*
    - struct sockaddr*
    - ev_socklen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 394
    functionName: regress_get_listener_addr
    functionSourceFile: /src/libevent/test/regress_testutils.c
    functionUses: 2
    functionsReached:
    - evconnlistener_get_fd
    - getsockname
    linkageType: ''
    returnType: int
    signature: "int regress_get_listener_addr(struct evconnlistener *lev,\n    struct
      sockaddr *sa, ev_socklen_t *socklen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_testutils.c:404,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_testutils.c:405,1
    - Dst: strlen
      Src: /src/libevent/test/regress_testutils.c:405,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_testutils.c:405,1
    - Dst: strcpy
      Src: /src/libevent/test/regress_testutils.c:406,1
    - Dst: strtok
      Src: /src/libevent/test/regress_testutils.c:407,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_testutils.c:409,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/test/regress_testutils.c:412,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_testutils.c:413,1
    - Dst: strtok
      Src: /src/libevent/test/regress_testutils.c:416,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - s
    - family
    - addrs
    - addrs_size
    argTypes:
    - char*
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 420
    functionName: parse_csv_address_list
    functionSourceFile: /src/libevent/test/regress_testutils.c
    functionUses: 1
    functionsReached:
    - tt_assert
    - TT_DIE
    - ARRAY_SIZE
    - evutil_inet_pton
    - strtok
    - strcpy
    - strlen
    linkageType: ''
    returnType: int
    signature: int parse_csv_address_list(const char *s, int family, void *addrs,
      size_t addrs_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: ARRAY_SIZE
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE(a)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:79,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:80,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:85,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:94,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:96,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:101,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:106,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:107,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:108,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:112,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:116,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:118,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:120,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct evbuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 124
    functionName: evbuffer_validate_
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    linkageType: ''
    returnType: int
    signature: int evbuffer_validate_(struct evbuffer *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - buf
    - allocatedp
    - wastedp
    - usedp
    argTypes:
    - struct evbuffer*
    - size_t*
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 163
    functionName: evbuffer_get_waste
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evbuffer_get_waste(struct evbuffer *buf, size_t *allocatedp, size_t
      *wastedp, size_t *usedp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: evbuffer_validate
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evbuffer_validate(buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:172,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:173,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:177,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:178,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:179,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:181,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:181,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:182,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:182,1
    - Dst: EVBUFFER_DATA
      Src: /src/libevent/test/regress_buffer.c:182,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:184,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:185,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:187,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:187,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:188,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:189,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:189,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:190,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:190,1
    - Dst: EVBUFFER_DATA
      Src: /src/libevent/test/regress_buffer.c:190,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:192,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:193,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:194,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:195,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:197,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:197,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:198,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:198,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:199,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:199,1
    - Dst: EVBUFFER_DATA
      Src: /src/libevent/test/regress_buffer.c:199,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:201,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:202,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:203,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:204,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:204,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:206,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:207,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:208,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_buffer.c:208,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:209,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:209,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:210,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:212,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:213,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:214,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:215,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:217,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:218,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_buffer.c:218,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:219,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:221,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:222,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:223,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:224,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:227,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:228,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:229,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:230,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:231,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:234,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:234,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:235,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:235,1
    - Dst: evbuffer_remove_buffer
      Src: /src/libevent/test/regress_buffer.c:239,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:240,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:240,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:241,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:241,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:242,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:244,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:244,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:246,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:246,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_buffer.c:248,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:250,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:260,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:261,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:262,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:263,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:265,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:270,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:272,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:272,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:273,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:275,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:275,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:277,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:278,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:283,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:284,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 78
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 168
    functionDepth: 9
    functionLinenumber: 168
    functionLinenumberEnd: 285
    functionName: test_evbuffer
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    - evbuffer_remove_buffer
    - strncmp
    - evbuffer_free
    - evbuffer_validate
    - evbuffer_get_length
    - evbuffer_prepend
    - evbuffer_drain
    - evbuffer_reserve_space
    - tt_abort_msg
    - memcmp
    - strlen
    - EVBUFFER_DATA
    - evbuffer_pullup
    - evbuffer_commit_space
    - memset
    - tt_int_op
    - tt_assert
    - evbuffer_add_printf
    - evbuffer_add_buffer
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - data
    - datalen
    - extra
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: no_cleanup
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void no_cleanup(const void *data, size_t datalen, void *extra)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:295,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:296,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:299,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:300,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:304,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:305,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:307,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:308,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:310,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:311,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:313,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:313,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:314,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:314,1
    - Dst: evbuffer_remove_buffer
      Src: /src/libevent/test/regress_buffer.c:317,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:319,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:320,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:322,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:322,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:323,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:323,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:326,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 292
    functionDepth: 7
    functionLinenumber: 292
    functionLinenumberEnd: 328
    functionName: test_evbuffer_remove_buffer_with_empty
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_mem_op
    - evbuffer_add
    - evbuffer_remove_buffer
    - evbuffer_add_reference
    - evbuffer_pullup
    - evbuffer_free
    - evbuffer_validate
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_remove_buffer_with_empty(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:333,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:334,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:335,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:337,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:338,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:340,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:341,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:342,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:344,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:345,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:347,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:348,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:349,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:351,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:351,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:352,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:352,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:354,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:355,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:357,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:357,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:358,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:358,1
    - Dst: evbuffer_remove_buffer
      Src: /src/libevent/test/regress_buffer.c:360,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:362,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:363,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:365,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:365,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:366,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:366,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:368,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:368,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:369,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:369,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:372,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:373,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 330
    functionDepth: 7
    functionLinenumber: 330
    functionLinenumberEnd: 375
    functionName: test_evbuffer_remove_buffer_with_empty2
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_mem_op
    - evbuffer_add
    - evbuffer_remove_buffer
    - evbuffer_add_reference
    - evbuffer_pullup
    - evbuffer_free
    - evbuffer_validate
    - evbuffer_add_buffer
    - evbuffer_get_length
    - tt_int_op
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_remove_buffer_with_empty2(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:380,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:381,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:382,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:384,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:385,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:387,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:388,1
    - Dst: evbuffer_prepend_buffer
      Src: /src/libevent/test/regress_buffer.c:389,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:391,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:392,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:394,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:395,1
    - Dst: evbuffer_prepend_buffer
      Src: /src/libevent/test/regress_buffer.c:396,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:398,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:398,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:399,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:399,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:401,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:402,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:404,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:404,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:405,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:405,1
    - Dst: evbuffer_remove_buffer
      Src: /src/libevent/test/regress_buffer.c:407,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:409,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:410,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:412,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:412,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:413,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:413,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:415,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:415,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:416,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:416,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:419,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:420,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 377
    functionDepth: 7
    functionLinenumber: 377
    functionLinenumberEnd: 422
    functionName: test_evbuffer_remove_buffer_with_empty3
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_mem_op
    - evbuffer_add
    - evbuffer_remove_buffer
    - evbuffer_add_reference
    - evbuffer_pullup
    - evbuffer_free
    - evbuffer_validate
    - evbuffer_get_length
    - evbuffer_prepend_buffer
    - tt_int_op
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_remove_buffer_with_empty3(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:429,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:430,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:431,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:432,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:433,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:433,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:434,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:434,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:436,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:437,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:438,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:439,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:439,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:440,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:440,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:442,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:443,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:444,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:445,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:446,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:447,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:447,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 424
    functionDepth: 7
    functionLinenumber: 424
    functionLinenumberEnd: 452
    functionName: test_evbuffer_pullup_with_empty
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_mem_op
    - evbuffer_add
    - evbuffer_add_reference
    - evbuffer_pullup
    - evbuffer_free
    - evbuffer_validate
    - evbuffer_get_length
    - tt_int_op
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_pullup_with_empty(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:459,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:460,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:462,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:463,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:465,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:465,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:466,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:466,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:467,1
    - Dst: evbuffer_remove_buffer
      Src: /src/libevent/test/regress_buffer.c:467,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:468,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:468,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:469,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:469,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:471,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:472,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:476,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:478,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 454
    functionDepth: 7
    functionLinenumber: 454
    functionLinenumberEnd: 479
    functionName: test_evbuffer_remove_buffer_with_empty_front
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_mem_op
    - evbuffer_remove_buffer
    - evbuffer_add
    - evbuffer_add_reference
    - evbuffer_pullup
    - evbuffer_free
    - evbuffer_validate
    - evbuffer_prepend
    - tt_int_op
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_remove_buffer_with_empty_front(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:486,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:487,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:489,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:490,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:492,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:492,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:499,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:499,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:500,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:501,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:502,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:503,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:504,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:504,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:509,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:509,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:510,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:510,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:514,1
    - Dst: evbuffer_prepend_buffer
      Src: /src/libevent/test/regress_buffer.c:514,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:518,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:518,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:522,1
    - Dst: evbuffer_remove_buffer
      Src: /src/libevent/test/regress_buffer.c:522,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:525,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:525,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:527,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:528,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:532,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:534,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 481
    functionDepth: 7
    functionLinenumber: 481
    functionLinenumberEnd: 535
    functionName: test_evbuffer_remove_buffer_adjust_last_with_datap_with_empty
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_mem_op
    - evbuffer_add
    - evbuffer_remove_buffer
    - evbuffer_pullup
    - evbuffer_free
    - evbuffer_reserve_space
    - evbuffer_commit_space
    - evbuffer_validate
    - evbuffer_add_buffer
    - evbuffer_prepend
    - evbuffer_prepend_buffer
    - tt_int_op
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_remove_buffer_adjust_last_with_datap_with_empty(void
      *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:540,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:541,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:542,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:544,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:546,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:547,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:548,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:550,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:552,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:553,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:554,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:556,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:556,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:557,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:557,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:559,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:560,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:563,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:564,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 537
    functionDepth: 7
    functionLinenumber: 537
    functionLinenumberEnd: 566
    functionName: test_evbuffer_add_buffer_with_empty
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    - evbuffer_add_reference
    - evbuffer_free
    - evbuffer_validate
    - evbuffer_add_buffer
    - evbuffer_get_length
    - tt_int_op
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_add_buffer_with_empty(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:571,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:572,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:573,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:575,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:577,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:578,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:580,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:582,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:583,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:585,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:585,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:586,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:586,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:588,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:589,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:592,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:593,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 568
    functionDepth: 7
    functionLinenumber: 568
    functionLinenumberEnd: 595
    functionName: test_evbuffer_add_buffer_with_empty2
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    - evbuffer_add_reference
    - evbuffer_free
    - evbuffer_validate
    - evbuffer_add_buffer
    - evbuffer_get_length
    - tt_int_op
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_add_buffer_with_empty2(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:601,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:608,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:609,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:610,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:610,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:611,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:612,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:613,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:617,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:618,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:618,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:619,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:619,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:620,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:624,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:625,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:626,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:627,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:628,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:630,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:630,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:631,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:631,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:633,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:637,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:638,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:639,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:640,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:641,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:642,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:644,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:646,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:646,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:647,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:647,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:649,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:653,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:654,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:655,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:656,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:657,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:658,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:659,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:660,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:662,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:664,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:664,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:665,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:665,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:666,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:669,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:670,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:671,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:672,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:673,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:677,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:679,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:681,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:683,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:687,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:690,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 71
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 597
    functionDepth: 4
    functionLinenumber: 597
    functionLinenumberEnd: 691
    functionName: test_evbuffer_reserve2
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_peek
    - evbuffer_reserve_space
    - evbuffer_commit_space
    - evbuffer_free
    - memset
    - evbuffer_validate
    - evbuffer_get_length
    - tt_int_op
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_reserve2(void *ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:698,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_buffer.c:702,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_buffer.c:703,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:707,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:708,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:709,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:710,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:716,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:717,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:719,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:720,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:721,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:722,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:723,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:725,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:730,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:731,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:732,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:734,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:736,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:738,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:744,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:745,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:746,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:747,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:748,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:753,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:754,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:756,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:757,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:759,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:763,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 52
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 693
    functionDepth: 4
    functionLinenumber: 693
    functionLinenumberEnd: 764
    functionName: test_evbuffer_reserve_many
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_free
    - evbuffer_reserve_space
    - evbuffer_commit_space
    - strcmp
    - evbuffer_validate
    - memset
    - tt_int_op
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_reserve_many(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:772,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:772,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:773,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:774,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:774,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:777,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:777,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:778,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:779,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:779,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:781,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 766
    functionDepth: 7
    functionLinenumber: 766
    functionLinenumberEnd: 786
    functionName: test_evbuffer_reserve_with_empty
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_mem_op
    - evbuffer_add
    - evbuffer_pullup
    - evbuffer_free
    - evbuffer_reserve_space
    - evbuffer_commit_space
    - evbuffer_validate
    - tt_int_op
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_reserve_with_empty(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_buffer.c:795,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:798,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:799,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:802,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:803,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:805,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:807,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:807,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:810,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:810,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:814,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:814,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:816,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:820,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 790
    functionDepth: 7
    functionLinenumber: 790
    functionLinenumberEnd: 821
    functionName: test_evbuffer_reserve_invalid_last_with_datap
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_add
    - evbuffer_add_reference
    - evbuffer_free
    - ARRAY_SIZE
    - evbuffer_reserve_space
    - evbuffer_commit_space
    - evbuffer_validate
    - evbuffer_prepend
    - tt_int_op
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_reserve_invalid_last_with_datap(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:831,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:834,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:835,1
    - Dst: evbuffer_expand
      Src: /src/libevent/test/regress_buffer.c:835,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:836,1
    - Dst: evbuffer_get_waste
      Src: /src/libevent/test/regress_buffer.c:838,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:839,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:840,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:841,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:842,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:843,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:844,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:845,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:850,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:851,1
    - Dst: evbuffer_expand
      Src: /src/libevent/test/regress_buffer.c:851,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:852,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:853,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:854,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:858,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:859,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:862,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:863,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:865,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:866,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:867,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:868,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:868,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:869,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:870,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:872,1
    - Dst: evbuffer_expand
      Src: /src/libevent/test/regress_buffer.c:872,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:873,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:874,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:875,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:876,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:877,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:878,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:881,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:883,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:884,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:885,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:887,1
    - Dst: evbuffer_expand
      Src: /src/libevent/test/regress_buffer.c:888,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:889,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:890,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:891,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 823
    functionDepth: 8
    functionLinenumber: 823
    functionLinenumberEnd: 895
    functionName: test_evbuffer_expand
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_add
    - evbuffer_get_waste
    - evbuffer_pullup
    - evbuffer_free
    - evbuffer_expand
    - memset
    - evbuffer_validate
    - evbuffer_get_length
    - tt_int_op
    - evbuffer_new
    - evbuffer_drain
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_expand(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:902,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:903,1
    - Dst: evbuffer_expand
      Src: /src/libevent/test/regress_buffer.c:904,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:905,1
    - Dst: evbuffer_expand
      Src: /src/libevent/test/regress_buffer.c:907,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:908,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 897
    functionDepth: 8
    functionLinenumber: 897
    functionLinenumberEnd: 912
    functionName: test_evbuffer_expand_overflow
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    - evbuffer_free
    - evbuffer_expand
    - evbuffer_validate
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_expand_overflow(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:920,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:921,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:922,1
    - Dst: evbuffer_expand
      Src: /src/libevent/test/regress_buffer.c:923,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:924,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:925,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:926,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:927,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:928,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:930,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:930,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:931,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:932,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:933,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:934,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 914
    functionDepth: 9
    functionLinenumber: 914
    functionLinenumberEnd: 937
    functionName: test_evbuffer_add1
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_add
    - evbuffer_pullup
    - evbuffer_free
    - evbuffer_expand
    - evbuffer_add_printf
    - evbuffer_validate
    - evbuffer_get_length
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_add1(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:948,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:949,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:950,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:951,1
    - Dst: evbuffer_expand
      Src: /src/libevent/test/regress_buffer.c:952,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:953,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:954,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:955,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:956,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:957,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:959,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:960,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:961,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:962,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:963,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:964,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 939
    functionDepth: 9
    functionLinenumber: 939
    functionLinenumberEnd: 967
    functionName: test_evbuffer_add2
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_add
    - evbuffer_pullup
    - evbuffer_free
    - evbuffer_expand
    - evbuffer_add_printf
    - memset
    - evbuffer_validate
    - evbuffer_get_length
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_add2(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_buffer.c:973,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:974,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:974,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_buffer.c:975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - data
    - len
    - extra
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 979
    functionName: reference_cb
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_str_op
    - tt_int_op
    - strlen
    - tt_want
    linkageType: ''
    returnType: void
    signature: void reference_cb(const void *data, size_t len, void *extra)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:984,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:985,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:990,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:990,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:990,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:993,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:993,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:994,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:994,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:996,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:997,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:1000,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1001,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:1002,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1004,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:1004,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1005,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1007,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:1009,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1010,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1011,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1013,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1015,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:1015,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:1015,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1015,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1016,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1017,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1020,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 981
    functionDepth: 7
    functionLinenumber: 981
    functionLinenumberEnd: 1022
    functionName: test_evbuffer_reference
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_add_reference
    - evbuffer_pullup
    - evbuffer_free
    - evbuffer_reserve_space
    - evbuffer_commit_space
    - evbuffer_remove
    - evbuffer_validate
    - evbuffer_prepend
    - memcmp
    - strlen
    - tt_int_op
    - evbuffer_new
    - evbuffer_drain
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_reference(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:1033,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1034,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1035,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1036,1
    - Dst: evbuffer_expand
      Src: /src/libevent/test/regress_buffer.c:1037,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1038,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:1039,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1040,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:1041,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1042,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:1044,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1045,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:1046,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1047,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1048,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1049,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1024
    functionDepth: 9
    functionLinenumber: 1024
    functionLinenumberEnd: 1052
    functionName: test_evbuffer_reference2
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_add
    - evbuffer_add_reference
    - evbuffer_pullup
    - evbuffer_free
    - evbuffer_expand
    - evbuffer_add_printf
    - memset
    - evbuffer_validate
    - evbuffer_get_length
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_reference2(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1064,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:1065,1
    - Dst: evbuffer_write
      Src: /src/libevent/test/regress_buffer.c:1066,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_buffer.c:1069,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/test/regress_buffer.c:1071,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/test/regress_buffer.c:1072,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress_buffer.c:1074,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_buffer.c:1075,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1077,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_buffer.c:1082,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1059
    functionDepth: 6
    functionLinenumber: 1059
    functionLinenumberEnd: 1083
    functionName: addfile_test_writecb
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ERR_RW_RETRIABLE
    - tt_fail_perror
    - TT_BLATHER
    - event_base_loopexit
    - evbuffer_validate
    - evbuffer_get_length
    - evutil_socket_geterror
    - evbuffer_write
    linkageType: ''
    returnType: void
    signature: void addfile_test_writecb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_read
      Src: /src/libevent/test/regress_buffer.c:1091,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_buffer.c:1094,1
    - Dst: evutil_socket_geterror
      Src: /src/libevent/test/regress_buffer.c:1098,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/test/regress_buffer.c:1099,1
    - Dst: tt_fail_perror
      Src: /src/libevent/test/regress_buffer.c:1100,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_buffer.c:1101,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_buffer.c:1106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1085
    functionDepth: 8
    functionLinenumber: 1085
    functionLinenumberEnd: 1108
    functionName: addfile_test_readcb
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_read
    - tt_fail_perror
    - EVUTIL_ERR_RW_RETRIABLE
    - TT_BLATHER
    - event_base_loopexit
    - evutil_socket_geterror
    linkageType: ''
    returnType: void
    signature: void addfile_test_readcb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: regress_make_tmpfile
      Src: /src/libevent/test/regress_buffer.c:1123,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_buffer.c:1127,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_buffer.c:1128,1
    - Dst: close
      Src: /src/libevent/test/regress_buffer.c:1134,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1138,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1139,1
    - Dst: evbuffer_add_file
      Src: /src/libevent/test/regress_buffer.c:1139,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1140,1
    - Dst: unlink
      Src: /src/libevent/test/regress_buffer.c:1144,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1145,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1113
    functionDepth: 7
    functionLinenumber: 1113
    functionLinenumberEnd: 1150
    functionName: test_evbuffer_add_file_leak1
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - close
    - unlink
    - tt_skip
    - regress_make_tmpfile
    - evbuffer_free
    - TT_BLATHER
    - evbuffer_add_file
    - evbuffer_validate
    - free
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_add_file_leak1(void *ptr)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1158,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1158,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1179,1
    - Dst: strstr
      Src: /src/libevent/test/regress_buffer.c:1180,1
    - Dst: strstr
      Src: /src/libevent/test/regress_buffer.c:1185,1
    - Dst: strstr
      Src: /src/libevent/test/regress_buffer.c:1190,1
    - Dst: strstr
      Src: /src/libevent/test/regress_buffer.c:1196,1
    - Dst: strstr
      Src: /src/libevent/test/regress_buffer.c:1202,1
    - Dst: strstr
      Src: /src/libevent/test/regress_buffer.c:1207,1
    - Dst: strstr
      Src: /src/libevent/test/regress_buffer.c:1213,1
    - Dst: strstr
      Src: /src/libevent/test/regress_buffer.c:1219,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_buffer.c:1224,1
    - Dst: malloc
      Src: /src/libevent/test/regress_buffer.c:1230,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1231,1
    - Dst: evutil_weakrand_
      Src: /src/libevent/test/regress_buffer.c:1233,1
    - Dst: strdup
      Src: /src/libevent/test/regress_buffer.c:1235,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1236,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1237,1
    - Dst: regress_make_tmpfile
      Src: /src/libevent/test/regress_buffer.c:1240,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_buffer.c:1244,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1256,1
    - Dst: evbuffer_file_segment_new
      Src: /src/libevent/test/regress_buffer.c:1264,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1266,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_buffer.c:1269,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_buffer.c:1273,1
    - Dst: evbuffer_set_flags
      Src: /src/libevent/test/regress_buffer.c:1278,1
    - Dst: evutil_ersatz_socketpair_
      Src: /src/libevent/test/regress_buffer.c:1283,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_buffer.c:1284,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_buffer.c:1286,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_buffer.c:1287,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1290,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1293,1
    - Dst: evbuffer_add_file_segment
      Src: /src/libevent/test/regress_buffer.c:1293,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1296,1
    - Dst: evbuffer_add_file
      Src: /src/libevent/test/regress_buffer.c:1296,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1300,1
    - Dst: event_new
      Src: /src/libevent/test/regress_buffer.c:1307,1
    - Dst: event_new
      Src: /src/libevent/test/regress_buffer.c:1309,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1311,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1312,1
    - Dst: event_add
      Src: /src/libevent/test/regress_buffer.c:1314,1
    - Dst: event_add
      Src: /src/libevent/test/regress_buffer.c:1315,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_buffer.c:1316,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1318,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1319,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1321,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1322,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1323,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:1325,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1326,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:1327,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_buffer.c:1328,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1331,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1334,1
    - Dst: evbuffer_file_segment_free
      Src: /src/libevent/test/regress_buffer.c:1336,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1338,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1340,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_buffer.c:1342,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_buffer.c:1344,1
    - Dst: event_free
      Src: /src/libevent/test/regress_buffer.c:1346,1
    - Dst: event_free
      Src: /src/libevent/test/regress_buffer.c:1348,1
    - Dst: unlink
      Src: /src/libevent/test/regress_buffer.c:1350,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1351,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 132
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1153
    functionDepth: 7
    functionLinenumber: 1153
    functionLinenumberEnd: 1353
    functionName: test_evbuffer_add_file
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - regress_make_tmpfile
    - evbuffer_free
    - evbuffer_add_file
    - evbuffer_add_file_segment
    - evbuffer_validate
    - event_add
    - event_free
    - evbuffer_file_segment_free
    - tt_abort_msg
    - memcmp
    - strlen
    - unlink
    - evbuffer_pullup
    - malloc
    - tt_int_op
    - evutil_socketpair
    - strdup
    - tt_assert
    - evutil_ersatz_socketpair_
    - tt_skip
    - evbuffer_file_segment_new
    - evutil_closesocket
    - event_new
    - TT_DIE
    - free
    - strstr
    - evbuffer_set_flags
    - evutil_weakrand_
    - evbuffer_new
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_add_file(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - seg
    - flags
    - arg
    argTypes:
    - struct evbuffer_file_segment*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1359
    functionDepth: 0
    functionLinenumber: 1359
    functionLinenumberEnd: 1366
    functionName: file_segment_cleanup_cp
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_segment_cleanup_cp(struct evbuffer_file_segment const* seg,
      int flags, void* arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: regress_make_tmpfile
      Src: /src/libevent/test/regress_buffer.c:1378,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_buffer.c:1382,1
    - Dst: fstat
      Src: /src/libevent/test/regress_buffer.c:1384,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1385,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1387,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1388,1
    - Dst: evbuffer_file_segment_new
      Src: /src/libevent/test/regress_buffer.c:1390,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1391,1
    - Dst: evbuffer_file_segment_add_cleanup_cb
      Src: /src/libevent/test/regress_buffer.c:1393,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1396,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1398,1
    - Dst: evbuffer_add_file_segment
      Src: /src/libevent/test/regress_buffer.c:1398,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1400,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1402,1
    - Dst: evbuffer_file_segment_free
      Src: /src/libevent/test/regress_buffer.c:1403,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1406,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1407,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1410,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1411,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1412,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1413,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1417,1
    - Dst: evbuffer_file_segment_free
      Src: /src/libevent/test/regress_buffer.c:1419,1
    - Dst: unlink
      Src: /src/libevent/test/regress_buffer.c:1421,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1368
    functionDepth: 6
    functionLinenumber: 1368
    functionLinenumberEnd: 1424
    functionName: test_evbuffer_file_segment_add_cleanup_cb
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - unlink
    - tt_skip
    - fstat
    - evbuffer_file_segment_new
    - regress_make_tmpfile
    - evbuffer_free
    - evbuffer_validate
    - evbuffer_file_segment_add_cleanup_cb
    - evbuffer_add_file_segment
    - free
    - tt_int_op
    - evbuffer_new
    - evbuffer_file_segment_free
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_file_segment_add_cleanup_cb(void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - how_much
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1427
    functionDepth: 0
    functionLinenumber: 1427
    functionLinenumberEnd: 1432
    functionName: failing_malloc
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      failing_malloc(size_t how_much)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1438,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1439,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1453,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1453,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1454,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1455,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1456,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1457,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1458,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1459,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:1460,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_buffer.c:1461,1
    - Dst: tt_uint_op
      Src: /src/libevent/test/regress_buffer.c:1462,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:1462,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1463,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1465,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1465,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1466,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1467,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1468,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1469,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1470,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1471,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1472,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1473,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1474,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:1475,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:1475,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1476,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:1476,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1477,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1481,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1481,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1482,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1483,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1484,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1485,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1486,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1488,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1489,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1490,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1491,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1493,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1494,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1495,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1496,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1498,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1499,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1501,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1502,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1503,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1504,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1505,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1506,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1507,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1511,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1511,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1512,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1513,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1514,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1515,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1516,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1518,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1519,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1520,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1521,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1523,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1524,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1525,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1526,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1527,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1529,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1530,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1531,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1532,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:1532,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1533,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1536,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1536,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1537,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1538,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1539,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1540,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1542,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1543,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1544,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1546,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1547,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1548,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1549,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1550,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1551,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:1551,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1552,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1556,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1556,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1557,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1559,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1560,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1561,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1562,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1564,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1565,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1566,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1567,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1569,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1570,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1571,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1572,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1573,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1574,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1575,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1576,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1577,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1580,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:1580,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1587,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1589,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1590,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1591,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1592,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1593,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1594,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1595,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1596,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1597,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1598,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1599,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1600,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1601,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_buffer.c:1602,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:1603,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1607,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1607,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1608,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:1609,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1610,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1612,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1612,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1613,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:1614,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1615,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1617,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1617,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1618,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:1619,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1620,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1622,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1623,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1624,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1625,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1627,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1628,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1629,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1630,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1632,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1633,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1634,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1635,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1636,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1637,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1638,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1639,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1640,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1641,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1642,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:1642,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1646,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1646,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1647,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:1648,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1649,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1651,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1652,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1653,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1654,1
    - Dst: event_set_mem_functions
      Src: /src/libevent/test/regress_buffer.c:1658,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1659,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1660,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1661,1
    - Dst: event_set_mem_functions
      Src: /src/libevent/test/regress_buffer.c:1664,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:1666,1
    - Dst: tt_line_eq
      Src: /src/libevent/test/regress_buffer.c:1667,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1668,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1669,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1672,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1673,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:1674,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 188
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1435
    functionDepth: 7
    functionLinenumber: 1435
    functionLinenumberEnd: 1675
    functionName: test_evbuffer_readln
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_add
    - tt_ptr_op
    - tt_line_eq
    - evbuffer_free
    - tt_abort_msg
    - evbuffer_readln
    - evbuffer_validate
    - tt_uint_op
    - free
    - evbuffer_add_buffer
    - evbuffer_get_length
    - event_set_mem_functions
    - memcmp
    - strlen
    - tt_int_op
    - evbuffer_new
    - evbuffer_drain
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_readln(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - content
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1444
    functionDepth: 0
    functionLinenumber: 1444
    functionLinenumberEnd: 1450
    functionName: tt_line_eq
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_line_eq(content)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1680,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1686,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1686,1
    - Dst: evbuffer_search_eol
      Src: /src/libevent/test/regress_buffer.c:1688,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1689,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1690,1
    - Dst: evbuffer_search_eol
      Src: /src/libevent/test/regress_buffer.c:1693,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1694,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1695,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1697,1
    - Dst: evbuffer_search_eol
      Src: /src/libevent/test/regress_buffer.c:1699,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1700,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1701,1
    - Dst: evbuffer_search_eol
      Src: /src/libevent/test/regress_buffer.c:1704,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1705,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1706,1
    - Dst: evbuffer_search_eol
      Src: /src/libevent/test/regress_buffer.c:1709,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1710,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1711,1
    - Dst: evbuffer_search_eol
      Src: /src/libevent/test/regress_buffer.c:1714,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1715,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1716,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1718,1
    - Dst: evbuffer_search_eol
      Src: /src/libevent/test/regress_buffer.c:1720,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1721,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1722,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1724,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1724,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:1724,1
    - Dst: evbuffer_search_eol
      Src: /src/libevent/test/regress_buffer.c:1726,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1727,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1728,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1732
      start: 1677
    functionDepth: 7
    functionLinenumber: 1677
    functionLinenumberEnd: 1732
    functionName: test_evbuffer_search_eol
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_add
    - evbuffer_free
    - evbuffer_search_eol
    - evbuffer_ptr_set
    - evbuffer_get_length
    - strlen
    - tt_int_op
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_search_eol(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1737,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1744,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_buffer.c:1746,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:1747,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1754,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1760,1
    - Dst: tt_uint_op
      Src: /src/libevent/test/regress_buffer.c:1762,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:1762,1
    - Dst: evbuffer_get_waste
      Src: /src/libevent/test/regress_buffer.c:1767,1
    - Dst: printf
      Src: /src/libevent/test/regress_buffer.c:1769,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1771,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1774,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1734
    functionDepth: 9
    functionLinenumber: 1734
    functionLinenumberEnd: 1776
    functionName: test_evbuffer_iterative
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_get_waste
    - evbuffer_free
    - printf
    - evbuffer_add_printf
    - evbuffer_validate
    - tt_uint_op
    - evbuffer_get_length
    - strlen
    - evutil_snprintf
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_iterative(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1787,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1789,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1792,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1792,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1793,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:1794,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1794,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1795,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1796,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1796,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1797,1
    - Dst: evbuffer_find
      Src: /src/libevent/test/regress_buffer.c:1798,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_buffer.c:1799,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:1805,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:1805,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1806,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:1810,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1811,1
    - Dst: evbuffer_find
      Src: /src/libevent/test/regress_buffer.c:1812,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_buffer.c:1813,1
    - Dst: evbuffer_find
      Src: /src/libevent/test/regress_buffer.c:1816,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1817,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_buffer.c:1818,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_buffer.c:1818,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1822,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1778
    functionDepth: 7
    functionLinenumber: 1778
    functionLinenumberEnd: 1823
    functionName: test_evbuffer_find
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_add
    - tt_want
    - strncmp
    - evbuffer_free
    - evbuffer_find
    - evbuffer_validate
    - strlen
    - evbuffer_new
    - evbuffer_drain
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_find(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1828,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1832,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1834,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:1834,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1836,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1836,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1837,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1838,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1838,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1839,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1840,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1840,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1841,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:1844,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:1846,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:1847,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1848,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:1850,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:1852,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:1853,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:1855,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:1857,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:1858,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:1859,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1861,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:1861,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1863,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1863,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1864,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1865,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1865,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1866,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1867,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1867,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1869,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1869,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1870,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1871,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1871,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1872,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1873,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1873,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1874,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1875,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1875,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1876,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1877,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1877,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1878,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1883
      start: 1825
    functionDepth: 4
    functionLinenumber: 1825
    functionLinenumberEnd: 1883
    functionName: test_evbuffer_ptr_set
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_free
    - evbuffer_reserve_space
    - evbuffer_commit_space
    - evbuffer_ptr_set
    - memset
    - evbuffer_validate
    - evbuffer_get_length
    - tt_int_op
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_ptr_set(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1888,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1889,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1892,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1893,1
    - Dst: evbuffer_search
      Src: /src/libevent/test/regress_buffer.c:1895,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1896,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1897,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1897,1
    - Dst: evbuffer_search
      Src: /src/libevent/test/regress_buffer.c:1898,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1899,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1900,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1900,1
    - Dst: evbuffer_search_range
      Src: /src/libevent/test/regress_buffer.c:1901,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1902,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1903,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1903,1
    - Dst: evbuffer_search_range
      Src: /src/libevent/test/regress_buffer.c:1904,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1905,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:1908,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:1909,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:1910,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:1911,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:1912,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:1913,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:1914,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:1915,1
    - Dst: evbuffer_search
      Src: /src/libevent/test/regress_buffer.c:1917,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1918,1
    - Dst: evbuffer_search
      Src: /src/libevent/test/regress_buffer.c:1919,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1920,1
    - Dst: evbuffer_search
      Src: /src/libevent/test/regress_buffer.c:1923,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1924,1
    - Dst: evbuffer_search
      Src: /src/libevent/test/regress_buffer.c:1925,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1926,1
    - Dst: evbuffer_search
      Src: /src/libevent/test/regress_buffer.c:1927,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1928,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1930,1
    - Dst: evbuffer_search
      Src: /src/libevent/test/regress_buffer.c:1931,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1932,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1934,1
    - Dst: evbuffer_search
      Src: /src/libevent/test/regress_buffer.c:1935,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1936,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1940,1
    - Dst: evbuffer_search_range
      Src: /src/libevent/test/regress_buffer.c:1941,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1942,1
    - Dst: evbuffer_search_range
      Src: /src/libevent/test/regress_buffer.c:1943,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1944,1
    - Dst: evbuffer_search_range
      Src: /src/libevent/test/regress_buffer.c:1945,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1946,1
    - Dst: evbuffer_search_range
      Src: /src/libevent/test/regress_buffer.c:1947,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1948,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1951,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1951,1
    - Dst: evbuffer_search_range
      Src: /src/libevent/test/regress_buffer.c:1953,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1954,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1955,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1955,1
    - Dst: evbuffer_search_range
      Src: /src/libevent/test/regress_buffer.c:1956,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1957,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1958,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1958,1
    - Dst: evbuffer_search_range
      Src: /src/libevent/test/regress_buffer.c:1959,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1960,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:1961,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:1961,1
    - Dst: evbuffer_search_range
      Src: /src/libevent/test/regress_buffer.c:1962,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:1963,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1967,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:1969,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 65
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1885
    functionDepth: 9
    functionLinenumber: 1885
    functionLinenumberEnd: 1970
    functionName: test_evbuffer_search
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_search_range
    - evbuffer_new
    - evbuffer_free
    - evbuffer_ptr_set
    - evbuffer_add_printf
    - evbuffer_add_buffer
    - tt_int_op
    - evbuffer_search
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_search(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:1981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buffer
    - cbinfo
    - arg
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1983
      start: 1972
    functionDepth: 9
    functionLinenumber: 1972
    functionLinenumberEnd: 1983
    functionName: log_change_callback
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_printf
    linkageType: ''
    returnType: void
    signature: "void log_change_callback(struct evbuffer *buffer,\n    const struct
      evbuffer_cb_info *cbinfo,\n    void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:1989,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - evbuffer
    - old_len
    - new_len
    - arg
    argTypes:
    - struct evbuffer*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1990
      start: 1984
    functionDepth: 4
    functionLinenumber: 1984
    functionLinenumberEnd: 1990
    functionName: self_draining_callback
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_drain
    linkageType: ''
    returnType: void
    signature: "void self_draining_callback(struct evbuffer *evbuffer, size_t old_len,\n\t\tsize_t
      new_len, void *arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1995,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1996,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:1997,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2000,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2001,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2002,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/test/regress_buffer.c:2004,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/test/regress_buffer.c:2005,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:2011,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2012,1
    - Dst: evbuffer_cb_clear_flags
      Src: /src/libevent/test/regress_buffer.c:2013,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2014,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2015,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2016,1
    - Dst: evbuffer_cb_set_flags
      Src: /src/libevent/test/regress_buffer.c:2017,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:2018,1
    - Dst: evbuffer_remove_cb_entry
      Src: /src/libevent/test/regress_buffer.c:2019,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2020,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2021,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2021,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2022,1
    - Dst: evbuffer_remove_cb
      Src: /src/libevent/test/regress_buffer.c:2022,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2023,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2024,1
    - Dst: evbuffer_remove_cb
      Src: /src/libevent/test/regress_buffer.c:2024,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2025,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_buffer.c:2027,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:2027,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_buffer.c:2029,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:2029,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2031,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2031,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2032,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2032,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/test/regress_buffer.c:2034,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2035,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/test/regress_buffer.c:2036,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2037,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2038,1
    - Dst: evbuffer_setcb
      Src: /src/libevent/test/regress_buffer.c:2038,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:2039,1
    - Dst: tt_uint_op
      Src: /src/libevent/test/regress_buffer.c:2040,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2040,1
    - Dst: tt_uint_op
      Src: /src/libevent/test/regress_buffer.c:2041,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2041,1
    - Dst: tt_uint_op
      Src: /src/libevent/test/regress_buffer.c:2042,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2042,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2043,1
    - Dst: evbuffer_setcb
      Src: /src/libevent/test/regress_buffer.c:2043,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:2044,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_buffer.c:2045,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:2045,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2046,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2047,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2047,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2048,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/test/regress_buffer.c:2051,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/test/regress_buffer.c:2052,1
    - Dst: evbuffer_cb_suspend
      Src: /src/libevent/test/regress_buffer.c:2053,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2054,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2055,1
    - Dst: evbuffer_cb_suspend
      Src: /src/libevent/test/regress_buffer.c:2056,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2057,1
    - Dst: evbuffer_cb_unsuspend
      Src: /src/libevent/test/regress_buffer.c:2058,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2059,1
    - Dst: evbuffer_cb_unsuspend
      Src: /src/libevent/test/regress_buffer.c:2060,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2061,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2061,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_buffer.c:2063,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:2063,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_buffer.c:2065,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:2065,1
    - Dst: event_set_mem_functions
      Src: /src/libevent/test/regress_buffer.c:2071,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2072,1
    - Dst: evbuffer_setcb
      Src: /src/libevent/test/regress_buffer.c:2072,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2073,1
    - Dst: event_set_mem_functions
      Src: /src/libevent/test/regress_buffer.c:2074,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2079,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2081,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2083,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 66
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2084
      start: 1992
    functionDepth: 9
    functionLinenumber: 1992
    functionLinenumberEnd: 2084
    functionName: test_evbuffer_callbacks
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_cb_suspend
    - evbuffer_add
    - evbuffer_free
    - evbuffer_validate
    - tt_uint_op
    - event_set_mem_functions
    - evbuffer_prepend
    - evbuffer_get_length
    - evbuffer_remove_cb
    - evbuffer_drain
    - tt_str_op
    - evbuffer_add_reference
    - evbuffer_remove_cb_entry
    - evbuffer_cb_set_flags
    - evbuffer_add_cb
    - evbuffer_cb_unsuspend
    - evbuffer_pullup
    - tt_int_op
    - tt_assert
    - evbuffer_cb_clear_flags
    - evbuffer_setcb
    - evbuffer_add_printf
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_callbacks(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - data
    - len
    - info
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2096
      start: 2090
    functionDepth: 0
    functionLinenumber: 2090
    functionLinenumberEnd: 2096
    functionName: ref_done_cb
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ref_done_cb(const void *data, size_t len, void *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2105,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2105,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2109,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2110,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:2112,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2113,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:2114,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2115,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2115,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2118,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2118,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2119,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2119,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2120,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2120,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2121,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2121,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2124,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2124,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2125,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2125,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2126,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2129,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2130,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2131,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2132,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2133,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2134,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2135,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2136,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2137,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2138,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2141,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2142,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2143,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2144,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2145,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:2147,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2148,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2149,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2150,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2150,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2151,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2151,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2152,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2153,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2154,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2158,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:2159,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2161,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2162,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2164,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2165,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2169,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 50
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2172
      start: 2098
    functionDepth: 7
    functionLinenumber: 2098
    functionLinenumberEnd: 2172
    functionName: test_evbuffer_add_reference
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_add
    - evbuffer_add_reference
    - evbuffer_free
    - evbuffer_remove
    - evbuffer_validate
    - evbuffer_add_buffer
    - evbuffer_get_length
    - evbuffer_prepend
    - memcmp
    - strlen
    - tt_int_op
    - evbuffer_new
    - evbuffer_drain
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_add_reference(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_buffer.c:2179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - data
    - len
    - arg
    argTypes:
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2174
    functionDepth: 1
    functionLinenumber: 2174
    functionLinenumberEnd: 2180
    functionName: ref_done_cb_with_offset
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - TT_FAIL
    linkageType: ''
    returnType: void
    signature: void ref_done_cb_with_offset(const void *data, size_t len, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2192,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2193,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2194,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2196,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2197,1
    - Dst: evbuffer_add_reference_with_offset
      Src: /src/libevent/test/regress_buffer.c:2199,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2201,1
    - Dst: evbuffer_add_reference_with_offset
      Src: /src/libevent/test/regress_buffer.c:2202,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2204,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2204,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2207,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2207,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:2208,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2209,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2209,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:2210,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2213,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2213,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:2214,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2215,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2218,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2219,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2220,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2221,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2222,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2225,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2226,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2227,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2228,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:2230,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2231,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_buffer.c:2232,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2233,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2233,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2234,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2237,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:2238,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2240,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2244,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2181
    functionDepth: 7
    functionLinenumber: 2181
    functionLinenumberEnd: 2247
    functionName: test_evbuffer_add_reference_with_offset
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_mem_op
    - evbuffer_add_reference_with_offset
    - evbuffer_add
    - evbuffer_add_reference
    - evbuffer_free
    - evbuffer_remove
    - evbuffer_validate
    - evbuffer_add_buffer
    - evbuffer_get_length
    - evbuffer_prepend
    - strlen
    - tt_int_op
    - evbuffer_new
    - evbuffer_drain
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_add_reference_with_offset(void* ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2256,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2256,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2260,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2261,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2263,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2264,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2265,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2266,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2266,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2268,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2269,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2271,1
    - Dst: evbuffer_add_buffer_reference
      Src: /src/libevent/test/regress_buffer.c:2271,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2273,1
    - Dst: evbuffer_add_buffer_reference
      Src: /src/libevent/test/regress_buffer.c:2273,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2274,1
    - Dst: evbuffer_add_buffer_reference
      Src: /src/libevent/test/regress_buffer.c:2274,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2277,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2277,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2277,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2280,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2280,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2281,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2281,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2282,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2282,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2283,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2283,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2286,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2286,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2287,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2287,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2288,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2291,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2291,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2292,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2292,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2293,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2293,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2294,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2294,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2297,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2297,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2298,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2298,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2299,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2302,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2305,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2305,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2306,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2306,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2308,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2308,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2309,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2309,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2313,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 39
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2316
      start: 2249
    functionDepth: 7
    functionLinenumber: 2249
    functionLinenumberEnd: 2316
    functionName: test_evbuffer_multicast
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_add
    - evbuffer_add_buffer_reference
    - evbuffer_free
    - evbuffer_remove
    - evbuffer_validate
    - evbuffer_get_length
    - evbuffer_prepend
    - memcmp
    - strlen
    - tt_int_op
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_multicast(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2324,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2324,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2328,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2329,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2331,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2332,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2333,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2334,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2334,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2336,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2337,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2339,1
    - Dst: evbuffer_add_buffer_reference
      Src: /src/libevent/test/regress_buffer.c:2339,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2340,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2340,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2341,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2341,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2341,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2342,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2342,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2343,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2343,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2343,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2344,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2345,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2349,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2352
      start: 2318
    functionDepth: 7
    functionLinenumber: 2318
    functionLinenumberEnd: 2352
    functionName: test_evbuffer_multicast_drain
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_add
    - evbuffer_add_buffer_reference
    - evbuffer_free
    - evbuffer_validate
    - evbuffer_get_length
    - strlen
    - tt_int_op
    - evbuffer_new
    - evbuffer_drain
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_multicast_drain(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2359,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2360,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - buffer
    - cbinfo
    - arg
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2364
      start: 2354
    functionDepth: 1
    functionLinenumber: 2354
    functionLinenumberEnd: 2364
    functionName: check_prepend
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: "void check_prepend(struct evbuffer *buffer,\n    const struct evbuffer_cb_info
      *cbinfo,\n    void *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libevent/test/regress_buffer.c:2370,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2373,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2374,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2377,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2378,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2381,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2382,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2385,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2386,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2387,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2388,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2388,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2392,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2393,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2394,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2395,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_buffer.c:2397,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2399,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2400,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:2404,1
    - Dst: evbuffer_prepend_buffer
      Src: /src/libevent/test/regress_buffer.c:2405,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2406,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:2409,1
    - Dst: evbuffer_prepend_buffer
      Src: /src/libevent/test/regress_buffer.c:2410,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2411,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2412,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2413,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2414,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_buffer.c:2416,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2419,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2420,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2421,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2422,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2423,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/test/regress_buffer.c:2424,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2425,1
    - Dst: evbuffer_remove_cb
      Src: /src/libevent/test/regress_buffer.c:2426,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2427,1
    - Dst: tt_nstr_op
      Src: /src/libevent/test/regress_buffer.c:2428,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:2428,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2429,1
    - Dst: tt_nstr_op
      Src: /src/libevent/test/regress_buffer.c:2430,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:2430,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2431,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:2434,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2436,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 51
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2440
      start: 2366
    functionDepth: 9
    functionLinenumber: 2366
    functionLinenumberEnd: 2440
    functionName: test_evbuffer_prepend
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_free
    - evbuffer_validate
    - evbuffer_prepend
    - evbuffer_remove_cb
    - evbuffer_drain
    - tt_str_op
    - evbuffer_remove
    - evbuffer_prepend_buffer
    - memcmp
    - evbuffer_add_cb
    - evbuffer_pullup
    - memset
    - malloc
    - tt_int_op
    - tt_assert
    - tt_nstr_op
    - evbuffer_add_printf
    - free
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_prepend(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2447,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2448,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:2451,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2452,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2453,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2455,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2456,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_buffer.c:2456,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:2456,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2457,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2462
      start: 2442
    functionDepth: 7
    functionLinenumber: 2442
    functionLinenumberEnd: 2462
    functionName: test_evbuffer_empty_reference_prepend
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_add_reference
    - evbuffer_pullup
    - strncmp
    - evbuffer_free
    - evbuffer_validate
    - evbuffer_prepend
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_empty_reference_prepend(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2468,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2469,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2470,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2471,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:2474,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2475,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2476,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2477,1
    - Dst: evbuffer_prepend_buffer
      Src: /src/libevent/test/regress_buffer.c:2478,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2479,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2481,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_buffer.c:2481,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:2481,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2482,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2484,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_buffer.c:2484,1
    - Dst: evbuffer_validate
      Src: /src/libevent/test/regress_buffer.c:2485,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2489,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2492
      start: 2463
    functionDepth: 7
    functionLinenumber: 2463
    functionLinenumberEnd: 2492
    functionName: test_evbuffer_empty_reference_prepend_buffer
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_add
    - evbuffer_add_reference
    - evbuffer_pullup
    - strncmp
    - evbuffer_free
    - evbuffer_validate
    - evbuffer_prepend_buffer
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_empty_reference_prepend_buffer(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2501,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2502,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:2503,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:2504,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:2505,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:2506,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:2508,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2511,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2511,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2513,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2513,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:2515,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2516,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2516,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2517,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2517,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2518,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2518,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2519,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2519,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2520,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2520,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2521,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2521,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2525,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2527,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - info
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2528
      start: 2494
    functionDepth: 9
    functionLinenumber: 2494
    functionLinenumberEnd: 2528
    functionName: test_evbuffer_peek_first_gt
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_peek
    - evbuffer_free
    - evbuffer_ptr_set
    - evbuffer_add_printf
    - evbuffer_add_buffer
    - tt_int_op
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_peek_first_gt(void *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2543,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2544,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:2546,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:2547,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2551,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2552,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2555,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2556,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2557,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2558,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2559,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2560,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2563,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2564,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2565,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2566,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2567,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2570,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2571,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2572,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2573,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2574,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2575,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2578,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2579,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2580,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2581,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2584,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2585,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2586,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2587,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2588,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2591,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2592,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2593,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2594,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2595,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2596,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2597,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2598,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2601,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2602,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2603,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2604,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2605,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2606,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2607,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2608,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2611,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:2612,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2613,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2614,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2615,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2616,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2617,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2620,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:2621,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2622,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2623,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2624,1
    - Dst: tt_iov_eq
      Src: /src/libevent/test/regress_buffer.c:2625,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2628,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2629,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:2629,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2629,1
    - Dst: evbuffer_peek
      Src: /src/libevent/test/regress_buffer.c:2630,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2631,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2632,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2636,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2638,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 75
    argCount: 1
    argNames:
    - info
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2639
      start: 2530
    functionDepth: 9
    functionLinenumber: 2530
    functionLinenumberEnd: 2639
    functionName: test_evbuffer_peek
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_peek
    - tt_iov_eq
    - evbuffer_free
    - evbuffer_ptr_set
    - evbuffer_add_printf
    - memset
    - evbuffer_add_buffer
    - evbuffer_get_length
    - tt_int_op
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_peek(void *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2541
      start: 2538
    functionDepth: 0
    functionLinenumber: 2538
    functionLinenumberEnd: 2541
    functionName: tt_iov_eq
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tt_iov_eq(v, s)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libevent/test/regress_buffer.c:2659,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_buffer.c:2670,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2672,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2673,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2674,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2675,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2677,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2677,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2678,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2679,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/test/regress_buffer.c:2680,1
    - Dst: evbuffer_freeze
      Src: /src/libevent/test/regress_buffer.c:2681,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2693,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2696,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2697,1
    - Dst: evbuffer_reserve_space
      Src: /src/libevent/test/regress_buffer.c:2698,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2699,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2701,1
    - Dst: evbuffer_commit_space
      Src: /src/libevent/test/regress_buffer.c:2704,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2705,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:2706,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2707,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_buffer.c:2708,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2709,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_buffer.c:2711,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2712,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2713,1
    - Dst: regress_make_tmpfile
      Src: /src/libevent/test/regress_buffer.c:2714,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_buffer.c:2718,1
    - Dst: evbuffer_add_file
      Src: /src/libevent/test/regress_buffer.c:2720,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2721,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2724,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2726,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2726,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2727,1
    - Dst: evbuffer_write
      Src: /src/libevent/test/regress_buffer.c:2728,1
    - Dst: evbuffer_read
      Src: /src/libevent/test/regress_buffer.c:2729,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2730,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2733,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2733,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2735,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2738,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2739,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2740,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2741,1
    - Dst: evbuffer_prepend
      Src: /src/libevent/test/regress_buffer.c:2742,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2743,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_buffer.c:2744,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2745,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:2747,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2749,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2750,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2750,1
    - Dst: evbuffer_remove_buffer
      Src: /src/libevent/test/regress_buffer.c:2751,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2752,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_buffer.c:2753,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2754,1
    - Dst: evbuffer_prepend_buffer
      Src: /src/libevent/test/regress_buffer.c:2755,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2756,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2758,1
    - Dst: evbuffer_write
      Src: /src/libevent/test/regress_buffer.c:2759,1
    - Dst: evbuffer_read
      Src: /src/libevent/test/regress_buffer.c:2760,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2761,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2762,1
    - Dst: evbuffer_write_atmost
      Src: /src/libevent/test/regress_buffer.c:2763,1
    - Dst: evbuffer_read
      Src: /src/libevent/test/regress_buffer.c:2764,1
    - Dst: FREEZE_EQ
      Src: /src/libevent/test/regress_buffer.c:2765,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2768,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2768,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2772,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2775,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2778,1
    - Dst: unlink
      Src: /src/libevent/test/regress_buffer.c:2781,1
    - Dst: free
      Src: /src/libevent/test/regress_buffer.c:2782,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 85
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2784
      start: 2648
    functionDepth: 9
    functionLinenumber: 2648
    functionLinenumberEnd: 2784
    functionName: test_evbuffer_freeze
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - evbuffer_add
    - evbuffer_remove_buffer
    - regress_make_tmpfile
    - evbuffer_free
    - evbuffer_add_file
    - evbuffer_get_length
    - evbuffer_prepend
    - evbuffer_write_atmost
    - evbuffer_drain
    - FREEZE_EQ
    - tt_str_op
    - evbuffer_add_reference
    - evbuffer_reserve_space
    - evbuffer_remove
    - evbuffer_prepend_buffer
    - strlen
    - unlink
    - evbuffer_read
    - evbuffer_commit_space
    - evbuffer_readln
    - memset
    - tt_int_op
    - evbuffer_write
    - tt_assert
    - evbuffer_freeze
    - tt_skip
    - strcmp
    - evbuffer_add_printf
    - evbuffer_add_buffer
    - free
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_freeze(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - startcase
    - ','
    - endcase
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2691
      start: 2683
    functionDepth: 0
    functionLinenumber: 2683
    functionLinenumberEnd: 2691
    functionName: FREEZE_EQ
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREEZE_EQ(a, startcase, endcase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2802,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2804,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2807,1
    - Dst: evbuffer_add_iovec
      Src: /src/libevent/test/regress_buffer.c:2812,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2814,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2814,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2815,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2815,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2820,1
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_buffer.c:2821,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2821,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2822,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_buffer.c:2822,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2825,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2825,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2828,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2830
      start: 2786
    functionDepth: 5
    functionLinenumber: 2786
    functionLinenumberEnd: 2830
    functionName: test_evbuffer_add_iovec
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_free
    - evbuffer_add_iovec
    - evbuffer_remove
    - strcmp
    - memset
    - evbuffer_get_length
    - strlen
    - tt_int_op
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_add_iovec(void * ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_buffer.c:2847,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_buffer.c:2848,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2850,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2850,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:2853,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/regress_buffer.c:2854,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_buffer.c:2855,1
    - Dst: strlen
      Src: /src/libevent/test/regress_buffer.c:2855,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2857,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2857,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2862,1
    - Dst: evbuffer_copyout
      Src: /src/libevent/test/regress_buffer.c:2862,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2863,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2863,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2866,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2867,1
    - Dst: evbuffer_copyout
      Src: /src/libevent/test/regress_buffer.c:2867,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2868,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2868,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2871,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2872,1
    - Dst: evbuffer_copyout
      Src: /src/libevent/test/regress_buffer.c:2872,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2873,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2873,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2876,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2876,1
    - Dst: evbuffer_ptr_set
      Src: /src/libevent/test/regress_buffer.c:2880,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2881,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2882,1
    - Dst: evbuffer_copyout_from
      Src: /src/libevent/test/regress_buffer.c:2882,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2883,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2883,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2886,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2887,1
    - Dst: evbuffer_copyout_from
      Src: /src/libevent/test/regress_buffer.c:2887,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2888,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2888,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2891,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2892,1
    - Dst: evbuffer_copyout_from
      Src: /src/libevent/test/regress_buffer.c:2892,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2893,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2893,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2896,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2897,1
    - Dst: evbuffer_copyout_from
      Src: /src/libevent/test/regress_buffer.c:2897,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2898,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2898,1
    - Dst: memset
      Src: /src/libevent/test/regress_buffer.c:2901,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2902,1
    - Dst: evbuffer_copyout_from
      Src: /src/libevent/test/regress_buffer.c:2902,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2903,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_buffer.c:2903,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_buffer.c:2906,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_buffer.c:2906,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_buffer.c:2910,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 1
    argNames:
    - dummy
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2911
      start: 2832
    functionDepth: 7
    functionLinenumber: 2832
    functionLinenumberEnd: 2911
    functionName: test_evbuffer_copyout
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_add
    - evbuffer_add_reference
    - evbuffer_free
    - evbuffer_copyout_from
    - evbuffer_ptr_set
    - memset
    - evbuffer_copyout
    - evbuffer_get_length
    - memcmp
    - strlen
    - tt_int_op
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void test_evbuffer_copyout(void *dummy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - testcase
    argTypes:
    - struct testcase_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2917
      start: 2913
    functionDepth: 0
    functionLinenumber: 2913
    functionLinenumberEnd: 2917
    functionName: setup_passthrough
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      setup_passthrough(const struct testcase_t *testcase)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - testcase
    - ptr
    argTypes:
    - struct testcase_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2923
      start: 2918
    functionDepth: 0
    functionLinenumber: 2918
    functionLinenumberEnd: 2923
    functionName: cleanup_passthrough
    functionSourceFile: /src/libevent/test/regress_buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cleanup_passthrough(const struct testcase_t *testcase, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: E
    functionSourceFile: /src/libevent/test/print-winsock-errors.c
    functionUses: 227
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: E(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evthread_use_windows_threads
      Src: /src/libevent/test/print-winsock-errors.c:19,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/test/print-winsock-errors.c:22,1
    - Dst: printf
      Src: /src/libevent/test/print-winsock-errors.c:25,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:26,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:27,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:28,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:29,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:30,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:31,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:32,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:33,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:34,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:35,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:36,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:37,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:38,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:39,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:40,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:41,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:42,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:43,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:44,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:45,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:46,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:47,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:48,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:49,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:50,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:51,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:52,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:53,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:54,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:55,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:56,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:57,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:58,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:59,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:60,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:61,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:62,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:63,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:64,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:65,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:66,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:67,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:68,1
    - Dst: E
      Src: /src/libevent/test/print-winsock-errors.c:69,1
    - Dst: evutil_secure_rng_get_bytes
      Src: /src/libevent/test/print-winsock-errors.c:74,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/test/print-winsock-errors.c:75,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/test/print-winsock-errors.c:79,1
    - Dst: printf
      Src: /src/libevent/test/print-winsock-errors.c:81,1
    - Dst: libevent_global_shutdown
      Src: /src/libevent/test/print-winsock-errors.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 59
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 13
    functionDepth: 10
    functionLinenumber: 13
    functionLinenumberEnd: 86
    functionName: main
    functionSourceFile: /src/libevent/test/print-winsock-errors.c
    functionUses: 2
    functionsReached:
    - evutil_secure_rng_get_bytes
    - E
    - libevent_global_shutdown
    - printf
    - evutil_socket_error_to_string
    - evthread_use_windows_threads
    linkageType: ''
    returnType: int
    signature: int main (int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/libevent/test/test-weof.c:65,1
    - Dst: strlen
      Src: /src/libevent/test/test-weof.c:65,1
    - Dst: printf
      Src: /src/libevent/test/test-weof.c:67,1
    - Dst: event_add
      Src: /src/libevent/test/test-weof.c:72,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/test-weof.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 78
    functionName: write_cb
    functionSourceFile: /src/libevent/test/test-weof.c
    functionUses: 1
    functionsReached:
    - evutil_closesocket
    - printf
    - event_add
    - strlen
    - send
    linkageType: ''
    returnType: void
    signature: void write_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/libevent/test/test-weof.c:89,1
    - Dst: WSAStartup
      Src: /src/libevent/test/test-weof.c:91,1
    - Dst: signal
      Src: /src/libevent/test/test-weof.c:95,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/test-weof.c:99,1
    - Dst: event_init
      Src: /src/libevent/test/test-weof.c:103,1
    - Dst: event_set
      Src: /src/libevent/test/test-weof.c:106,1
    - Dst: event_add
      Src: /src/libevent/test/test-weof.c:108,1
    - Dst: event_dispatch
      Src: /src/libevent/test/test-weof.c:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 80
    functionDepth: 5
    functionLinenumber: 80
    functionLinenumberEnd: 113
    functionName: main
    functionSourceFile: /src/libevent/test/test-weof.c
    functionUses: 2
    functionsReached:
    - event_set
    - MAKEWORD
    - event_init
    - event_dispatch
    - event_add
    - signal
    - WSAStartup
    - evutil_socketpair
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThread
      Src: /src/libevent/test/test-changelist.c:70,1
    - Dst: GetThreadTimes
      Src: /src/libevent/test/test-changelist.c:71,1
    - Dst: printf
      Src: /src/libevent/test/test-changelist.c:73,1
    - Dst: clock
      Src: /src/libevent/test/test-changelist.c:75,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/test-changelist.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - timer
    argTypes:
    - struct cpu_usage_timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 79
    functionName: start_cpu_usage_timer
    functionSourceFile: /src/libevent/test/test-changelist.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - printf
    - clock
    - GetCurrentThread
    - GetThreadTimes
    linkageType: ''
    returnType: void
    signature: void start_cpu_usage_timer(struct cpu_usage_timer *timer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - FILETIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: filetime_to_100nsec
    functionSourceFile: /src/libevent/test/test-changelist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ev_int64_t
    signature: ev_int64_t filetime_to_100nsec(const FILETIME *ft)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: filetime_to_100nsec
      Src: /src/libevent/test/test-changelist.c:95,1
    - Dst: filetime_to_100nsec
      Src: /src/libevent/test/test-changelist.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ftStart
    - ftEnd
    argTypes:
    - FILETIME*
    - FILETIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 100
    functionName: filetime_diff
    functionSourceFile: /src/libevent/test/test-changelist.c
    functionUses: 0
    functionsReached:
    - filetime_to_100nsec
    linkageType: ''
    returnType: double
    signature: double filetime_diff(const FILETIME *ftStart, const FILETIME *ftEnd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetThreadTimes
      Src: /src/libevent/test/test-changelist.c:118,1
    - Dst: printf
      Src: /src/libevent/test/test-changelist.c:120,1
    - Dst: filetime_diff
      Src: /src/libevent/test/test-changelist.c:121,1
    - Dst: filetime_diff
      Src: /src/libevent/test/test-changelist.c:122,1
    - Dst: clock
      Src: /src/libevent/test/test-changelist.c:125,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/test-changelist.c:128,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/test-changelist.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - timer
    - secElapsedOut
    - secUsedOut
    - usageOut
    argTypes:
    - struct cpu_usage_timer*
    - double*
    - double*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 135
    functionName: get_cpu_usage
    functionSourceFile: /src/libevent/test/test-changelist.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - filetime_diff
    - printf
    - evutil_timersub
    - clock
    - GetThreadTimes
    linkageType: ''
    returnType: void
    signature: "void get_cpu_usage(struct cpu_usage_timer *timer, double *secElapsedOut,\n
      \   double *secUsedOut, double *usageOut)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/test/test-changelist.c:140,1
    - Dst: event_del
      Src: /src/libevent/test/test-changelist.c:143,1
    - Dst: event_add
      Src: /src/libevent/test/test-changelist.c:146,1
    - Dst: event_del
      Src: /src/libevent/test/test-changelist.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 137
    functionDepth: 4
    functionLinenumber: 137
    functionLinenumberEnd: 151
    functionName: write_cb
    functionSourceFile: /src/libevent/test/test-changelist.c
    functionUses: 1
    functionsReached:
    - event_add
    - event_del
    - printf
    linkageType: ''
    returnType: void
    signature: void write_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/test/test-changelist.c:156,1
    - Dst: event_del
      Src: /src/libevent/test/test-changelist.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 153
    functionDepth: 4
    functionLinenumber: 153
    functionLinenumberEnd: 159
    functionName: timeout_cb
    functionSourceFile: /src/libevent/test/test-changelist.c
    functionUses: 0
    functionsReached:
    - event_del
    - printf
    linkageType: ''
    returnType: void
    signature: void timeout_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/libevent/test/test-changelist.c:178,1
    - Dst: WSAStartup
      Src: /src/libevent/test/test-changelist.c:180,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/test-changelist.c:182,1
    - Dst: event_base_new
      Src: /src/libevent/test/test-changelist.c:186,1
    - Dst: evtimer_new
      Src: /src/libevent/test/test-changelist.c:190,1
    - Dst: perror
      Src: /src/libevent/test/test-changelist.c:192,1
    - Dst: event_new
      Src: /src/libevent/test/test-changelist.c:196,1
    - Dst: perror
      Src: /src/libevent/test/test-changelist.c:198,1
    - Dst: evtimer_add
      Src: /src/libevent/test/test-changelist.c:204,1
    - Dst: event_add
      Src: /src/libevent/test/test-changelist.c:206,1
    - Dst: start_cpu_usage_timer
      Src: /src/libevent/test/test-changelist.c:208,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/test-changelist.c:210,1
    - Dst: event_free
      Src: /src/libevent/test/test-changelist.c:212,1
    - Dst: event_free
      Src: /src/libevent/test/test-changelist.c:213,1
    - Dst: event_base_free
      Src: /src/libevent/test/test-changelist.c:214,1
    - Dst: get_cpu_usage
      Src: /src/libevent/test/test-changelist.c:216,1
    - Dst: printf
      Src: /src/libevent/test/test-changelist.c:221,1
    - Dst: event_free
      Src: /src/libevent/test/test-changelist.c:232,1
    - Dst: event_free
      Src: /src/libevent/test/test-changelist.c:234,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/test-changelist.c:236,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/test-changelist.c:238,1
    - Dst: event_base_free
      Src: /src/libevent/test/test-changelist.c:240,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 161
    functionDepth: 6
    functionLinenumber: 161
    functionLinenumberEnd: 242
    functionName: main
    functionSourceFile: /src/libevent/test/test-changelist.c
    functionUses: 2
    functionsReached:
    - MAKEWORD
    - evtimer_add
    - event_base_free
    - evutil_closesocket
    - event_new
    - perror
    - event_free
    - printf
    - evtimer_new
    - event_add
    - start_cpu_usage_timer
    - get_cpu_usage
    - event_base_new
    - WSAStartup
    - evutil_socketpair
    - event_base_dispatch
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libevent/test/regress_et.c:57,1
    - Dst: event_base_get_method
      Src: /src/libevent/test/regress_et.c:57,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_et.c:58,1
    - Dst: event_base_get_method
      Src: /src/libevent/test/regress_et.c:58,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_et.c:59,1
    - Dst: event_base_get_method
      Src: /src/libevent/test/regress_et.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: base_supports_et
    functionSourceFile: /src/libevent/test/regress_et.c
    functionUses: 0
    functionsReached:
    - event_base_get_method
    - strcmp
    linkageType: ''
    returnType: int
    signature: int base_supports_et(struct event_base *base)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/libevent/test/regress_et.c:68,1
    - Dst: event_del
      Src: /src/libevent/test/regress_et.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 76
    functionName: read_cb
    functionSourceFile: /src/libevent/test/regress_et.c
    functionUses: 0
    functionsReached:
    - recv
    - event_del
    linkageType: ''
    returnType: void
    signature: void read_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:97,1
    - Dst: send
      Src: /src/libevent/test/regress_et.c:97,1
    - Dst: strlen
      Src: /src/libevent/test/regress_et.c:97,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:98,1
    - Dst: shutdown
      Src: /src/libevent/test/regress_et.c:98,1
    - Dst: base_supports_et
      Src: /src/libevent/test/regress_et.c:100,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_et.c:101,1
    - Dst: event_base_get_method
      Src: /src/libevent/test/regress_et.c:102,1
    - Dst: event_new
      Src: /src/libevent/test/regress_et.c:106,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_et.c:107,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:108,1
    - Dst: event_add
      Src: /src/libevent/test/regress_et.c:108,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:117,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_et.c:117,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:118,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_et.c:118,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:121,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_et.c:122,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:124,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_et.c:125,1
    - Dst: event_del
      Src: /src/libevent/test/regress_et.c:130,1
    - Dst: event_free
      Src: /src/libevent/test/regress_et.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - data_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 78
    functionDepth: 6
    functionLinenumber: 78
    functionLinenumberEnd: 133
    functionName: test_edgetriggered
    functionSourceFile: /src/libevent/test/regress_et.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - event_base_get_method
    - event_del
    - event_new
    - TT_BLATHER
    - event_free
    - event_add
    - event_base_loop
    - base_supports_et
    - strlen
    - tt_int_op
    - shutdown
    - send
    linkageType: ''
    returnType: void
    signature: void test_edgetriggered(void *data_)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tt_skip
      Src: /src/libevent/test/regress_et.c:144,1
    - Dst: event_enable_debug_mode
      Src: /src/libevent/test/regress_et.c:148,1
    - Dst: event_base_new
      Src: /src/libevent/test/regress_et.c:150,1
    - Dst: event_new
      Src: /src/libevent/test/regress_et.c:153,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_et.c:154,1
    - Dst: event_new
      Src: /src/libevent/test/regress_et.c:155,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_et.c:156,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:159,1
    - Dst: event_add
      Src: /src/libevent/test/regress_et.c:159,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:160,1
    - Dst: event_add
      Src: /src/libevent/test/regress_et.c:160,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:161,1
    - Dst: event_pending
      Src: /src/libevent/test/regress_et.c:161,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:162,1
    - Dst: event_pending
      Src: /src/libevent/test/regress_et.c:162,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:164,1
    - Dst: event_del
      Src: /src/libevent/test/regress_et.c:164,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:166,1
    - Dst: event_add
      Src: /src/libevent/test/regress_et.c:166,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:167,1
    - Dst: event_add
      Src: /src/libevent/test/regress_et.c:167,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:168,1
    - Dst: event_pending
      Src: /src/libevent/test/regress_et.c:168,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:169,1
    - Dst: event_pending
      Src: /src/libevent/test/regress_et.c:169,1
    - Dst: event_free
      Src: /src/libevent/test/regress_et.c:173,1
    - Dst: event_free
      Src: /src/libevent/test/regress_et.c:175,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_et.c:177,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - data_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 135
    functionDepth: 6
    functionLinenumber: 135
    functionLinenumberEnd: 178
    functionName: test_edgetriggered_mix_error
    functionSourceFile: /src/libevent/test/regress_et.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - event_pending
    - event_del
    - tt_skip
    - event_base_free
    - event_enable_debug_mode
    - event_new
    - event_add
    - event_base_new
    - tt_int_op
    - event_free
    linkageType: ''
    returnType: void
    signature: void test_edgetriggered_mix_error(void *data_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 187
    functionName: read_notification_cb
    functionSourceFile: /src/libevent/test/regress_et.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void read_notification_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: write_notification_cb
    functionSourceFile: /src/libevent/test/regress_et.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_notification_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: base_supports_et
      Src: /src/libevent/test/regress_et.c:214,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_et.c:215,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:225,1
    - Dst: send
      Src: /src/libevent/test/regress_et.c:225,1
    - Dst: event_new
      Src: /src/libevent/test/regress_et.c:227,1
    - Dst: event_new
      Src: /src/libevent/test/regress_et.c:229,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_et.c:231,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_et.c:232,1
    - Dst: event_add
      Src: /src/libevent/test/regress_et.c:234,1
    - Dst: event_add
      Src: /src/libevent/test/regress_et.c:235,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_et.c:236,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_et.c:237,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_et.c:239,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:240,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_et.c:241,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:242,1
    - Dst: event_del
      Src: /src/libevent/test/regress_et.c:244,1
    - Dst: close
      Src: /src/libevent/test/regress_et.c:248,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_et.c:252,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_et.c:253,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_et.c:254,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_et.c:255,1
    - Dst: event_free
      Src: /src/libevent/test/regress_et.c:259,1
    - Dst: event_free
      Src: /src/libevent/test/regress_et.c:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 1
    argNames:
    - data_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 204
    functionDepth: 6
    functionLinenumber: 204
    functionLinenumberEnd: 262
    functionName: test_edge_triggered_multiple_events
    functionSourceFile: /src/libevent/test/regress_et.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - close
    - event_del
    - tt_skip
    - event_new
    - event_add
    - event_base_loop
    - base_supports_et
    - tt_int_op
    - event_free
    - send
    linkageType: ''
    returnType: void
    signature: void test_edge_triggered_multiple_events(void *data_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: htonll
    functionSourceFile: /src/libevent/test/regress_ws.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htonll(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: ntohll
    functionSourceFile: /src/libevent/test/regress_ws.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ntohll(x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_ws.c:83,1
    - Dst: exit
      Src: /src/libevent/test/regress_ws.c:84,1
    - Dst: snprintf
      Src: /src/libevent/test/regress_ws.c:88,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_ws.c:89,1
    - Dst: evws_send_text
      Src: /src/libevent/test/regress_ws.c:92,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_ws.c:94,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_ws.c:96,1
    - Dst: evws_send_binary
      Src: /src/libevent/test/regress_ws.c:97,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_ws.c:99,1
    - Dst: evws_close
      Src: /src/libevent/test/regress_ws.c:100,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_ws.c:104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - evws
    - type
    - data
    - len
    - arg
    argTypes:
    - struct evws_connection*
    - int
    - unsigned char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 75
    functionDepth: 4
    functionLinenumber: 75
    functionLinenumberEnd: 106
    functionName: on_ws_msg_cb
    functionSourceFile: /src/libevent/test/regress_ws.c
    functionUses: 0
    functionsReached:
    - exit
    - event_base_loopexit
    - strcmp
    - evws_send_binary
    - evws_close
    - evws_send_text
    - fprintf
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void on_ws_msg_cb(struct evws_connection *evws, int type, const unsigned
      char *data,\n\tsize_t len, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_ws.c:114,1
    - Dst: exit
      Src: /src/libevent/test/regress_ws.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - evws
    - arg
    argTypes:
    - struct evws_connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 118
    functionName: on_ws_close_cb
    functionSourceFile: /src/libevent/test/regress_ws.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void on_ws_close_cb(struct evws_connection *evws, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evws_new_session
      Src: /src/libevent/test/regress_ws.c:126,1
    - Dst: evws_connection_set_closecb
      Src: /src/libevent/test/regress_ws.c:131,1
    - Dst: evws_send_text
      Src: /src/libevent/test/regress_ws.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 120
    functionDepth: 7
    functionLinenumber: 120
    functionLinenumberEnd: 133
    functionName: http_on_ws_cb
    functionSourceFile: /src/libevent/test/regress_ws.c
    functionUses: 0
    functionsReached:
    - evws_new_session
    - evws_connection_set_closecb
    - evws_send_text
    linkageType: ''
    returnType: void
    signature: void http_on_ws_cb(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_ws.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 143
    functionName: http_ws_errorcb
    functionSourceFile: /src/libevent/test/regress_ws.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: void http_ws_errorcb(struct bufferevent *bev, short what, void *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_ws.c:154,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_ws.c:157,1
    - Dst: ntohs
      Src: /src/libevent/test/regress_ws.c:174,1
    - Dst: ntohll
      Src: /src/libevent/test/regress_ws.c:181,1
    - Dst: calloc
      Src: /src/libevent/test/regress_ws.c:195,1
    - Dst: malloc
      Src: /src/libevent/test/regress_ws.c:198,1
    - Dst: memcpy
      Src: /src/libevent/test/regress_ws.c:200,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_ws.c:202,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - buf
    - out_len
    - is_text_type
    argTypes:
    - struct evbuffer*
    - size_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 145
    functionDepth: 4
    functionLinenumber: 145
    functionLinenumberEnd: 204
    functionName: receive_ws_msg
    functionSourceFile: /src/libevent/test/regress_ws.c
    functionUses: 0
    functionsReached:
    - ntohs
    - calloc
    - evbuffer_pullup
    - ntohll
    - evbuffer_get_length
    - malloc
    - memcpy
    - evbuffer_drain
    linkageType: ''
    returnType: char
    signature: 'char *

      receive_ws_msg(struct evbuffer *buf, size_t *out_len, bool *is_text_type)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/libevent/test/regress_ws.c:231,1
    - Dst: htonll
      Src: /src/libevent/test/regress_ws.c:234,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_ws.c:237,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_ws.c:238,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_ws.c:241,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_ws.c:243,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_ws.c:245,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_ws.c:249,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - buf
    - msg
    - len
    - options
    argTypes:
    - struct evbuffer*
    - char*
    - size_t
    - enum WSOptions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 212
    functionDepth: 7
    functionLinenumber: 212
    functionLinenumberEnd: 251
    functionName: send_ws_msg
    functionSourceFile: /src/libevent/test/regress_ws.c
    functionUses: 0
    functionsReached:
    - htonll
    - htons
    - evbuffer_add
    linkageType: ''
    returnType: void
    signature: "void send_ws_msg(\n\tstruct evbuffer *buf, const char *msg, size_t
      len, enum WSOptions options)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_ws.c:256,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_ws.c:257,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_ws.c:259,1
    - Dst: receive_ws_msg
      Src: /src/libevent/test/regress_ws.c:264,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_ws.c:267,1
    - Dst: send_ws_msg
      Src: /src/libevent/test/regress_ws.c:268,1
    - Dst: strlen
      Src: /src/libevent/test/regress_ws.c:268,1
    - Dst: send_ws_msg
      Src: /src/libevent/test/regress_ws.c:269,1
    - Dst: strlen
      Src: /src/libevent/test/regress_ws.c:270,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_ws.c:272,1
    - Dst: send_ws_msg
      Src: /src/libevent/test/regress_ws.c:273,1
    - Dst: strlen
      Src: /src/libevent/test/regress_ws.c:273,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_ws.c:279,1
    - Dst: send_ws_msg
      Src: /src/libevent/test/regress_ws.c:280,1
    - Dst: strlen
      Src: /src/libevent/test/regress_ws.c:281,1
    - Dst: free
      Src: /src/libevent/test/regress_ws.c:287,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 253
    functionDepth: 8
    functionLinenumber: 253
    functionLinenumberEnd: 290
    functionName: http_ws_readcb_phase2
    functionSourceFile: /src/libevent/test/regress_ws.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_output
    - bufferevent_get_input
    - strcmp
    - free
    - evbuffer_get_length
    - receive_ws_msg
    - memcmp
    - strlen
    - send_ws_msg
    linkageType: ''
    returnType: void
    signature: void http_ws_readcb_phase2(struct bufferevent *bev, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_ws.c:295,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_ws.c:296,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_ws.c:300,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_ws.c:302,1
    - Dst: strlen
      Src: /src/libevent/test/regress_ws.c:302,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_ws.c:304,1
    - Dst: strlen
      Src: /src/libevent/test/regress_ws.c:307,1
    - Dst: free
      Src: /src/libevent/test/regress_ws.c:308,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_ws.c:309,1
    - Dst: send_ws_msg
      Src: /src/libevent/test/regress_ws.c:311,1
    - Dst: strlen
      Src: /src/libevent/test/regress_ws.c:311,1
    - Dst: send_ws_msg
      Src: /src/libevent/test/regress_ws.c:312,1
    - Dst: strlen
      Src: /src/libevent/test/regress_ws.c:312,1
    - Dst: send_ws_msg
      Src: /src/libevent/test/regress_ws.c:313,1
    - Dst: strlen
      Src: /src/libevent/test/regress_ws.c:313,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_ws.c:315,1
    - Dst: http_ws_readcb_phase2
      Src: /src/libevent/test/regress_ws.c:316,1
    - Dst: free
      Src: /src/libevent/test/regress_ws.c:320,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 292
    functionDepth: 9
    functionLinenumber: 292
    functionLinenumberEnd: 323
    functionName: http_ws_readcb_hdr
    functionSourceFile: /src/libevent/test/regress_ws.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_output
    - bufferevent_get_input
    - strncmp
    - http_ws_readcb_phase2
    - evbuffer_readln
    - strcmp
    - bufferevent_setcb
    - free
    - evbuffer_get_length
    - strlen
    - send_ws_msg
    linkageType: ''
    returnType: void
    signature: void http_ws_readcb_hdr(struct bufferevent *bev, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_ws.c:328,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_ws.c:332,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_ws.c:333,1
    - Dst: strlen
      Src: /src/libevent/test/regress_ws.c:333,1
    - Dst: free
      Src: /src/libevent/test/regress_ws.c:337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 338
    functionName: http_ws_readcb_bad
    functionSourceFile: /src/libevent/test/regress_ws.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_input
    - strncmp
    - evbuffer_readln
    - free
    - strlen
    linkageType: ''
    returnType: void
    signature: void http_ws_readcb_bad(struct bufferevent *bev, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_ws.c:348,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_ws.c:354,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_ws.c:355,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_ws.c:356,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_ws.c:358,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_ws.c:360,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_ws.c:366,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ws.c:367,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_ws.c:369,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_ws.c:372,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_ws.c:373,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_ws.c:374,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_ws.c:376,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_ws.c:378,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_ws.c:386,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ws.c:387,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_ws.c:389,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_ws.c:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - arg
    - conn_value
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 340
    functionDepth: 9
    functionLinenumber: 340
    functionLinenumberEnd: 393
    functionName: http_ws_test_with_connection
    functionSourceFile: /src/libevent/test/regress_ws.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_output
    - http_connect
    - create_bev
    - evhttp_free
    - bufferevent_free
    - evbuffer_add_printf
    - bufferevent_setcb
    - tt_int_op
    - http_setup
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_ws_test_with_connection(void *arg, const char* conn_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_ws_test_with_connection
      Src: /src/libevent/test/regress_ws.c:398,1
    - Dst: http_ws_test_with_connection
      Src: /src/libevent/test/regress_ws.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 395
    functionDepth: 10
    functionLinenumber: 395
    functionLinenumberEnd: 400
    functionName: http_ws_test
    functionSourceFile: /src/libevent/test/regress_ws.c
    functionUses: 0
    functionsReached:
    - http_ws_test_with_connection
    linkageType: ''
    returnType: void
    signature: void http_ws_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/bench_http.c:59,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/bench_http.c:61,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/bench_http.c:64,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/bench_http.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 56
    functionDepth: 7
    functionLinenumber: 56
    functionLinenumberEnd: 67
    functionName: http_basic_cb
    functionSourceFile: /src/libevent/test/bench_http.c
    functionUses: 0
    functionsReached:
    - evbuffer_free
    - evbuffer_add
    - evbuffer_new
    - evhttp_send_reply
    linkageType: ''
    returnType: void
    signature: void http_basic_cb(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/bench_http.c:73,1
    - Dst: evbuffer_add_reference
      Src: /src/libevent/test/bench_http.c:75,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/bench_http.c:78,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/bench_http.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 70
    functionDepth: 6
    functionLinenumber: 70
    functionLinenumberEnd: 81
    functionName: http_ref_cb
    functionSourceFile: /src/libevent/test/bench_http.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_reference
    - evbuffer_free
    - evbuffer_new
    - evhttp_send_reply
    linkageType: ''
    returnType: void
    signature: void http_ref_cb(struct evhttp_request *req, void *arg)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: event_config_new
      Src: /src/libevent/test/bench_http.c:87,1
    - Dst: WSAStartup
      Src: /src/libevent/test/bench_http.c:98,1
    - Dst: signal
      Src: /src/libevent/test/bench_http.c:100,1
    - Dst: setbuf
      Src: /src/libevent/test/bench_http.c:104,1
    - Dst: setbuf
      Src: /src/libevent/test/bench_http.c:105,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_http.c:114,1
    - Dst: exit
      Src: /src/libevent/test/bench_http.c:115,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_http.c:121,1
    - Dst: exit
      Src: /src/libevent/test/bench_http.c:122,1
    - Dst: strtol
      Src: /src/libevent/test/bench_http.c:124,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_http.c:126,1
    - Dst: exit
      Src: /src/libevent/test/bench_http.c:127,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_http.c:132,1
    - Dst: exit
      Src: /src/libevent/test/bench_http.c:133,1
    - Dst: strtol
      Src: /src/libevent/test/bench_http.c:135,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_http.c:137,1
    - Dst: exit
      Src: /src/libevent/test/bench_http.c:138,1
    - Dst: evthread_use_windows_threads
      Src: /src/libevent/test/bench_http.c:145,1
    - Dst: event_config_set_flag
      Src: /src/libevent/test/bench_http.c:147,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_http.c:151,1
    - Dst: exit
      Src: /src/libevent/test/bench_http.c:152,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/bench_http.c:156,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_http.c:158,1
    - Dst: evhttp_new
      Src: /src/libevent/test/bench_http.c:162,1
    - Dst: malloc
      Src: /src/libevent/test/bench_http.c:164,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_http.c:166,1
    - Dst: exit
      Src: /src/libevent/test/bench_http.c:167,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/bench_http.c:174,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_http.c:175,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/bench_http.c:177,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_http.c:178,1
    - Dst: fprintf
      Src: /src/libevent/test/bench_http.c:180,1
    - Dst: event_base_get_method
      Src: /src/libevent/test/bench_http.c:182,1
    - Dst: evhttp_bind_socket
      Src: /src/libevent/test/bench_http.c:184,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/bench_http.c:189,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/bench_http.c:192,1
    - Dst: WSACleanup
      Src: /src/libevent/test/bench_http.c:195,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 73
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 84
    functionDepth: 4
    functionLinenumber: 84
    functionLinenumberEnd: 200
    functionName: main
    functionSourceFile: /src/libevent/test/bench_http.c
    functionUses: 2
    functionsReached:
    - setbuf
    - event_base_get_method
    - event_config_new
    - evhttp_set_cb
    - exit
    - evhttp_bind_socket
    - WSACleanup
    - event_base_loopexit
    - event_base_new_with_config
    - event_base_dispatch
    - signal
    - event_config_set_flag
    - strtol
    - malloc
    - WSAStartup
    - fprintf
    - evhttp_new
    - evthread_use_windows_threads
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: THREAD_RETURN
    functionSourceFile: /src/libevent/test/regress_thread.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_RETURN()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: THREAD_SELF
    functionSourceFile: /src/libevent/test/regress_thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_SELF()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - threadvar
    - ','
    - fn
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: THREAD_START
    functionSourceFile: /src/libevent/test/regress_thread.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_START(threadvar, fn, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - th
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: THREAD_JOIN
    functionSourceFile: /src/libevent/test/regress_thread.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_JOIN(th)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: THREAD_RETURN
    functionSourceFile: /src/libevent/test/regress_thread.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_RETURN()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: THREAD_SELF
    functionSourceFile: /src/libevent/test/regress_thread.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_SELF()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - threadvar
    - ','
    - fn
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: THREAD_START
    functionSourceFile: /src/libevent/test/regress_thread.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_START(threadvar, fn, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - th
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: THREAD_JOIN
    functionSourceFile: /src/libevent/test/regress_thread.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_JOIN(th)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ssl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: SSL_SET_HOSTNAME
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_SET_HOSTNAME(ssl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_ssl.c:145,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_ssl.c:145,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_ssl.c:146,1
    - Dst: bufferevent_setfd
      Src: /src/libevent/test/regress_ssl.c:146,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_ssl.c:148,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_ssl.c:148,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_ssl.c:150,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_ssl.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - bev
    - filter
    argTypes:
    - struct bufferevent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 155
    functionName: bufferevent_ssl_check_fd
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_setfd
    - tt_fd_op
    - bufferevent_getfd
    linkageType: ''
    returnType: void
    signature: void bufferevent_ssl_check_fd(struct bufferevent *bev, int filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:159,1
    - Dst: event_pending
      Src: /src/libevent/test/regress_ssl.c:159,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:160,1
    - Dst: event_pending
      Src: /src/libevent/test/regress_ssl.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 156
    functionDepth: 4
    functionLinenumber: 156
    functionLinenumberEnd: 164
    functionName: bufferevent_ssl_check_freed
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    - event_pending
    linkageType: ''
    returnType: void
    signature: void bufferevent_ssl_check_freed(struct bufferevent *bev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_ssl.c:169,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_ssl.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 6
    functionLinenumber: 166
    functionLinenumberEnd: 171
    functionName: free_on_cb
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_free
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void free_on_cb(struct bufferevent *bev, void *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_ssl.c:176,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_ssl.c:184,1
    - Dst: atoi
      Src: /src/libevent/test/regress_ssl.c:187,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_ssl.c:189,1
    - Dst: free
      Src: /src/libevent/test/regress_ssl.c:190,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_ssl.c:191,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_ssl.c:194,1
    - Dst: SSL_renegotiate
      Src: /src/libevent/test/regress_ssl.c:199,1
    - Dst: bufferevent_ssl_get_ssl
      Src: /src/libevent/test/regress_ssl.c:199,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_ssl.c:203,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_ssl.c:203,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_ssl.c:205,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_ssl.c:206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 173
    functionDepth: 9
    functionLinenumber: 173
    functionLinenumberEnd: 209
    functionName: respond_to_number
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_output
    - TT_FAIL
    - bufferevent_get_input
    - SSL_renegotiate
    - bufferevent_ssl_get_ssl
    - bufferevent_free
    - TT_BLATHER
    - evbuffer_readln
    - evbuffer_add_printf
    - free
    - bufferevent_enable
    - atoi
    linkageType: ''
    returnType: void
    signature: void respond_to_number(struct bufferevent *bev, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_ssl.c:214,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_ssl.c:215,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_ssl.c:217,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_ssl.c:218,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_ssl.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 220
    functionName: done_writing_cb
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_output
    - TT_BLATHER
    - evbuffer_get_length
    - bufferevent_enable
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void done_writing_cb(struct bufferevent *bev, void *ctx)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_ssl.c:230,1
    - Dst: bufferevent_ssl_get_ssl
      Src: /src/libevent/test/regress_ssl.c:234,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:235,1
    - Dst: SSL_get1_peer_certificate
      Src: /src/libevent/test/regress_ssl.c:242,1
    - Dst: SSL_get_peer_certificate
      Src: /src/libevent/test/regress_ssl.c:244,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:247,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:249,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_ssl.c:253,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_ssl.c:257,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_ssl.c:257,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_ssl.c:259,1
    - Dst: bufferevent_ssl_check_fd
      Src: /src/libevent/test/regress_ssl.c:262,1
    - Dst: bufferevent_ssl_check_freed
      Src: /src/libevent/test/regress_ssl.c:265,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_ssl.c:267,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_ssl.c:269,1
    - Dst: bufferevent_ssl_check_fd
      Src: /src/libevent/test/regress_ssl.c:272,1
    - Dst: bufferevent_ssl_check_freed
      Src: /src/libevent/test/regress_ssl.c:275,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_ssl.c:277,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_ssl.c:279,1
    - Dst: bufferevent_ssl_check_fd
      Src: /src/libevent/test/regress_ssl.c:282,1
    - Dst: bufferevent_ssl_check_freed
      Src: /src/libevent/test/regress_ssl.c:285,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_ssl.c:287,1
    - Dst: X509_free
      Src: /src/libevent/test/regress_ssl.c:292,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 3
    argNames:
    - bev
    - what
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 222
    functionDepth: 9
    functionLinenumber: 222
    functionLinenumberEnd: 293
    functionName: eventcb
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 6
    functionsReached:
    - tt_assert
    - bufferevent_get_output
    - bufferevent_ssl_get_ssl
    - bufferevent_ssl_check_fd
    - bufferevent_ssl_check_freed
    - bufferevent_free
    - TT_BLATHER
    - event_base_loopexit
    - evbuffer_add_printf
    - SSL_get_peer_certificate
    - SSL_get1_peer_certificate
    - X509_free
    linkageType: ''
    returnType: void
    signature: void eventcb(struct bufferevent *bev, short what, void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_ssl_socket_new
      Src: /src/libevent/test/regress_ssl.c:305,1
    - Dst: bufferevent_ssl_socket_new
      Src: /src/libevent/test/regress_ssl.c:307,1
    - Dst: bufferevent_ssl_filter_new
      Src: /src/libevent/test/regress_ssl.c:310,1
    - Dst: bufferevent_ssl_filter_new
      Src: /src/libevent/test/regress_ssl.c:312,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_ssl.c:316,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_ssl.c:318,1
    - Dst: bufferevent_ssl_set_allow_dirty_shutdown
      Src: /src/libevent/test/regress_ssl.c:321,1
    - Dst: bufferevent_ssl_set_allow_dirty_shutdown
      Src: /src/libevent/test/regress_ssl.c:322,1
    - Dst: bufferevent_ssl_set_flags
      Src: /src/libevent/test/regress_ssl.c:325,1
    - Dst: bufferevent_ssl_set_flags
      Src: /src/libevent/test/regress_ssl.c:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 10
    argNames:
    - bev1_out
    - bev2_out
    - base
    - is_open
    - flags
    - ssl1
    - ssl2
    - fd_pair
    - underlying_pair
    - type
    argTypes:
    - struct bufferevent**
    - struct bufferevent**
    - struct event_base*
    - int
    - int
    - SSL*
    - SSL*
    - evutil_socket_t*
    - struct bufferevent**
    - enum regress_openssl_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 295
    functionDepth: 4
    functionLinenumber: 295
    functionLinenumberEnd: 328
    functionName: open_ssl_bufevs
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_ssl_socket_new
    - bufferevent_ssl_filter_new
    - bufferevent_setcb
    - bufferevent_ssl_set_allow_dirty_shutdown
    - bufferevent_ssl_set_flags
    linkageType: ''
    returnType: void
    signature: "void open_ssl_bufevs(struct bufferevent **bev1_out, struct bufferevent
      **bev2_out,\n    struct event_base *base, int is_open, int flags, SSL *ssl1,
      SSL *ssl2,\n    evutil_socket_t *fd_pair, struct bufferevent **underlying_pair,\n
      \   enum regress_openssl_type type)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SSL_new
      Src: /src/libevent/test/regress_ssl.c:362,1
    - Dst: get_ssl_ctx
      Src: /src/libevent/test/regress_ssl.c:362,1
    - Dst: SSL_SET_HOSTNAME
      Src: /src/libevent/test/regress_ssl.c:363,1
    - Dst: SSL_new
      Src: /src/libevent/test/regress_ssl.c:364,1
    - Dst: get_ssl_ctx
      Src: /src/libevent/test/regress_ssl.c:364,1
    - Dst: SSL_use_certificate
      Src: /src/libevent/test/regress_ssl.c:366,1
    - Dst: SSL_use_PrivateKey
      Src: /src/libevent/test/regress_ssl.c:367,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:373,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_ssl.c:376,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_ssl.c:378,1
    - Dst: open_ssl_bufevs
      Src: /src/libevent/test/regress_ssl.c:382,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_ssl.c:386,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_ssl.c:386,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_ssl.c:388,1
    - Dst: bufferevent_get_underlying
      Src: /src/libevent/test/regress_ssl.c:388,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_ssl.c:395,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_ssl.c:399,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_ssl.c:400,1
    - Dst: open_ssl_bufevs
      Src: /src/libevent/test/regress_ssl.c:402,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_ssl.c:407,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_ssl.c:408,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_ssl.c:411,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_ssl.c:411,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_ssl.c:413,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:415,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:416,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:420,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:421,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:423,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:425,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_ssl.c:429,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_ssl.c:430,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/test/regress_ssl.c:432,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_ssl.c:435,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_ssl.c:435,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_ssl.c:437,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:439,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:440,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:442,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:443,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:444,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_ssl.c:446,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 72
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 330
    functionDepth: 9
    functionLinenumber: 330
    functionLinenumberEnd: 451
    functionName: regress_bufferevent_openssl
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_output
    - bufferevent_free
    - bufferevent_set_timeouts
    - SSL_use_PrivateKey
    - SSL_use_certificate
    - open_ssl_bufevs
    - bufferevent_getfd
    - SSL_SET_HOSTNAME
    - bufferevent_disable
    - tt_ptr_op
    - get_ssl_ctx
    - tt_int_op
    - SSL_new
    - tt_fd_op
    - tt_assert
    - bufferevent_socket_new
    - bufferevent_get_underlying
    - evbuffer_add_printf
    - bufferevent_enable
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void regress_bufferevent_openssl(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_ssl.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 453
    functionDepth: 2
    functionLinenumber: 453
    functionLinenumberEnd: 458
    functionName: acceptcb_deferred
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_enable
    linkageType: ''
    returnType: void
    signature: void acceptcb_deferred(evutil_socket_t fd, short events, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_new
      Src: /src/libevent/test/regress_ssl.c:466,1
    - Dst: get_ssl_ctx
      Src: /src/libevent/test/regress_ssl.c:466,1
    - Dst: SSL_use_certificate
      Src: /src/libevent/test/regress_ssl.c:470,1
    - Dst: SSL_use_PrivateKey
      Src: /src/libevent/test/regress_ssl.c:471,1
    - Dst: bufferevent_ssl_socket_new
      Src: /src/libevent/test/regress_ssl.c:473,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:476,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_ssl.c:478,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_ssl.c:483,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_ssl.c:485,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_ssl.c:487,1
    - Dst: evconnlistener_disable
      Src: /src/libevent/test/regress_ssl.c:491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 5
    argNames:
    - listener
    - fd
    - addr
    - socklen
    - arg
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 495
    functionName: acceptcb
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evconnlistener_disable
    - event_base_once
    - SSL_use_PrivateKey
    - bufferevent_ssl_socket_new
    - SSL_use_certificate
    - bufferevent_setcb
    - get_ssl_ctx
    - bufferevent_enable
    - SSL_new
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: "void acceptcb(struct evconnlistener *listener, evutil_socket_t fd,\n
      \   struct sockaddr *addr, int socklen, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_ssl.c:522,1
    - Dst: htonl
      Src: /src/libevent/test/regress_ssl.c:524,1
    - Dst: memset
      Src: /src/libevent/test/regress_ssl.c:526,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_ssl.c:529,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:533,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:534,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_ssl.c:534,1
    - Dst: SSL_new
      Src: /src/libevent/test/regress_ssl.c:536,1
    - Dst: get_ssl_ctx
      Src: /src/libevent/test/regress_ssl.c:536,1
    - Dst: SSL_SET_HOSTNAME
      Src: /src/libevent/test/regress_ssl.c:537,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:538,1
    - Dst: bufferevent_ssl_socket_new
      Src: /src/libevent/test/regress_ssl.c:540,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:544,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_ssl.c:546,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:549,1
    - Dst: getsockname
      Src: /src/libevent/test/regress_ssl.c:549,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_ssl.c:549,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:551,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:552,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:554,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/test/regress_ssl.c:555,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_ssl.c:559,1
    - Dst: BIO_setup
      Src: /src/libevent/test/regress_ssl.c:560,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_ssl.c:562,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_ssl.c:562,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_ssl.c:563,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_ssl.c:565,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:567,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:568,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_ssl.c:570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 504
    functionDepth: 9
    functionLinenumber: 504
    functionLinenumberEnd: 571
    functionName: regress_bufferevent_openssl_connect
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_output
    - evconnlistener_new_bind
    - BIO_setup
    - bufferevent_setcb
    - SSL_SET_HOSTNAME
    - event_base_dispatch
    - memset
    - get_ssl_ctx
    - tt_int_op
    - bufferevent_socket_connect
    - SSL_new
    - tt_assert
    - evconnlistener_free
    - getsockname
    - bufferevent_ssl_socket_new
    - evbuffer_add_printf
    - evconnlistener_get_fd
    - bufferevent_enable
    - htonl
    - bufferevent_getfd
    linkageType: ''
    returnType: void
    signature: void regress_bufferevent_openssl_connect(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_ssl.c:589,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_ssl.c:590,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_ssl.c:591,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_ssl.c:595,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_ssl.c:597,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_ssl.c:598,1
    - Dst: event_base_loopbreak
      Src: /src/libevent/test/regress_ssl.c:600,1
    - Dst: bufferevent_get_base
      Src: /src/libevent/test/regress_ssl.c:600,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_ssl.c:604,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_ssl.c:607,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_ssl.c:612,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_ssl.c:613,1
    - Dst: evbuffer_add_buffer_reference
      Src: /src/libevent/test/regress_ssl.c:616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 585
    functionDepth: 7
    functionLinenumber: 585
    functionLinenumberEnd: 617
    functionName: wm_transfer
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_base
    - bufferevent_get_output
    - evbuffer_add_buffer_reference
    - bufferevent_get_input
    - TT_BLATHER
    - bufferevent_setcb
    - evbuffer_get_length
    - event_base_loopbreak
    - evbuffer_drain
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void wm_transfer(struct bufferevent *bev, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_ssl.c:622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 628
    functionName: wm_eventcb
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void wm_eventcb(struct bufferevent *bev, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evconnlistener_get_base
      Src: /src/libevent/test/regress_ssl.c:635,1
    - Dst: SSL_new
      Src: /src/libevent/test/regress_ssl.c:636,1
    - Dst: get_ssl_ctx
      Src: /src/libevent/test/regress_ssl.c:636,1
    - Dst: SSL_use_certificate
      Src: /src/libevent/test/regress_ssl.c:638,1
    - Dst: SSL_use_PrivateKey
      Src: /src/libevent/test/regress_ssl.c:639,1
    - Dst: bufferevent_ssl_socket_new
      Src: /src/libevent/test/regress_ssl.c:641,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:644,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_ssl.c:646,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/test/regress_ssl.c:649,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_ssl.c:650,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_ssl.c:651,1
    - Dst: evconnlistener_disable
      Src: /src/libevent/test/regress_ssl.c:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 5
    argNames:
    - listener
    - fd
    - addr
    - socklen
    - arg
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 629
    functionDepth: 3
    functionLinenumber: 629
    functionLinenumberEnd: 658
    functionName: wm_acceptcb
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evconnlistener_disable
    - SSL_use_PrivateKey
    - bufferevent_ssl_socket_new
    - TT_BLATHER
    - SSL_use_certificate
    - bufferevent_setcb
    - evconnlistener_get_base
    - bufferevent_setwatermark
    - get_ssl_ctx
    - bufferevent_enable
    - SSL_new
    linkageType: ''
    returnType: void
    signature: "void wm_acceptcb(struct evconnlistener *listener, evutil_socket_t
      fd,\n    struct sockaddr *addr, int socklen, void *arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_ssl.c:679,1
    - Dst: htonl
      Src: /src/libevent/test/regress_ssl.c:681,1
    - Dst: memset
      Src: /src/libevent/test/regress_ssl.c:683,1
    - Dst: memset
      Src: /src/libevent/test/regress_ssl.c:689,1
    - Dst: memset
      Src: /src/libevent/test/regress_ssl.c:690,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_ssl.c:694,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_ssl.c:695,1
    - Dst: calloc
      Src: /src/libevent/test/regress_ssl.c:696,1
    - Dst: memset
      Src: /src/libevent/test/regress_ssl.c:697,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_ssl.c:698,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_ssl.c:699,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_ssl.c:704,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_ssl.c:714,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:718,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:719,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_ssl.c:719,1
    - Dst: SSL_new
      Src: /src/libevent/test/regress_ssl.c:721,1
    - Dst: get_ssl_ctx
      Src: /src/libevent/test/regress_ssl.c:721,1
    - Dst: SSL_SET_HOSTNAME
      Src: /src/libevent/test/regress_ssl.c:722,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:723,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_ssl.c:726,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:727,1
    - Dst: bufferevent_ssl_filter_new
      Src: /src/libevent/test/regress_ssl.c:728,1
    - Dst: bufferevent_ssl_socket_new
      Src: /src/libevent/test/regress_ssl.c:731,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:736,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/test/regress_ssl.c:742,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_ssl.c:743,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:745,1
    - Dst: getsockname
      Src: /src/libevent/test/regress_ssl.c:745,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_ssl.c:745,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:748,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/test/regress_ssl.c:748,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:749,1
    - Dst: evbuffer_add_buffer_reference
      Src: /src/libevent/test/regress_ssl.c:749,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_ssl.c:749,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_ssl.c:750,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_ssl.c:750,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_ssl.c:752,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:754,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_ssl.c:755,1
    - Dst: free
      Src: /src/libevent/test/regress_ssl.c:758,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_ssl.c:759,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_ssl.c:760,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_ssl.c:761,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_ssl.c:762,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_ssl.c:763,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_ssl.c:767,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 59
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 659
    functionDepth: 7
    functionLinenumber: 659
    functionLinenumberEnd: 768
    functionName: regress_bufferevent_openssl_wm
    functionSourceFile: /src/libevent/test/regress_ssl.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_output
    - evbuffer_add
    - calloc
    - evbuffer_free
    - bufferevent_free
    - evbuffer_new
    - evconnlistener_new_bind
    - bufferevent_ssl_filter_new
    - TT_BLATHER
    - bufferevent_setcb
    - htonl
    - bufferevent_setwatermark
    - event_base_loop
    - SSL_SET_HOSTNAME
    - memset
    - get_ssl_ctx
    - tt_int_op
    - bufferevent_socket_connect
    - SSL_new
    - tt_assert
    - bufferevent_socket_new
    - evbuffer_add_buffer_reference
    - evconnlistener_free
    - getsockname
    - bufferevent_ssl_socket_new
    - free
    - bufferevent_enable
    - evconnlistener_get_fd
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void regress_bufferevent_openssl_wm(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/test/test-dumpevents.c:44,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/test/test-dumpevents.c:44,1
    - Dst: fprintf
      Src: /src/libevent/test/test-dumpevents.c:45,1
    - Dst: perror
      Src: /src/libevent/test/test-dumpevents.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: sock_perror
    functionSourceFile: /src/libevent/test/test-dumpevents.c
    functionUses: 0
    functionsReached:
    - perror
    - fprintf
    - EVUTIL_SOCKET_ERROR
    - evutil_socket_error_to_string
    linkageType: ''
    returnType: void
    signature: void sock_perror(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: callback1
    functionSourceFile: /src/libevent/test/test-dumpevents.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void callback1(evutil_socket_t fd, short events, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: callback2
    functionSourceFile: /src/libevent/test/test-dumpevents.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void callback2(evutil_socket_t fd, short events, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/libevent/test/test-dumpevents.c:85,1
    - Dst: WSAStartup
      Src: /src/libevent/test/test-dumpevents.c:87,1
    - Dst: evutil_make_internal_pipe_
      Src: /src/libevent/test/test-dumpevents.c:96,1
    - Dst: evutil_make_internal_pipe_
      Src: /src/libevent/test/test-dumpevents.c:97,1
    - Dst: sock_perror
      Src: /src/libevent/test/test-dumpevents.c:98,1
    - Dst: event_base_new
      Src: /src/libevent/test/test-dumpevents.c:102,1
    - Dst: fprintf
      Src: /src/libevent/test/test-dumpevents.c:103,1
    - Dst: event_base_init_common_timeout
      Src: /src/libevent/test/test-dumpevents.c:107,1
    - Dst: event_base_init_common_timeout
      Src: /src/libevent/test/test-dumpevents.c:108,1
    - Dst: event_new
      Src: /src/libevent/test/test-dumpevents.c:110,1
    - Dst: event_new
      Src: /src/libevent/test/test-dumpevents.c:111,1
    - Dst: event_new
      Src: /src/libevent/test/test-dumpevents.c:112,1
    - Dst: event_new
      Src: /src/libevent/test/test-dumpevents.c:113,1
    - Dst: evtimer_new
      Src: /src/libevent/test/test-dumpevents.c:116,1
    - Dst: evtimer_new
      Src: /src/libevent/test/test-dumpevents.c:117,1
    - Dst: evtimer_new
      Src: /src/libevent/test/test-dumpevents.c:118,1
    - Dst: event_new
      Src: /src/libevent/test/test-dumpevents.c:119,1
    - Dst: event_new
      Src: /src/libevent/test/test-dumpevents.c:120,1
    - Dst: event_new
      Src: /src/libevent/test/test-dumpevents.c:121,1
    - Dst: event_new
      Src: /src/libevent/test/test-dumpevents.c:124,1
    - Dst: event_new
      Src: /src/libevent/test/test-dumpevents.c:125,1
    - Dst: evsignal_new
      Src: /src/libevent/test/test-dumpevents.c:128,1
    - Dst: event_add
      Src: /src/libevent/test/test-dumpevents.c:130,1
    - Dst: event_add
      Src: /src/libevent/test/test-dumpevents.c:131,1
    - Dst: event_add
      Src: /src/libevent/test/test-dumpevents.c:132,1
    - Dst: event_add
      Src: /src/libevent/test/test-dumpevents.c:133,1
    - Dst: event_add
      Src: /src/libevent/test/test-dumpevents.c:135,1
    - Dst: event_add
      Src: /src/libevent/test/test-dumpevents.c:136,1
    - Dst: event_add
      Src: /src/libevent/test/test-dumpevents.c:137,1
    - Dst: event_add
      Src: /src/libevent/test/test-dumpevents.c:138,1
    - Dst: event_add
      Src: /src/libevent/test/test-dumpevents.c:139,1
    - Dst: event_add
      Src: /src/libevent/test/test-dumpevents.c:140,1
    - Dst: event_active
      Src: /src/libevent/test/test-dumpevents.c:142,1
    - Dst: event_active
      Src: /src/libevent/test/test-dumpevents.c:143,1
    - Dst: event_active
      Src: /src/libevent/test/test-dumpevents.c:144,1
    - Dst: event_add
      Src: /src/libevent/test/test-dumpevents.c:146,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/test-dumpevents.c:148,1
    - Dst: puts
      Src: /src/libevent/test/test-dumpevents.c:149,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:150,1
    - Dst: puts
      Src: /src/libevent/test/test-dumpevents.c:151,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:152,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:153,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:154,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:155,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:156,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:157,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:158,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:159,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:160,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:161,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:162,1
    - Dst: puts
      Src: /src/libevent/test/test-dumpevents.c:164,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:165,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:166,1
    - Dst: printf
      Src: /src/libevent/test/test-dumpevents.c:167,1
    - Dst: puts
      Src: /src/libevent/test/test-dumpevents.c:169,1
    - Dst: event_base_dump_events
      Src: /src/libevent/test/test-dumpevents.c:170,1
    - Dst: event_free
      Src: /src/libevent/test/test-dumpevents.c:173,1
    - Dst: event_base_free
      Src: /src/libevent/test/test-dumpevents.c:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 66
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 66
    functionDepth: 6
    functionLinenumber: 66
    functionLinenumberEnd: 178
    functionName: main
    functionSourceFile: /src/libevent/test/test-dumpevents.c
    functionUses: 2
    functionsReached:
    - event_base_init_common_timeout
    - evutil_gettimeofday
    - MAKEWORD
    - event_active
    - event_base_free
    - evutil_make_internal_pipe_
    - event_new
    - evsignal_new
    - printf
    - sock_perror
    - evtimer_new
    - puts
    - event_add
    - event_free
    - event_base_dump_events
    - event_base_new
    - WSAStartup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/test/test-kq-collision.c:58,1
    - Dst: exit
      Src: /src/libevent/test/test-kq-collision.c:59,1
    - Dst: printf
      Src: /src/libevent/test/test-kq-collision.c:63,1
    - Dst: exit
      Src: /src/libevent/test/test-kq-collision.c:64,1
    - Dst: read
      Src: /src/libevent/test/test-kq-collision.c:67,1
    - Dst: printf
      Src: /src/libevent/test/test-kq-collision.c:69,1
    - Dst: exit
      Src: /src/libevent/test/test-kq-collision.c:70,1
    - Dst: strcmp
      Src: /src/libevent/test/test-kq-collision.c:73,1
    - Dst: printf
      Src: /src/libevent/test/test-kq-collision.c:74,1
    - Dst: exit
      Src: /src/libevent/test/test-kq-collision.c:75,1
    - Dst: printf
      Src: /src/libevent/test/test-kq-collision.c:77,1
    - Dst: assert
      Src: /src/libevent/test/test-kq-collision.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts:
    - condition: (read_called == 0)
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/libevent/test/test-kq-collision.c
    constantsTouched: []
    func_position:
      end: 80
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 80
    functionName: read_cb
    functionSourceFile: /src/libevent/test/test-kq-collision.c
    functionUses: 0
    functionsReached:
    - exit
    - strcmp
    - printf
    - read
    - assert
    linkageType: ''
    returnType: void
    signature: void read_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopcontinue
      Src: /src/libevent/test/test-kq-collision.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: trigger_kq
    functionSourceFile: /src/libevent/test/test-kq-collision.c
    functionUses: 0
    functionsReached:
    - event_base_loopcontinue
    linkageType: ''
    returnType: void
    signature: 'void *

      trigger_kq(void *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_create
      Src: /src/libevent/test/test-kq-collision.c:101,1
    - Dst: pthread_join
      Src: /src/libevent/test/test-kq-collision.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: notify_cb
    functionSourceFile: /src/libevent/test/test-kq-collision.c
    functionUses: 0
    functionsReached:
    - pthread_create
    - pthread_join
    linkageType: ''
    returnType: void
    signature: void notify_cb(evutil_socket_t fd, short events, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/libevent/test/test-kq-collision.c:110,1
    - Dst: strlen
      Src: /src/libevent/test/test-kq-collision.c:110,1
    - Dst: printf
      Src: /src/libevent/test/test-kq-collision.c:111,1
    - Dst: exit
      Src: /src/libevent/test/test-kq-collision.c:112,1
    - Dst: printf
      Src: /src/libevent/test/test-kq-collision.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 115
    functionName: write_cb
    functionSourceFile: /src/libevent/test/test-kq-collision.c
    functionUses: 1
    functionsReached:
    - strlen
    - write
    - exit
    - printf
    linkageType: ''
    returnType: void
    signature: void write_cb(evutil_socket_t fd, short events, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopbreak
      Src: /src/libevent/test/test-kq-collision.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sock
    - what
    - arg
    argTypes:
    - int
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: exit_cb
    functionSourceFile: /src/libevent/test/test-kq-collision.c
    functionUses: 0
    functionsReached:
    - event_base_loopbreak
    linkageType: ''
    returnType: void
    signature: void exit_cb(int sock, short what, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/libevent/test/test-kq-collision.c:137,1
    - Dst: printf
      Src: /src/libevent/test/test-kq-collision.c:139,1
    - Dst: close
      Src: /src/libevent/test/test-kq-collision.c:144,1
    - Dst: close
      Src: /src/libevent/test/test-kq-collision.c:145,1
    - Dst: dup2
      Src: /src/libevent/test/test-kq-collision.c:152,1
    - Dst: printf
      Src: /src/libevent/test/test-kq-collision.c:153,1
    - Dst: close
      Src: /src/libevent/test/test-kq-collision.c:156,1
    - Dst: evthread_use_pthreads
      Src: /src/libevent/test/test-kq-collision.c:162,1
    - Dst: event_config_new
      Src: /src/libevent/test/test-kq-collision.c:164,1
    - Dst: event_get_supported_methods
      Src: /src/libevent/test/test-kq-collision.c:165,1
    - Dst: strcmp
      Src: /src/libevent/test/test-kq-collision.c:167,1
    - Dst: event_config_avoid_method
      Src: /src/libevent/test/test-kq-collision.c:168,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/test-kq-collision.c:170,1
    - Dst: event_config_free
      Src: /src/libevent/test/test-kq-collision.c:171,1
    - Dst: evtimer_new
      Src: /src/libevent/test/test-kq-collision.c:174,1
    - Dst: evtimer_add
      Src: /src/libevent/test/test-kq-collision.c:177,1
    - Dst: evtimer_new
      Src: /src/libevent/test/test-kq-collision.c:178,1
    - Dst: evtimer_add
      Src: /src/libevent/test/test-kq-collision.c:181,1
    - Dst: evtimer_new
      Src: /src/libevent/test/test-kq-collision.c:182,1
    - Dst: evtimer_add
      Src: /src/libevent/test/test-kq-collision.c:185,1
    - Dst: event_new
      Src: /src/libevent/test/test-kq-collision.c:188,1
    - Dst: event_self_cbarg
      Src: /src/libevent/test/test-kq-collision.c:188,1
    - Dst: event_add
      Src: /src/libevent/test/test-kq-collision.c:189,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/test-kq-collision.c:190,1
    - Dst: assert
      Src: /src/libevent/test/test-kq-collision.c:193,1
    - Dst: event_free
      Src: /src/libevent/test/test-kq-collision.c:196,1
    - Dst: event_free
      Src: /src/libevent/test/test-kq-collision.c:197,1
    - Dst: event_free
      Src: /src/libevent/test/test-kq-collision.c:198,1
    - Dst: event_free
      Src: /src/libevent/test/test-kq-collision.c:199,1
    - Dst: close
      Src: /src/libevent/test/test-kq-collision.c:200,1
    - Dst: close
      Src: /src/libevent/test/test-kq-collision.c:201,1
    - Dst: event_base_free
      Src: /src/libevent/test/test-kq-collision.c:202,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 52
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (read_called == 1)
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/libevent/test/test-kq-collision.c
    constantsTouched: []
    func_position:
      end: 204
      start: 124
    functionDepth: 6
    functionLinenumber: 124
    functionLinenumberEnd: 204
    functionName: main
    functionSourceFile: /src/libevent/test/test-kq-collision.c
    functionUses: 2
    functionsReached:
    - evtimer_add
    - event_base_free
    - printf
    - event_add
    - evthread_use_pthreads
    - event_free
    - pipe
    - event_config_avoid_method
    - dup2
    - assert
    - close
    - event_get_supported_methods
    - evtimer_new
    - event_config_free
    - event_self_cbarg
    - event_config_new
    - event_new
    - strcmp
    - event_base_new_with_config
    - event_base_dispatch
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: test_weakrand
    functionSourceFile: /src/libevent/test/regress.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_weakrand()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: BASIC
    functionSourceFile: /src/libevent/test/regress.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BASIC(name,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: LEGACY
    functionSourceFile: /src/libevent/test/regress.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEGACY(name,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ai
    - ','
    - str
    - ','
    - s
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: test_ai_eq
    functionSourceFile: /src/libevent/test/regress.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_ai_eq(ai, str, s, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - tv1
    - ','
    - tv2
    - ','
    - diff
    - ','
    - tolerance
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: test_timeval_diff_leq
    functionSourceFile: /src/libevent/test/regress.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_timeval_diff_leq(tv1, tv2, diff, tolerance)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tv1
    - ','
    - tv2
    - ','
    - diff
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: test_timeval_diff_eq
    functionSourceFile: /src/libevent/test/regress.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_timeval_diff_eq(tv1, tv2, diff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/test/regress_thread.c:73,1
    - Dst: EVTHREAD_COND_BROADCAST
      Src: /src/libevent/test/regress_thread.c:74,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_thread.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: wake_all_timeout
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - EVLOCK_LOCK
    - EVTHREAD_COND_BROADCAST
    - EVLOCK_UNLOCK
    linkageType: ''
    returnType: void
    signature: void wake_all_timeout(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/test/regress_thread.c:83,1
    - Dst: EVTHREAD_COND_SIGNAL
      Src: /src/libevent/test/regress_thread.c:84,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_thread.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: wake_one_timeout
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - EVTHREAD_COND_SIGNAL
    - EVLOCK_LOCK
    - EVLOCK_UNLOCK
    linkageType: ''
    returnType: void
    signature: void wake_one_timeout(evutil_socket_t fd, short what, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/test/regress_thread.c:101,1
    - Dst: EVTHREAD_ALLOC_COND
      Src: /src/libevent/test/regress_thread.c:102,1
    - Dst: assert
      Src: /src/libevent/test/regress_thread.c:103,1
    - Dst: assert
      Src: /src/libevent/test/regress_thread.c:104,1
    - Dst: evtimer_assign
      Src: /src/libevent/test/regress_thread.c:106,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress_thread.c:109,1
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/test/regress_thread.c:113,1
    - Dst: assert
      Src: /src/libevent/test/regress_thread.c:116,1
    - Dst: evtimer_add
      Src: /src/libevent/test/regress_thread.c:116,1
    - Dst: assert
      Src: /src/libevent/test/regress_thread.c:118,1
    - Dst: EVTHREAD_COND_WAIT
      Src: /src/libevent/test/regress_thread.c:118,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_thread.c:119,1
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/test/regress_thread.c:121,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_thread.c:123,1
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/test/regress_thread.c:127,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_thread.c:129,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_thread.c:130,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/test/regress_thread.c:132,1
    - Dst: EVTHREAD_FREE_COND
      Src: /src/libevent/test/regress_thread.c:133,1
    - Dst: THREAD_RETURN
      Src: /src/libevent/test/regress_thread.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts:
    - condition: (evtimer_add(&ev, &tv) == 0)
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/libevent/test/regress_thread.c
    - condition: (cw.lock)
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/libevent/test/regress_thread.c
    - condition: (cw.cond)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/libevent/test/regress_thread.c
    - condition: (EVTHREAD_COND_WAIT(cw.cond, cw.lock) == 0)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/libevent/test/regress_thread.c
    constantsTouched: []
    func_position:
      end: 136
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 136
    functionName: basic_thread
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - EVTHREAD_ALLOC_LOCK
    - evtimer_assign
    - EVTHREAD_FREE_COND
    - EVTHREAD_ALLOC_COND
    - evtimer_add
    - evutil_timerclear
    - EVLOCK_UNLOCK
    - EVTHREAD_COND_WAIT
    - event_base_loopexit
    - THREAD_RETURN
    - EVTHREAD_FREE_LOCK
    - assert
    - EVLOCK_LOCK
    linkageType: ''
    returnType: THREAD_FN
    signature: THREAD_FN basic_thread(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_thread.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 151
    functionName: sigchld_cb
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: void sigchld_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: notify_fd_cb
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void notify_fd_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/test/regress_thread.c:270,1
    - Dst: EVTHREAD_COND_WAIT_TIMED
      Src: /src/libevent/test/regress_thread.c:272,1
    - Dst: EVTHREAD_COND_WAIT
      Src: /src/libevent/test/regress_thread.c:275,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_thread.c:277,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_thread.c:279,1
    - Dst: THREAD_RETURN
      Src: /src/libevent/test/regress_thread.c:283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 284
    functionName: wait_for_condition
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - EVLOCK_UNLOCK
    - EVTHREAD_COND_WAIT
    - EVTHREAD_COND_WAIT_TIMED
    - THREAD_RETURN
    - EVLOCK_LOCK
    linkageType: ''
    returnType: THREAD_FN
    signature: THREAD_FN wait_for_condition(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/test/regress_thread.c:306,1
    - Dst: EVTHREAD_ALLOC_COND
      Src: /src/libevent/test/regress_thread.c:307,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_thread.c:308,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_thread.c:309,1
    - Dst: memset
      Src: /src/libevent/test/regress_thread.c:311,1
    - Dst: memcpy
      Src: /src/libevent/test/regress_thread.c:316,1
    - Dst: memcpy
      Src: /src/libevent/test/regress_thread.c:317,1
    - Dst: evtimer_assign
      Src: /src/libevent/test/regress_thread.c:319,1
    - Dst: evtimer_assign
      Src: /src/libevent/test/regress_thread.c:320,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_thread.c:322,1
    - Dst: THREAD_START
      Src: /src/libevent/test/regress_thread.c:326,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_thread.c:330,1
    - Dst: event_add
      Src: /src/libevent/test/regress_thread.c:330,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_thread.c:331,1
    - Dst: event_add
      Src: /src/libevent/test/regress_thread.c:331,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_thread.c:334,1
    - Dst: THREAD_JOIN
      Src: /src/libevent/test/regress_thread.c:338,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_thread.c:343,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_thread.c:344,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_thread.c:350,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_thread.c:352,1
    - Dst: evutil_timerisset
      Src: /src/libevent/test/regress_thread.c:353,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/regress_thread.c:355,1
    - Dst: timeval_msec_diff
      Src: /src/libevent/test/regress_thread.c:357,1
    - Dst: timeval_msec_diff
      Src: /src/libevent/test/regress_thread.c:359,1
    - Dst: labs
      Src: /src/libevent/test/regress_thread.c:361,1
    - Dst: labs
      Src: /src/libevent/test/regress_thread.c:361,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_thread.c:362,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_thread.c:366,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_thread.c:371,1
    - Dst: evutil_timeradd
      Src: /src/libevent/test/regress_thread.c:374,1
    - Dst: test_timeval_diff_leq
      Src: /src/libevent/test/regress_thread.c:375,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_thread.c:378,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_thread.c:379,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/test/regress_thread.c:382,1
    - Dst: EVTHREAD_FREE_COND
      Src: /src/libevent/test/regress_thread.c:383,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 61
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 286
    functionDepth: 3
    functionLinenumber: 286
    functionLinenumberEnd: 384
    functionName: thread_conditions_simple
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - labs
    - test_timeval_diff_leq
    - event_add
    - THREAD_JOIN
    - evutil_gettimeofday
    - EVTHREAD_ALLOC_COND
    - TT_BLATHER
    - EVTHREAD_FREE_LOCK
    - memcpy
    - THREAD_START
    - evutil_timeradd
    - evutil_timerisset
    - TT_FAIL
    - memset
    - tt_int_op
    - EVTHREAD_ALLOC_LOCK
    - tt_assert
    - evtimer_assign
    - EVTHREAD_FREE_COND
    - evutil_timersub
    - timeval_msec_diff
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void thread_conditions_simple(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress_thread.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ms
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 396
    functionName: SLEEP_MS
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - evutil_usleep_
    linkageType: ''
    returnType: void
    signature: void SLEEP_MS(int ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLEEP_MS
      Src: /src/libevent/test/regress_thread.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cb
    - arg
    argTypes:
    - struct event_callback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 414
    functionName: deferred_callback
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - SLEEP_MS
    linkageType: ''
    returnType: void
    signature: void deferred_callback(struct event_callback *cb, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_deferred_cb_init_
      Src: /src/libevent/test/regress_thread.c:423,1
    - Dst: event_deferred_cb_schedule_
      Src: /src/libevent/test/regress_thread.c:425,1
    - Dst: SLEEP_MS
      Src: /src/libevent/test/regress_thread.c:426,1
    - Dst: THREAD_RETURN
      Src: /src/libevent/test/regress_thread.c:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 416
    functionDepth: 4
    functionLinenumber: 416
    functionLinenumberEnd: 430
    functionName: load_deferred_queue
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - SLEEP_MS
    - event_deferred_cb_init_
    - event_deferred_cb_schedule_
    - THREAD_RETURN
    linkageType: ''
    returnType: THREAD_FN
    signature: THREAD_FN load_deferred_queue(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_thread.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 436
    functionName: timer_callback
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 1
    functionsReached:
    - evutil_gettimeofday
    linkageType: ''
    returnType: void
    signature: void timer_callback(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: THREAD_START
      Src: /src/libevent/test/regress_thread.c:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 447
    functionName: start_threads_callback
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - THREAD_START
    linkageType: ''
    returnType: void
    signature: void start_threads_callback(evutil_socket_t fd, short what, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_config_new
      Src: /src/libevent/test/regress_thread.c:459,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_thread.c:460,1
    - Dst: event_config_set_max_dispatch_interval
      Src: /src/libevent/test/regress_thread.c:461,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/test/regress_thread.c:463,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_thread.c:464,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_thread.c:469,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_thread.c:470,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_thread.c:472,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_thread.c:474,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/regress_thread.c:476,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_thread.c:477,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_thread.c:480,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_thread.c:484,1
    - Dst: THREAD_JOIN
      Src: /src/libevent/test/regress_thread.c:488,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_thread.c:490,1
    - Dst: event_config_free
      Src: /src/libevent/test/regress_thread.c:492,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 449
    functionDepth: 6
    functionLinenumber: 449
    functionLinenumberEnd: 493
    functionName: thread_deferred_cb_skew
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evutil_gettimeofday
    - event_config_new
    - event_base_free
    - event_base_once
    - event_config_set_max_dispatch_interval
    - TT_BLATHER
    - evutil_timersub
    - event_base_new_with_config
    - THREAD_JOIN
    - event_config_free
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void thread_deferred_cb_skew(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_thread.c:501,1
    - Dst: event_base_loopbreak
      Src: /src/libevent/test/regress_thread.c:503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 505
    functionName: note_time_cb
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - event_base_loopbreak
    linkageType: ''
    returnType: void
    signature: void note_time_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SLEEP_MS
      Src: /src/libevent/test/regress_thread.c:510,1
    - Dst: event_active
      Src: /src/libevent/test/regress_thread.c:511,1
    - Dst: SLEEP_MS
      Src: /src/libevent/test/regress_thread.c:512,1
    - Dst: event_active
      Src: /src/libevent/test/regress_thread.c:513,1
    - Dst: SLEEP_MS
      Src: /src/libevent/test/regress_thread.c:514,1
    - Dst: event_add
      Src: /src/libevent/test/regress_thread.c:516,1
    - Dst: event_add
      Src: /src/libevent/test/regress_thread.c:518,1
    - Dst: SLEEP_MS
      Src: /src/libevent/test/regress_thread.c:519,1
    - Dst: event_active
      Src: /src/libevent/test/regress_thread.c:520,1
    - Dst: THREAD_RETURN
      Src: /src/libevent/test/regress_thread.c:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 506
    functionDepth: 4
    functionLinenumber: 506
    functionLinenumberEnd: 523
    functionName: register_events_subthread
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - SLEEP_MS
    - event_add
    - event_active
    - THREAD_RETURN
    linkageType: ''
    returnType: THREAD_FN
    signature: THREAD_FN register_events_subthread(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_thread.c:534,1
    - Dst: event_assign
      Src: /src/libevent/test/regress_thread.c:536,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_thread.c:540,1
    - Dst: THREAD_START
      Src: /src/libevent/test/regress_thread.c:541,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_thread.c:542,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_thread.c:543,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_thread.c:544,1
    - Dst: event_base_got_break
      Src: /src/libevent/test/regress_thread.c:544,1
    - Dst: THREAD_JOIN
      Src: /src/libevent/test/regress_thread.c:545,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/regress_thread.c:549,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_thread.c:551,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress_thread.c:553,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress_thread.c:554,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress_thread.c:555,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress_thread.c:556,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress_thread.c:557,1
    - Dst: test_timeval_diff_eq
      Src: /src/libevent/test/regress_thread.c:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 525
    functionDepth: 6
    functionLinenumber: 525
    functionLinenumberEnd: 562
    functionName: thread_no_events
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evutil_gettimeofday
    - TT_BLATHER
    - event_assign
    - memset
    - evutil_timersub
    - THREAD_JOIN
    - event_base_loop
    - THREAD_START
    - event_base_got_break
    - test_timeval_diff_eq
    linkageType: ''
    returnType: void
    signature: void thread_no_events(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_new
      Src: /src/libevent/test/regress_thread.c:572,1
    - Dst: assert
      Src: /src/libevent/test/regress_thread.c:573,1
    - Dst: event_assign
      Src: /src/libevent/test/regress_thread.c:574,1
    - Dst: event_add
      Src: /src/libevent/test/regress_thread.c:575,1
    - Dst: event_del
      Src: /src/libevent/test/regress_thread.c:576,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_thread.c:577,1
    - Dst: THREAD_RETURN
      Src: /src/libevent/test/regress_thread.c:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts:
    - condition: (base)
      pos:
        line_end: 572
        line_start: 572
        source_file: /src/libevent/test/regress_thread.c
    constantsTouched: []
    func_position:
      end: 579
      start: 566
    functionDepth: 6
    functionLinenumber: 566
    functionLinenumberEnd: 579
    functionName: create_base_thread
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - event_del
    - event_base_free
    - event_assign
    - THREAD_RETURN
    - event_add
    - event_base_new
    - assert
    linkageType: ''
    returnType: THREAD_FN
    signature: THREAD_FN create_base_thread(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: THREAD_START
      Src: /src/libevent/test/regress_thread.c:588,1
    - Dst: THREAD_JOIN
      Src: /src/libevent/test/regress_thread.c:590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 591
    functionName: thread_debug_mode_too_late_race
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached:
    - THREAD_START
    - THREAD_JOIN
    linkageType: ''
    returnType: void
    signature: void thread_debug_mode_too_late_race(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 596
    functionName: TEST
    functionSourceFile: /src/libevent/test/regress_thread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST(name, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: ARRAY_SIZE
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - address
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: REPEAT_2
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPEAT_2(address)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - address
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: REPEAT_4
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPEAT_4(address)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - address
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: REPEAT_8
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPEAT_8(address)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - address
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: REPEAT_16
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPEAT_16(address)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - address
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: REPEAT_32
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPEAT_32(address)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - address
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: REPEAT_64
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPEAT_64(address)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - address
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: REPEAT_128
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPEAT_128(address)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - address
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: REPEAT_256
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPEAT_256(address)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/test/regress_dns.c:124,1
    - Dst: printf
      Src: /src/libevent/test/regress_dns.c:130,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:134,1
    - Dst: evutil_inet_ntop
      Src: /src/libevent/test/regress_dns.c:146,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:148,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:150,1
    - Dst: strerror
      Src: /src/libevent/test/regress_dns.c:150,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:162,1
    - Dst: inet_ntoa
      Src: /src/libevent/test/regress_dns.c:162,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:170,1
    - Dst: event_loopexit
      Src: /src/libevent/test/regress_dns.c:180,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_dns.c:182,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 50
    argCount: 6
    argNames:
    - result
    - type
    - count
    - ttl
    - addresses
    - arg
    argTypes:
    - int
    - char
    - int
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 183
    functionName: dns_gethostbyname_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - evutil_inet_ntop
    - inet_ntoa
    - event_loopexit
    - TT_BLATHER
    - printf
    - event_base_loopexit
    - strerror
    linkageType: ''
    returnType: void
    signature: "void dns_gethostbyname_cb(int result, char type, int count, int ttl,\n
      \   void *addresses, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:189,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_dns.c:190,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 185
    functionDepth: 10
    functionLinenumber: 185
    functionLinenumberEnd: 196
    functionName: dns_gethostbyname
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_dispatch
    - tt_int_op
    - evdns_resolve_ipv4
    linkageType: ''
    returnType: void
    signature: void dns_gethostbyname(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_resolve_ipv6
      Src: /src/libevent/test/regress_dns.c:202,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_dns.c:203,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_dns.c:206,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 198
    functionDepth: 10
    functionLinenumber: 198
    functionLinenumberEnd: 213
    functionName: dns_gethostbyname6
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - evdns_resolve_ipv6
    - event_dispatch
    - tt_int_op
    - tt_skip
    linkageType: ''
    returnType: void
    signature: void dns_gethostbyname6(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:219,1
    - Dst: evdns_resolve_reverse
      Src: /src/libevent/test/regress_dns.c:221,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_dns.c:222,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 215
    functionDepth: 10
    functionLinenumber: 215
    functionLinenumberEnd: 228
    functionName: dns_gethostbyaddr
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_dispatch
    - evdns_resolve_reverse
    - tt_int_op
    - htonl
    linkageType: ''
    returnType: void
    signature: void dns_gethostbyaddr(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_base_new
      Src: /src/libevent/test/regress_dns.c:234,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:235,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:238,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:239,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:240,1
    - Dst: evdns_base_resolve_reverse
      Src: /src/libevent/test/regress_dns.c:243,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:245,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:247,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:249,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:253,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_dns.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 230
    functionDepth: 9
    functionLinenumber: 230
    functionLinenumberEnd: 256
    functionName: dns_resolve_reverse
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 1
    functionsReached:
    - tt_assert
    - evdns_base_resolve_reverse
    - event_base_free
    - evdns_base_free
    - evdns_base_new
    - event_base_new
    - tt_int_op
    - htonl
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void dns_resolve_reverse(void *ptr)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:275,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:278,1
    - Dst: evdns_server_request_add_a_reply
      Src: /src/libevent/test/regress_dns.c:279,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:285,1
    - Dst: evdns_server_request_add_aaaa_reply
      Src: /src/libevent/test/regress_dns.c:287,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:293,1
    - Dst: evdns_server_request_add_ptr_reply
      Src: /src/libevent/test/regress_dns.c:294,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:300,1
    - Dst: evdns_server_request_add_ptr_reply
      Src: /src/libevent/test/regress_dns.c:301,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:308,1
    - Dst: evdns_server_request_drop
      Src: /src/libevent/test/regress_dns.c:309,1
    - Dst: printf
      Src: /src/libevent/test/regress_dns.c:313,1
    - Dst: evdns_server_request_respond
      Src: /src/libevent/test/regress_dns.c:318,1
    - Dst: printf
      Src: /src/libevent/test/regress_dns.c:320,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 37
    argCount: 2
    argNames:
    - req
    - data
    argTypes:
    - struct evdns_server_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 260
    functionDepth: 6
    functionLinenumber: 260
    functionLinenumberEnd: 323
    functionName: dns_server_request_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - evutil_ascii_strcasecmp
    - evdns_server_request_drop
    - evdns_server_request_respond
    - printf
    - htonl
    - evdns_server_request_add_aaaa_reply
    - evdns_server_request_add_ptr_reply
    - evdns_server_request_add_a_reply
    linkageType: ''
    returnType: void
    signature: void dns_server_request_cb(struct evdns_server_request *req, void *data)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/test/regress_dns.c:331,1
    - Dst: printf
      Src: /src/libevent/test/regress_dns.c:338,1
    - Dst: printf
      Src: /src/libevent/test/regress_dns.c:343,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:350,1
    - Dst: printf
      Src: /src/libevent/test/regress_dns.c:351,1
    - Dst: inet_ntoa
      Src: /src/libevent/test/regress_dns.c:352,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_dns.c:362,1
    - Dst: evutil_inet_ntop
      Src: /src/libevent/test/regress_dns.c:364,1
    - Dst: printf
      Src: /src/libevent/test/regress_dns.c:365,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_dns.c:375,1
    - Dst: printf
      Src: /src/libevent/test/regress_dns.c:377,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_dns.c:383,1
    - Dst: printf
      Src: /src/libevent/test/regress_dns.c:385,1
    - Dst: printf
      Src: /src/libevent/test/regress_dns.c:394,1
    - Dst: event_loopexit
      Src: /src/libevent/test/regress_dns.c:399,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 68
    argCount: 6
    argNames:
    - result
    - type
    - count
    - ttl
    - addresses
    - arg
    argTypes:
    - int
    - char
    - int
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 325
    functionDepth: 3
    functionLinenumber: 325
    functionLinenumberEnd: 401
    functionName: dns_server_gethostbyname_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - evutil_inet_ntop
    - inet_ntoa
    - event_loopexit
    - printf
    - strcmp
    - memcmp
    - htonl
    linkageType: ''
    returnType: void
    signature: "void dns_server_gethostbyname_cb(int result, char type, int count,
      int ttl,\n    void *addresses, void *arg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:418,1
    - Dst: socket
      Src: /src/libevent/test/regress_dns.c:421,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress_dns.c:423,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/test/regress_dns.c:426,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:428,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:431,1
    - Dst: bind
      Src: /src/libevent/test/regress_dns.c:432,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress_dns.c:433,1
    - Dst: getsockname
      Src: /src/libevent/test/regress_dns.c:436,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress_dns.c:437,1
    - Dst: evdns_add_server_port
      Src: /src/libevent/test/regress_dns.c:440,1
    - Dst: evdns_base_nameserver_sockaddr_add
      Src: /src/libevent/test/regress_dns.c:444,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:445,1
    - Dst: evdns_base_count_nameservers
      Src: /src/libevent/test/regress_dns.c:445,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:450,1
    - Dst: evdns_base_get_nameserver_addr
      Src: /src/libevent/test/regress_dns.c:452,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:453,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:454,1
    - Dst: evdns_base_get_nameserver_addr
      Src: /src/libevent/test/regress_dns.c:455,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:456,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/regress_dns.c:457,1
    - Dst: evdns_base_get_nameserver_addr
      Src: /src/libevent/test/regress_dns.c:459,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:460,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:464,1
    - Dst: evdns_base_resolve_ipv6
      Src: /src/libevent/test/regress_dns.c:466,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:468,1
    - Dst: evdns_base_resolve_reverse
      Src: /src/libevent/test/regress_dns.c:469,1
    - Dst: memcpy
      Src: /src/libevent/test/regress_dns.c:471,1
    - Dst: evdns_base_resolve_reverse_ipv6
      Src: /src/libevent/test/regress_dns.c:474,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:477,1
    - Dst: evdns_cancel_request
      Src: /src/libevent/test/regress_dns.c:481,1
    - Dst: event_dispatch
      Src: /src/libevent/test/regress_dns.c:483,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:485,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:490,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_dns.c:492,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:494,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 403
    functionDepth: 9
    functionLinenumber: 403
    functionLinenumberEnd: 495
    functionName: dns_server
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - evdns_base_nameserver_sockaddr_add
    - event_dispatch
    - bind
    - evdns_base_resolve_ipv4
    - tt_mem_op
    - evdns_base_get_nameserver_addr
    - evdns_base_resolve_reverse_ipv6
    - evdns_base_resolve_ipv6
    - memcpy
    - evutil_make_socket_nonblocking
    - evdns_base_count_nameservers
    - evdns_base_resolve_reverse
    - evdns_base_free
    - memset
    - evdns_close_server_port
    - tt_int_op
    - evdns_add_server_port
    - tt_assert
    - getsockname
    - evutil_closesocket
    - evdns_cancel_request
    - socket
    - tt_abort_perror
    - evdns_base_new
    - htonl
    linkageType: ''
    returnType: void
    signature: void dns_server(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/test/regress_dns.c:528,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:535,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:536,1
    - Dst: memcpy
      Src: /src/libevent/test/regress_dns.c:537,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:544,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_dns.c:547,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 6
    argNames:
    - result
    - type
    - count
    - ttl
    - addresses
    - arg
    argTypes:
    - int
    - char
    - int
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 511
    functionDepth: 5
    functionLinenumber: 511
    functionLinenumberEnd: 549
    functionName: generic_dns_callback
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - evdns_close_server_port
    - ARRAY_SIZE
    - event_base_loopexit
    - memcpy
    - strlen
    linkageType: ''
    returnType: void
    signature: "void generic_dns_callback(int result, char type, int count, int ttl,
      void *addresses,\n    void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dns_search_test_impl
      Src: /src/libevent/test/regress_dns.c:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 683
    functionName: dns_search_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - dns_search_test_impl
    linkageType: ''
    returnType: void
    signature: void dns_search_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dns_search_test_impl
      Src: /src/libevent/test/regress_dns.c:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 684
    functionName: dns_search_lower_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - dns_search_test_impl
    linkageType: ''
    returnType: void
    signature: void dns_search_lower_test(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_dns.c:695,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:700,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:702,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:703,1
    - Dst: evdns_server_request_respond
      Src: /src/libevent/test/regress_dns.c:703,1
    - Dst: evdns_cancel_request
      Src: /src/libevent/test/regress_dns.c:706,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - req
    - data
    argTypes:
    - struct evdns_server_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 689
    functionDepth: 6
    functionLinenumber: 689
    functionLinenumberEnd: 710
    functionName: search_cancel_server_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - TT_DIE
    - evdns_server_request_respond
    - TT_BLATHER
    - evdns_cancel_request
    linkageType: ''
    returnType: void
    signature: void search_cancel_server_cb(struct evdns_server_request *req, void
      *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_dns.c:723,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:725,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:726,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:728,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:729,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:731,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:731,1
    - Dst: evdns_base_search_add
      Src: /src/libevent/test/regress_dns.c:733,1
    - Dst: evdns_base_search_add
      Src: /src/libevent/test/regress_dns.c:734,1
    - Dst: evdns_base_search_add
      Src: /src/libevent/test/regress_dns.c:735,1
    - Dst: evdns_base_search_add
      Src: /src/libevent/test/regress_dns.c:736,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:742,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:744,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:746,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:750,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:752,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 712
    functionDepth: 9
    functionLinenumber: 712
    functionLinenumberEnd: 753
    functionName: dns_search_cancel_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_int_op
    - regress_get_udp_dnsserver
    - evdns_base_free
    - evdns_base_nameserver_ip_add
    - evdns_base_search_add
    - evdns_base_new
    - evdns_close_server_port
    - evutil_snprintf
    - evdns_base_resolve_ipv4
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void dns_search_cancel_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tt_want
      Src: /src/libevent/test/regress_dns.c:765,1
    - Dst: evdns_server_request_drop
      Src: /src/libevent/test/regress_dns.c:765,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_dns.c:770,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:775,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_dns.c:783,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:786,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/test/regress_dns.c:786,1
    - Dst: evdns_server_request_add_a_reply
      Src: /src/libevent/test/regress_dns.c:787,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:789,1
    - Dst: evdns_server_request_respond
      Src: /src/libevent/test/regress_dns.c:789,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_dns.c:792,1
    - Dst: evdns_server_request_drop
      Src: /src/libevent/test/regress_dns.c:792,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - req
    - data
    argTypes:
    - struct evdns_server_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 755
    functionDepth: 6
    functionLinenumber: 755
    functionLinenumberEnd: 793
    functionName: fail_server_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evutil_ascii_strcasecmp
    - tt_want
    - evdns_server_request_drop
    - TT_DIE
    - evdns_server_request_respond
    - event_base_loopexit
    - evutil_inet_pton
    - evdns_server_request_add_a_reply
    linkageType: ''
    returnType: void
    signature: void fail_server_cb(struct evdns_server_request *req, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_dns.c:808,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:810,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:811,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:813,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:814,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:816,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:816,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:817,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:817,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:818,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:818,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:819,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:819,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:821,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:827,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:829,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:831,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:832,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:833,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:833,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:838,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:838,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:839,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:839,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:840,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:842,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:848,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:851,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:854,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:855,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:858,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:859,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:860,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:861,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:862,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:862,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:866,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:868,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 39
    argCount: 2
    argNames:
    - arg
    - flags
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 795
    functionDepth: 9
    functionLinenumber: 795
    functionLinenumberEnd: 869
    functionName: dns_retry_test_impl
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evdns_base_set_option
    - tt_int_op
    - regress_get_udp_dnsserver
    - evdns_base_free
    - memset
    - evdns_base_nameserver_ip_add
    - evdns_base_new
    - evdns_close_server_port
    - evutil_snprintf
    - evdns_base_resolve_ipv4
    - htonl
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void dns_retry_test_impl(void *arg, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dns_retry_test_impl
      Src: /src/libevent/test/regress_dns.c:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 870
    functionDepth: 10
    functionLinenumber: 870
    functionLinenumberEnd: 874
    functionName: dns_retry_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - dns_retry_test_impl
    linkageType: ''
    returnType: void
    signature: void dns_retry_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dns_retry_test_impl
      Src: /src/libevent/test/regress_dns.c:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 875
    functionDepth: 10
    functionLinenumber: 875
    functionLinenumberEnd: 879
    functionName: dns_retry_disable_when_inactive_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - dns_retry_test_impl
    linkageType: ''
    returnType: void
    signature: void dns_retry_disable_when_inactive_test(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_dns.c:895,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:897,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:898,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:900,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:901,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:903,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:903,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:904,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:904,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:905,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:905,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:906,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:906,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:907,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:907,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:909,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:909,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:911,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_dns.c:915,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:918,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_dns.c:919,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:920,1
    - Dst: test_timeval_diff_leq
      Src: /src/libevent/test/regress_dns.c:921,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:924,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:927,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:929,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:930,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:931,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:932,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:932,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:936,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:936,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:937,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:937,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:938,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:938,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:939,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:940,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_dns.c:944,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:946,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:947,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:948,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_dns.c:949,1
    - Dst: test_timeval_diff_leq
      Src: /src/libevent/test/regress_dns.c:950,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:953,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:955,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:957,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:958,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:959,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:960,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:960,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:964,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:966,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 53
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 881
    functionDepth: 9
    functionLinenumber: 881
    functionLinenumberEnd: 967
    functionName: dns_probe_settings_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evutil_gettimeofday
    - evdns_base_set_option
    - test_timeval_diff_leq
    - tt_int_op
    - regress_get_udp_dnsserver
    - evdns_base_free
    - evdns_base_nameserver_ip_add
    - evdns_base_new
    - evdns_close_server_port
    - evutil_snprintf
    - evdns_base_resolve_ipv4
    - htonl
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void dns_probe_settings_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_dns.c:995,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:997,1
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_dns.c:998,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1000,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:1001,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:1002,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:1004,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1005,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1007,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:1007,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1008,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:1008,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1009,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:1009,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1010,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:1010,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1012,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:1013,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1017,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:1017,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:1022,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1023,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1024,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1025,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1026,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:1026,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1029,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:1033,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:1035,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:1037,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 2
    argNames:
    - arg
    - flags
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 984
    functionDepth: 9
    functionLinenumber: 984
    functionLinenumberEnd: 1038
    functionName: dns_reissue_test_impl
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evdns_base_set_option
    - tt_int_op
    - regress_get_udp_dnsserver
    - evdns_base_free
    - memset
    - evdns_base_nameserver_ip_add
    - evdns_base_new
    - evdns_close_server_port
    - evutil_snprintf
    - evdns_base_resolve_ipv4
    - htonl
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void dns_reissue_test_impl(void *arg, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dns_reissue_test_impl
      Src: /src/libevent/test/regress_dns.c:1042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1039
    functionDepth: 10
    functionLinenumber: 1039
    functionLinenumberEnd: 1043
    functionName: dns_reissue_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - dns_reissue_test_impl
    linkageType: ''
    returnType: void
    signature: void dns_reissue_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dns_reissue_test_impl
      Src: /src/libevent/test/regress_dns.c:1047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1044
    functionDepth: 10
    functionLinenumber: 1044
    functionLinenumberEnd: 1048
    functionName: dns_reissue_disable_when_inactive_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - dns_reissue_test_impl
    linkageType: ''
    returnType: void
    signature: void dns_reissue_disable_when_inactive_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/libevent/test/regress_dns.c:1058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1051
    functionDepth: 0
    functionLinenumber: 1051
    functionLinenumberEnd: 1059
    functionName: dumb_bytes_fn
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - rand
    linkageType: ''
    returnType: void
    signature: void dumb_bytes_fn(char *p, size_t n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_dns.c:1076,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1078,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:1083,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:1085,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1086,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1088,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:1088,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1089,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:1089,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1090,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:1090,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:1093,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:1098,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1101,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1102,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1103,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:1103,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:1108,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:1110,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:1113,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - arg
    - flags
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1062
    functionDepth: 9
    functionLinenumber: 1062
    functionLinenumberEnd: 1115
    functionName: dns_inflight_test_impl
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evdns_base_set_option
    - tt_int_op
    - regress_get_udp_dnsserver
    - evdns_base_free
    - evdns_base_nameserver_ip_add
    - evdns_base_new
    - evdns_close_server_port
    - evutil_snprintf
    - evdns_base_resolve_ipv4
    - htonl
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void dns_inflight_test_impl(void *arg, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dns_inflight_test_impl
      Src: /src/libevent/test/regress_dns.c:1120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1117
    functionDepth: 10
    functionLinenumber: 1117
    functionLinenumberEnd: 1121
    functionName: dns_inflight_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - dns_inflight_test_impl
    linkageType: ''
    returnType: void
    signature: void dns_inflight_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dns_inflight_test_impl
      Src: /src/libevent/test/regress_dns.c:1126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1123
    functionDepth: 10
    functionLinenumber: 1123
    functionLinenumberEnd: 1127
    functionName: dns_disable_when_inactive_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - dns_inflight_test_impl
    linkageType: ''
    returnType: void
    signature: void dns_disable_when_inactive_test(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_base_new
      Src: /src/libevent/test/regress_dns.c:1139,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1140,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1143,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_dns.c:1143,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:1144,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:1146,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1147,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1148,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:1148,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1149,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:1149,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:1151,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:1155,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1157,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1159,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1160,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1161,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_dns.c:1162,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:1166,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_dns.c:1167,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_dns.c:1169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1129
    functionDepth: 9
    functionLinenumber: 1129
    functionLinenumberEnd: 1170
    functionName: dns_disable_when_inactive_no_ns_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evdns_base_set_option
    - tt_ptr_op
    - regress_dnsserver
    - event_base_free
    - tt_int_op
    - evdns_base_free
    - evdns_base_nameserver_ip_add
    - regress_clean_dnsserver
    - evdns_base_new
    - event_base_new
    - evutil_snprintf
    - evdns_base_resolve_ipv4
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void dns_disable_when_inactive_no_ns_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/libevent/test/regress_dns.c:1185,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_dns.c:1186,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:1190,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1191,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1192,1
    - Dst: evdns_base_get_nameserver_addr
      Src: /src/libevent/test/regress_dns.c:1192,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:1193,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:1195,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1196,1
    - Dst: evdns_base_get_nameserver_addr
      Src: /src/libevent/test/regress_dns.c:1198,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1199,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1201,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1203,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:1208,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1172
    functionDepth: 9
    functionLinenumber: 1172
    functionLinenumberEnd: 1209
    functionName: dns_initialize_nameservers_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evdns_base_get_nameserver_addr
    - tt_skip
    - evdns_base_free
    - stat
    - evdns_base_new
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void dns_initialize_nameservers_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:1222,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1223,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1225,1
    - Dst: load_nameservers_with_getadaptersaddresses
      Src: /src/libevent/test/regress_dns.c:1225,1
    - Dst: evdns_base_count_nameservers
      Src: /src/libevent/test/regress_dns.c:1226,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1227,1
    - Dst: socket
      Src: /src/libevent/test/regress_dns.c:1229,1
    - Dst: event_warn
      Src: /src/libevent/test/regress_dns.c:1231,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_dns.c:1232,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_dns.c:1234,1
    - Dst: evdns_base_get_nameserver_addr
      Src: /src/libevent/test/regress_dns.c:1237,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1238,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:1244,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:1248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1212
    functionDepth: 9
    functionLinenumber: 1212
    functionLinenumberEnd: 1249
    functionName: windows_dns_initialize_ipv6_nameservers_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evdns_base_count_nameservers
    - load_nameservers_with_getadaptersaddresses
    - evdns_base_get_nameserver_addr
    - tt_skip
    - evutil_closesocket
    - event_warn
    - TT_BLATHER
    - evdns_base_free
    - socket
    - evdns_base_new
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void windows_dns_initialize_ipv6_nameservers_test(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1264,1
    - Dst: regress_make_tmpfile
      Src: /src/libevent/test/regress_dns.c:1264,1
    - Dst: strlen
      Src: /src/libevent/test/regress_dns.c:1265,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1268,1
    - Dst: evutil_set_resolvconf_filename_
      Src: /src/libevent/test/regress_dns.c:1270,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:1272,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1274,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1276,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_dns.c:1276,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:1280,1
    - Dst: unlink
      Src: /src/libevent/test/regress_dns.c:1282,1
    - Dst: free
      Src: /src/libevent/test/regress_dns.c:1283,1
    - Dst: evutil_set_resolvconf_filename_
      Src: /src/libevent/test/regress_dns.c:1285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1255
    functionDepth: 9
    functionLinenumber: 1255
    functionLinenumberEnd: 1286
    functionName: dns_initialize_inactive_one_nameserver_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - unlink
    - regress_make_tmpfile
    - evdns_base_free
    - free
    - event_base_loop
    - evdns_base_new
    - strlen
    - tt_int_op
    - evutil_set_resolvconf_filename_
    linkageType: ''
    returnType: void
    signature: void dns_initialize_inactive_one_nameserver_test(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1301,1
    - Dst: regress_make_tmpfile
      Src: /src/libevent/test/regress_dns.c:1301,1
    - Dst: strlen
      Src: /src/libevent/test/regress_dns.c:1302,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1305,1
    - Dst: evutil_set_resolvconf_filename_
      Src: /src/libevent/test/regress_dns.c:1307,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:1309,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1311,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1313,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_dns.c:1313,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:1317,1
    - Dst: unlink
      Src: /src/libevent/test/regress_dns.c:1319,1
    - Dst: free
      Src: /src/libevent/test/regress_dns.c:1320,1
    - Dst: evutil_set_resolvconf_filename_
      Src: /src/libevent/test/regress_dns.c:1322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1292
    functionDepth: 9
    functionLinenumber: 1292
    functionLinenumberEnd: 1323
    functionName: dns_initialize_inactive_two_nameservers_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - unlink
    - regress_make_tmpfile
    - evdns_base_free
    - free
    - event_base_loop
    - evdns_base_new
    - strlen
    - tt_int_op
    - evutil_set_resolvconf_filename_
    linkageType: ''
    returnType: void
    signature: void dns_initialize_inactive_two_nameservers_test(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/libevent/test/regress_dns.c:1333,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1335,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:1337,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1338,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1339,1
    - Dst: evdns_base_get_nameserver_addr
      Src: /src/libevent/test/regress_dns.c:1339,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1340,1
    - Dst: evdns_base_get_nameserver_fd
      Src: /src/libevent/test/regress_dns.c:1340,1
    - Dst: evdns_base_resolv_conf_parse
      Src: /src/libevent/test/regress_dns.c:1346,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1348,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1349,1
    - Dst: evdns_base_get_nameserver_addr
      Src: /src/libevent/test/regress_dns.c:1349,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1350,1
    - Dst: evdns_base_get_nameserver_fd
      Src: /src/libevent/test/regress_dns.c:1350,1
    - Dst: evdns_base_resolv_conf_parse
      Src: /src/libevent/test/regress_dns.c:1352,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1353,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1354,1
    - Dst: evdns_base_get_nameserver_addr
      Src: /src/libevent/test/regress_dns.c:1354,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1355,1
    - Dst: evdns_base_get_nameserver_fd
      Src: /src/libevent/test/regress_dns.c:1355,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:1359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1327
    functionDepth: 9
    functionLinenumber: 1327
    functionLinenumberEnd: 1360
    functionName: dns_nameservers_no_default_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evdns_base_get_nameserver_addr
    - evdns_base_resolv_conf_parse
    - evdns_base_free
    - evdns_base_get_nameserver_fd
    - access
    - evdns_base_new
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void dns_nameservers_no_default_test(void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: regress_make_tmpfile
      Src: /src/libevent/test/regress_dns.c:1374,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_dns.c:1376,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:1378,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1379,1
    - Dst: evdns_base_resolv_conf_parse
      Src: /src/libevent/test/regress_dns.c:1381,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1382,1
    - Dst: close
      Src: /src/libevent/test/regress_dns.c:1386,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:1388,1
    - Dst: unlink
      Src: /src/libevent/test/regress_dns.c:1390,1
    - Dst: free
      Src: /src/libevent/test/regress_dns.c:1391,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1362
    functionDepth: 9
    functionLinenumber: 1362
    functionLinenumberEnd: 1393
    functionName: dns_nameservers_no_nameservers_configured_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - close
    - unlink
    - tt_skip
    - regress_make_tmpfile
    - evdns_base_resolv_conf_parse
    - evdns_base_free
    - free
    - evdns_base_new
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void dns_nameservers_no_nameservers_configured_test(void *arg)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1418,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:1420,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1424,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:1425,1
    - Dst: evdns_server_request_add_a_reply
      Src: /src/libevent/test/regress_dns.c:1426,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1429,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1432,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:1435,1
    - Dst: evdns_server_request_add_a_reply
      Src: /src/libevent/test/regress_dns.c:1436,1
    - Dst: evdns_server_request_add_aaaa_reply
      Src: /src/libevent/test/regress_dns.c:1444,1
    - Dst: evdns_server_request_add_cname_reply
      Src: /src/libevent/test/regress_dns.c:1448,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1450,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:1453,1
    - Dst: evdns_server_request_add_a_reply
      Src: /src/libevent/test/regress_dns.c:1454,1
    - Dst: evdns_server_request_add_cname_reply
      Src: /src/libevent/test/regress_dns.c:1458,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1460,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1462,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:1464,1
    - Dst: evdns_server_request_add_a_reply
      Src: /src/libevent/test/regress_dns.c:1465,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1468,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_dns.c:1470,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1472,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1474,1
    - Dst: evdns_server_request_add_aaaa_reply
      Src: /src/libevent/test/regress_dns.c:1480,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1483,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_dns.c:1485,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1487,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:1490,1
    - Dst: evdns_server_request_add_a_reply
      Src: /src/libevent/test/regress_dns.c:1491,1
    - Dst: evdns_server_request_drop
      Src: /src/libevent/test/regress_dns.c:1496,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1499,1
    - Dst: evdns_server_request_add_aaaa_reply
      Src: /src/libevent/test/regress_dns.c:1506,1
    - Dst: evdns_server_request_drop
      Src: /src/libevent/test/regress_dns.c:1511,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1514,1
    - Dst: evdns_server_request_drop
      Src: /src/libevent/test/regress_dns.c:1520,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_dns.c:1523,1
    - Dst: evdns_server_request_drop
      Src: /src/libevent/test/regress_dns.c:1526,1
    - Dst: TT_GRIPE
      Src: /src/libevent/test/regress_dns.c:1529,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:1533,1
    - Dst: evdns_server_request_respond
      Src: /src/libevent/test/regress_dns.c:1534,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:1536,1
    - Dst: evdns_server_request_respond
      Src: /src/libevent/test/regress_dns.c:1537,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 106
    argCount: 2
    argNames:
    - req
    - data
    argTypes:
    - struct evdns_server_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1404
    functionDepth: 6
    functionLinenumber: 1404
    functionLinenumberEnd: 1539
    functionName: be_getaddrinfo_server_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - evdns_server_request_add_cname_reply
    - evutil_ascii_strcasecmp
    - TT_FAIL
    - evdns_server_request_drop
    - TT_GRIPE
    - evdns_server_request_respond
    - TT_BLATHER
    - memset
    - htonl
    - evdns_server_request_add_aaaa_reply
    - evdns_server_request_add_a_reply
    linkageType: ''
    returnType: void
    signature: void be_getaddrinfo_server_cb(struct evdns_server_request *req, void
      *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_dns.c:1551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - l
    - fd
    - s
    - socklen
    - arg
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1542
    functionDepth: 2
    functionLinenumber: 1542
    functionLinenumberEnd: 1553
    functionName: nil_accept_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: "void nil_accept_cb(struct evconnlistener *l, evutil_socket_t fd, struct
      sockaddr *s,\n    int socklen, void *arg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_dns.c:1568,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:1572,1
    - Dst: bufferevent_socket_get_dns_error
      Src: /src/libevent/test/regress_dns.c:1577,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:1581,1
    - Dst: evutil_gai_strerror
      Src: /src/libevent/test/regress_dns.c:1582,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:1585,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_dns.c:1593,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - bev
    - what
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1562
    functionDepth: 2
    functionLinenumber: 1562
    functionLinenumberEnd: 1596
    functionName: be_connect_hostname_event_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - bufferevent_socket_get_dns_error
    - TT_FAIL
    - event_base_loopexit
    - TT_BLATHER
    - evutil_gai_strerror
    linkageType: ''
    returnType: void
    signature: void be_connect_hostname_event_cb(struct bufferevent *bev, short what,
      void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_socket_connect_hostname_hints
      Src: /src/libevent/test/regress_dns.c:1602,1
    - Dst: bufferevent_socket_connect_hostname
      Src: /src/libevent/test/regress_dns.c:1604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - bev
    - dns
    - hints
    - host
    - port
    argTypes:
    - struct bufferevent*
    - struct evdns_base*
    - struct evutil_addrinfo*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1598
    functionDepth: 9
    functionLinenumber: 1598
    functionLinenumberEnd: 1605
    functionName: bev_connect_hostname
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - bufferevent_socket_connect_hostname
    - bufferevent_socket_connect_hostname_hints
    linkageType: ''
    returnType: int
    signature: "int bev_connect_hostname(struct bufferevent *bev, struct evdns_base
      *dns,\n    struct evutil_addrinfo *hints, const char *host, int port)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libevent/test/regress_dns.c:1610,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_dns.c:1611,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:1614,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1627,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1638,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:1640,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_dns.c:1642,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1646,1
    - Dst: regress_get_socket_port
      Src: /src/libevent/test/regress_dns.c:1647,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_dns.c:1648,1
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_dns.c:1650,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1652,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1653,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:1656,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1657,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:1659,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:1660,1
    - Dst: socket
      Src: /src/libevent/test/regress_dns.c:1664,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1667,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1668,1
    - Dst: close
      Src: /src/libevent/test/regress_dns.c:1668,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1670,1
    - Dst: setrlimit
      Src: /src/libevent/test/regress_dns.c:1670,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:1677,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1678,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_dns.c:1679,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1680,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_dns.c:1681,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1687,1
    - Dst: bev_connect_hostname
      Src: /src/libevent/test/regress_dns.c:1687,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1690,1
    - Dst: bev_connect_hostname
      Src: /src/libevent/test/regress_dns.c:1690,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1697,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:1701,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1705,1
    - Dst: bev_connect_hostname
      Src: /src/libevent/test/regress_dns.c:1705,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1708,1
    - Dst: bev_connect_hostname
      Src: /src/libevent/test/regress_dns.c:1708,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1711,1
    - Dst: bev_connect_hostname
      Src: /src/libevent/test/regress_dns.c:1711,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:1714,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_dns.c:1716,1
    - Dst: event_base_get_method
      Src: /src/libevent/test/regress_dns.c:1716,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1717,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_dns.c:1719,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1723,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1726,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1727,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1728,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1729,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1730,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1731,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1732,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1738,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1741,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1745,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1746,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1750,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1752,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1754,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_dns.c:1758,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:1760,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:1762,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:1763,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_dns.c:1765,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 86
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1606
    functionDepth: 10
    functionLinenumber: 1606
    functionLinenumberEnd: 1767
    functionName: test_bufferevent_connect_hostname
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - bufferevent_free
    - setrlimit
    - bev_connect_hostname
    - evconnlistener_new_bind
    - ARRAY_SIZE
    - regress_get_udp_dnsserver
    - bufferevent_setcb
    - evdns_base_nameserver_ip_add
    - htonl
    - evutil_snprintf
    - regress_get_socket_port
    - evutil_getaddrinfo
    - close
    - event_base_get_method
    - evdns_base_free
    - memset
    - evdns_close_server_port
    - tt_int_op
    - tt_assert
    - bufferevent_socket_new
    - tt_skip
    - strcmp
    - socket
    - evdns_base_new
    - evconnlistener_free
    - evconnlistener_get_fd
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_bufferevent_connect_hostname(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_dns.c:1784,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:1786,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - err
    - res
    - ptr
    argTypes:
    - int
    - struct evutil_addrinfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1788
      start: 1777
    functionDepth: 2
    functionLinenumber: 1777
    functionLinenumberEnd: 1788
    functionName: gai_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - TT_BLATHER
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: void gai_cb(int err, struct evutil_addrinfo *res, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_getaddrinfo_cancel
      Src: /src/libevent/test/regress_dns.c:1794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - what
    - ptr
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1790
    functionDepth: 4
    functionLinenumber: 1790
    functionLinenumberEnd: 1795
    functionName: cancel_gai_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - evdns_getaddrinfo_cancel
    linkageType: ''
    returnType: void
    signature: void cancel_gai_cb(evutil_socket_t fd, short what, void *ptr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1812,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1813,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1814,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:1816,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1817,1
    - Dst: evdns_base_load_hosts
      Src: /src/libevent/test/regress_dns.c:1820,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1822,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:1822,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1823,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:1823,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1829,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1832,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:1833,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1835,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_dns.c:1837,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:1838,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_dns.c:1839,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:1842,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1846,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1849,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:1850,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_dns.c:1852,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1853,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_dns.c:1854,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1857,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1858,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:1861,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1863,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1864,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1865,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_dns.c:1866,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:1867,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_dns.c:1868,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1872,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1873,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:1875,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1877,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1878,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1879,1
    - Dst: ai_find_by_protocol
      Src: /src/libevent/test/regress_dns.c:1880,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1881,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:1882,1
    - Dst: ai_find_by_protocol
      Src: /src/libevent/test/regress_dns.c:1883,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1884,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:1885,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_dns.c:1886,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1890,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1891,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:1895,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1897,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1898,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1899,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_dns.c:1901,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1902,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:1903,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_dns.c:1905,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1906,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:1907,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_dns.c:1908,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1912,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1913,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:1916,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1918,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1919,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1920,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_dns.c:1922,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1923,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:1924,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_dns.c:1926,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1927,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:1928,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_dns.c:1929,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1933,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1934,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:1937,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1939,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1940,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1941,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_dns.c:1943,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1944,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:1945,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_dns.c:1947,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1948,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:1949,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_dns.c:1950,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1954,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1955,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:1958,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1960,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1961,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1962,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:1964,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_dns.c:1965,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_dns.c:1966,1
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_dns.c:1971,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1973,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:1974,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:1976,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:1977,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:1979,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:1984,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1986,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:1989,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1991,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:1995,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:1997,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2002,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2004,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2009,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2011,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2015,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2017,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2022,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2024,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2029,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2031,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2036,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2038,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2043,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2045,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2051,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2053,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2056,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2058,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_dns.c:2063,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2071,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2073,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:2084,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2087,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2088,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2089,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2090,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_dns.c:2091,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2092,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2093,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_dns.c:2094,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2095,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2096,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2097,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_dns.c:2098,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2101,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2102,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2103,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2104,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2105,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2109,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2110,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2111,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2112,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2115,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2116,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2117,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2118,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2121,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2122,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2123,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2124,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2127,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2128,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2131,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2132,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2135,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2136,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2137,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2138,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2141,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2142,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2145,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2146,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_dns.c:2147,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2149,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2151,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_dns.c:2151,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_dns.c:2152,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2154,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2156,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_dns.c:2156,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2159,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2160,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2161,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2162,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2165,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2166,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2169,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2170,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2171,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2172,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_dns.c:2173,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:2180,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2184,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2186,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2191,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2193,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2198,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2200,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2202,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2203,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2204,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2205,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_dns.c:2210,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2212,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2214,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2216,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2217,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2221,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2223,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2225,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2226,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2227,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2228,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2232,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2234,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2236,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2237,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2238,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2239,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2243,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2245,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2249,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2251,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2255,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2257,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2261,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2263,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2267,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2269,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2274,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2276,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2279,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2281,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2287,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2289,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2291,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2292,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2293,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_dns.c:2294,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_dns.c:2295,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:2298,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_dns.c:2302,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:2303,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_dns.c:2305,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:2307,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_dns.c:2309,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:2312,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:2314,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 325
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2315
      start: 1797
    functionDepth: 10
    functionLinenumber: 1797
    functionLinenumberEnd: 2315
    functionName: test_getaddrinfo_async
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - ai_find_by_protocol
    - ai_find_by_family
    - tt_str_op
    - evdns_getaddrinfo
    - evdns_base_set_option
    - evutil_freeaddrinfo
    - ARRAY_SIZE
    - TT_BLATHER
    - regress_get_udp_dnsserver
    - evdns_base_nameserver_ip_add
    - evutil_snprintf
    - test_ai_eq
    - tt_ptr_op
    - event_base_once
    - evdns_base_free
    - memset
    - evdns_close_server_port
    - tt_int_op
    - tt_assert
    - evdns_base_load_hosts
    - evdns_base_new
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_getaddrinfo_async(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2341,1
    - Dst: evdns_getaddrinfo_cancel
      Src: /src/libevent/test/regress_dns.c:2343,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_dns.c:2346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2347
      start: 2336
    functionDepth: 4
    functionLinenumber: 2336
    functionLinenumberEnd: 2347
    functionName: gaic_cancel_request_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - event_base_loopexit
    - evdns_getaddrinfo_cancel
    linkageType: ''
    returnType: void
    signature: void gaic_cancel_request_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_server_request_add_a_reply
      Src: /src/libevent/test/regress_dns.c:2354,1
    - Dst: evdns_server_request_respond
      Src: /src/libevent/test/regress_dns.c:2356,1
    - Dst: free
      Src: /src/libevent/test/regress_dns.c:2357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2358
      start: 2349
    functionDepth: 6
    functionLinenumber: 2349
    functionLinenumberEnd: 2358
    functionName: gaic_server_response_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - free
    - evdns_server_request_respond
    - evdns_server_request_add_a_reply
    linkageType: ''
    returnType: void
    signature: void gaic_server_response_cb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2371,1
    - Dst: calloc
      Src: /src/libevent/test/regress_dns.c:2372,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2373,1
    - Dst: event_assign
      Src: /src/libevent/test/regress_dns.c:2375,1
    - Dst: event_add
      Src: /src/libevent/test/regress_dns.c:2376,1
    - Dst: evdns_server_request_respond
      Src: /src/libevent/test/regress_dns.c:2379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evdns_server_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2380
      start: 2364
    functionDepth: 6
    functionLinenumber: 2364
    functionLinenumberEnd: 2380
    functionName: gaic_server_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - calloc
    - evdns_server_request_respond
    - event_assign
    - event_add
    linkageType: ''
    returnType: void
    signature: void gaic_server_cb(struct evdns_server_request *req, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2388,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2391,1
    - Dst: event_del
      Src: /src/libevent/test/regress_dns.c:2393,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:2395,1
    - Dst: free
      Src: /src/libevent/test/regress_dns.c:2396,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_dns.c:2401,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_dns.c:2402,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_dns.c:2406,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - result
    - res
    - arg
    argTypes:
    - int
    - struct evutil_addrinfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2407
      start: 2383
    functionDepth: 4
    functionLinenumber: 2383
    functionLinenumberEnd: 2407
    functionName: gaic_getaddrinfo_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - event_del
    - evutil_freeaddrinfo
    - TT_BLATHER
    - event_base_loopexit
    - memset
    - free
    linkageType: ''
    returnType: void
    signature: void gaic_getaddrinfo_cb(int result, struct evutil_addrinfo *res, void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/libevent/test/regress_dns.c:2412,1
    - Dst: event_assign
      Src: /src/libevent/test/regress_dns.c:2426,1
    - Dst: snprintf
      Src: /src/libevent/test/regress_dns.c:2428,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2429,1
    - Dst: event_add
      Src: /src/libevent/test/regress_dns.c:2432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - base
    - dns_base
    - i
    argTypes:
    - struct event_base*
    - struct evdns_base*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2434
      start: 2409
    functionDepth: 10
    functionLinenumber: 2409
    functionLinenumberEnd: 2434
    functionName: gaic_launch
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - evdns_getaddrinfo
    - calloc
    - event_assign
    - event_add
    - snprintf
    linkageType: ''
    returnType: void
    signature: void gaic_launch(struct event_base *base, struct evdns_base *dns_base,
      unsigned i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libevent/test/regress_dns.c:2447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2448
      start: 2443
    functionDepth: 0
    functionLinenumber: 2443
    functionLinenumberEnd: 2448
    functionName: cnt_malloc
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      cnt_malloc(size_t sz)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/libevent/test/regress_dns.c:2457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - old
    - sz
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2458
      start: 2450
    functionDepth: 0
    functionLinenumber: 2450
    functionLinenumberEnd: 2458
    functionName: cnt_realloc
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: 'void *

      cnt_realloc(void *old, size_t sz)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libevent/test/regress_dns.c:2464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2465
      start: 2460
    functionDepth: 0
    functionLinenumber: 2460
    functionLinenumberEnd: 2465
    functionName: cnt_free
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cnt_free(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libevent_global_shutdown
      Src: /src/libevent/test/regress_dns.c:2484,1
    - Dst: event_set_mem_functions
      Src: /src/libevent/test/regress_dns.c:2486,1
    - Dst: event_enable_debug_mode
      Src: /src/libevent/test/regress_dns.c:2488,1
    - Dst: calloc
      Src: /src/libevent/test/regress_dns.c:2491,1
    - Dst: event_base_new
      Src: /src/libevent/test/regress_dns.c:2492,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:2493,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:2494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - testcase
    argTypes:
    - struct testcase_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2498
      start: 2474
    functionDepth: 9
    functionLinenumber: 2474
    functionLinenumberEnd: 2498
    functionName: testleak_setup
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - calloc
    - event_enable_debug_mode
    - libevent_global_shutdown
    - event_set_mem_functions
    - evdns_base_new
    - event_base_new
    - evdns_base_resolve_ipv4
    linkageType: ''
    returnType: void
    signature: 'void *

      testleak_setup(const struct testcase_t *testcase)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2505,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2507,1
    - Dst: libevent_global_shutdown
      Src: /src/libevent/test/regress_dns.c:2509,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2510,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:2516,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_dns.c:2518,1
    - Dst: free
      Src: /src/libevent/test/regress_dns.c:2519,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - testcase
    - env_
    argTypes:
    - struct testcase_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2522
      start: 2500
    functionDepth: 6
    functionLinenumber: 2500
    functionLinenumberEnd: 2522
    functionName: testleak_cleanup
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - event_base_free
    - libevent_global_shutdown
    - evdns_base_free
    - free
    - tt_int_op
    linkageType: ''
    returnType: int
    signature: int testleak_cleanup(const struct testcase_t *testcase, void *env_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_cancel_request
      Src: /src/libevent/test/regress_dns.c:2534,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_dns.c:2538,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:2542,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_dns.c:2544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - env_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2546
      start: 2528
    functionDepth: 6
    functionLinenumber: 2528
    functionLinenumberEnd: 2546
    functionName: test_dbg_leak_cancel
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_base_free
    - evdns_cancel_request
    - event_base_loop
    - evdns_base_free
    linkageType: ''
    returnType: void
    signature: void test_dbg_leak_cancel(void *env_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_cancel_request
      Src: /src/libevent/test/regress_dns.c:2554,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2555,1
    - Dst: evdns_base_resume
      Src: /src/libevent/test/regress_dns.c:2555,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2558,1
    - Dst: evdns_base_resume
      Src: /src/libevent/test/regress_dns.c:2558,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_dns.c:2561,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:2572,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_dns.c:2574,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_dns.c:2577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - env_
    - cancel
    - send_err_shutdown
    argTypes:
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2579
      start: 2548
    functionDepth: 6
    functionLinenumber: 2548
    functionLinenumberEnd: 2579
    functionName: dbg_leak_resume
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evdns_base_resume
    - event_base_free
    - evdns_base_free
    - evdns_cancel_request
    - event_base_loop
    linkageType: ''
    returnType: void
    signature: void dbg_leak_resume(void *env_, int cancel, int send_err_shutdown)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - cancel
    - ','
    - send_err_shutdown
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2587
      start: 2581
    functionDepth: 0
    functionLinenumber: 2581
    functionLinenumberEnd: 2587
    functionName: IMPL_DBG_LEAK_RESUME
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPL_DBG_LEAK_RESUME(name, cancel, send_err_shutdown)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:2603,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_dns.c:2607,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_dns.c:2608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - env_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2610
      start: 2592
    functionDepth: 6
    functionLinenumber: 2592
    functionLinenumberEnd: 2610
    functionName: test_dbg_leak_shutdown
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_base_free
    - event_base_loop
    - evdns_base_free
    linkageType: ''
    returnType: void
    signature: void test_dbg_leak_shutdown(void *env_)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: event_base_new
      Src: /src/libevent/test/regress_dns.c:2625,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:2627,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:2629,1
    - Dst: htonl
      Src: /src/libevent/test/regress_dns.c:2632,1
    - Dst: socket
      Src: /src/libevent/test/regress_dns.c:2633,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress_dns.c:2634,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/test/regress_dns.c:2636,1
    - Dst: bind
      Src: /src/libevent/test/regress_dns.c:2637,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress_dns.c:2638,1
    - Dst: evdns_add_server_port_with_base
      Src: /src/libevent/test/regress_dns.c:2640,1
    - Dst: memset
      Src: /src/libevent/test/regress_dns.c:2643,1
    - Dst: getsockname
      Src: /src/libevent/test/regress_dns.c:2645,1
    - Dst: tt_abort_perror
      Src: /src/libevent/test/regress_dns.c:2646,1
    - Dst: evdns_base_nameserver_sockaddr_add
      Src: /src/libevent/test/regress_dns.c:2648,1
    - Dst: gaic_launch
      Src: /src/libevent/test/regress_dns.c:2652,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:2655,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2658,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2659,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:2663,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:2665,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_dns.c:2667,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_dns.c:2669,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2670
      start: 2613
    functionDepth: 11
    functionLinenumber: 2613
    functionLinenumberEnd: 2670
    functionName: test_getaddrinfo_async_cancel_stress
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - evdns_close_server_port
    - evdns_add_server_port_with_base
    - getsockname
    - evdns_base_nameserver_sockaddr_add
    - event_base_free
    - evutil_closesocket
    - evdns_base_free
    - memset
    - socket
    - tt_abort_perror
    - bind
    - evdns_base_new
    - event_base_new
    - tt_int_op
    - gaic_launch
    - evutil_make_socket_nonblocking
    - htonl
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_getaddrinfo_async_cancel_stress(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libevent/test/regress_dns.c:2677,1
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_dns.c:2686,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2688,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:2690,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:2692,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2693,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2694,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:2694,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2697,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:2697,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:2700,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:2705,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:2707,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2709,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2711,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:2714,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2672
    functionDepth: 9
    functionLinenumber: 2672
    functionLinenumberEnd: 2715
    functionName: dns_client_fail_requests_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evdns_base_set_option
    - tt_int_op
    - regress_get_udp_dnsserver
    - strcmp
    - evdns_base_free
    - evdns_base_nameserver_ip_add
    - evdns_base_new
    - evdns_close_server_port
    - evutil_snprintf
    - evdns_base_resolve_ipv4
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void dns_client_fail_requests_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generic_dns_callback
      Src: /src/libevent/test/regress_dns.c:2720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - err
    - res
    - ptr
    argTypes:
    - int
    - struct evutil_addrinfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2721
      start: 2717
    functionDepth: 6
    functionLinenumber: 2717
    functionLinenumberEnd: 2721
    functionName: getaddrinfo_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - generic_dns_callback
    linkageType: ''
    returnType: void
    signature: void getaddrinfo_cb(int err, struct evutil_addrinfo *res, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_dns.c:2735,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2737,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:2739,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:2741,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2742,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2744,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:2744,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2747,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2747,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:2752,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:2754,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2756,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2758,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:2761,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2762
      start: 2722
    functionDepth: 10
    functionLinenumber: 2722
    functionLinenumberEnd: 2762
    functionName: dns_client_fail_requests_getaddrinfo_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evdns_getaddrinfo
    - tt_int_op
    - regress_get_udp_dnsserver
    - evdns_base_free
    - evdns_base_nameserver_ip_add
    - evdns_base_new
    - evdns_close_server_port
    - evutil_snprintf
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void dns_client_fail_requests_getaddrinfo_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_dns.c:2781,1
    - Dst: THREAD_RETURN
      Src: /src/libevent/test/regress_dns.c:2782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2783
      start: 2777
    functionDepth: 6
    functionLinenumber: 2777
    functionLinenumberEnd: 2783
    functionName: race_base_run
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - THREAD_RETURN
    - event_base_loop
    linkageType: ''
    returnType: THREAD_FN
    signature: THREAD_FN race_base_run(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_get_nameserver_addr
      Src: /src/libevent/test/regress_dns.c:2790,1
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/test/regress_dns.c:2791,1
    - Dst: EVTHREAD_COND_SIGNAL
      Src: /src/libevent/test/regress_dns.c:2793,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_dns.c:2794,1
    - Dst: THREAD_RETURN
      Src: /src/libevent/test/regress_dns.c:2795,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2796
      start: 2784
    functionDepth: 2
    functionLinenumber: 2784
    functionLinenumberEnd: 2796
    functionName: race_busywait_run
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - evdns_base_get_nameserver_addr
    - EVLOCK_UNLOCK
    - EVTHREAD_COND_SIGNAL
    - THREAD_RETURN
    - EVLOCK_LOCK
    linkageType: ''
    returnType: THREAD_FN
    signature: THREAD_FN race_busywait_run(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/test/regress_dns.c:2806,1
    - Dst: EVTHREAD_COND_SIGNAL
      Src: /src/libevent/test/regress_dns.c:2807,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_dns.c:2808,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - result
    - res
    - arg
    argTypes:
    - int
    - struct evutil_addrinfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2810
      start: 2797
    functionDepth: 1
    functionLinenumber: 2797
    functionLinenumberEnd: 2810
    functionName: race_gai_cb
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - EVTHREAD_COND_SIGNAL
    - EVLOCK_LOCK
    - EVLOCK_UNLOCK
    linkageType: ''
    returnType: void
    signature: void race_gai_cb(int result, struct evutil_addrinfo *res, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evthread_use_pthreads
      Src: /src/libevent/test/regress_dns.c:2827,1
    - Dst: event_base_new
      Src: /src/libevent/test/regress_dns.c:2829,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2830,1
    - Dst: evthread_make_base_notifiable
      Src: /src/libevent/test/regress_dns.c:2831,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_dns.c:2832,1
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_dns.c:2834,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2836,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:2838,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:2840,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2841,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2842,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:2842,1
    - Dst: EVTHREAD_ALLOC_LOCK
      Src: /src/libevent/test/regress_dns.c:2846,1
    - Dst: EVTHREAD_ALLOC_COND
      Src: /src/libevent/test/regress_dns.c:2847,1
    - Dst: EVTHREAD_ALLOC_COND
      Src: /src/libevent/test/regress_dns.c:2848,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2849,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2850,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2851,1
    - Dst: THREAD_START
      Src: /src/libevent/test/regress_dns.c:2856,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:2858,1
    - Dst: THREAD_START
      Src: /src/libevent/test/regress_dns.c:2860,1
    - Dst: EVLOCK_LOCK
      Src: /src/libevent/test/regress_dns.c:2863,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2867,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/test/regress_dns.c:2867,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress_dns.c:2872,1
    - Dst: EVTHREAD_COND_WAIT_TIMED
      Src: /src/libevent/test/regress_dns.c:2881,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2887,1
    - Dst: EVTHREAD_COND_WAIT_TIMED
      Src: /src/libevent/test/regress_dns.c:2887,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_dns.c:2889,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:2892,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:2894,1
    - Dst: EVLOCK_UNLOCK
      Src: /src/libevent/test/regress_dns.c:2898,1
    - Dst: EVTHREAD_FREE_LOCK
      Src: /src/libevent/test/regress_dns.c:2899,1
    - Dst: EVTHREAD_FREE_COND
      Src: /src/libevent/test/regress_dns.c:2900,1
    - Dst: EVTHREAD_FREE_COND
      Src: /src/libevent/test/regress_dns.c:2901,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:2902,1
    - Dst: event_base_loopbreak
      Src: /src/libevent/test/regress_dns.c:2903,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_dns.c:2904,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 59
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2905
      start: 2811
    functionDepth: 10
    functionLinenumber: 2811
    functionLinenumberEnd: 2905
    functionName: getaddrinfo_race_gotresolve_test
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - event_base_free
    - EVTHREAD_COND_WAIT_TIMED
    - evthread_use_pthreads
    - evdns_getaddrinfo
    - EVTHREAD_ALLOC_COND
    - evutil_usleep_
    - ARRAY_SIZE
    - tt_abort_msg
    - regress_get_udp_dnsserver
    - EVTHREAD_FREE_LOCK
    - evdns_base_nameserver_ip_add
    - event_base_new
    - evutil_snprintf
    - THREAD_START
    - EVLOCK_LOCK
    - evdns_base_free
    - evdns_close_server_port
    - tt_int_op
    - event_base_loopbreak
    - tt_assert
    - EVTHREAD_ALLOC_LOCK
    - EVTHREAD_FREE_COND
    - EVLOCK_UNLOCK
    - evdns_base_new
    - evthread_make_base_notifiable
    linkageType: ''
    returnType: void
    signature: void getaddrinfo_race_gotresolve_test(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:2913,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2922,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2923,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2925,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_dns.c:2925,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:2926,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2928,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:2928,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:2931,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2933,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:2935,1
    - Dst: assert_request_results
      Src: /src/libevent/test/regress_dns.c:2936,1
    - Dst: REPEAT_64
      Src: /src/libevent/test/regress_dns.c:2936,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2937,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2938,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:2941,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2943,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:2945,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2946,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2947,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2948,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2949,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:2951,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2953,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:2955,1
    - Dst: assert_request_results
      Src: /src/libevent/test/regress_dns.c:2956,1
    - Dst: REPEAT_64
      Src: /src/libevent/test/regress_dns.c:2956,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2957,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2958,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:2961,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2963,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:2965,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2966,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2967,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2968,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2969,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:2971,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2973,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:2975,1
    - Dst: assert_request_results
      Src: /src/libevent/test/regress_dns.c:2976,1
    - Dst: REPEAT_256
      Src: /src/libevent/test/regress_dns.c:2977,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2978,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2979,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:2981,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2983,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:2985,1
    - Dst: assert_request_results
      Src: /src/libevent/test/regress_dns.c:2986,1
    - Dst: REPEAT_256
      Src: /src/libevent/test/regress_dns.c:2987,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2988,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:2989,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:2993,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_dns.c:2995,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 49
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2996
      start: 2908
    functionDepth: 9
    functionLinenumber: 2908
    functionLinenumberEnd: 2996
    functionName: test_tcp_resolve
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - regress_dnsserver
    - REPEAT_64
    - evdns_base_free
    - evdns_base_nameserver_ip_add
    - assert_request_results
    - REPEAT_256
    - regress_clean_dnsserver
    - evdns_base_new
    - evutil_snprintf
    - evdns_base_resolve_ipv4
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_tcp_resolve(void *arg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3003,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3012,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3013,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3014,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_dns.c:3014,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:3015,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3016,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:3016,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3017,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3017,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3020,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3022,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3026,1
    - Dst: assert_request_results
      Src: /src/libevent/test/regress_dns.c:3028,1
    - Dst: REPEAT_256
      Src: /src/libevent/test/regress_dns.c:3029,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3031,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3032,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:3036,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_dns.c:3037,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3045,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3045,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3045,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3053,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3055,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_dns.c:3055,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:3056,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3058,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3059,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:3059,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3060,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3062,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3066,1
    - Dst: assert_request_results
      Src: /src/libevent/test/regress_dns.c:3068,1
    - Dst: REPEAT_64
      Src: /src/libevent/test/regress_dns.c:3068,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3070,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3071,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:3076,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_dns.c:3078,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3087,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3094,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3095,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3097,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3097,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3098,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_dns.c:3098,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:3099,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3101,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:3101,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3103,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3105,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3108,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3110,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:3114,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_dns.c:3116,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3125,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3132,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3133,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3135,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_dns.c:3136,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:3137,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3139,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:3139,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3141,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3143,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3146,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3148,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:3152,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_dns.c:3154,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3171,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_dns.c:3171,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:3172,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3173,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3174,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3175,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:3175,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3178,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3180,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:3181,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:3182,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3184,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3184,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3186,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3188,1
    - Dst: assert_request_results
      Src: /src/libevent/test/regress_dns.c:3189,1
    - Dst: REPEAT_64
      Src: /src/libevent/test/regress_dns.c:3189,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3192,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3194,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:3195,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:3196,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3198,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3198,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3200,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3202,1
    - Dst: assert_request_results
      Src: /src/libevent/test/regress_dns.c:3203,1
    - Dst: REPEAT_256
      Src: /src/libevent/test/regress_dns.c:3204,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:3208,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_dns.c:3210,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3219,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3220,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3222,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3222,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3223,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3223,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3226,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:3226,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:3230,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3266,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3267,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:3269,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3270,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3270,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3271,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3271,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3272,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3272,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3273,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3273,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3274,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3274,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:3277,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3278,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3278,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3279,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3279,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3280,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3280,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3281,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3281,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3282,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3282,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3283,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3283,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:3286,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3287,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3287,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3288,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3288,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3289,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3289,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3290,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3290,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3291,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3291,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3292,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3292,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:3295,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3296,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3296,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3297,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3297,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3298,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3298,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3299,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3299,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:3306,1
    - Dst: regress_get_tcp_dnsserver
      Src: /src/libevent/test/regress_dns.c:3324,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3325,1
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_dns.c:3327,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3328,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:3330,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3331,1
    - Dst: evdns_server_port_set_option
      Src: /src/libevent/test/regress_dns.c:3331,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3332,1
    - Dst: evdns_server_port_set_option
      Src: /src/libevent/test/regress_dns.c:3332,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3333,1
    - Dst: evdns_server_port_set_option
      Src: /src/libevent/test/regress_dns.c:3333,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3334,1
    - Dst: evdns_server_port_set_option
      Src: /src/libevent/test/regress_dns.c:3334,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3335,1
    - Dst: evdns_server_port_set_option
      Src: /src/libevent/test/regress_dns.c:3335,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:3342,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_dns.c:3344,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:3346,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_dns.c:3348,1
    - Dst: DNS_LEGACY
      Src: /src/libevent/test/regress_dns.c:3356,1
    - Dst: DNS_LEGACY
      Src: /src/libevent/test/regress_dns.c:3357,1
    - Dst: DNS_LEGACY
      Src: /src/libevent/test/regress_dns.c:3358,1
    - Dst: DNS_LEGACY
      Src: /src/libevent/test/regress_dns.c:3359,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 177
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3457
      start: 2998
    functionDepth: 9
    functionLinenumber: 2998
    functionLinenumberEnd: 3457
    functionName: test_tcp_resolve_pipeline
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - regress_get_tcp_dnsserver
    - REPEAT_256
    - regress_clean_dnsserver
    - evdns_base_resolve_ipv4
    - evdns_base_set_option
    - ARRAY_SIZE
    - regress_get_udp_dnsserver
    - evdns_base_nameserver_ip_add
    - assert_request_results
    - evutil_snprintf
    - regress_dnsserver
    - evdns_base_free
    - REPEAT_64
    - evdns_close_server_port
    - tt_int_op
    - DNS_LEGACY
    - tt_assert
    - evutil_closesocket
    - evdns_base_new
    - evdns_server_port_set_option
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_tcp_resolve_pipeline(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3045,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3045,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3045,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3053,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3055,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_dns.c:3055,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:3056,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3058,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3059,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:3059,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3060,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3062,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3066,1
    - Dst: assert_request_results
      Src: /src/libevent/test/regress_dns.c:3068,1
    - Dst: REPEAT_64
      Src: /src/libevent/test/regress_dns.c:3068,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3070,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3071,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:3076,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_dns.c:3078,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3079
      start: 3040
    functionDepth: 9
    functionLinenumber: 3040
    functionLinenumberEnd: 3079
    functionName: test_tcp_resolve_many_clients
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - regress_dnsserver
    - REPEAT_64
    - evdns_base_free
    - evdns_base_nameserver_ip_add
    - assert_request_results
    - regress_clean_dnsserver
    - evdns_base_new
    - evutil_snprintf
    - evdns_base_resolve_ipv4
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_tcp_resolve_many_clients(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3087,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3094,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3095,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3097,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3097,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3098,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_dns.c:3098,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:3099,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3101,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:3101,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3103,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3105,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3108,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3110,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:3114,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_dns.c:3116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3117
      start: 3081
    functionDepth: 9
    functionLinenumber: 3081
    functionLinenumberEnd: 3117
    functionName: test_tcp_timeout
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evdns_base_set_option
    - regress_dnsserver
    - evdns_base_free
    - evdns_base_nameserver_ip_add
    - regress_clean_dnsserver
    - evdns_base_new
    - evutil_snprintf
    - evdns_base_resolve_ipv4
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_tcp_timeout(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3125,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3132,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3133,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3135,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_dns.c:3136,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:3137,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3139,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:3139,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3141,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3143,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3146,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3148,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:3152,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_dns.c:3154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3155
      start: 3119
    functionDepth: 9
    functionLinenumber: 3119
    functionLinenumberEnd: 3155
    functionName: test_tcp_notimpl
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - regress_dnsserver
    - evdns_base_free
    - evdns_base_nameserver_ip_add
    - regress_clean_dnsserver
    - evdns_base_new
    - evutil_snprintf
    - evdns_base_resolve_ipv4
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_tcp_notimpl(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3171,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_dns.c:3171,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_dns.c:3172,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3173,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3174,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3175,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:3175,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3178,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3180,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:3181,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:3182,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3184,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3184,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3186,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3188,1
    - Dst: assert_request_results
      Src: /src/libevent/test/regress_dns.c:3189,1
    - Dst: REPEAT_64
      Src: /src/libevent/test/regress_dns.c:3189,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3192,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3194,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:3195,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_dns.c:3196,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3198,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3198,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/test/regress_dns.c:3200,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_dns.c:3202,1
    - Dst: assert_request_results
      Src: /src/libevent/test/regress_dns.c:3203,1
    - Dst: REPEAT_256
      Src: /src/libevent/test/regress_dns.c:3204,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:3208,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_dns.c:3210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3211
      start: 3158
    functionDepth: 9
    functionLinenumber: 3158
    functionLinenumberEnd: 3211
    functionName: test_edns
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evdns_base_set_option
    - regress_dnsserver
    - tt_int_op
    - REPEAT_64
    - evdns_base_free
    - evdns_base_nameserver_ip_add
    - assert_request_results
    - REPEAT_256
    - regress_clean_dnsserver
    - evdns_base_new
    - evutil_snprintf
    - evdns_base_resolve_ipv4
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_edns(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3219,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3220,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3222,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3222,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3223,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3223,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3226,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_dns.c:3226,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:3230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3231
      start: 3213
    functionDepth: 9
    functionLinenumber: 3213
    functionLinenumberEnd: 3231
    functionName: test_set_so_rcvbuf_so_sndbuf
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evdns_base_set_option
    - evdns_base_free
    - evdns_base_nameserver_ip_add
    - evdns_base_new
    linkageType: ''
    returnType: void
    signature: void test_set_so_rcvbuf_so_sndbuf(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_dns.c:3266,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3267,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:3269,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3270,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3270,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3271,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3271,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3272,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3272,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3273,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3273,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3274,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3274,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:3277,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3278,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3278,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3279,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3279,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3280,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3280,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3281,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3281,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3282,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3282,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3283,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3283,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:3286,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3287,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3287,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3288,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3288,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3289,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3289,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3290,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3290,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3291,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3291,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3292,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3292,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:3295,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3296,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3296,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3297,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3297,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3298,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3298,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3299,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_dns.c:3299,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_dns.c:3306,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3307
      start: 3233
    functionDepth: 9
    functionLinenumber: 3233
    functionLinenumberEnd: 3307
    functionName: test_set_option
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evdns_base_set_option
    - ARRAY_SIZE
    - evdns_base_free
    - evdns_base_new
    linkageType: ''
    returnType: void
    signature: void test_set_option(void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: regress_get_tcp_dnsserver
      Src: /src/libevent/test/regress_dns.c:3324,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3325,1
    - Dst: regress_get_udp_dnsserver
      Src: /src/libevent/test/regress_dns.c:3327,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3328,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_dns.c:3330,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3331,1
    - Dst: evdns_server_port_set_option
      Src: /src/libevent/test/regress_dns.c:3331,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3332,1
    - Dst: evdns_server_port_set_option
      Src: /src/libevent/test/regress_dns.c:3332,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3333,1
    - Dst: evdns_server_port_set_option
      Src: /src/libevent/test/regress_dns.c:3333,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3334,1
    - Dst: evdns_server_port_set_option
      Src: /src/libevent/test/regress_dns.c:3334,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_dns.c:3335,1
    - Dst: evdns_server_port_set_option
      Src: /src/libevent/test/regress_dns.c:3335,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:3342,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_dns.c:3344,1
    - Dst: evdns_close_server_port
      Src: /src/libevent/test/regress_dns.c:3346,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_dns.c:3348,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3349
      start: 3309
    functionDepth: 6
    functionLinenumber: 3309
    functionLinenumberEnd: 3349
    functionName: test_set_server_option
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evdns_close_server_port
    - evutil_closesocket
    - ARRAY_SIZE
    - regress_get_udp_dnsserver
    - regress_get_tcp_dnsserver
    - evdns_server_port_set_option
    linkageType: ''
    returnType: void
    signature: void test_set_server_option(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3354
      start: 3351
    functionDepth: 0
    functionLinenumber: 3351
    functionLinenumberEnd: 3354
    functionName: DNS_LEGACY
    functionSourceFile: /src/libevent/test/regress_dns.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DNS_LEGACY(name, flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_listener.c:83,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_listener.c:84,1
    - Dst: evconnlistener_disable
      Src: /src/libevent/test/regress_listener.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - listener
    - fd
    - addr
    - socklen
    - arg
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 88
    functionName: acceptcb
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - evconnlistener_disable
    - TT_BLATHER
    - evutil_closesocket
    linkageType: ''
    returnType: void
    signature: "void acceptcb(struct evconnlistener *listener, evutil_socket_t fd,\n
      \   struct sockaddr *addr, int socklen, void *arg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libevent/test/regress_listener.c:107,1
    - Dst: memset
      Src: /src/libevent/test/regress_listener.c:111,1
    - Dst: htonl
      Src: /src/libevent/test/regress_listener.c:113,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_listener.c:116,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:118,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_listener.c:119,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:121,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:123,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_listener.c:123,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:124,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_listener.c:124,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:125,1
    - Dst: getsockname
      Src: /src/libevent/test/regress_listener.c:125,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_listener.c:125,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:127,1
    - Dst: getsockname
      Src: /src/libevent/test/regress_listener.c:127,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_listener.c:127,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_listener.c:129,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_listener.c:130,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_listener.c:134,1
    - Dst: ntohl
      Src: /src/libevent/test/regress_listener.c:134,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_listener.c:135,1
    - Dst: ntohl
      Src: /src/libevent/test/regress_listener.c:135,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_listener.c:136,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_listener.c:138,1
    - Dst: evconnlistener_get_base
      Src: /src/libevent/test/regress_listener.c:138,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_listener.c:139,1
    - Dst: evconnlistener_get_base
      Src: /src/libevent/test/regress_listener.c:139,1
    - Dst: evutil_socket_connect_
      Src: /src/libevent/test/regress_listener.c:142,1
    - Dst: evutil_socket_connect_
      Src: /src/libevent/test/regress_listener.c:143,1
    - Dst: evutil_socket_connect_
      Src: /src/libevent/test/regress_listener.c:144,1
    - Dst: Sleep
      Src: /src/libevent/test/regress_listener.c:147,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_listener.c:149,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_listener.c:151,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_listener.c:152,1
    - Dst: EVUTIL_CLOSESOCKET
      Src: /src/libevent/test/regress_listener.c:156,1
    - Dst: EVUTIL_CLOSESOCKET
      Src: /src/libevent/test/regress_listener.c:158,1
    - Dst: EVUTIL_CLOSESOCKET
      Src: /src/libevent/test/regress_listener.c:160,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_listener.c:162,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_listener.c:164,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 46
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 90
    functionDepth: 5
    functionLinenumber: 90
    functionLinenumberEnd: 165
    functionName: regress_pick_a_port
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_ptr_op
    - evconnlistener_new_bind
    - getsockname
    - evutil_socket_connect_
    - evconnlistener_free
    - EVUTIL_CLOSESOCKET
    - ntohl
    - memset
    - evconnlistener_get_fd
    - evconnlistener_get_base
    - Sleep
    - strstr
    - tt_int_op
    - htonl
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void regress_pick_a_port(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evconnlistener_disable
      Src: /src/libevent/test/regress_listener.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lis
    - data_
    argTypes:
    - struct evconnlistener*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: errorcb
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 5
    functionsReached:
    - evconnlistener_disable
    linkageType: ''
    returnType: void
    signature: void errorcb(struct evconnlistener *lis, void *data_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libevent/test/regress_listener.c:184,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_listener.c:189,1
    - Dst: send
      Src: /src/libevent/test/regress_listener.c:189,1
    - Dst: evconnlistener_new
      Src: /src/libevent/test/regress_listener.c:192,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:195,1
    - Dst: evconnlistener_set_error_cb
      Src: /src/libevent/test/regress_listener.c:197,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:199,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_listener.c:201,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_listener.c:202,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_listener.c:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 207
    functionName: regress_listener_error
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evconnlistener_free
    - evconnlistener_set_error_cb
    - strstr
    - tt_int_op
    - event_base_dispatch
    - evconnlistener_new
    - send
    linkageType: ''
    returnType: void
    signature: void regress_listener_error(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_listener.c:215,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_listener.c:216,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_listener.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - listener
    - fd
    - addr
    - socklen
    - arg
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 220
    functionName: acceptcb_free
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - evconnlistener_free
    - TT_BLATHER
    - evutil_closesocket
    linkageType: ''
    returnType: void
    signature: "void acceptcb_free(struct evconnlistener *listener, evutil_socket_t
      fd,\n    struct sockaddr *addr, int socklen, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_listener.c:234,1
    - Dst: htonl
      Src: /src/libevent/test/regress_listener.c:236,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_listener.c:240,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:242,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:244,1
    - Dst: getsockname
      Src: /src/libevent/test/regress_listener.c:244,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_listener.c:244,1
    - Dst: evutil_socket_connect_
      Src: /src/libevent/test/regress_listener.c:246,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_listener.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 221
    functionDepth: 5
    functionLinenumber: 221
    functionLinenumberEnd: 252
    functionName: regress_listener_close_accepted_fd
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evconnlistener_new_bind
    - getsockname
    - evutil_socket_connect_
    - memset
    - evconnlistener_get_fd
    - htonl
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void regress_listener_close_accepted_fd(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_listener.c:267,1
    - Dst: htonl
      Src: /src/libevent/test/regress_listener.c:269,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_listener.c:273,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:275,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:277,1
    - Dst: getsockname
      Src: /src/libevent/test/regress_listener.c:277,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_listener.c:277,1
    - Dst: evutil_socket_connect_
      Src: /src/libevent/test/regress_listener.c:280,1
    - Dst: evutil_socket_connect_
      Src: /src/libevent/test/regress_listener.c:281,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_listener.c:283,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_listener.c:285,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_listener.c:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 254
    functionDepth: 5
    functionLinenumber: 254
    functionLinenumberEnd: 290
    functionName: regress_listener_immediate_close
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evconnlistener_free
    - evconnlistener_new_bind
    - getsockname
    - evutil_socket_connect_
    - memset
    - evconnlistener_get_fd
    - tt_int_op
    - htonl
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void regress_listener_immediate_close(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_listener.c:302,1
    - Dst: send
      Src: /src/libevent/test/regress_listener.c:302,1
    - Dst: evconnlistener_new
      Src: /src/libevent/test/regress_listener.c:305,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:306,1
    - Dst: setrlimit
      Src: /src/libevent/test/regress_listener.c:312,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_listener.c:313,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_listener.c:317,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_listener.c:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 293
    functionDepth: 6
    functionLinenumber: 293
    functionLinenumberEnd: 324
    functionName: regress_listener_error_unlock
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evconnlistener_free
    - TT_DIE
    - setrlimit
    - event_base_loop
    - tt_int_op
    - evconnlistener_new
    - send
    linkageType: ''
    returnType: void
    signature: void regress_listener_error_unlock(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evconnlistener_disable
      Src: /src/libevent/test/regress_listener.c:333,1
    - Dst: THREAD_RETURN
      Src: /src/libevent/test/regress_listener.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 335
    functionName: disable_thread
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - THREAD_RETURN
    - evconnlistener_disable
    linkageType: ''
    returnType: THREAD_FN
    signature: THREAD_FN disable_thread(void * arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_listener.c:347,1
    - Dst: THREAD_START
      Src: /src/libevent/test/regress_listener.c:352,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress_listener.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - listener
    - fd
    - addr
    - socklen
    - arg
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 356
    functionName: acceptcb_for_thread_test
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - THREAD_START
    - evutil_usleep_
    - evutil_closesocket
    linkageType: ''
    returnType: void
    signature: "void acceptcb_for_thread_test(struct evconnlistener *listener, evutil_socket_t
      fd,\n    struct sockaddr *addr, int socklen, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_listener.c:371,1
    - Dst: htonl
      Src: /src/libevent/test/regress_listener.c:373,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_listener.c:377,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:380,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:382,1
    - Dst: getsockname
      Src: /src/libevent/test/regress_listener.c:382,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/test/regress_listener.c:382,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:385,1
    - Dst: evutil_socket_connect_
      Src: /src/libevent/test/regress_listener.c:385,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_listener.c:387,1
    - Dst: THREAD_JOIN
      Src: /src/libevent/test/regress_listener.c:389,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_listener.c:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 358
    functionDepth: 6
    functionLinenumber: 358
    functionLinenumberEnd: 393
    functionName: regress_listener_disable_in_thread
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evconnlistener_new_bind
    - getsockname
    - evutil_socket_connect_
    - memset
    - evconnlistener_get_fd
    - THREAD_JOIN
    - event_base_loop
    - evconnlistener_free
    - htonl
    linkageType: ''
    returnType: void
    signature: void regress_listener_disable_in_thread(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: THREAD_START
      Src: /src/libevent/test/regress_listener.c:407,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress_listener.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - listener
    - arg
    argTypes:
    - struct evconnlistener*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 411
    functionName: errorcb_for_thread_test
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - THREAD_START
    - evutil_usleep_
    linkageType: ''
    returnType: void
    signature: void errorcb_for_thread_test(struct evconnlistener *listener, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - listener
    - fd
    - addr
    - socklen
    - arg
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 417
    functionName: acceptcb_for_thread_test_error
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void acceptcb_for_thread_test_error(struct evconnlistener *listener,
      evutil_socket_t fd,\n    struct sockaddr *addr, int socklen, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_listener.c:429,1
    - Dst: send
      Src: /src/libevent/test/regress_listener.c:429,1
    - Dst: evconnlistener_new
      Src: /src/libevent/test/regress_listener.c:432,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_listener.c:435,1
    - Dst: evconnlistener_set_error_cb
      Src: /src/libevent/test/regress_listener.c:437,1
    - Dst: event_base_loop
      Src: /src/libevent/test/regress_listener.c:439,1
    - Dst: THREAD_JOIN
      Src: /src/libevent/test/regress_listener.c:441,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_listener.c:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 419
    functionDepth: 6
    functionLinenumber: 419
    functionLinenumberEnd: 445
    functionName: regress_listener_disable_in_thread_error
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evconnlistener_free
    - evconnlistener_set_error_cb
    - THREAD_JOIN
    - event_base_loop
    - tt_int_op
    - evconnlistener_new
    - send
    linkageType: ''
    returnType: void
    signature: void regress_listener_disable_in_thread_error(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetTempPathW
      Src: /src/libevent/test/regress_listener.c:457,1
    - Dst: GetLongPathNameW
      Src: /src/libevent/test/regress_listener.c:460,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 471
    functionName: is_unicode_temp_path
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - GetLongPathNameW
    - GetTempPathW
    linkageType: ''
    returnType: int
    signature: int is_unicode_temp_path()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/test/regress_listener.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - listener
    - fd
    - sa
    - socklen
    - user_data
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 479
    functionName: empty_listener_cb
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void empty_listener_cb(struct evconnlistener *listener, evutil_socket_t
      fd,\n    struct sockaddr *sa, int socklen, void *user_data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: regress_make_tmpfile
      Src: /src/libevent/test/regress_listener.c:492,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_listener.c:496,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_listener.c:497,1
    - Dst: evutil_check_working_afunix_
      Src: /src/libevent/test/regress_listener.c:500,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_listener.c:503,1
    - Dst: close
      Src: /src/libevent/test/regress_listener.c:508,1
    - Dst: unlink
      Src: /src/libevent/test/regress_listener.c:511,1
    - Dst: memset
      Src: /src/libevent/test/regress_listener.c:513,1
    - Dst: strlcpy
      Src: /src/libevent/test/regress_listener.c:515,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_listener.c:520,1
    - Dst: tt_assert_msg
      Src: /src/libevent/test/regress_listener.c:523,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_listener.c:525,1
    - Dst: tt_assert_msg
      Src: /src/libevent/test/regress_listener.c:528,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/test/regress_listener.c:531,1
    - Dst: tt_assert_msg
      Src: /src/libevent/test/regress_listener.c:535,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/test/regress_listener.c:538,1
    - Dst: is_unicode_temp_path
      Src: /src/libevent/test/regress_listener.c:538,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_listener.c:544,1
    - Dst: tt_assert_msg
      Src: /src/libevent/test/regress_listener.c:546,1
    - Dst: unlink
      Src: /src/libevent/test/regress_listener.c:551,1
    - Dst: free
      Src: /src/libevent/test/regress_listener.c:552,1
    - Dst: evconnlistener_free
      Src: /src/libevent/test/regress_listener.c:555,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 481
    functionDepth: 5
    functionLinenumber: 481
    functionLinenumberEnd: 556
    functionName: regress_listener_reuseport_on_unix_socket
    functionSourceFile: /src/libevent/test/regress_listener.c
    functionUses: 0
    functionsReached:
    - close
    - unlink
    - evconnlistener_free
    - tt_skip
    - regress_make_tmpfile
    - strlcpy
    - TT_BLATHER
    - memset
    - evutil_check_working_afunix_
    - free
    - EVUTIL_SOCKET_ERROR
    - is_unicode_temp_path
    - tt_assert_msg
    - evconnlistener_new_bind
    linkageType: ''
    returnType: void
    signature: void regress_listener_reuseport_on_unix_socket(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: ARRAY_SIZE
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE(x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct evhttp_ext_method*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 111
    functionName: ext_method_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int ext_method_cb(struct evhttp_ext_method *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_bind_socket_with_handle
      Src: /src/libevent/test/regress_http.c:140,1
    - Dst: evhttp_bind_socket_with_handle
      Src: /src/libevent/test/regress_http.c:142,1
    - Dst: event_errx
      Src: /src/libevent/test/regress_http.c:148,1
    - Dst: regress_get_socket_port
      Src: /src/libevent/test/regress_http.c:151,1
    - Dst: evhttp_bound_socket_get_fd
      Src: /src/libevent/test/regress_http.c:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - myhttp
    - pport
    - mask
    argTypes:
    - struct evhttp*
    - ev_uint16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 157
    functionName: http_bind
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - regress_get_socket_port
    - evhttp_bound_socket_get_fd
    - event_errx
    - evhttp_bind_socket_with_handle
    linkageType: ''
    returnType: int
    signature: int http_bind(struct evhttp *myhttp, ev_uint16_t *pport, int mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_new
      Src: /src/libevent/test/regress_http.c:163,1
    - Dst: get_ssl_ctx
      Src: /src/libevent/test/regress_http.c:163,1
    - Dst: SSL_use_certificate
      Src: /src/libevent/test/regress_http.c:165,1
    - Dst: ssl_getcert
      Src: /src/libevent/test/regress_http.c:165,1
    - Dst: ssl_getkey
      Src: /src/libevent/test/regress_http.c:165,1
    - Dst: SSL_use_PrivateKey
      Src: /src/libevent/test/regress_http.c:166,1
    - Dst: ssl_getkey
      Src: /src/libevent/test/regress_http.c:166,1
    - Dst: bufferevent_openssl_socket_new
      Src: /src/libevent/test/regress_http.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - base
    - arg
    argTypes:
    - struct event_base*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 171
    functionName: https_bev
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - SSL_use_PrivateKey
    - SSL_use_certificate
    - bufferevent_openssl_socket_new
    - ssl_getkey
    - get_ssl_ctx
    - ssl_getcert
    - SSL_new
    linkageType: ''
    returnType: struct bufferevent
    signature: 'struct bufferevent *

      https_bev(struct event_base *base, void *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_mbedtls_dyncontext_new
      Src: /src/libevent/test/regress_http.c:177,1
    - Dst: get_mbedtls_config
      Src: /src/libevent/test/regress_http.c:177,1
    - Dst: bufferevent_mbedtls_socket_new
      Src: /src/libevent/test/regress_http.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - base
    - arg
    argTypes:
    - struct event_base*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 181
    functionName: https_mbedtls_bev
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - get_mbedtls_config
    - bufferevent_mbedtls_socket_new
    - bufferevent_mbedtls_dyncontext_new
    linkageType: ''
    returnType: struct bufferevent
    signature: 'struct bufferevent *

      https_mbedtls_bev(struct event_base *base, void *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_new
      Src: /src/libevent/test/regress_http.c:190,1
    - Dst: http_bind
      Src: /src/libevent/test/regress_http.c:192,1
    - Dst: init_ssl
      Src: /src/libevent/test/regress_http.c:196,1
    - Dst: evhttp_set_bevcb
      Src: /src/libevent/test/regress_http.c:197,1
    - Dst: evhttp_set_bevcb
      Src: /src/libevent/test/regress_http.c:202,1
    - Dst: evhttp_set_gencb
      Src: /src/libevent/test/regress_http.c:206,1
    - Dst: evhttp_set_ext_method_cmp
      Src: /src/libevent/test/regress_http.c:209,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:212,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:213,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:214,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:215,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:216,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:217,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:218,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:219,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:220,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:221,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:222,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:223,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:224,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:225,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:226,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:227,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:228,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:229,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:230,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:231,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:232,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:233,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:234,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 4
    argNames:
    - pport
    - base
    - mask
    - cbarg
    argTypes:
    - ev_uint16_t*
    - struct event_base*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 237
    functionName: http_setup_gencb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_set_gencb
    - evhttp_set_bevcb
    - evhttp_set_ext_method_cmp
    - http_bind
    - evhttp_set_cb
    - init_ssl
    - evhttp_new
    linkageType: ''
    returnType: struct evhttp
    signature: "struct evhttp *\nhttp_setup_gencb(ev_uint16_t *pport, struct event_base
      *base, int mask,\n\tvoid (*cb)(struct evhttp_request *, void *), void *cbarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_setup_gencb
      Src: /src/libevent/test/regress_http.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pport
    - base
    - mask
    argTypes:
    - ev_uint16_t*
    - struct event_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 238
    functionDepth: 4
    functionLinenumber: 238
    functionLinenumberEnd: 240
    functionName: http_setup
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 2
    functionsReached:
    - http_setup_gencb
    linkageType: ''
    returnType: struct evhttp
    signature: 'struct evhttp *

      http_setup(ev_uint16_t *pport, struct event_base *base, int mask)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_http.c:257,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_http.c:260,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_http.c:261,1
    - Dst: event_warn
      Src: /src/libevent/test/regress_http.c:262,1
    - Dst: socket
      Src: /src/libevent/test/regress_http.c:268,1
    - Dst: event_err
      Src: /src/libevent/test/regress_http.c:270,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/test/regress_http.c:272,1
    - Dst: connect
      Src: /src/libevent/test/regress_http.c:273,1
    - Dst: WSAGetLastError
      Src: /src/libevent/test/regress_http.c:275,1
    - Dst: event_err
      Src: /src/libevent/test/regress_http.c:278,1
    - Dst: event_err
      Src: /src/libevent/test/regress_http.c:281,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_http.c:285,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - address
    - port
    argTypes:
    - char*
    - ev_uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 246
    functionDepth: 7
    functionLinenumber: 246
    functionLinenumberEnd: 288
    functionName: http_connect
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 1
    functionsReached:
    - evutil_getaddrinfo
    - WSAGetLastError
    - connect
    - evutil_freeaddrinfo
    - event_warn
    - memset
    - socket
    - event_err
    - evutil_snprintf
    - evutil_make_socket_nonblocking
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t http_connect(const char *address, ev_uint16_t port)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:294,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:295,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_http.c:302,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_http.c:305,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - s
    argTypes:
    - struct evbuffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 291
    functionDepth: 4
    functionLinenumber: 291
    functionLinenumberEnd: 312
    functionName: evbuffer_datacmp
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcmp
    - evbuffer_get_length
    - evbuffer_pullup
    linkageType: ''
    returnType: int
    signature: int evbuffer_datacmp(struct evbuffer *buf, const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_search
      Src: /src/libevent/test/regress_http.c:319,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - s
    argTypes:
    - struct evbuffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 321
    functionName: evbuffer_contains
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - strlen
    - evbuffer_search
    linkageType: ''
    returnType: int
    signature: int evbuffer_contains(struct evbuffer *buf, const char *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_contains
      Src: /src/libevent/test/regress_http.c:329,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:329,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:330,1
    - Dst: evhttp_parse_firstline_
      Src: /src/libevent/test/regress_http.c:334,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:334,1
    - Dst: evhttp_parse_headers_
      Src: /src/libevent/test/regress_http.c:338,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:338,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:343,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:343,1
    - Dst: evhttp_request_free
      Src: /src/libevent/test/regress_http.c:348,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_http.c:349,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:351,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:353,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:355,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:356,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 323
    functionDepth: 4
    functionLinenumber: 323
    functionLinenumberEnd: 359
    functionName: http_readcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_input
    - exit
    - evhttp_request_get_input_headers
    - evbuffer_contains
    - evhttp_request_new
    - event_base_loopexit
    - evhttp_request_free
    - evhttp_parse_firstline_
    - fprintf
    - evhttp_find_header
    - evhttp_parse_headers_
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void http_readcb(struct bufferevent *bev, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:364,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_http.c:364,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_http.c:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 369
    functionName: http_writecb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - bufferevent_enable
    - bufferevent_get_output
    - evbuffer_get_length
    linkageType: ''
    returnType: void
    signature: void http_writecb(struct bufferevent *bev, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 379
    functionName: http_errorcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: void http_errorcb(struct bufferevent *bev, short what, void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:387,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:389,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:389,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:391,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:392,1
    - Dst: evhttp_request_get_connection
      Src: /src/libevent/test/regress_http.c:394,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:395,1
    - Dst: evhttp_connection_get_server
      Src: /src/libevent/test/regress_http.c:395,1
    - Dst: evhttp_connection_get_addr
      Src: /src/libevent/test/regress_http.c:401,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:402,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/test/regress_http.c:405,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:406,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_http.c:406,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:406,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/test/regress_http.c:408,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:409,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_http.c:409,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:409,1
    - Dst: tt_fail_msg
      Src: /src/libevent/test/regress_http.c:411,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:418,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:418,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:420,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:421,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:421,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:423,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:423,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:429,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:429,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:431,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:437,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:437,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:438,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:438,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/regress_http.c:442,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:446,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 384
    functionDepth: 9
    functionLinenumber: 384
    functionLinenumberEnd: 447
    functionName: http_basic_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_send_reply
    - evhttp_connection_get_server
    - tt_fail_msg
    - evhttp_connection_get_addr
    - strncmp
    - evhttp_request_get_output_headers
    - evhttp_request_get_input_headers
    - evhttp_add_header
    - TT_BLATHER
    - strcmp
    - evbuffer_add_printf
    - evhttp_request_get_connection
    - evutil_format_sockaddr_port_
    - evbuffer_free
    - strlen
    - evhttp_find_header
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void http_basic_cb(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/regress_http.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 449
    functionDepth: 6
    functionLinenumber: 449
    functionLinenumberEnd: 454
    functionName: http_timeout_reply_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_send_reply
    linkageType: ''
    returnType: void
    signature: void http_timeout_reply_cb(evutil_socket_t fd, short events, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 461
    functionName: http_timeout_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_once
    linkageType: ''
    returnType: void
    signature: void http_timeout_cb(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:466,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:470,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/regress_http.c:472,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 463
    functionDepth: 9
    functionLinenumber: 463
    functionLinenumberEnd: 474
    functionName: http_large_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_printf
    - evbuffer_free
    - evbuffer_new
    - evhttp_send_reply
    linkageType: ''
    returnType: void
    signature: void http_large_cb(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:491,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:495,1
    - Dst: evhttp_send_reply_chunk
      Src: /src/libevent/test/regress_http.c:496,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:497,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:500,1
    - Dst: evhttp_send_reply_end
      Src: /src/libevent/test/regress_http.c:503,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 488
    functionDepth: 9
    functionLinenumber: 488
    functionLinenumberEnd: 506
    functionName: http_chunked_trickle_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_send_reply_end
    - evhttp_send_reply_chunk
    - event_base_once
    - evbuffer_free
    - evbuffer_add_printf
    - free
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void http_chunked_trickle_cb(evutil_socket_t fd, short events, void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libevent/test/regress_http.c:512,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:513,1
    - Dst: memset
      Src: /src/libevent/test/regress_http.c:515,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:519,1
    - Dst: evhttp_request_get_uri
      Src: /src/libevent/test/regress_http.c:519,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:520,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:520,1
    - Dst: evhttp_send_reply_start
      Src: /src/libevent/test/regress_http.c:524,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 508
    functionDepth: 5
    functionLinenumber: 508
    functionLinenumberEnd: 529
    functionName: http_chunked_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_send_reply_start
    - event_base_once
    - evhttp_add_header
    - TT_BLATHER
    - strcmp
    - evhttp_request_get_uri
    - memset
    - malloc
    - evhttp_request_get_output_headers
    linkageType: ''
    returnType: void
    signature: void http_chunked_cb(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:534,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:535,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_http.c:537,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:537,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/regress_http.c:538,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 531
    functionDepth: 6
    functionLinenumber: 531
    functionLinenumberEnd: 541
    functionName: http_chunked_input_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_send_reply
    - evbuffer_free
    - TT_BLATHER
    - evbuffer_add_buffer
    - evhttp_request_get_input_buffer
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void http_chunked_input_cb(struct evhttp_request *req, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:550,1
    - Dst: SSL_new
      Src: /src/libevent/test/regress_http.c:553,1
    - Dst: get_ssl_ctx
      Src: /src/libevent/test/regress_http.c:553,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:556,1
    - Dst: bufferevent_openssl_filter_new
      Src: /src/libevent/test/regress_http.c:557,1
    - Dst: bufferevent_openssl_socket_new
      Src: /src/libevent/test/regress_http.c:560,1
    - Dst: bufferevent_openssl_set_allow_dirty_shutdown
      Src: /src/libevent/test/regress_http.c:563,1
    - Dst: bufferevent_mbedtls_dyncontext_new
      Src: /src/libevent/test/regress_http.c:567,1
    - Dst: get_mbedtls_config
      Src: /src/libevent/test/regress_http.c:567,1
    - Dst: mbedtls_ssl_set_hostname
      Src: /src/libevent/test/regress_http.c:568,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:571,1
    - Dst: bufferevent_mbedtls_filter_new
      Src: /src/libevent/test/regress_http.c:572,1
    - Dst: bufferevent_mbedtls_socket_new
      Src: /src/libevent/test/regress_http.c:575,1
    - Dst: bufferevent_mbedtls_set_allow_dirty_shutdown
      Src: /src/libevent/test/regress_http.c:578,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - base
    - fd
    - ssl_mask
    - flags_
    argTypes:
    - struct event_base*
    - evutil_socket_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 543
    functionDepth: 6
    functionLinenumber: 543
    functionLinenumberEnd: 583
    functionName: create_bev
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 1
    functionsReached:
    - bufferevent_socket_new
    - bufferevent_openssl_filter_new
    - get_mbedtls_config
    - bufferevent_mbedtls_filter_new
    - bufferevent_mbedtls_socket_new
    - mbedtls_ssl_set_hostname
    - bufferevent_openssl_set_allow_dirty_shutdown
    - bufferevent_openssl_socket_new
    - get_ssl_ctx
    - bufferevent_mbedtls_set_allow_dirty_shutdown
    - bufferevent_mbedtls_dyncontext_new
    - SSL_new
    linkageType: ''
    returnType: struct bufferevent
    signature: 'struct bufferevent *

      create_bev(struct event_base *base, evutil_socket_t fd, int ssl_mask, int flags_)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:588,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_http.c:588,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:593,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:593,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_http.c:596,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 585
    functionDepth: 8
    functionLinenumber: 585
    functionLinenumberEnd: 599
    functionName: http_half_writecb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_output
    - evbuffer_get_length
    - strlen
    - bufferevent_enable
    - bufferevent_write
    linkageType: ''
    returnType: void
    signature: void http_half_writecb(struct bufferevent *bev, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:610,1
    - Dst: http_bind
      Src: /src/libevent/test/regress_http.c:616,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:617,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:618,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:621,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:624,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:625,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:627,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_http.c:629,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:632,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:637,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:638,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:641,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:643,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:646,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:647,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:649,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_http.c:651,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:653,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:660,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:661,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:664,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:666,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:669,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:670,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:672,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:681,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:681,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:684,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:685,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:687,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:690,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 3
    argNames:
    - arg
    - ssl
    - request_line
    argTypes:
    - void*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 601
    functionDepth: 9
    functionLinenumber: 601
    functionLinenumberEnd: 691
    functionName: http_basic_test_impl
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - bufferevent_get_output
    - exit
    - http_connect
    - create_bev
    - bufferevent_write
    - bufferevent_free
    - strlen
    - evhttp_free
    - fprintf
    - bufferevent_setcb
    - evbuffer_add_printf
    - http_bind
    - tt_int_op
    - http_setup
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_basic_test_impl(void *arg, int ssl, const char *request_line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_basic_test_impl
      Src: /src/libevent/test/regress_http.c:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 692
    functionDepth: 10
    functionLinenumber: 692
    functionLinenumberEnd: 693
    functionName: http_basic_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_basic_test_impl
    linkageType: ''
    returnType: void
    signature: void http_basic_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_basic_test_impl
      Src: /src/libevent/test/regress_http.c:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 694
    functionDepth: 10
    functionLinenumber: 694
    functionLinenumberEnd: 695
    functionName: http_basic_trailing_space_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_basic_test_impl
    linkageType: ''
    returnType: void
    signature: void http_basic_trailing_space_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/regress_http.c:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 698
    functionDepth: 6
    functionLinenumber: 698
    functionLinenumberEnd: 706
    functionName: http_delay_reply
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_send_reply
    linkageType: ''
    returnType: void
    signature: void http_delay_reply(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress_http.c:712,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 708
    functionDepth: 2
    functionLinenumber: 708
    functionLinenumberEnd: 717
    functionName: http_delay_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_once
    - evutil_timerclear
    linkageType: ''
    returnType: void
    signature: void http_delay_cb(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:722,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:724,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:724,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:725,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/regress_http.c:727,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 719
    functionDepth: 9
    functionLinenumber: 719
    functionLinenumberEnd: 729
    functionName: http_badreq_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_send_reply
    - evbuffer_free
    - evhttp_add_header
    - evbuffer_add_printf
    - evhttp_request_get_output_headers
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void http_badreq_cb(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 736
    functionName: http_badreq_errorcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void http_badreq_errorcb(struct bufferevent *bev, short what, void
      *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_contains
      Src: /src/libevent/test/regress_http.c:744,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:744,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_http.c:745,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_http.c:746,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:747,1
    - Dst: evbuffer_contains
      Src: /src/libevent/test/regress_http.c:751,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:751,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:752,1
    - Dst: evhttp_parse_firstline_
      Src: /src/libevent/test/regress_http.c:756,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:756,1
    - Dst: evhttp_parse_headers_
      Src: /src/libevent/test/regress_http.c:760,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:760,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:765,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:765,1
    - Dst: evhttp_request_free
      Src: /src/libevent/test/regress_http.c:770,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_http.c:771,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:771,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:771,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:771,1
    - Dst: shutdown
      Src: /src/libevent/test/regress_http.c:774,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_http.c:774,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 738
    functionDepth: 4
    functionLinenumber: 738
    functionLinenumberEnd: 775
    functionName: http_badreq_readcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - TT_FAIL
    - bufferevent_get_input
    - evhttp_request_get_input_headers
    - evbuffer_contains
    - event_base_loopexit
    - evhttp_request_new
    - evhttp_request_free
    - bufferevent_getfd
    - evbuffer_get_length
    - evhttp_parse_firstline_
    - shutdown
    - evhttp_find_header
    - evhttp_parse_headers_
    - evbuffer_drain
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void http_badreq_readcb(struct bufferevent *bev, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:780,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 777
    functionDepth: 2
    functionLinenumber: 777
    functionLinenumberEnd: 782
    functionName: http_badreq_successcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void http_badreq_successcb(evutil_socket_t fd, short what, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:793,1
    - Dst: http_bind
      Src: /src/libevent/test/regress_http.c:799,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_http.c:800,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:803,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:804,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:807,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:808,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:810,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_http.c:812,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:817,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:817,1
    - Dst: shutdown
      Src: /src/libevent/test/regress_http.c:819,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress_http.c:820,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:822,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:824,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:826,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:827,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:830,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:831,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:837,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:838,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:841,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:842,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:844,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_http.c:846,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:854,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:854,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress_http.c:856,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:858,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:860,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:862,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:865,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:867,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:869,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 784
    functionDepth: 8
    functionLinenumber: 784
    functionLinenumberEnd: 870
    functionName: http_bad_request_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - bufferevent_free
    - bufferevent_write
    - shutdown
    - evutil_timerclear
    - evhttp_free
    - bufferevent_setcb
    - strlen
    - http_bind
    - fprintf
    - event_base_once
    - exit
    - tt_int_op
    - http_setup
    - tt_assert
    - bufferevent_socket_new
    - evutil_closesocket
    - http_connect
    - TT_DIE
    - bufferevent_enable
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_bad_request_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress_http.c:878,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:881,1
    - Dst: evhttp_connection_fail_
      Src: /src/libevent/test/regress_http.c:882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 874
    functionDepth: 4
    functionLinenumber: 874
    functionLinenumberEnd: 883
    functionName: http_large_delay_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_once
    - evhttp_connection_fail_
    - evutil_timerclear
    linkageType: ''
    returnType: void
    signature: void http_large_delay_cb(struct evhttp_request *req, void *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_get_uri
      Src: /src/libevent/test/regress_http.c:888,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:889,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:890,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:890,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:893,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:895,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:897,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:899,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:901,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:903,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:905,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:907,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:910,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:911,1
    - Dst: evhttp_request_get_command
      Src: /src/libevent/test/regress_http.c:914,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:915,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:916,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:919,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:920,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/regress_http.c:923,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:926,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 885
    functionDepth: 9
    functionLinenumber: 885
    functionLinenumberEnd: 927
    functionName: http_genmethod_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_send_reply
    - exit
    - evbuffer_free
    - evhttp_request_get_input_headers
    - TT_BLATHER
    - strcmp
    - evhttp_request_get_uri
    - evbuffer_add_printf
    - evhttp_request_get_command
    - fprintf
    - evhttp_find_header
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void http_genmethod_cb(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:937,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:942,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:943,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:944,1
    - Dst: evhttp_set_allowed_methods
      Src: /src/libevent/test/regress_http.c:946,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:949,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:950,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:952,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_http.c:954,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:955,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:963,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:965,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:966,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:969,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:971,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:974,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 4
    argNames:
    - arg
    - method
    - name
    - path
    argTypes:
    - void*
    - enum evhttp_cmd_type
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 929
    functionDepth: 9
    functionLinenumber: 929
    functionLinenumberEnd: 975
    functionName: http_genmethod_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - bufferevent_socket_new
    - evhttp_set_allowed_methods
    - bufferevent_get_output
    - evutil_closesocket
    - http_connect
    - evhttp_free
    - bufferevent_free
    - evbuffer_add_printf
    - bufferevent_setcb
    - tt_int_op
    - http_setup
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_genmethod_test(void *arg, enum evhttp_cmd_type method, const
      char *name, const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:983,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:984,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:984,1
    - Dst: evhttp_request_get_command
      Src: /src/libevent/test/regress_http.c:987,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:989,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:990,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:993,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:994,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/regress_http.c:997,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:1000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 980
    functionDepth: 9
    functionLinenumber: 980
    functionLinenumberEnd: 1001
    functionName: http_custom_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_send_reply
    - exit
    - evbuffer_free
    - evhttp_request_get_input_headers
    - TT_BLATHER
    - evbuffer_add_printf
    - evhttp_request_get_command
    - fprintf
    - evhttp_find_header
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void http_custom_cb(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:1015,1
    - Dst: evhttp_set_allowed_methods
      Src: /src/libevent/test/regress_http.c:1017,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1019,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:1020,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:1021,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:1024,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1025,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:1027,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:1036,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:1036,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1038,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:1040,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:1041,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:1044,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:1046,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:1049,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1003
    functionDepth: 8
    functionLinenumber: 1003
    functionLinenumberEnd: 1050
    functionName: http_custom_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - bufferevent_socket_new
    - evhttp_set_allowed_methods
    - evutil_closesocket
    - http_connect
    - evhttp_free
    - bufferevent_write
    - bufferevent_free
    - bufferevent_setcb
    - strlen
    - tt_int_op
    - http_setup
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_custom_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_genmethod_test
      Src: /src/libevent/test/regress_http.c:1055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1052
    functionDepth: 10
    functionLinenumber: 1052
    functionLinenumberEnd: 1056
    functionName: http_delete_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_genmethod_test
    linkageType: ''
    returnType: void
    signature: void http_delete_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_genmethod_test
      Src: /src/libevent/test/regress_http.c:1061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1058
    functionDepth: 10
    functionLinenumber: 1058
    functionLinenumberEnd: 1062
    functionName: http_propfind_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_genmethod_test
    linkageType: ''
    returnType: void
    signature: void http_propfind_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_genmethod_test
      Src: /src/libevent/test/regress_http.c:1067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1064
    functionDepth: 10
    functionLinenumber: 1064
    functionLinenumberEnd: 1068
    functionName: http_proppatch_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_genmethod_test
    linkageType: ''
    returnType: void
    signature: void http_proppatch_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_genmethod_test
      Src: /src/libevent/test/regress_http.c:1073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1070
    functionDepth: 10
    functionLinenumber: 1070
    functionLinenumberEnd: 1074
    functionName: http_mkcol_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_genmethod_test
    linkageType: ''
    returnType: void
    signature: void http_mkcol_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_genmethod_test
      Src: /src/libevent/test/regress_http.c:1079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1076
    functionDepth: 10
    functionLinenumber: 1076
    functionLinenumberEnd: 1080
    functionName: http_lock_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_genmethod_test
    linkageType: ''
    returnType: void
    signature: void http_lock_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_genmethod_test
      Src: /src/libevent/test/regress_http.c:1085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1082
    functionDepth: 10
    functionLinenumber: 1082
    functionLinenumberEnd: 1086
    functionName: http_unlock_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_genmethod_test
    linkageType: ''
    returnType: void
    signature: void http_unlock_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_genmethod_test
      Src: /src/libevent/test/regress_http.c:1091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1088
    functionDepth: 10
    functionLinenumber: 1088
    functionLinenumberEnd: 1092
    functionName: http_copy_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_genmethod_test
    linkageType: ''
    returnType: void
    signature: void http_copy_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_genmethod_test
      Src: /src/libevent/test/regress_http.c:1097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1094
    functionDepth: 10
    functionLinenumber: 1094
    functionLinenumberEnd: 1098
    functionName: http_move_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_genmethod_test
    linkageType: ''
    returnType: void
    signature: void http_move_test(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1107,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:1108,1
    - Dst: evhttp_request_get_output_buffer
      Src: /src/libevent/test/regress_http.c:1111,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:1112,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1113,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:1114,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:1117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1100
    functionDepth: 2
    functionLinenumber: 1100
    functionLinenumberEnd: 1120
    functionName: http_sent_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - exit
    - TT_BLATHER
    - evhttp_request_get_output_buffer
    - evbuffer_get_length
    - fprintf
    linkageType: ''
    returnType: void
    signature: void http_sent_cb(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:1125,1
    - Dst: evhttp_request_set_on_complete_cb
      Src: /src/libevent/test/regress_http.c:1127,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:1129,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:1130,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/regress_http.c:1133,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:1135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1122
    functionDepth: 9
    functionLinenumber: 1122
    functionLinenumberEnd: 1138
    functionName: http_on_complete_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_send_reply
    - evbuffer_free
    - TT_BLATHER
    - evbuffer_add_printf
    - evhttp_request_set_on_complete_cb
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void http_on_complete_cb(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:1148,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:1153,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1154,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:1157,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1158,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:1159,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:1168,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:1168,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1170,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:1172,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:1174,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:1176,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:1179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1140
    functionDepth: 8
    functionLinenumber: 1140
    functionLinenumberEnd: 1180
    functionName: http_on_complete_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - bufferevent_socket_new
    - evutil_closesocket
    - http_connect
    - evhttp_free
    - bufferevent_write
    - bufferevent_free
    - bufferevent_setcb
    - strlen
    - tt_int_op
    - http_setup
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_on_complete_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_remove
      Src: /src/libevent/test/regress_http.c:1189,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:1189,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:1194,1
    - Dst: strdup
      Src: /src/libevent/test/regress_http.c:1195,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:1197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1182
    functionDepth: 5
    functionLinenumber: 1182
    functionLinenumberEnd: 1199
    functionName: http_allowed_methods_eventcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_input
    - event_base_loopexit
    - evbuffer_remove
    - free
    - strdup
    linkageType: ''
    returnType: void
    signature: void http_allowed_methods_eventcb(struct bufferevent *bev, short what,
      void *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:1210,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:1215,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1216,1
    - Dst: evhttp_set_allowed_methods
      Src: /src/libevent/test/regress_http.c:1219,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:1222,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1223,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_http.c:1224,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:1225,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:1234,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:1234,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1236,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:1238,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1239,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:1241,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1242,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_http.c:1243,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:1244,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:1253,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:1253,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1255,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:1257,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1258,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:1260,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1261,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_http.c:1263,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:1264,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:1273,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:1273,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1275,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:1277,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:1278,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:1280,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1281,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_http.c:1283,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:1284,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:1293,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:1293,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1295,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:1297,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:1298,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:1299,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:1300,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:1302,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1305,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1306,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_http.c:1306,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:1306,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1309,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1310,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_http.c:1310,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:1310,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1313,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1314,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_http.c:1314,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:1314,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1317,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1318,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_http.c:1318,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:1318,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:1322,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:1324,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:1326,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:1328,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:1330,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:1332,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:1334,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:1336,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 71
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1201
    functionDepth: 8
    functionLinenumber: 1201
    functionLinenumberEnd: 1337
    functionName: http_allowed_methods_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - bufferevent_socket_new
    - evhttp_set_allowed_methods
    - evutil_closesocket
    - http_connect
    - evhttp_free
    - bufferevent_write
    - tt_int_op
    - bufferevent_free
    - strncmp
    - bufferevent_setcb
    - free
    - strlen
    - bufferevent_enable
    - http_setup
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_allowed_methods_test(void *arg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:1359,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_http.c:1363,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1365,1
    - Dst: evhttp_set_allowed_methods
      Src: /src/libevent/test/regress_http.c:1367,1
    - Dst: SSL_new
      Src: /src/libevent/test/regress_http.c:1371,1
    - Dst: get_ssl_ctx
      Src: /src/libevent/test/regress_http.c:1371,1
    - Dst: bufferevent_openssl_socket_new
      Src: /src/libevent/test/regress_http.c:1372,1
    - Dst: bufferevent_openssl_set_allow_dirty_shutdown
      Src: /src/libevent/test/regress_http.c:1375,1
    - Dst: evhttp_connection_base_bufferevent_new
      Src: /src/libevent/test/regress_http.c:1377,1
    - Dst: tt_skip
      Src: /src/libevent/test/regress_http.c:1379,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:1382,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1384,1
    - Dst: evhttp_connection_set_family
      Src: /src/libevent/test/regress_http.c:1385,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1387,1
    - Dst: evhttp_connection_get_base
      Src: /src/libevent/test/regress_http.c:1387,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1391,1
    - Dst: evhttp_connection_get_server
      Src: /src/libevent/test/regress_http.c:1391,1
    - Dst: evhttp_connection_set_ext_method_cmp
      Src: /src/libevent/test/regress_http.c:1394,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1400,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1403,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1403,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:1406,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1407,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:1408,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1411,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1413,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1418,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1421,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1421,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1428,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1428,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:1431,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:1432,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1435,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1440,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1443,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1443,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:1446,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:1447,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1450,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1455,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1458,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1458,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:1461,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:1462,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1465,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:1469,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:1471,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 62
    argCount: 7
    argNames:
    - data
    - persistent
    - address
    - dnsbase
    - ipv6
    - family
    - ssl
    argTypes:
    - struct basic_test_data*
    - int
    - char*
    - struct evdns_base*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1472
      start: 1343
    functionDepth: 7
    functionLinenumber: 1343
    functionLinenumberEnd: 1472
    functionName: http_connection_test_
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_set_allowed_methods
    - evhttp_make_request
    - evhttp_connection_get_server
    - evhttp_connection_free
    - evhttp_request_new
    - bufferevent_openssl_socket_new
    - evhttp_free
    - bufferevent_openssl_set_allow_dirty_shutdown
    - evhttp_connection_base_bufferevent_new
    - tt_abort_msg
    - evhttp_connection_set_ext_method_cmp
    - evhttp_connection_set_family
    - fprintf
    - exit
    - evhttp_connection_get_base
    - get_ssl_ctx
    - http_setup
    - SSL_new
    - tt_assert
    - tt_skip
    - evhttp_add_header
    - evhttp_connection_base_new
    - evhttp_request_get_output_headers
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: "void http_connection_test_(struct basic_test_data *data, int persistent,\n\tconst
      char *address, struct evdns_base *dnsbase, int ipv6, int family,\n\tint ssl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_test_
      Src: /src/libevent/test/regress_http.c:1477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1474
    functionDepth: 8
    functionLinenumber: 1474
    functionLinenumberEnd: 1478
    functionName: http_connection_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_test_
    linkageType: ''
    returnType: void
    signature: void http_connection_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_test_
      Src: /src/libevent/test/regress_http.c:1482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1479
    functionDepth: 8
    functionLinenumber: 1479
    functionLinenumberEnd: 1483
    functionName: http_persist_connection_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_test_
    linkageType: ''
    returnType: void
    signature: void http_persist_connection_test(void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:1500,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1503,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_http.c:1503,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_http.c:1505,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1506,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_http.c:1510,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_http.c:1511,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:1515,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1516,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1523,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1526,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1526,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:1529,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1530,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:1531,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1534,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1536,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1541,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1544,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1544,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1550,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1550,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:1553,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:1554,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1557,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1562,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1565,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1565,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:1568,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:1569,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1572,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:1576,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:1578,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_http.c:1580,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_http.c:1581,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1490
    functionDepth: 9
    functionLinenumber: 1490
    functionLinenumberEnd: 1582
    functionName: http_connection_async_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_make_request
    - evhttp_connection_free
    - evhttp_request_new
    - regress_clean_dnsserver
    - evhttp_free
    - tt_abort_msg
    - evdns_base_nameserver_ip_add
    - evutil_snprintf
    - fprintf
    - regress_dnsserver
    - exit
    - evdns_base_free
    - http_setup
    - tt_assert
    - evhttp_add_header
    - evhttp_connection_base_new
    - evdns_base_new
    - evhttp_request_get_output_headers
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_connection_async_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:1591,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:1596,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1597,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1603,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1604,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_http.c:1607,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1608,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1608,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1609,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1609,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1610,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1610,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:1612,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:1613,1
    - Dst: evhttp_connection_free_on_completion
      Src: /src/libevent/test/regress_http.c:1622,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_http.c:1625,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1626,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1629,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/test/regress_http.c:1629,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:1633,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:1635,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1584
    functionDepth: 7
    functionLinenumber: 1584
    functionLinenumberEnd: 1636
    functionName: http_autofree_connection_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_make_request
    - evhttp_connection_free
    - evhttp_free
    - ARRAY_SIZE
    - evhttp_add_header
    - evhttp_request_new
    - tt_abort_msg
    - evhttp_connection_free_on_completion
    - TAILQ_FIRST
    - evhttp_connection_base_new
    - http_setup
    - evhttp_request_get_output_headers
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_autofree_connection_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1641,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:1642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1638
    functionDepth: 0
    functionLinenumber: 1638
    functionLinenumberEnd: 1643
    functionName: http_request_never_call
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void http_request_never_call(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1647,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:1649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1644
    functionDepth: 2
    functionLinenumber: 1644
    functionLinenumberEnd: 1650
    functionName: http_failed_request_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: void http_failed_request_done(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1655,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:1656,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:1656,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:1658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1652
    functionDepth: 2
    functionLinenumber: 1652
    functionLinenumberEnd: 1659
    functionName: http_timed_out_request_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_int_op
    - event_base_loopexit
    - evhttp_request_get_response_code
    linkageType: ''
    returnType: void
    signature: void http_timed_out_request_done(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1666,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:1667,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress_http.c:1673,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:1676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - error
    - arg
    argTypes:
    - enum evhttp_request_error
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1662
    functionDepth: 2
    functionLinenumber: 1662
    functionLinenumberEnd: 1678
    functionName: http_request_error_cb_with_cancel
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    - evutil_timerclear
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: void http_request_error_cb_with_cancel(enum evhttp_request_error error,
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_cancel_request
      Src: /src/libevent/test/regress_http.c:1683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1679
    functionDepth: 5
    functionLinenumber: 1679
    functionLinenumberEnd: 1685
    functionName: http_do_cancel
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_cancel_request
    linkageType: ''
    returnType: void
    signature: void http_do_cancel(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1689,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:1690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - buffer
    - info
    - arg
    argTypes:
    - struct evbuffer*
    - struct evbuffer_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1686
    functionDepth: 0
    functionLinenumber: 1686
    functionLinenumberEnd: 1691
    functionName: http_no_write
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void http_no_write(struct evbuffer *buffer, const struct evbuffer_cb_info
      *info, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:1701,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:1703,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - evcons
    argTypes:
    - struct evhttp_connection**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1692
    functionDepth: 4
    functionLinenumber: 1692
    functionLinenumberEnd: 1704
    functionName: http_free_evcons
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - free
    - evhttp_connection_free
    linkageType: ''
    returnType: void
    signature: void http_free_evcons(struct evhttp_connection **evcons)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/libevent/test/regress_http.c:1710,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:1716,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1717,1
    - Dst: evhttp_connection_set_timeout
      Src: /src/libevent/test/regress_http.c:1718,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1720,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1721,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:1722,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:1722,1
    - Dst: http_free_evcons
      Src: /src/libevent/test/regress_http.c:1728,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1706
    functionDepth: 7
    functionLinenumber: 1706
    functionLinenumberEnd: 1731
    functionName: http_fill_backlog
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_make_request
    - calloc
    - http_free_evcons
    - evhttp_request_new
    - evhttp_connection_base_new
    - tt_int_op
    - fprintf
    - evhttp_connection_set_timeout
    linkageType: ''
    returnType: struct evhttp_connection
    signature: 'struct evhttp_connection **

      http_fill_backlog(struct event_base *base, int port)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1747,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1751,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - type
    - base
    argTypes:
    - enum http_cancel_test_type
    - struct event_base*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1754
      start: 1741
    functionDepth: 2
    functionLinenumber: 1741
    functionLinenumberEnd: 1754
    functionName: http_cancel_test_bad_request_new
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_new
    linkageType: ''
    returnType: struct evhttp_request
    signature: "struct evhttp_request *\nhttp_cancel_test_bad_request_new(enum http_cancel_test_type
      type,\n\tstruct event_base *base)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:1774,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1779,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_http.c:1779,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_http.c:1781,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1782,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_http.c:1788,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_http.c:1789,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_http.c:1791,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_http.c:1792,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/test/regress_http.c:1793,1
    - Dst: event_base_new
      Src: /src/libevent/test/regress_http.c:1802,1
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:1803,1
    - Dst: http_fill_backlog
      Src: /src/libevent/test/regress_http.c:1810,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1811,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:1814,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1818,1
    - Dst: evhttp_connection_set_timeout
      Src: /src/libevent/test/regress_http.c:1820,1
    - Dst: evhttp_connection_get_bufferevent
      Src: /src/libevent/test/regress_http.c:1823,1
    - Dst: evbuffer_add_cb
      Src: /src/libevent/test/regress_http.c:1827,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_http.c:1827,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1834,1
    - Dst: evhttp_request_set_error_cb
      Src: /src/libevent/test/regress_http.c:1835,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1838,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1838,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:1841,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:1841,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress_http.c:1844,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:1848,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1850,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:1853,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:1855,1
    - Dst: http_free_evcons
      Src: /src/libevent/test/regress_http.c:1860,1
    - Dst: http_fill_backlog
      Src: /src/libevent/test/regress_http.c:1863,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1864,1
    - Dst: http_cancel_test_bad_request_new
      Src: /src/libevent/test/regress_http.c:1867,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1869,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1872,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1872,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:1875,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:1875,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1878,1
    - Dst: http_free_evcons
      Src: /src/libevent/test/regress_http.c:1883,1
    - Dst: http_fill_backlog
      Src: /src/libevent/test/regress_http.c:1886,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:1887,1
    - Dst: http_cancel_test_bad_request_new
      Src: /src/libevent/test/regress_http.c:1890,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:1892,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:1895,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:1895,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:1898,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:1898,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:1901,1
    - Dst: http_free_evcons
      Src: /src/libevent/test/regress_http.c:1904,1
    - Dst: evbuffer_remove_cb
      Src: /src/libevent/test/regress_http.c:1906,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_http.c:1906,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:1908,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:1910,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_http.c:1912,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_http.c:1913,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:1915,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_http.c:1917,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 84
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1918
      start: 1755
    functionDepth: 9
    functionLinenumber: 1755
    functionLinenumberEnd: 1918
    functionName: http_cancel_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_output
    - evhttp_make_request
    - evhttp_connection_free
    - event_base_free
    - http_cancel_test_bad_request_new
    - evhttp_request_new
    - evhttp_request_set_error_cb
    - regress_clean_dnsserver
    - evhttp_connection_set_timeout
    - evbuffer_remove_cb
    - evdns_base_set_option
    - evutil_timerclear
    - evhttp_free
    - evdns_base_nameserver_ip_add
    - event_base_new
    - evutil_snprintf
    - evbuffer_add_cb
    - regress_dnsserver
    - event_base_once
    - evhttp_connection_get_bufferevent
    - http_free_evcons
    - evdns_base_free
    - tt_int_op
    - http_setup
    - tt_assert
    - evhttp_add_header
    - evhttp_connection_base_new
    - evdns_base_new
    - http_fill_backlog
    - evhttp_request_get_output_headers
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_cancel_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/test/regress_http.c:1923,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:1924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1925
      start: 1920
    functionDepth: 2
    functionLinenumber: 1920
    functionLinenumberEnd: 1925
    functionName: http_request_no_action_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: void http_request_no_action_done(struct evhttp_request *req, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/test/regress_http.c:1932,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1935,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:1939,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1940,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:1941,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:1945,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:1945,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1946,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:1950,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:1950,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:1950,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1951,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:1952,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:1952,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:1953,1
    - Dst: evbuffer_datacmp
      Src: /src/libevent/test/regress_http.c:1957,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:1957,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1958,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:1964,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1965
      start: 1927
    functionDepth: 5
    functionLinenumber: 1927
    functionLinenumberEnd: 1965
    functionName: http_request_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_response_code
    - EVUTIL_ASSERT
    - evhttp_request_get_input_headers
    - event_base_loopexit
    - evbuffer_datacmp
    - evbuffer_get_length
    - strlen
    - evhttp_request_get_input_buffer
    - fprintf
    - evhttp_find_header
    linkageType: ''
    returnType: void
    signature: void http_request_done(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:1970,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:1971,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:1972,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/test/regress_http.c:1976,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:1977,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1967
    functionDepth: 2
    functionLinenumber: 1967
    functionLinenumberEnd: 1978
    functionName: http_request_expect_error
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_response_code
    - exit
    - EVUTIL_ASSERT
    - event_base_loopexit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void http_request_expect_error(struct evhttp_request *req, void *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:1992,1
    - Dst: evhttp_new
      Src: /src/libevent/test/regress_http.c:1997,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:1998,1
    - Dst: evhttp_new
      Src: /src/libevent/test/regress_http.c:1999,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:2000,1
    - Dst: evhttp_add_virtual_host
      Src: /src/libevent/test/regress_http.c:2002,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:2003,1
    - Dst: evhttp_add_virtual_host
      Src: /src/libevent/test/regress_http.c:2006,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:2007,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2011,1
    - Dst: evhttp_add_server_alias
      Src: /src/libevent/test/regress_http.c:2011,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2012,1
    - Dst: evhttp_add_server_alias
      Src: /src/libevent/test/regress_http.c:2012,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:2014,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2015,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:2018,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2021,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:2021,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:2024,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:2026,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:2029,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2031,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:2036,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2039,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:2039,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:2042,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2044,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2045,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:2048,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2050,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:2055,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2058,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:2058,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:2061,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:2063,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:2066,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2068,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:2073,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2076,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:2076,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:2079,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:2081,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:2084,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2086,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:2091,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2094,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:2094,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:2097,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:2099,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:2102,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2104,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:2109,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2110,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:2113,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2114,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:2116,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:2126,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:2126,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:2128,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2130,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:2132,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:2133,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:2137,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:2139,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 71
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 1981
    functionDepth: 8
    functionLinenumber: 1981
    functionLinenumberEnd: 2140
    functionName: http_virtual_host_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_make_request
    - evhttp_connection_free
    - bufferevent_free
    - evhttp_request_new
    - bufferevent_write
    - evhttp_free
    - tt_abort_msg
    - bufferevent_setcb
    - strlen
    - fprintf
    - exit
    - tt_int_op
    - http_setup
    - tt_assert
    - bufferevent_socket_new
    - evutil_closesocket
    - http_connect
    - evhttp_add_header
    - evhttp_add_virtual_host
    - evhttp_connection_base_new
    - evhttp_set_cb
    - evhttp_request_get_output_headers
    - evhttp_new
    - evhttp_add_server_alias
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_virtual_host_test(void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2148,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2149,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:2152,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2153,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2154,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:2157,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:2157,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2158,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2159,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:2163,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:2163,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2164,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2165,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:2168,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:2168,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:2168,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2170,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2171,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:2174,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2174,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2175,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2176,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/test/regress_http.c:2180,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:2181,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2182
      start: 2144
    functionDepth: 2
    functionLinenumber: 2144
    functionLinenumberEnd: 2182
    functionName: http_request_empty_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_response_code
    - exit
    - EVUTIL_ASSERT
    - evhttp_request_get_input_headers
    - event_base_loopexit
    - strcmp
    - evbuffer_get_length
    - evhttp_request_get_input_buffer
    - fprintf
    - evhttp_find_header
    linkageType: ''
    returnType: void
    signature: void http_request_empty_done(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:2192,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:2193,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:2194,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/regress_http.c:2196,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:2198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2199
      start: 2188
    functionDepth: 9
    functionLinenumber: 2188
    functionLinenumberEnd: 2199
    functionName: http_dispatcher_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_send_reply
    - evbuffer_free
    - TT_BLATHER
    - evbuffer_add_printf
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void http_dispatcher_cb(struct evhttp_request *req, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2208,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2209,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:2212,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2213,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2214,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:2217,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:2217,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2218,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2219,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:2222,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2222,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:2222,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2223,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:2224,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2224,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:2224,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2225,1
    - Dst: evbuffer_datacmp
      Src: /src/libevent/test/regress_http.c:2228,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2228,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2229,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2230,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:2234,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2235
      start: 2201
    functionDepth: 5
    functionLinenumber: 2201
    functionLinenumberEnd: 2235
    functionName: http_dispatcher_test_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_response_code
    - exit
    - evhttp_request_get_input_headers
    - event_base_loopexit
    - evbuffer_datacmp
    - evbuffer_get_length
    - strlen
    - evhttp_request_get_input_buffer
    - fprintf
    - evhttp_find_header
    linkageType: ''
    returnType: void
    signature: void http_dispatcher_test_done(struct evhttp_request *req, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:2244,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:2248,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2249,1
    - Dst: evhttp_connection_set_local_address
      Src: /src/libevent/test/regress_http.c:2252,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:2259,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2260,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2263,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:2263,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:2265,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:2266,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:2269,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:2273,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:2275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2276
      start: 2237
    functionDepth: 7
    functionLinenumber: 2237
    functionLinenumberEnd: 2276
    functionName: http_dispatcher_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_make_request
    - evhttp_request_get_output_headers
    - evhttp_connection_free
    - evhttp_free
    - evhttp_add_header
    - evhttp_request_new
    - tt_abort_msg
    - evhttp_connection_base_new
    - http_setup
    - evhttp_connection_set_local_address
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_dispatcher_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/libevent/test/regress_http.c:2290,1
    - Dst: stat
      Src: /src/libevent/test/regress_http.c:2292,1
    - Dst: S_ISSOCK
      Src: /src/libevent/test/regress_http.c:2292,1
    - Dst: evutil_socket_
      Src: /src/libevent/test/regress_http.c:2296,1
    - Dst: connect
      Src: /src/libevent/test/regress_http.c:2301,1
    - Dst: perror
      Src: /src/libevent/test/regress_http.c:2302,1
    - Dst: event_debug
      Src: /src/libevent/test/regress_http.c:2303,1
    - Dst: close
      Src: /src/libevent/test/regress_http.c:2304,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2309
      start: 2282
    functionDepth: 4
    functionLinenumber: 2282
    functionLinenumberEnd: 2309
    functionName: http_connect_unixsocket
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - close
    - evutil_socket_
    - S_ISSOCK
    - connect
    - perror
    - stat
    - strcpy
    - event_debug
    linkageType: ''
    returnType: evutil_socket_t
    signature: evutil_socket_t http_connect_unixsocket(const char *path)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/libevent/test/regress_http.c:2320,1
    - Dst: stat
      Src: /src/libevent/test/regress_http.c:2324,1
    - Dst: S_ISSOCK
      Src: /src/libevent/test/regress_http.c:2324,1
    - Dst: unlink
      Src: /src/libevent/test/regress_http.c:2325,1
    - Dst: evutil_socket_
      Src: /src/libevent/test/regress_http.c:2327,1
    - Dst: bind
      Src: /src/libevent/test/regress_http.c:2332,1
    - Dst: close
      Src: /src/libevent/test/regress_http.c:2333,1
    - Dst: chmod
      Src: /src/libevent/test/regress_http.c:2338,1
    - Dst: close
      Src: /src/libevent/test/regress_http.c:2339,1
    - Dst: listen
      Src: /src/libevent/test/regress_http.c:2343,1
    - Dst: close
      Src: /src/libevent/test/regress_http.c:2344,1
    - Dst: evhttp_accept_socket
      Src: /src/libevent/test/regress_http.c:2348,1
    - Dst: close
      Src: /src/libevent/test/regress_http.c:2349,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - httpd
    - path
    argTypes:
    - struct evhttp*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2354
      start: 2312
    functionDepth: 4
    functionLinenumber: 2312
    functionLinenumberEnd: 2354
    functionName: evhttp_bind_unixsocket
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - close
    - unlink
    - chmod
    - evutil_socket_
    - S_ISSOCK
    - listen
    - evhttp_accept_socket
    - stat
    - bind
    - strcpy
    linkageType: ''
    returnType: int
    signature: int evhttp_bind_unixsocket(struct evhttp *httpd, const char *path)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/libevent/test/regress_http.c:2366,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_http.c:2373,1
    - Dst: getpid
      Src: /src/libevent/test/regress_http.c:2373,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_http.c:2374,1
    - Dst: evhttp_new
      Src: /src/libevent/test/regress_http.c:2376,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2377,1
    - Dst: evhttp_bind_unixsocket
      Src: /src/libevent/test/regress_http.c:2377,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:2379,1
    - Dst: evhttp_uri_parse_with_flags
      Src: /src/libevent/test/regress_http.c:2381,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2382,1
    - Dst: http_connect_unixsocket
      Src: /src/libevent/test/regress_http.c:2385,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_http.c:2386,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:2387,1
    - Dst: evhttp_connection_base_bufferevent_reuse_new
      Src: /src/libevent/test/regress_http.c:2388,1
    - Dst: evhttp_connection_base_bufferevent_unix_new
      Src: /src/libevent/test/regress_http.c:2390,1
    - Dst: evhttp_uri_get_unixsocket
      Src: /src/libevent/test/regress_http.c:2390,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2392,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:2397,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2398,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2401,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:2401,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:2403,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:2404,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:2407,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_http.c:2410,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_http.c:2410,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:2415,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:2417,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:2419,1
    - Dst: strstr
      Src: /src/libevent/test/regress_http.c:2422,1
    - Dst: unlink
      Src: /src/libevent/test/regress_http.c:2423,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - data
    - preexisting
    argTypes:
    - struct basic_test_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2424
      start: 2357
    functionDepth: 7
    functionLinenumber: 2357
    functionLinenumberEnd: 2424
    functionName: http_unix_socket_test_
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_make_request
    - evhttp_connection_free
    - create_bev
    - evhttp_request_new
    - evhttp_uri_parse_with_flags
    - evhttp_connection_base_bufferevent_reuse_new
    - getpid
    - http_connect_unixsocket
    - getenv
    - evhttp_uri_get_unixsocket
    - evhttp_free
    - tt_abort_msg
    - evhttp_uri_free
    - evhttp_connection_base_bufferevent_unix_new
    - bufferevent_getfd
    - evutil_snprintf
    - evhttp_bind_unixsocket
    - unlink
    - tt_fd_op
    - tt_assert
    - evhttp_add_header
    - strstr
    - evhttp_set_cb
    - evhttp_request_get_output_headers
    - evhttp_new
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_unix_socket_test_(struct basic_test_data *data, int preexisting)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_unix_socket_test_
      Src: /src/libevent/test/regress_http.c:2429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2430
      start: 2426
    functionDepth: 8
    functionLinenumber: 2426
    functionLinenumberEnd: 2430
    functionName: http_unix_socket_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_unix_socket_test_
    linkageType: ''
    returnType: void
    signature: void http_unix_socket_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_unix_socket_test_
      Src: /src/libevent/test/regress_http.c:2435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2436
      start: 2432
    functionDepth: 8
    functionLinenumber: 2432
    functionLinenumberEnd: 2436
    functionName: http_unix_socket_preexist_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_unix_socket_test_
    linkageType: ''
    returnType: void
    signature: void http_unix_socket_preexist_test(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:2454,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:2458,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2459,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:2466,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2467,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2470,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:2470,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:2471,1
    - Dst: evhttp_request_get_output_buffer
      Src: /src/libevent/test/regress_http.c:2471,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:2473,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:2474,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:2477,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2479,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:2483,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2484,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2489,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:2489,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2490,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:2490,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:2491,1
    - Dst: evhttp_request_get_output_buffer
      Src: /src/libevent/test/regress_http.c:2491,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:2493,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:2494,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:2497,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2499,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:2501,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:2502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2506
      start: 2447
    functionDepth: 9
    functionLinenumber: 2447
    functionLinenumberEnd: 2506
    functionName: http_post_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_make_request
    - evhttp_connection_free
    - evhttp_free
    - evhttp_add_header
    - evhttp_request_new
    - tt_abort_msg
    - evbuffer_add_printf
    - evhttp_request_get_output_buffer
    - evhttp_connection_base_new
    - tt_int_op
    - http_setup
    - evhttp_request_get_output_headers
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_post_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:2512,1
    - Dst: evhttp_request_get_command
      Src: /src/libevent/test/regress_http.c:2515,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2516,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2517,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:2520,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2520,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:2520,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2521,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:2522,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2522,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:2522,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2523,1
    - Dst: evbuffer_datacmp
      Src: /src/libevent/test/regress_http.c:2526,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2526,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2527,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2528,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_http.c:2528,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2528,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2529,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2530,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:2533,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:2534,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/regress_http.c:2536,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:2538,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2539
      start: 2508
    functionDepth: 9
    functionLinenumber: 2508
    functionLinenumberEnd: 2539
    functionName: http_post_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_send_reply
    - exit
    - evbuffer_pullup
    - evbuffer_free
    - TT_BLATHER
    - evbuffer_add_printf
    - evbuffer_datacmp
    - evhttp_request_get_command
    - evbuffer_get_length
    - strlen
    - evhttp_request_get_input_buffer
    - fprintf
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void http_post_cb(struct evhttp_request *req, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2548,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2549,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:2552,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2554,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2555,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:2558,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:2558,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2559,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2560,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:2563,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2563,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:2563,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2564,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:2565,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2565,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:2565,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2566,1
    - Dst: evbuffer_datacmp
      Src: /src/libevent/test/regress_http.c:2569,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2569,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2570,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2571,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:2575,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2576
      start: 2541
    functionDepth: 5
    functionLinenumber: 2541
    functionLinenumberEnd: 2576
    functionName: http_postrequest_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_response_code
    - exit
    - evhttp_request_get_input_headers
    - event_base_loopexit
    - evbuffer_datacmp
    - evbuffer_get_length
    - strlen
    - evhttp_request_get_input_buffer
    - fprintf
    - evhttp_find_header
    linkageType: ''
    returnType: void
    signature: void http_postrequest_done(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:2593,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:2597,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2598,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:2604,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2605,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2608,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:2608,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:2609,1
    - Dst: evhttp_request_get_output_buffer
      Src: /src/libevent/test/regress_http.c:2609,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:2611,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:2612,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:2615,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:2617,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:2618,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2623
      start: 2586
    functionDepth: 9
    functionLinenumber: 2586
    functionLinenumberEnd: 2623
    functionName: http_put_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_make_request
    - evhttp_connection_free
    - evhttp_free
    - evhttp_add_header
    - evhttp_request_new
    - tt_abort_msg
    - evbuffer_add_printf
    - evhttp_request_get_output_buffer
    - evhttp_connection_base_new
    - tt_int_op
    - http_setup
    - evhttp_request_get_output_headers
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_put_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:2629,1
    - Dst: evhttp_request_get_command
      Src: /src/libevent/test/regress_http.c:2632,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2633,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2634,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:2637,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2637,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:2637,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2638,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:2639,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2639,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:2639,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2640,1
    - Dst: evbuffer_datacmp
      Src: /src/libevent/test/regress_http.c:2643,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2643,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2644,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2645,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_http.c:2645,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2645,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2646,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2647,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:2650,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:2651,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/test/regress_http.c:2653,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:2655,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2656
      start: 2625
    functionDepth: 9
    functionLinenumber: 2625
    functionLinenumberEnd: 2656
    functionName: http_put_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_send_reply
    - exit
    - evbuffer_pullup
    - evbuffer_free
    - TT_BLATHER
    - evbuffer_add_printf
    - evbuffer_datacmp
    - evhttp_request_get_command
    - evbuffer_get_length
    - strlen
    - evhttp_request_get_input_buffer
    - fprintf
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void http_put_cb(struct evhttp_request *req, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2665,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2666,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:2669,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2671,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2672,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:2675,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:2675,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2676,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2677,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:2680,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2680,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:2680,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2681,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:2682,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2682,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:2682,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2683,1
    - Dst: evbuffer_datacmp
      Src: /src/libevent/test/regress_http.c:2687,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:2687,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:2688,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:2689,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:2693,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2694
      start: 2658
    functionDepth: 5
    functionLinenumber: 2658
    functionLinenumberEnd: 2694
    functionName: http_putrequest_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_response_code
    - exit
    - evhttp_request_get_input_headers
    - event_base_loopexit
    - evbuffer_datacmp
    - evbuffer_get_length
    - strlen
    - evhttp_request_get_input_buffer
    - fprintf
    - evhttp_find_header
    linkageType: ''
    returnType: void
    signature: void http_putrequest_done(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_contains
      Src: /src/libevent/test/regress_http.c:2700,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:2700,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_http.c:2702,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:2703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2705
      start: 2696
    functionDepth: 3
    functionLinenumber: 2696
    functionLinenumberEnd: 2705
    functionName: http_failure_readcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    - evbuffer_contains
    - bufferevent_get_input
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void http_failure_readcb(struct bufferevent *bev, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:2718,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:2722,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2723,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:2726,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2727,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:2729,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:2734,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:2734,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:2736,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:2738,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:2740,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2742,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:2745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2746
      start: 2710
    functionDepth: 8
    functionLinenumber: 2710
    functionLinenumberEnd: 2746
    functionName: http_failure_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - bufferevent_socket_new
    - evutil_closesocket
    - http_connect
    - evhttp_free
    - bufferevent_write
    - bufferevent_free
    - bufferevent_setcb
    - strlen
    - tt_int_op
    - http_setup
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_failure_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2752,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2753,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:2753,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress_http.c:2758,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:2760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2761
      start: 2748
    functionDepth: 2
    functionLinenumber: 2748
    functionLinenumberEnd: 2761
    functionName: close_detect_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_request_get_response_code
    - event_base_loopexit
    - evutil_timerclear
    linkageType: ''
    returnType: void
    signature: void close_detect_done(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_connection_get_base
      Src: /src/libevent/test/regress_http.c:2767,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:2770,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2773,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:2773,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:2776,1
    - Dst: tt_fail_msg
      Src: /src/libevent/test/regress_http.c:2777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2779
      start: 2763
    functionDepth: 6
    functionLinenumber: 2763
    functionLinenumberEnd: 2779
    functionName: close_detect_launch
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_make_request
    - tt_fail_msg
    - evhttp_add_header
    - evhttp_request_new
    - evhttp_connection_get_base
    - evhttp_request_get_output_headers
    linkageType: ''
    returnType: void
    signature: void close_detect_launch(evutil_socket_t fd, short what, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_connection_get_base
      Src: /src/libevent/test/regress_http.c:2785,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:2788,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:2789,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress_http.c:2792,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:2797,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2800
      start: 2781
    functionDepth: 2
    functionLinenumber: 2781
    functionLinenumberEnd: 2800
    functionName: close_detect_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_response_code
    - evutil_timerclear
    - event_base_once
    - tt_abort_msg
    - evhttp_connection_get_base
    linkageType: ''
    returnType: void
    signature: void close_detect_cb(struct evhttp_request *req, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:2810,1
    - Dst: evhttp_set_timeout_tv
      Src: /src/libevent/test/regress_http.c:2815,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:2817,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2819,1
    - Dst: evhttp_connection_set_timeout_tv
      Src: /src/libevent/test/regress_http.c:2820,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2823,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:2831,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2834,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:2834,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:2837,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:2839,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:2842,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2845,1
    - Dst: TAILQ_FIRST
      Src: /src/libevent/test/regress_http.c:2845,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:2849,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:2851,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - data
    - with_delay
    argTypes:
    - struct basic_test_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2852
      start: 2803
    functionDepth: 7
    functionLinenumber: 2803
    functionLinenumberEnd: 2852
    functionName: http_close_detection_
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_make_request
    - evhttp_connection_set_timeout_tv
    - evhttp_connection_free
    - evhttp_free
    - evhttp_add_header
    - TAILQ_FIRST
    - evhttp_request_new
    - tt_abort_msg
    - evhttp_connection_base_new
    - http_setup
    - evhttp_request_get_output_headers
    - evhttp_set_timeout_tv
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_close_detection_(struct basic_test_data *data, int with_delay)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_close_detection_
      Src: /src/libevent/test/regress_http.c:2856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2857
      start: 2853
    functionDepth: 8
    functionLinenumber: 2853
    functionLinenumberEnd: 2857
    functionName: http_close_detection_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_close_detection_
    linkageType: ''
    returnType: void
    signature: void http_close_detection_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_close_detection_
      Src: /src/libevent/test/regress_http.c:2861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2862
      start: 2858
    functionDepth: 8
    functionLinenumber: 2858
    functionLinenumberEnd: 2862
    functionName: http_close_detection_delay_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_close_detection_
    linkageType: ''
    returnType: void
    signature: void http_close_detection_delay_test(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_new
      Src: /src/libevent/test/regress_http.c:2873,1
    - Dst: evhttp_bind_socket
      Src: /src/libevent/test/regress_http.c:2874,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:2876,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:2879,1
    - Dst: tt_fail_msg
      Src: /src/libevent/test/regress_http.c:2882,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2883
      start: 2864
    functionDepth: 5
    functionLinenumber: 2864
    functionLinenumberEnd: 2883
    functionName: http_highport_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_bind_socket
    - evhttp_free
    - evhttp_new
    - tt_fail_msg
    linkageType: ''
    returnType: void
    signature: void http_highport_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_INIT
      Src: /src/libevent/test/regress_http.c:2890,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2892,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2892,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2893,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2893,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2894,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2894,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2895,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2895,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2896,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2896,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2897,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2897,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2898,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:2898,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2901
      start: 2885
    functionDepth: 2
    functionLinenumber: 2885
    functionLinenumberEnd: 2901
    functionName: http_bad_header_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_clear_headers
    - evhttp_add_header
    - TAILQ_INIT
    - tt_want
    linkageType: ''
    returnType: void
    signature: void http_bad_header_test(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:2907,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2908,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2909,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:2909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - headers
    - key
    - value
    argTypes:
    - struct evkeyvalq*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2912
      start: 2903
    functionDepth: 2
    functionLinenumber: 2903
    functionLinenumberEnd: 2912
    functionName: validate_header
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_find_header
    - tt_want
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int validate_header(\n\tconst struct evkeyvalq* headers,\n\tconst
      char *key, const char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_INIT
      Src: /src/libevent/test/regress_http.c:2920,1
    - Dst: evhttp_parse_query
      Src: /src/libevent/test/regress_http.c:2922,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2923,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:2923,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2924,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2925,1
    - Dst: evhttp_parse_query
      Src: /src/libevent/test/regress_http.c:2927,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2928,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:2928,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2929,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:2929,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2930,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2931,1
    - Dst: evhttp_parse_query
      Src: /src/libevent/test/regress_http.c:2933,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2934,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:2934,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2935,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2936,1
    - Dst: evhttp_parse_query
      Src: /src/libevent/test/regress_http.c:2938,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2939,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:2939,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2940,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2941,1
    - Dst: evhttp_parse_query
      Src: /src/libevent/test/regress_http.c:2943,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2944,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:2944,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2945,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2946,1
    - Dst: evhttp_parse_query
      Src: /src/libevent/test/regress_http.c:2948,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2949,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2950,1
    - Dst: evhttp_parse_query
      Src: /src/libevent/test/regress_http.c:2952,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2953,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:2953,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2954,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2955,1
    - Dst: evhttp_parse_query
      Src: /src/libevent/test/regress_http.c:2957,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2958,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2959,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:2959,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2960,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:2960,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2961,1
    - Dst: evhttp_parse_query
      Src: /src/libevent/test/regress_http.c:2963,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2964,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2965,1
    - Dst: evhttp_parse_query
      Src: /src/libevent/test/regress_http.c:2967,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2968,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2969,1
    - Dst: evhttp_parse_query
      Src: /src/libevent/test/regress_http.c:2971,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2972,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2973,1
    - Dst: evhttp_parse_query
      Src: /src/libevent/test/regress_http.c:2975,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2976,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2977,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:2977,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2978,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:2978,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2979,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:2979,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2980,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2984
      start: 2914
    functionDepth: 4
    functionLinenumber: 2914
    functionLinenumberEnd: 2984
    functionName: http_parse_query_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - validate_header
    - evhttp_clear_headers
    - tt_want
    - evhttp_parse_query
    - tt_int_op
    - TAILQ_INIT
    linkageType: ''
    returnType: void
    signature: void http_parse_query_test(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_INIT
      Src: /src/libevent/test/regress_http.c:2991,1
    - Dst: evhttp_parse_query_str
      Src: /src/libevent/test/regress_http.c:2993,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:2994,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:2994,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:2995,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:2996,1
    - Dst: evhttp_parse_query_str
      Src: /src/libevent/test/regress_http.c:2998,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:2999,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:2999,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:3000,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:3001,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:3004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3005
      start: 2985
    functionDepth: 4
    functionLinenumber: 2985
    functionLinenumberEnd: 3005
    functionName: http_parse_query_str_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - validate_header
    - evhttp_clear_headers
    - tt_want
    - tt_int_op
    - evhttp_parse_query_str
    - evhttp_find_header
    - TAILQ_INIT
    linkageType: ''
    returnType: void
    signature: void http_parse_query_str_test(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_INIT
      Src: /src/libevent/test/regress_http.c:3012,1
    - Dst: evhttp_parse_query_str_flags
      Src: /src/libevent/test/regress_http.c:3015,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3016,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:3016,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:3017,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:3018,1
    - Dst: evhttp_parse_query_str_flags
      Src: /src/libevent/test/regress_http.c:3021,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3022,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:3022,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:3023,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:3024,1
    - Dst: evhttp_parse_query_str_flags
      Src: /src/libevent/test/regress_http.c:3027,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:3028,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:3029,1
    - Dst: evhttp_parse_query_str_flags
      Src: /src/libevent/test/regress_http.c:3031,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:3032,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:3033,1
    - Dst: evhttp_parse_query_str_flags
      Src: /src/libevent/test/regress_http.c:3035,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:3036,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:3037,1
    - Dst: evhttp_parse_query_str_flags
      Src: /src/libevent/test/regress_http.c:3040,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3041,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:3041,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3042,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:3042,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:3043,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:3044,1
    - Dst: evhttp_parse_query_str_flags
      Src: /src/libevent/test/regress_http.c:3046,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3047,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:3047,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3048,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:3048,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:3049,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:3050,1
    - Dst: evhttp_parse_query_str_flags
      Src: /src/libevent/test/regress_http.c:3052,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3053,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:3053,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3054,1
    - Dst: validate_header
      Src: /src/libevent/test/regress_http.c:3054,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:3055,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:3056,1
    - Dst: evhttp_clear_headers
      Src: /src/libevent/test/regress_http.c:3060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3061
      start: 3006
    functionDepth: 4
    functionLinenumber: 3006
    functionLinenumberEnd: 3061
    functionName: http_parse_query_str_flags_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - validate_header
    - evhttp_parse_query_str_flags
    - evhttp_clear_headers
    - tt_want
    - tt_int_op
    - TAILQ_INIT
    linkageType: ''
    returnType: void
    signature: void http_parse_query_str_flags_test(void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libevent/test/regress_http.c:3086,1
    - Dst: strstr
      Src: /src/libevent/test/regress_http.c:3090,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3096,1
    - Dst: evhttp_uri_join
      Src: /src/libevent/test/regress_http.c:3096,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3097,1
    - Dst: evhttp_uri_join
      Src: /src/libevent/test/regress_http.c:3097,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3098,1
    - Dst: evhttp_uri_join
      Src: /src/libevent/test/regress_http.c:3098,1
    - Dst: NCF
      Src: /src/libevent/test/regress_http.c:3133,1
    - Dst: NCF
      Src: /src/libevent/test/regress_http.c:3134,1
    - Dst: NCF
      Src: /src/libevent/test/regress_http.c:3135,1
    - Dst: NCF
      Src: /src/libevent/test/regress_http.c:3136,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3137,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3138,1
    - Dst: NCF
      Src: /src/libevent/test/regress_http.c:3139,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3140,1
    - Dst: NCF
      Src: /src/libevent/test/regress_http.c:3141,1
    - Dst: NCF
      Src: /src/libevent/test/regress_http.c:3142,1
    - Dst: NCF
      Src: /src/libevent/test/regress_http.c:3143,1
    - Dst: NCF
      Src: /src/libevent/test/regress_http.c:3144,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3145,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3146,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3147,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3148,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3149,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3150,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3151,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3152,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3153,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3155,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3156,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3157,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3158,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3159,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3160,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3161,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3162,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3163,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3164,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3165,1
    - Dst: BAD
      Src: /src/libevent/test/regress_http.c:3166,1
    - Dst: UNI
      Src: /src/libevent/test/regress_http.c:3169,1
    - Dst: UNI
      Src: /src/libevent/test/regress_http.c:3170,1
    - Dst: UNI
      Src: /src/libevent/test/regress_http.c:3171,1
    - Dst: evhttp_uri_new
      Src: /src/libevent/test/regress_http.c:3175,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3176,1
    - Dst: evhttp_uri_set_host
      Src: /src/libevent/test/regress_http.c:3176,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3177,1
    - Dst: evhttp_uri_join
      Src: /src/libevent/test/regress_http.c:3177,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3179,1
    - Dst: evhttp_uri_join
      Src: /src/libevent/test/regress_http.c:3179,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3181,1
    - Dst: evhttp_uri_set_path
      Src: /src/libevent/test/regress_http.c:3181,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3182,1
    - Dst: evhttp_uri_join
      Src: /src/libevent/test/regress_http.c:3182,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3183,1
    - Dst: evhttp_uri_join
      Src: /src/libevent/test/regress_http.c:3183,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3184,1
    - Dst: evhttp_uri_join
      Src: /src/libevent/test/regress_http.c:3184,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3185,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3186,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3187,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3188,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3188,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3189,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3189,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3190,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3190,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3191,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3191,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3191,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3192,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3192,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3192,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3193,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3193,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3194,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3194,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3195,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3196,1
    - Dst: evhttp_uri_new
      Src: /src/libevent/test/regress_http.c:3198,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3200,1
    - Dst: evhttp_uri_set_scheme
      Src: /src/libevent/test/regress_http.c:3200,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3201,1
    - Dst: evhttp_uri_set_scheme
      Src: /src/libevent/test/regress_http.c:3201,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3202,1
    - Dst: evhttp_uri_set_scheme
      Src: /src/libevent/test/regress_http.c:3202,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3203,1
    - Dst: evhttp_uri_set_userinfo
      Src: /src/libevent/test/regress_http.c:3203,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3204,1
    - Dst: evhttp_uri_set_host
      Src: /src/libevent/test/regress_http.c:3204,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3205,1
    - Dst: evhttp_uri_set_host
      Src: /src/libevent/test/regress_http.c:3205,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3206,1
    - Dst: evhttp_uri_set_host
      Src: /src/libevent/test/regress_http.c:3206,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3207,1
    - Dst: evhttp_uri_set_port
      Src: /src/libevent/test/regress_http.c:3207,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3208,1
    - Dst: evhttp_uri_set_path
      Src: /src/libevent/test/regress_http.c:3208,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3209,1
    - Dst: evhttp_uri_set_query
      Src: /src/libevent/test/regress_http.c:3209,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3210,1
    - Dst: evhttp_uri_set_fragment
      Src: /src/libevent/test/regress_http.c:3210,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3212,1
    - Dst: evhttp_uri_set_scheme
      Src: /src/libevent/test/regress_http.c:3212,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3213,1
    - Dst: evhttp_uri_set_scheme
      Src: /src/libevent/test/regress_http.c:3213,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3214,1
    - Dst: evhttp_uri_set_userinfo
      Src: /src/libevent/test/regress_http.c:3214,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3215,1
    - Dst: evhttp_uri_set_userinfo
      Src: /src/libevent/test/regress_http.c:3215,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3216,1
    - Dst: evhttp_uri_set_host
      Src: /src/libevent/test/regress_http.c:3216,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3217,1
    - Dst: evhttp_uri_set_host
      Src: /src/libevent/test/regress_http.c:3217,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3218,1
    - Dst: evhttp_uri_set_host
      Src: /src/libevent/test/regress_http.c:3218,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3219,1
    - Dst: evhttp_uri_set_host
      Src: /src/libevent/test/regress_http.c:3219,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3220,1
    - Dst: evhttp_uri_set_host
      Src: /src/libevent/test/regress_http.c:3220,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3221,1
    - Dst: evhttp_uri_set_host
      Src: /src/libevent/test/regress_http.c:3221,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3222,1
    - Dst: evhttp_uri_set_port
      Src: /src/libevent/test/regress_http.c:3222,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3223,1
    - Dst: evhttp_uri_set_port
      Src: /src/libevent/test/regress_http.c:3223,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3224,1
    - Dst: evhttp_uri_set_port
      Src: /src/libevent/test/regress_http.c:3224,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3225,1
    - Dst: evhttp_uri_set_path
      Src: /src/libevent/test/regress_http.c:3225,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3226,1
    - Dst: evhttp_uri_set_path
      Src: /src/libevent/test/regress_http.c:3226,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3227,1
    - Dst: evhttp_uri_set_path
      Src: /src/libevent/test/regress_http.c:3227,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3228,1
    - Dst: evhttp_uri_set_query
      Src: /src/libevent/test/regress_http.c:3228,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3229,1
    - Dst: evhttp_uri_set_query
      Src: /src/libevent/test/regress_http.c:3229,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3230,1
    - Dst: evhttp_uri_set_query
      Src: /src/libevent/test/regress_http.c:3230,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3231,1
    - Dst: evhttp_uri_set_query
      Src: /src/libevent/test/regress_http.c:3231,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3232,1
    - Dst: evhttp_uri_set_fragment
      Src: /src/libevent/test/regress_http.c:3232,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3233,1
    - Dst: evhttp_uri_set_fragment
      Src: /src/libevent/test/regress_http.c:3233,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3234,1
    - Dst: evhttp_uri_set_fragment
      Src: /src/libevent/test/regress_http.c:3234,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3235,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3238,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3239,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3239,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3239,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3240,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3240,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3240,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3241,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3241,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3241,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3242,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3242,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3242,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3243,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3243,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3244,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3244,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3245,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3245,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3246,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3247,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3249,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3250,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3250,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3250,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3251,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3251,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3251,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3252,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3252,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3252,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3253,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3253,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3254,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3254,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3255,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3255,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3256,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3256,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3257,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3258,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3260,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3261,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3261,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3261,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3262,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3262,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3262,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3263,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3263,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3263,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3264,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3264,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3264,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3265,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3265,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3266,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3266,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3267,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3267,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3268,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3269,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3271,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3272,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3272,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3272,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3273,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3273,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3273,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3274,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3274,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3274,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3275,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3275,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3276,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3276,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3277,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3277,1
    - Dst: tt_want_str_op
      Src: /src/libevent/test/regress_http.c:3278,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3278,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3279,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3280,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3282,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3283,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3283,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3283,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3284,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3284,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3284,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3285,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3285,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3285,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3286,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3286,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3287,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3287,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3288,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3288,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3289,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3289,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3290,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3291,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3293,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3294,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3294,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3294,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3295,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3295,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3295,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3296,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3296,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3296,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3297,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3297,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3298,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3298,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3299,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3299,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3300,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3300,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3301,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3302,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3304,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3305,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3305,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3305,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3306,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3306,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3306,1
    - Dst: tt_want_str_op
      Src: /src/libevent/test/regress_http.c:3307,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3307,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3308,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3308,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3309,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3309,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3310,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3310,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3311,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3311,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3312,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3313,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3315,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3316,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3316,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3316,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3317,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3317,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3317,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3318,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3318,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3318,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3319,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3319,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3320,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3320,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3321,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3321,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3322,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3322,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3323,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3324,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3326,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3327,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3327,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3327,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3328,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3328,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3328,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3329,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3329,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3329,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3330,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3330,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3330,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3331,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3331,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3332,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3332,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3333,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3333,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3334,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3335,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3337,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3338,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3338,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3338,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3339,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3339,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3339,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3340,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3340,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3340,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3341,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3341,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3341,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3342,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3342,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3343,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3343,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3344,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3344,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3345,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3346,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3348,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3349,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3349,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3349,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3350,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3350,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3350,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3351,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3351,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3351,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3352,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3352,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3352,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3353,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3353,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3354,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3354,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3355,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3355,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3356,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3357,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3359,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3360,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3360,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3360,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3361,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3361,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3361,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3362,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3362,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3362,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3363,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3363,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3363,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3364,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3364,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3365,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3365,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3366,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3366,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3367,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3368,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3370,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3371,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3371,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3371,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3372,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3372,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3372,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3373,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3373,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3373,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3374,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3374,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3375,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3375,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3375,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3376,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3376,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3376,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3377,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3377,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3377,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3378,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3379,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3381,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3382,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3382,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3382,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3383,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3383,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3383,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3384,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3384,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3384,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3385,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3385,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3386,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3386,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3386,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3387,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3387,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3388,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3388,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3388,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3389,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3390,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3392,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3393,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3393,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3393,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3394,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3394,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3394,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3395,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3395,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3395,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3396,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3396,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3397,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3397,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3397,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3398,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3398,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3399,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3399,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3399,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3400,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3401,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3403,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3404,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3404,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3404,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3405,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3405,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3406,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3406,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3406,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3407,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3407,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3408,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3408,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3408,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3409,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3409,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3410,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3410,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3411,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3412,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3414,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3415,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3416,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3416,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3417,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3417,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3418,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3418,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3418,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3419,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3419,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3420,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3420,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3420,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3421,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3421,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3422,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3422,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3423,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3424,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3426,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3427,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3428,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3428,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3429,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3429,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3430,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3430,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3431,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3431,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3432,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3432,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3432,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3433,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3433,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3433,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3434,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3434,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3434,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3435,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3436,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3438,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3439,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3440,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3440,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3441,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3441,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3442,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3442,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3443,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3443,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3444,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3444,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3444,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3445,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3445,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3446,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3446,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3447,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3448,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3450,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3451,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3452,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3452,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3453,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3453,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3454,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3454,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3455,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3455,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3456,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3456,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3456,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3457,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3457,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3457,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3458,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3458,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3458,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3459,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3460,1
    - Dst: URI_PARSE
      Src: /src/libevent/test/regress_http.c:3462,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3463,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3464,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3464,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3465,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3465,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3466,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3466,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3467,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3467,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3468,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3468,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3468,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3469,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3469,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3470,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3470,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3470,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3471,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3472,1
    - Dst: URI_PARSE_FLAGS
      Src: /src/libevent/test/regress_http.c:3475,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3476,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3476,1
    - Dst: evhttp_uri_get_scheme
      Src: /src/libevent/test/regress_http.c:3476,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3477,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3477,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3477,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3478,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3478,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/test/regress_http.c:3478,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3479,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3479,1
    - Dst: evhttp_uri_get_query
      Src: /src/libevent/test/regress_http.c:3479,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3480,1
    - Dst: evhttp_uri_get_userinfo
      Src: /src/libevent/test/regress_http.c:3480,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3481,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/test/regress_http.c:3481,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3482,1
    - Dst: evhttp_uri_get_fragment
      Src: /src/libevent/test/regress_http.c:3482,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3483,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3485,1
    - Dst: evhttp_uri_set_host
      Src: /src/libevent/test/regress_http.c:3485,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3486,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3486,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3486,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3487,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3489,1
    - Dst: evhttp_uri_set_host
      Src: /src/libevent/test/regress_http.c:3489,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_http.c:3490,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3490,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/test/regress_http.c:3490,1
    - Dst: TT_URI
      Src: /src/libevent/test/regress_http.c:3491,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/test/regress_http.c:3493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 337
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3499
      start: 3063
    functionDepth: 3
    functionLinenumber: 3063
    functionLinenumberEnd: 3499
    functionName: http_parse_uri_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - URI_PARSE_FLAGS
    - evhttp_uri_set_fragment
    - evhttp_uri_set_scheme
    - evhttp_uri_set_host
    - evhttp_uri_get_host
    - tt_want
    - BAD
    - evhttp_uri_free
    - evhttp_uri_get_scheme
    - evhttp_uri_set_path
    - evhttp_uri_new
    - evhttp_uri_get_userinfo
    - evhttp_uri_get_query
    - evhttp_uri_get_port
    - evhttp_uri_set_port
    - evhttp_uri_get_path
    - evhttp_uri_join
    - evhttp_uri_set_query
    - TT_URI
    - evhttp_uri_get_fragment
    - strcmp
    - UNI
    - tt_want_str_op
    - URI_PARSE
    - strstr
    - evhttp_uri_set_userinfo
    - NCF
    linkageType: ''
    returnType: void
    signature: void http_parse_uri_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - uri
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3074
      start: 3072
    functionDepth: 0
    functionLinenumber: 3072
    functionLinenumberEnd: 3074
    functionName: URI_PARSE_FLAGS
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: URI_PARSE_FLAGS(uri, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - uri
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3076
      start: 3074
    functionDepth: 0
    functionLinenumber: 3074
    functionLinenumberEnd: 3076
    functionName: URI_PARSE
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: URI_PARSE(uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - want
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3084
      start: 3077
    functionDepth: 0
    functionLinenumber: 3077
    functionLinenumberEnd: 3084
    functionName: TT_URI
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TT_URI(want)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3105
      start: 3101
    functionDepth: 0
    functionLinenumber: 3101
    functionLinenumberEnd: 3105
    functionName: BAD
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BAD(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3120
      start: 3106
    functionDepth: 0
    functionLinenumber: 3106
    functionLinenumberEnd: 3120
    functionName: NCF
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCF(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3132
      start: 3120
    functionDepth: 0
    functionLinenumber: 3120
    functionLinenumberEnd: 3132
    functionName: UNI
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNI(s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENC
      Src: /src/libevent/test/regress_http.c:3540,1
    - Dst: ENC
      Src: /src/libevent/test/regress_http.c:3541,1
    - Dst: ENC
      Src: /src/libevent/test/regress_http.c:3542,1
    - Dst: ENC
      Src: /src/libevent/test/regress_http.c:3543,1
    - Dst: ENC
      Src: /src/libevent/test/regress_http.c:3546,1
    - Dst: ENC
      Src: /src/libevent/test/regress_http.c:3547,1
    - Dst: ENC
      Src: /src/libevent/test/regress_http.c:3548,1
    - Dst: ENC
      Src: /src/libevent/test/regress_http.c:3549,1
    - Dst: ENC
      Src: /src/libevent/test/regress_http.c:3550,1
    - Dst: ENC
      Src: /src/libevent/test/regress_http.c:3553,1
    - Dst: ENC
      Src: /src/libevent/test/regress_http.c:3554,1
    - Dst: evhttp_uriencode
      Src: /src/libevent/test/regress_http.c:3557,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:3558,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_http.c:3559,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3560,1
    - Dst: malloc
      Src: /src/libevent/test/regress_http.c:3564,1
    - Dst: evhttp_decode_uri_internal
      Src: /src/libevent/test/regress_http.c:3565,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:3566,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:3567,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_http.c:3568,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3569,1
    - Dst: DEC
      Src: /src/libevent/test/regress_http.c:3574,1
    - Dst: DEC
      Src: /src/libevent/test/regress_http.c:3577,1
    - Dst: DEC
      Src: /src/libevent/test/regress_http.c:3579,1
    - Dst: evhttp_uridecode
      Src: /src/libevent/test/regress_http.c:3583,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:3584,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:3585,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_http.c:3585,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3586,1
    - Dst: evhttp_uridecode
      Src: /src/libevent/test/regress_http.c:3591,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:3592,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_http.c:3592,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3593,1
    - Dst: OLD_DEC
      Src: /src/libevent/test/regress_http.c:3598,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3603,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3605,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 45
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3609
      start: 3501
    functionDepth: 2
    functionLinenumber: 3501
    functionLinenumberEnd: 3609
    functionName: http_uriencode_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_str_op
    - evhttp_decode_uri_internal
    - OLD_DEC
    - evhttp_uriencode
    - DEC
    - free
    - malloc
    - memcmp
    - evhttp_uridecode
    - tt_int_op
    - ENC
    linkageType: ''
    returnType: void
    signature: void http_uriencode_test(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - from
    - ','
    - want
    - ','
    - plus
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3521
      start: 3508
    functionDepth: 0
    functionLinenumber: 3508
    functionLinenumberEnd: 3521
    functionName: ENC
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENC(from,want,plus)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - from
    - ','
    - want
    - ','
    - dp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3530
      start: 3522
    functionDepth: 0
    functionLinenumber: 3522
    functionLinenumberEnd: 3530
    functionName: DEC
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEC(from,want,dp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - from
    - ','
    - want
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3538
      start: 3531
    functionDepth: 0
    functionLinenumber: 3531
    functionLinenumberEnd: 3538
    functionName: OLD_DEC
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OLD_DEC(from,want)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_new
      Src: /src/libevent/test/regress_http.c:3622,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:3623,1
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:3624,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:3626,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:3627,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:3630,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:3631,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:3633,1
    - Dst: bufferevent_base_set
      Src: /src/libevent/test/regress_http.c:3635,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:3643,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:3643,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:3645,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:3647,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:3648,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:3650,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:3652,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_http.c:3656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3657
      start: 3611
    functionDepth: 8
    functionLinenumber: 3611
    functionLinenumberEnd: 3657
    functionName: http_base_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - bufferevent_socket_new
    - tt_assert
    - evutil_closesocket
    - event_base_free
    - http_connect
    - strlen
    - bufferevent_write
    - bufferevent_free
    - evhttp_free
    - tt_int_op
    - bufferevent_setcb
    - event_base_new
    - bufferevent_base_set
    - http_setup
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_base_test(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:3668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3669
      start: 3664
    functionDepth: 2
    functionLinenumber: 3664
    functionLinenumberEnd: 3669
    functionName: http_incomplete_readcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: void http_incomplete_readcb(struct bufferevent *bev, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:3682,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3683
      start: 3671
    functionDepth: 2
    functionLinenumber: 3671
    functionLinenumberEnd: 3683
    functionName: http_incomplete_errorcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: void http_incomplete_errorcb(struct bufferevent *bev, short what, void
      *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: shutdown
      Src: /src/libevent/test/regress_http.c:3691,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:3693,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_http.c:3693,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_http.c:3695,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3698
      start: 3685
    functionDepth: 2
    functionLinenumber: 3685
    functionLinenumberEnd: 3698
    functionName: http_incomplete_writecb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - bufferevent_enable
    - shutdown
    - bufferevent_get_output
    - evbuffer_get_length
    linkageType: ''
    returnType: void
    signature: void http_incomplete_writecb(struct bufferevent *bev, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:3708,1
    - Dst: evhttp_set_timeout
      Src: /src/libevent/test/regress_http.c:3713,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:3715,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:3716,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:3719,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:3720,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:3722,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:3730,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:3730,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_http.c:3732,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:3734,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_http.c:3736,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/regress_http.c:3737,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:3739,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:3741,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:3745,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:3748,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:3751,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:3754,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:3757,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - data
    - use_timeout
    - ssl
    argTypes:
    - struct basic_test_data*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3758
      start: 3700
    functionDepth: 8
    functionLinenumber: 3700
    functionLinenumberEnd: 3758
    functionName: http_incomplete_test_
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evutil_gettimeofday
    - evutil_closesocket
    - http_connect
    - create_bev
    - bufferevent_write
    - bufferevent_free
    - evhttp_free
    - tt_abort_msg
    - evutil_timersub
    - bufferevent_setcb
    - strlen
    - tt_int_op
    - http_setup
    - evhttp_set_timeout
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_incomplete_test_(struct basic_test_data *data, int use_timeout,
      int ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_incomplete_test_
      Src: /src/libevent/test/regress_http.c:3760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3760
      start: 3759
    functionDepth: 9
    functionLinenumber: 3759
    functionLinenumberEnd: 3760
    functionName: http_incomplete_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_incomplete_test_
    linkageType: ''
    returnType: void
    signature: void http_incomplete_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_incomplete_test_
      Src: /src/libevent/test/regress_http.c:3762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3762
      start: 3761
    functionDepth: 9
    functionLinenumber: 3761
    functionLinenumberEnd: 3762
    functionName: http_incomplete_timeout_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_incomplete_test_
    linkageType: ''
    returnType: void
    signature: void http_incomplete_timeout_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3773
      start: 3769
    functionDepth: 0
    functionLinenumber: 3769
    functionLinenumberEnd: 3773
    functionName: http_chunked_readcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void http_chunked_readcb(struct bufferevent *bev, void *arg)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:3792,1
    - Dst: evhttp_parse_firstline_
      Src: /src/libevent/test/regress_http.c:3795,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:3795,1
    - Dst: evhttp_parse_headers_
      Src: /src/libevent/test/regress_http.c:3799,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:3799,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:3803,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:3803,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3804,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:3807,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:3807,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3808,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_http.c:3811,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:3811,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3815,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3816,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3819,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_http.c:3821,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_http.c:3821,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:3821,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_http.c:3825,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:3825,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_http.c:3827,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:3827,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3831,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3833,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_http.c:3835,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_http.c:3835,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:3835,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_http.c:3839,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:3839,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_http.c:3841,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:3841,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3845,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3846,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3849,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_http.c:3851,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_http.c:3851,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:3851,1
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_http.c:3855,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:3855,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_http.c:3857,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:3857,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3861,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3862,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3865,1
    - Dst: evhttp_request_free
      Src: /src/libevent/test/regress_http.c:3872,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:3874,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 82
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3875
      start: 3775
    functionDepth: 4
    functionLinenumber: 3775
    functionLinenumberEnd: 3875
    functionName: http_chunked_errorcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_input
    - evbuffer_pullup
    - strncmp
    - evhttp_request_get_input_headers
    - evhttp_request_new
    - strcmp
    - evbuffer_readln
    - evhttp_request_free
    - event_base_loopexit
    - free
    - evhttp_parse_firstline_
    - evhttp_find_header
    - evhttp_parse_headers_
    - evbuffer_drain
    linkageType: ''
    returnType: void
    signature: void http_chunked_errorcb(struct bufferevent *bev, short what, void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:3880,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_http.c:3880,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_http.c:3882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3885
      start: 3877
    functionDepth: 2
    functionLinenumber: 3877
    functionLinenumberEnd: 3885
    functionName: http_chunked_writecb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - bufferevent_enable
    - bufferevent_get_output
    - evbuffer_get_length
    linkageType: ''
    returnType: void
    signature: void http_chunked_writecb(struct bufferevent *bev, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:3890,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:3891,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:3892,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:3895,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:3895,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:3897,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:3898,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:3901,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:3901,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:3902,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:3903,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_http.c:3906,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_http.c:3906,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:3906,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:3909,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:3910,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:3914,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3915
      start: 3887
    functionDepth: 4
    functionLinenumber: 3887
    functionLinenumberEnd: 3915
    functionName: http_chunked_request_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_response_code
    - exit
    - evbuffer_pullup
    - strncmp
    - event_base_loopexit
    - evbuffer_get_length
    - evhttp_request_get_input_buffer
    - fprintf
    - evhttp_request_get_input_headers
    - evhttp_find_header
    linkageType: ''
    returnType: void
    signature: void http_chunked_request_done(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:3920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3921
      start: 3917
    functionDepth: 1
    functionLinenumber: 3917
    functionLinenumberEnd: 3921
    functionName: http_send_chunk_test_read_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - TT_BLATHER
    linkageType: ''
    returnType: void
    signature: void http_send_chunk_test_read_cb(struct bufferevent *bev, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_http.c:3926,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:3928,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:3931,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:3932,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_http.c:3933,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:3933,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_http.c:3935,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_http.c:3936,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_http.c:3939,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_http.c:3942,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_http.c:3943,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3947
      start: 3923
    functionDepth: 9
    functionLinenumber: 3923
    functionLinenumberEnd: 3947
    functionName: http_send_chunk_test_write_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_output
    - evbuffer_add
    - TT_BLATHER
    - evbuffer_add_printf
    - strlen
    - bufferevent_enable
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void http_send_chunk_test_write_cb(struct bufferevent *bev, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:3951,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:3954,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:3959,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_http.c:3961,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_http.c:3966,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:3969,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:3972,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3973
      start: 3948
    functionDepth: 2
    functionLinenumber: 3948
    functionLinenumberEnd: 3973
    functionName: http_send_chunk_test_error_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_input
    - TT_BLATHER
    - strcmp
    - evbuffer_readln
    - event_base_loopexit
    - free
    - evbuffer_get_length
    linkageType: ''
    returnType: void
    signature: void http_send_chunk_test_error_cb(struct bufferevent *bev, short what,
      void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:3982,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:3987,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:3988,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:3990,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:3991,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:3993,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:4006,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:4006,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4008,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4013,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:4017,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4019,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4020
      start: 3974
    functionDepth: 8
    functionLinenumber: 3974
    functionLinenumberEnd: 4020
    functionName: http_send_chunk_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - http_connect
    - create_bev
    - bufferevent_write
    - bufferevent_free
    - evhttp_free
    - bufferevent_setcb
    - strlen
    - tt_int_op
    - http_setup
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_send_chunk_test(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_http.c:4025,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:4026,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:4028,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:4030,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_http.c:4031,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:4031,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_http.c:4032,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_http.c:4033,1
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_http.c:4035,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_http.c:4039,1
    - Dst: bufferevent_enable
      Src: /src/libevent/test/regress_http.c:4040,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4044
      start: 4022
    functionDepth: 9
    functionLinenumber: 4022
    functionLinenumberEnd: 4044
    functionName: http_send_chunk_malformed_test_write_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_output
    - evbuffer_add
    - TT_BLATHER
    - evbuffer_add_printf
    - strlen
    - bufferevent_enable
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void http_send_chunk_malformed_test_write_cb(struct bufferevent *bev,
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:4048,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:4051,1
    - Dst: evbuffer_readln
      Src: /src/libevent/test/regress_http.c:4052,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_http.c:4053,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:4056,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:4057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4058
      start: 4045
    functionDepth: 2
    functionLinenumber: 4045
    functionLinenumberEnd: 4058
    functionName: http_send_chunk_malformed_test_error_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_str_op
    - bufferevent_get_input
    - TT_BLATHER
    - evbuffer_readln
    - event_base_loopexit
    - free
    linkageType: ''
    returnType: void
    signature: void http_send_chunk_malformed_test_error_cb(struct bufferevent *bev,
      short what, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:4067,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:4072,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4073,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:4075,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4076,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:4078,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:4091,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:4091,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4092,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:4096,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4098,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4099
      start: 4059
    functionDepth: 8
    functionLinenumber: 4059
    functionLinenumberEnd: 4099
    functionName: http_send_chunk_malformed_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - http_connect
    - create_bev
    - bufferevent_write
    - bufferevent_free
    - evhttp_free
    - bufferevent_setcb
    - strlen
    - http_setup
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_send_chunk_malformed_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:4113,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:4118,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4119,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:4122,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4123,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:4125,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:4135,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:4135,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_http.c:4137,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4139,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:4141,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_http.c:4144,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/regress_http.c:4145,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4147,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4149,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:4152,1
    - Dst: evhttp_connection_base_bufferevent_new
      Src: /src/libevent/test/regress_http.c:4153,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4155,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4160,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:4163,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:4163,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:4166,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4167,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4170,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4172,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:4177,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 2
    argNames:
    - arg
    - ssl
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4180
      start: 4101
    functionDepth: 8
    functionLinenumber: 4101
    functionLinenumberEnd: 4180
    functionName: http_chunk_out_test_impl
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_make_request
    - evhttp_connection_free
    - create_bev
    - bufferevent_free
    - evhttp_request_new
    - bufferevent_write
    - evutil_gettimeofday
    - evhttp_free
    - evhttp_connection_base_bufferevent_new
    - tt_abort_msg
    - bufferevent_setcb
    - strlen
    - tt_int_op
    - http_setup
    - tt_assert
    - http_connect
    - evhttp_add_header
    - evutil_timersub
    - evhttp_request_get_output_headers
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_chunk_out_test_impl(void *arg, int ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_chunk_out_test_impl
      Src: /src/libevent/test/regress_http.c:4182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4182
      start: 4181
    functionDepth: 9
    functionLinenumber: 4181
    functionLinenumberEnd: 4182
    functionName: http_chunk_out_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_chunk_out_test_impl
    linkageType: ''
    returnType: void
    signature: void http_chunk_out_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:4192,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:4197,1
    - Dst: evhttp_connection_base_bufferevent_new
      Src: /src/libevent/test/regress_http.c:4198,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4200,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4207,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:4211,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:4211,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:4214,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4216,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4219,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:4223,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - arg
    - ssl
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4226
      start: 4184
    functionDepth: 7
    functionLinenumber: 4184
    functionLinenumberEnd: 4226
    functionName: http_stream_out_test_impl
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_make_request
    - evhttp_connection_free
    - create_bev
    - evhttp_free
    - evhttp_add_header
    - evhttp_connection_base_bufferevent_new
    - evhttp_request_new
    - tt_abort_msg
    - http_setup
    - evhttp_request_get_output_headers
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_stream_out_test_impl(void *arg, int ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_stream_out_test_impl
      Src: /src/libevent/test/regress_http.c:4228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4228
      start: 4227
    functionDepth: 8
    functionLinenumber: 4227
    functionLinenumberEnd: 4228
    functionName: http_stream_out_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_stream_out_test_impl
    linkageType: ''
    returnType: void
    signature: void http_stream_out_test(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:4235,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:4236,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:4237,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/test/regress_http.c:4240,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:4240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4241
      start: 4230
    functionDepth: 6
    functionLinenumber: 4230
    functionLinenumberEnd: 4241
    functionName: http_stream_in_chunk
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_response_code
    - exit
    - evbuffer_add_buffer
    - evhttp_request_get_input_buffer
    - fprintf
    linkageType: ''
    returnType: void
    signature: void http_stream_in_chunk(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:4246,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:4246,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:4247,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:4248,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:4251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4252
      start: 4243
    functionDepth: 2
    functionLinenumber: 4243
    functionLinenumberEnd: 4252
    functionName: http_stream_in_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - exit
    - event_base_loopexit
    - evbuffer_get_length
    - evhttp_request_get_input_buffer
    - fprintf
    linkageType: ''
    returnType: void
    signature: void http_stream_in_done(struct evhttp_request *req, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:4262,1
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:4265,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:4269,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4270,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4272,1
    - Dst: evhttp_request_set_chunked_cb
      Src: /src/libevent/test/regress_http.c:4273,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:4276,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4277,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4280,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:4282,1
    - Dst: TT_DIE
      Src: /src/libevent/test/regress_http.c:4283,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:4284,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_http.c:4286,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_http.c:4289,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_http.c:4289,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4290,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:4296,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:4298,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4300,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - data
    - url
    - expected_len
    - expected
    argTypes:
    - struct basic_test_data*
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4301
      start: 4257
    functionDepth: 7
    functionLinenumber: 4257
    functionLinenumberEnd: 4301
    functionName: http_stream_in_test_
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_make_request
    - evhttp_connection_free
    - evbuffer_pullup
    - evhttp_free
    - TT_DIE
    - evbuffer_free
    - evhttp_request_new
    - tt_abort_msg
    - evhttp_request_set_chunked_cb
    - evbuffer_get_length
    - evhttp_connection_base_new
    - memcmp
    - http_setup
    - evbuffer_new
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: "void http_stream_in_test_(struct basic_test_data *data, char const
      *url,\n    size_t expected_len, char const *expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_stream_in_test_
      Src: /src/libevent/test/regress_http.c:4306,1
    - Dst: http_stream_in_test_
      Src: /src/libevent/test/regress_http.c:4309,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:4309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4311
      start: 4303
    functionDepth: 8
    functionLinenumber: 4303
    functionLinenumberEnd: 4311
    functionName: http_stream_in_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - strlen
    - http_stream_in_test_
    linkageType: ''
    returnType: void
    signature: void http_stream_in_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4316,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:4316,1
    - Dst: evhttp_cancel_request
      Src: /src/libevent/test/regress_http.c:4319,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:4320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4321
      start: 4313
    functionDepth: 5
    functionLinenumber: 4313
    functionLinenumberEnd: 4321
    functionName: http_stream_in_cancel_chunk
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_response_code
    - tt_int_op
    - event_base_loopexit
    - evhttp_cancel_request
    linkageType: ''
    returnType: void
    signature: void http_stream_in_cancel_chunk(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_fail_msg
      Src: /src/libevent/test/regress_http.c:4327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4328
      start: 4323
    functionDepth: 1
    functionLinenumber: 4323
    functionLinenumberEnd: 4328
    functionName: http_stream_in_cancel_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_fail_msg
    linkageType: ''
    returnType: void
    signature: void http_stream_in_cancel_done(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:4337,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:4339,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4340,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4342,1
    - Dst: evhttp_request_set_chunked_cb
      Src: /src/libevent/test/regress_http.c:4343,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:4346,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4347,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4350,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:4354,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4357
      start: 4330
    functionDepth: 7
    functionLinenumber: 4330
    functionLinenumberEnd: 4357
    functionName: http_stream_in_cancel_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_make_request
    - evhttp_connection_free
    - evhttp_free
    - evhttp_request_new
    - tt_abort_msg
    - evhttp_request_set_chunked_cb
    - evhttp_connection_base_new
    - http_setup
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_stream_in_cancel_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_connection_get_base
      Src: /src/libevent/test/regress_http.c:4363,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4369,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:4371,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:4376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4377
      start: 4359
    functionDepth: 4
    functionLinenumber: 4359
    functionLinenumberEnd: 4377
    functionName: http_connection_fail_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_connection_free
    - event_base_loopexit
    - evhttp_connection_get_base
    linkageType: ''
    returnType: void
    signature: void http_connection_fail_done(struct evhttp_request *req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:4389,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4395,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:4397,1
    - Dst: evhttp_connection_base_bufferevent_new
      Src: /src/libevent/test/regress_http.c:4400,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4402,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4409,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4410,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:4412,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4413,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4416,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - arg
    - ssl
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4422
      start: 4381
    functionDepth: 7
    functionLinenumber: 4381
    functionLinenumberEnd: 4422
    functionName: http_connection_fail_test_impl
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_make_request
    - create_bev
    - evhttp_free
    - evhttp_connection_base_bufferevent_new
    - evhttp_request_new
    - tt_abort_msg
    - tt_int_op
    - http_setup
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_connection_fail_test_impl(void *arg, int ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_fail_test_impl
      Src: /src/libevent/test/regress_http.c:4424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4424
      start: 4423
    functionDepth: 8
    functionLinenumber: 4423
    functionLinenumberEnd: 4424
    functionName: http_connection_fail_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_fail_test_impl
    linkageType: ''
    returnType: void
    signature: void http_connection_fail_test(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4429,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4430,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:4430,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:4431,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:4431,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4432,1
    - Dst: tt_uint_op
      Src: /src/libevent/test/regress_http.c:4435,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:4435,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:4435,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:4439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4440
      start: 4426
    functionDepth: 2
    functionLinenumber: 4426
    functionLinenumberEnd: 4440
    functionName: http_connection_retry_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_request_get_response_code
    - evhttp_request_get_input_headers
    - tt_abort_msg
    - event_base_loopexit
    - tt_uint_op
    - evbuffer_get_length
    - evhttp_request_get_input_buffer
    - tt_int_op
    - evhttp_find_header
    linkageType: ''
    returnType: void
    signature: void http_connection_retry_done(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:4453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4454
      start: 4449
    functionDepth: 0
    functionLinenumber: 4449
    functionLinenumberEnd: 4454
    functionName: http_make_web_server
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_setup
    linkageType: ''
    returnType: void
    signature: void http_make_web_server(evutil_socket_t fd, short what, void *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:4464,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:4471,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_http.c:4472,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:4474,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_http.c:4475,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_http.c:4475,1
    - Dst: bufferevent_openssl_set_allow_dirty_shutdown
      Src: /src/libevent/test/regress_http.c:4478,1
    - Dst: bufferevent_mbedtls_set_allow_dirty_shutdown
      Src: /src/libevent/test/regress_http.c:4483,1
    - Dst: evhttp_connection_base_bufferevent_reuse_new
      Src: /src/libevent/test/regress_http.c:4488,1
    - Dst: evhttp_connection_base_bufferevent_new
      Src: /src/libevent/test/regress_http.c:4490,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4493,1
    - Dst: evhttp_connection_set_local_address
      Src: /src/libevent/test/regress_http.c:4495,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4498,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4499,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:4501,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4502,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4504,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4505,1
    - Dst: tt_fd_op
      Src: /src/libevent/test/regress_http.c:4508,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/test/regress_http.c:4508,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:4513,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4515,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 5
    argNames:
    - arg
    - ssl
    - dirty
    - preexisting
    - uri
    argTypes:
    - void*
    - int
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4516
      start: 4456
    functionDepth: 8
    functionLinenumber: 4456
    functionLinenumberEnd: 4516
    functionName: http_simple_test_impl
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_make_request
    - evhttp_connection_free
    - http_connect
    - create_bev
    - evhttp_free
    - tt_int_op
    - bufferevent_openssl_set_allow_dirty_shutdown
    - evhttp_connection_base_bufferevent_new
    - evhttp_request_new
    - tt_abort_msg
    - event_base_dispatch
    - evhttp_connection_base_bufferevent_reuse_new
    - bufferevent_mbedtls_set_allow_dirty_shutdown
    - http_setup
    - evhttp_connection_set_local_address
    - tt_fd_op
    - bufferevent_getfd
    linkageType: ''
    returnType: void
    signature: void http_simple_test_impl(void *arg, int ssl, int dirty, int preexisting,
      const char *uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_simple_test_impl
      Src: /src/libevent/test/regress_http.c:4518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4518
      start: 4517
    functionDepth: 9
    functionLinenumber: 4517
    functionLinenumberEnd: 4518
    functionName: http_simple_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_simple_test_impl
    linkageType: ''
    returnType: void
    signature: void http_simple_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_simple_test_impl
      Src: /src/libevent/test/regress_http.c:4520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4520
      start: 4519
    functionDepth: 9
    functionLinenumber: 4519
    functionLinenumberEnd: 4520
    functionName: http_simple_preexisting_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_simple_test_impl
    linkageType: ''
    returnType: void
    signature: void http_simple_preexisting_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_simple_test_impl
      Src: /src/libevent/test/regress_http.c:4522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4522
      start: 4521
    functionDepth: 9
    functionLinenumber: 4521
    functionLinenumberEnd: 4522
    functionName: http_simple_nonconformant_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_simple_test_impl
    linkageType: ''
    returnType: void
    signature: void http_simple_nonconformant_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_simple_test_impl
      Src: /src/libevent/test/regress_http.c:4524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4524
      start: 4523
    functionDepth: 9
    functionLinenumber: 4523
    functionLinenumberEnd: 4524
    functionName: http_simple_nonconformant_preexisting_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_simple_test_impl
    linkageType: ''
    returnType: void
    signature: void http_simple_nonconformant_preexisting_test(void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_bind_socket_with_handle
      Src: /src/libevent/test/regress_http.c:4531,1
    - Dst: event_errx
      Src: /src/libevent/test/regress_http.c:4533,1
    - Dst: init_ssl
      Src: /src/libevent/test/regress_http.c:4539,1
    - Dst: evhttp_bound_set_bevcb
      Src: /src/libevent/test/regress_http.c:4540,1
    - Dst: evhttp_bound_set_bevcb
      Src: /src/libevent/test/regress_http.c:4545,1
    - Dst: regress_get_socket_port
      Src: /src/libevent/test/regress_http.c:4549,1
    - Dst: evhttp_bound_socket_get_fd
      Src: /src/libevent/test/regress_http.c:4549,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - http
    - port
    - pport
    - mask
    argTypes:
    - struct evhttp*
    - ev_uint16_t
    - ev_uint16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4557
      start: 4526
    functionDepth: 2
    functionLinenumber: 4526
    functionLinenumberEnd: 4557
    functionName: https_bind_ssl_bevcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_bound_socket_get_fd
    - event_errx
    - evhttp_bound_set_bevcb
    - regress_get_socket_port
    - init_ssl
    - evhttp_bind_socket_with_handle
    linkageType: ''
    returnType: int
    signature: int https_bind_ssl_bevcb(struct evhttp *http, ev_uint16_t port, ev_uint16_t
      *pport, int mask)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_new
      Src: /src/libevent/test/regress_http.c:4568,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4569,1
    - Dst: evhttp_bind_socket_with_handle
      Src: /src/libevent/test/regress_http.c:4571,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4573,1
    - Dst: https_bind_ssl_bevcb
      Src: /src/libevent/test/regress_http.c:4573,1
    - Dst: evhttp_set_gencb
      Src: /src/libevent/test/regress_http.c:4575,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:4577,1
    - Dst: bufferevent_openssl_set_allow_dirty_shutdown
      Src: /src/libevent/test/regress_http.c:4580,1
    - Dst: bufferevent_mbedtls_set_allow_dirty_shutdown
      Src: /src/libevent/test/regress_http.c:4583,1
    - Dst: evhttp_connection_base_bufferevent_new
      Src: /src/libevent/test/regress_http.c:4586,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4587,1
    - Dst: evhttp_connection_set_timeout
      Src: /src/libevent/test/regress_http.c:4589,1
    - Dst: evhttp_connection_set_local_address
      Src: /src/libevent/test/regress_http.c:4591,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4593,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4594,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:4596,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:4596,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:4598,1
    - Dst: evhttp_request_free
      Src: /src/libevent/test/regress_http.c:4599,1
    - Dst: TT_GRIPE
      Src: /src/libevent/test/regress_http.c:4600,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4605,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:4609,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4612,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 4
    argNames:
    - arg
    - http_port
    - https_port
    - mask
    argTypes:
    - void*
    - ev_uint16_t
    - ev_uint16_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4613
      start: 4558
    functionDepth: 7
    functionLinenumber: 4558
    functionLinenumberEnd: 4613
    functionName: https_per_socket_bevcb_impl
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_make_request
    - evhttp_connection_free
    - create_bev
    - TT_GRIPE
    - evhttp_request_new
    - evhttp_request_free
    - bufferevent_mbedtls_set_allow_dirty_shutdown
    - evhttp_connection_set_timeout
    - evhttp_bind_socket_with_handle
    - https_bind_ssl_bevcb
    - evhttp_free
    - bufferevent_openssl_set_allow_dirty_shutdown
    - evhttp_connection_base_bufferevent_new
    - evhttp_connection_set_local_address
    - tt_assert
    - evhttp_set_gencb
    - evhttp_add_header
    - evhttp_request_get_output_headers
    - evhttp_new
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void https_per_socket_bevcb_impl(void *arg, ev_uint16_t http_port,
      ev_uint16_t https_port, int mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: https_per_socket_bevcb_impl
      Src: /src/libevent/test/regress_http.c:4615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arg
    - ssl
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4615
      start: 4614
    functionDepth: 8
    functionLinenumber: 4614
    functionLinenumberEnd: 4615
    functionName: https_per_socket_bevcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - https_per_socket_bevcb_impl
    linkageType: ''
    returnType: void
    signature: void https_per_socket_bevcb(void *arg, int ssl)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:4626,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4632,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:4634,1
    - Dst: evhttp_connection_base_bufferevent_new
      Src: /src/libevent/test/regress_http.c:4635,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4636,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4638,1
    - Dst: evhttp_connection_set_flags
      Src: /src/libevent/test/regress_http.c:4638,1
    - Dst: evhttp_connection_set_timeout
      Src: /src/libevent/test/regress_http.c:4640,1
    - Dst: evhttp_connection_set_local_address
      Src: /src/libevent/test/regress_http.c:4642,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4649,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4650,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:4653,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:4653,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:4655,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4657,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_http.c:4660,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4661,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_http.c:4662,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/regress_http.c:4663,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4664,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4666,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_http.c:4674,1
    - Dst: evhttp_connection_set_timeout_tv
      Src: /src/libevent/test/regress_http.c:4679,1
    - Dst: evhttp_connection_set_initial_retry_tv
      Src: /src/libevent/test/regress_http.c:4680,1
    - Dst: evhttp_connection_set_retries
      Src: /src/libevent/test/regress_http.c:4682,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4684,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4685,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:4688,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:4688,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:4690,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4692,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_http.c:4695,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4696,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_http.c:4697,1
    - Dst: test_timeval_diff_leq
      Src: /src/libevent/test/regress_http.c:4700,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4702,1
    - Dst: evhttp_connection_set_timeout
      Src: /src/libevent/test/regress_http.c:4710,1
    - Dst: evhttp_connection_set_retries
      Src: /src/libevent/test/regress_http.c:4711,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4713,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4714,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:4717,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:4717,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:4719,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4721,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress_http.c:4727,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:4730,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_http.c:4732,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4733,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_http.c:4734,1
    - Dst: test_timeval_diff_leq
      Src: /src/libevent/test/regress_http.c:4736,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4738,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:4742,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4744,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 65
    argCount: 4
    argNames:
    - arg
    - addr
    - dns_base
    - ssl
    argTypes:
    - void*
    - char*
    - struct evdns_base*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4745
      start: 4617
    functionDepth: 7
    functionLinenumber: 4617
    functionLinenumberEnd: 4745
    functionName: http_connection_retry_test_basic
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_make_request
    - test_timeval_diff_leq
    - evhttp_connection_free
    - create_bev
    - evhttp_request_new
    - regress_clean_dnsserver
    - evhttp_connection_set_timeout
    - evutil_gettimeofday
    - evutil_timerclear
    - evhttp_free
    - evhttp_connection_base_bufferevent_new
    - tt_abort_msg
    - evhttp_connection_set_local_address
    - evhttp_connection_set_flags
    - evhttp_connection_set_timeout_tv
    - event_base_once
    - tt_int_op
    - http_setup
    - tt_assert
    - evhttp_connection_set_retries
    - evhttp_add_header
    - evutil_timersub
    - evhttp_request_get_output_headers
    - evhttp_connection_set_initial_retry_tv
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_connection_retry_test_basic(void *arg, const char *addr,
      struct evdns_base *dns_base, int ssl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4755,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_http.c:4755,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_http.c:4756,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4757,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_http.c:4761,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_http.c:4762,1
    - Dst: http_connection_retry_test_basic
      Src: /src/libevent/test/regress_http.c:4764,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_http.c:4768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - arg
    - ssl
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4770
      start: 4747
    functionDepth: 9
    functionLinenumber: 4747
    functionLinenumberEnd: 4770
    functionName: http_connection_retry_conn_address_test_impl
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - regress_dnsserver
    - evdns_base_free
    - evdns_base_nameserver_ip_add
    - evdns_base_new
    - evutil_snprintf
    - http_connection_retry_test_basic
    linkageType: ''
    returnType: void
    signature: void http_connection_retry_conn_address_test_impl(void *arg, int ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_retry_conn_address_test_impl
      Src: /src/libevent/test/regress_http.c:4772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4772
      start: 4771
    functionDepth: 10
    functionLinenumber: 4771
    functionLinenumberEnd: 4772
    functionName: http_connection_retry_conn_address_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_retry_conn_address_test_impl
    linkageType: ''
    returnType: void
    signature: void http_connection_retry_conn_address_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_retry_test_basic
      Src: /src/libevent/test/regress_http.c:4777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arg
    - ssl
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4778
      start: 4774
    functionDepth: 8
    functionLinenumber: 4774
    functionLinenumberEnd: 4778
    functionName: http_connection_retry_test_impl
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_retry_test_basic
    linkageType: ''
    returnType: void
    signature: void http_connection_retry_test_impl(void *arg, int ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_retry_test_impl
      Src: /src/libevent/test/regress_http.c:4781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4781
      start: 4779
    functionDepth: 9
    functionLinenumber: 4779
    functionLinenumberEnd: 4781
    functionName: http_connection_retry_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_retry_test_impl
    linkageType: ''
    returnType: void
    signature: void http_connection_retry_test(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_htmlescape
      Src: /src/libevent/test/regress_http.c:4789,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4790,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_http.c:4791,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:4792,1
    - Dst: evhttp_htmlescape
      Src: /src/libevent/test/regress_http.c:4794,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4795,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_http.c:4796,1
    - Dst: evhttp_new
      Src: /src/libevent/test/regress_http.c:4798,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4799,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4800,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:4800,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4801,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:4801,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4802,1
    - Dst: evhttp_del_cb
      Src: /src/libevent/test/regress_http.c:4802,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4803,1
    - Dst: evhttp_del_cb
      Src: /src/libevent/test/regress_http.c:4803,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4804,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:4804,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:4808,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4810,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4811
      start: 4783
    functionDepth: 5
    functionLinenumber: 4783
    functionLinenumberEnd: 4811
    functionName: http_primitives
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_str_op
    - evhttp_set_cb
    - evhttp_free
    - evhttp_htmlescape
    - free
    - tt_int_op
    - evhttp_new
    - evhttp_del_cb
    linkageType: ''
    returnType: void
    signature: void http_primitives(void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:4821,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_http.c:4826,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:4828,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4829,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:4832,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_http.c:4833,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:4834,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:4849,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:4849,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4852,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4854,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4855,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4856,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:4859,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:4861,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4863,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4864
      start: 4813
    functionDepth: 8
    functionLinenumber: 4813
    functionLinenumberEnd: 4864
    functionName: http_multi_line_header_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - bufferevent_socket_new
    - tt_ptr_op
    - evutil_closesocket
    - http_connect
    - evhttp_free
    - bufferevent_write
    - bufferevent_free
    - bufferevent_setcb
    - strlen
    - tt_int_op
    - http_setup
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_multi_line_header_test(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/test/regress_http.c:4870,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:4871,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:4875,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4876
      start: 4866
    functionDepth: 2
    functionLinenumber: 4866
    functionLinenumberEnd: 4876
    functionName: http_request_bad
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: void http_request_bad(struct evhttp_request *req, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:4885,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:4889,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4890,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4897,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:4900,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:4900,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:4903,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4904,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4907,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:4911,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:4913,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4914
      start: 4878
    functionDepth: 7
    functionLinenumber: 4878
    functionLinenumberEnd: 4914
    functionName: http_negative_content_length_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_make_request
    - evhttp_connection_free
    - evhttp_free
    - evhttp_add_header
    - evhttp_request_new
    - tt_abort_msg
    - evhttp_connection_base_new
    - http_setup
    - evhttp_request_get_output_headers
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_negative_content_length_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4920,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4921,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:4921,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:4923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4924
      start: 4917
    functionDepth: 2
    functionLinenumber: 4917
    functionLinenumberEnd: 4924
    functionName: http_data_length_constraints_test_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_int_op
    - event_base_loopexit
    - evhttp_request_get_response_code
    linkageType: ''
    returnType: void
    signature: void http_data_length_constraints_test_done(struct evhttp_request *req,
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4928,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4929,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:4929,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:4931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4932
      start: 4925
    functionDepth: 2
    functionLinenumber: 4925
    functionLinenumberEnd: 4932
    functionName: http_large_entity_test_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_int_op
    - event_base_loopexit
    - evhttp_request_get_response_code
    linkageType: ''
    returnType: void
    signature: void http_large_entity_test_done(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4936,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:4937,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:4937,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:4939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4940
      start: 4933
    functionDepth: 2
    functionLinenumber: 4933
    functionLinenumberEnd: 4940
    functionName: http_expectation_failed_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_int_op
    - event_base_loopexit
    - evhttp_request_get_response_code
    linkageType: ''
    returnType: void
    signature: void http_expectation_failed_done(struct evhttp_request *req, void
      *arg)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:4953,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4960,1
    - Dst: malloc
      Src: /src/libevent/test/regress_http.c:4962,1
    - Dst: memset
      Src: /src/libevent/test/regress_http.c:4963,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:4966,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:4967,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4968,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4971,1
    - Dst: evhttp_connection_set_flags
      Src: /src/libevent/test/regress_http.c:4971,1
    - Dst: evhttp_connection_set_local_address
      Src: /src/libevent/test/regress_http.c:4973,1
    - Dst: evhttp_set_max_headers_size
      Src: /src/libevent/test/regress_http.c:4975,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:4976,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4978,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4979,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:4980,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:4980,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:4981,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:4981,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:4982,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:4983,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4984,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4986,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:4988,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:4989,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:4990,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:4990,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:4992,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:4993,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:4994,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:4996,1
    - Dst: evhttp_set_max_body_size
      Src: /src/libevent/test/regress_http.c:4998,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:4999,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:5003,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:5004,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:5004,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:5005,1
    - Dst: evhttp_request_get_output_buffer
      Src: /src/libevent/test/regress_http.c:5005,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:5006,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:5007,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:5008,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5010,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:5012,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:5013,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:5013,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:5014,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:5014,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:5015,1
    - Dst: evhttp_request_get_output_buffer
      Src: /src/libevent/test/regress_http.c:5015,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:5016,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:5017,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:5018,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5020,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:5024,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:5025,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:5025,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:5026,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:5026,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:5027,1
    - Dst: evhttp_request_get_output_buffer
      Src: /src/libevent/test/regress_http.c:5027,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:5028,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:5029,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:5030,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5032,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:5036,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:5037,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:5037,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:5038,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:5038,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:5039,1
    - Dst: evhttp_request_get_output_buffer
      Src: /src/libevent/test/regress_http.c:5039,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_http.c:5040,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:5041,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:5042,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5044,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:5049,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:5051,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:5053,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 85
    argCount: 2
    argNames:
    - arg
    - read_on_write_error
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5054
      start: 4942
    functionDepth: 9
    functionLinenumber: 4942
    functionLinenumberEnd: 5054
    functionName: http_data_length_constraints_test_impl
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_make_request
    - evhttp_connection_free
    - evhttp_request_new
    - evhttp_set_max_headers_size
    - evhttp_free
    - TT_BLATHER
    - tt_abort_msg
    - evhttp_set_max_body_size
    - evhttp_connection_set_local_address
    - evhttp_connection_set_flags
    - memset
    - evhttp_request_get_output_buffer
    - malloc
    - http_setup
    - tt_assert
    - evhttp_add_header
    - evbuffer_add_printf
    - free
    - evhttp_connection_base_new
    - evhttp_request_get_output_headers
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_data_length_constraints_test_impl(void *arg, int read_on_write_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_data_length_constraints_test_impl
      Src: /src/libevent/test/regress_http.c:5056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5056
      start: 5055
    functionDepth: 10
    functionLinenumber: 5055
    functionLinenumberEnd: 5056
    functionName: http_data_length_constraints_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_data_length_constraints_test_impl
    linkageType: ''
    returnType: void
    signature: void http_data_length_constraints_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_data_length_constraints_test_impl
      Src: /src/libevent/test/regress_http.c:5058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5058
      start: 5057
    functionDepth: 10
    functionLinenumber: 5057
    functionLinenumberEnd: 5058
    functionName: http_read_on_write_error_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_data_length_constraints_test_impl
    linkageType: ''
    returnType: void
    signature: void http_read_on_write_error_test(void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:5070,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5075,1
    - Dst: evhttp_set_flags
      Src: /src/libevent/test/regress_http.c:5075,1
    - Dst: evhttp_set_max_body_size
      Src: /src/libevent/test/regress_http.c:5076,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:5078,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5079,1
    - Dst: evhttp_connection_set_local_address
      Src: /src/libevent/test/regress_http.c:5080,1
    - Dst: malloc
      Src: /src/libevent/test/regress_http.c:5087,1
    - Dst: memset
      Src: /src/libevent/test/regress_http.c:5088,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:5095,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5096,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:5097,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:5097,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:5098,1
    - Dst: evhttp_request_get_output_buffer
      Src: /src/libevent/test/regress_http.c:5098,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:5099,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:5100,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5102,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:5107,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:5109,1
    - Dst: free
      Src: /src/libevent/test/regress_http.c:5111,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - arg
    - lingering
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5112
      start: 5060
    functionDepth: 9
    functionLinenumber: 5060
    functionLinenumberEnd: 5112
    functionName: http_lingering_close_test_impl
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_make_request
    - evhttp_connection_free
    - evhttp_request_new
    - evhttp_set_flags
    - evhttp_free
    - tt_abort_msg
    - evhttp_set_max_body_size
    - evhttp_connection_set_local_address
    - memset
    - evhttp_request_get_output_buffer
    - malloc
    - http_setup
    - tt_assert
    - evhttp_add_header
    - evbuffer_add_printf
    - free
    - evhttp_connection_base_new
    - evhttp_request_get_output_headers
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_lingering_close_test_impl(void *arg, int lingering)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_lingering_close_test_impl
      Src: /src/libevent/test/regress_http.c:5114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5114
      start: 5113
    functionDepth: 10
    functionLinenumber: 5113
    functionLinenumberEnd: 5114
    functionName: http_non_lingering_close_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_lingering_close_test_impl
    linkageType: ''
    returnType: void
    signature: void http_non_lingering_close_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_lingering_close_test_impl
      Src: /src/libevent/test/regress_http.c:5116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5116
      start: 5115
    functionDepth: 10
    functionLinenumber: 5115
    functionLinenumberEnd: 5116
    functionName: http_lingering_close_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_lingering_close_test_impl
    linkageType: ''
    returnType: void
    signature: void http_lingering_close_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_get_connection
      Src: /src/libevent/test/regress_http.c:5141,1
    - Dst: evhttp_request_free
      Src: /src/libevent/test/regress_http.c:5143,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:5144,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:5148,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:5149,1
    - Dst: evhttp_send_reply_chunk
      Src: /src/libevent/test/regress_http.c:5150,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:5151,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/test/regress_http.c:5157,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/test/regress_http.c:5158,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:5159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5161
      start: 5131
    functionDepth: 9
    functionLinenumber: 5131
    functionLinenumberEnd: 5161
    functionName: terminate_chunked_trickle_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_send_reply_chunk
    - EVUTIL_ASSERT
    - event_base_once
    - evbuffer_free
    - event_base_loopexit
    - evbuffer_add_printf
    - evhttp_request_get_connection
    - evhttp_request_free
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void terminate_chunked_trickle_cb(evutil_socket_t fd, short events,
      void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_free
      Src: /src/libevent/test/regress_http.c:5171,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:5173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - evcon
    - arg
    argTypes:
    - struct evhttp_connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5175
      start: 5163
    functionDepth: 3
    functionLinenumber: 5163
    functionLinenumberEnd: 5175
    functionName: terminate_chunked_close_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_free
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: void terminate_chunked_close_cb(struct evhttp_connection *evcon, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_connection_set_closecb
      Src: /src/libevent/test/regress_http.c:5184,1
    - Dst: evhttp_request_get_connection
      Src: /src/libevent/test/regress_http.c:5185,1
    - Dst: evhttp_send_reply_start
      Src: /src/libevent/test/regress_http.c:5190,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:5194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5195
      start: 5177
    functionDepth: 5
    functionLinenumber: 5177
    functionLinenumberEnd: 5195
    functionName: terminate_chunked_cb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_send_reply_start
    - evhttp_request_get_connection
    - event_base_once
    - evhttp_connection_set_closecb
    linkageType: ''
    returnType: void
    signature: void terminate_chunked_cb(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:5201,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:5202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5203
      start: 5197
    functionDepth: 6
    functionLinenumber: 5197
    functionLinenumberEnd: 5203
    functionName: terminate_chunked_client
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - bufferevent_free
    - evutil_closesocket
    linkageType: ''
    returnType: void
    signature: void terminate_chunked_client(evutil_socket_t fd, short event, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_drain
      Src: /src/libevent/test/regress_http.c:5209,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/test/regress_http.c:5209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5210
      start: 5205
    functionDepth: 4
    functionLinenumber: 5205
    functionLinenumberEnd: 5210
    functionName: terminate_readcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evbuffer_drain
    - bufferevent_get_input
    linkageType: ''
    returnType: void
    signature: void terminate_readcb(struct bufferevent *bev, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:5223,1
    - Dst: evhttp_del_cb
      Src: /src/libevent/test/regress_http.c:5227,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5228,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/test/regress_http.c:5228,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:5231,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5232,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/test/regress_http.c:5235,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5236,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:5238,1
    - Dst: memset
      Src: /src/libevent/test/regress_http.c:5241,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:5253,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:5253,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress_http.c:5254,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:5256,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5259,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:5266,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:5268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 2
    argNames:
    - arg
    - oneshot
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5269
      start: 5213
    functionDepth: 8
    functionLinenumber: 5213
    functionLinenumberEnd: 5269
    functionName: http_terminate_chunked_test_impl
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - bufferevent_socket_new
    - evutil_timerclear
    - evutil_closesocket
    - event_base_once
    - http_connect
    - evhttp_free
    - bufferevent_write
    - bufferevent_setcb
    - memset
    - event_base_dispatch
    - strlen
    - evhttp_set_cb
    - http_setup
    - evhttp_del_cb
    linkageType: ''
    returnType: void
    signature: void http_terminate_chunked_test_impl(void *arg, int oneshot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_terminate_chunked_test_impl
      Src: /src/libevent/test/regress_http.c:5273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5274
      start: 5270
    functionDepth: 9
    functionLinenumber: 5270
    functionLinenumberEnd: 5274
    functionName: http_terminate_chunked_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_terminate_chunked_test_impl
    linkageType: ''
    returnType: void
    signature: void http_terminate_chunked_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_terminate_chunked_test_impl
      Src: /src/libevent/test/regress_http.c:5278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5279
      start: 5275
    functionDepth: 9
    functionLinenumber: 5275
    functionLinenumberEnd: 5279
    functionName: http_terminate_chunked_oneshot_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_terminate_chunked_test_impl
    linkageType: ''
    returnType: void
    signature: void http_terminate_chunked_oneshot_test(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5294,1
    - Dst: regress_dnsserver
      Src: /src/libevent/test/regress_http.c:5294,1
    - Dst: evdns_base_new
      Src: /src/libevent/test/regress_http.c:5296,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5297,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_http.c:5301,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/test/regress_http.c:5302,1
    - Dst: http_connection_test_
      Src: /src/libevent/test/regress_http.c:5304,1
    - Dst: evdns_base_free
      Src: /src/libevent/test/regress_http.c:5309,1
    - Dst: regress_clean_dnsserver
      Src: /src/libevent/test/regress_http.c:5310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - arg
    - family
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5311
      start: 5286
    functionDepth: 9
    functionLinenumber: 5286
    functionLinenumberEnd: 5311
    functionName: http_ipv6_for_domain_test_impl
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - regress_dnsserver
    - evdns_base_free
    - evdns_base_nameserver_ip_add
    - http_connection_test_
    - regress_clean_dnsserver
    - evdns_base_new
    - evutil_snprintf
    linkageType: ''
    returnType: void
    signature: void http_ipv6_for_domain_test_impl(void *arg, int family)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_ipv6_for_domain_test_impl
      Src: /src/libevent/test/regress_http.c:5315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5316
      start: 5312
    functionDepth: 10
    functionLinenumber: 5312
    functionLinenumberEnd: 5316
    functionName: http_ipv6_for_domain_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_ipv6_for_domain_test_impl
    linkageType: ''
    returnType: void
    signature: void http_ipv6_for_domain_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5326,1
    - Dst: evhttp_connection_get_addr
      Src: /src/libevent/test/regress_http.c:5328,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5329,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/test/regress_http.c:5331,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5332,1
    - Dst: strncmp
      Src: /src/libevent/test/regress_http.c:5332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - evcon
    - arg
    argTypes:
    - struct evhttp_connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5339
      start: 5318
    functionDepth: 4
    functionLinenumber: 5318
    functionLinenumberEnd: 5339
    functionName: http_request_get_addr_on_close
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_connection_get_addr
    - evutil_format_sockaddr_port_
    - strncmp
    linkageType: ''
    returnType: void
    signature: void http_request_get_addr_on_close(struct evhttp_connection *evcon,
      void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:5348,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:5353,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5354,1
    - Dst: evhttp_connection_set_closecb
      Src: /src/libevent/test/regress_http.c:5355,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:5362,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:5365,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:5366,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5369,1
    - Dst: http_request_get_addr_on_close
      Src: /src/libevent/test/regress_http.c:5371,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:5375,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:5377,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5378
      start: 5341
    functionDepth: 7
    functionLinenumber: 5341
    functionLinenumberEnd: 5378
    functionName: http_get_addr_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_make_request
    - http_request_get_addr_on_close
    - evhttp_connection_free
    - evhttp_free
    - evhttp_connection_set_closecb
    - evhttp_request_new
    - tt_abort_msg
    - evhttp_connection_base_new
    - http_setup
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_get_addr_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_test_
      Src: /src/libevent/test/regress_http.c:5383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5384
      start: 5380
    functionDepth: 8
    functionLinenumber: 5380
    functionLinenumberEnd: 5384
    functionName: http_set_family_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_test_
    linkageType: ''
    returnType: void
    signature: void http_set_family_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_test_
      Src: /src/libevent/test/regress_http.c:5388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5389
      start: 5385
    functionDepth: 8
    functionLinenumber: 5385
    functionLinenumberEnd: 5389
    functionName: http_set_family_ipv4_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_test_
    linkageType: ''
    returnType: void
    signature: void http_set_family_ipv4_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_ipv6_for_domain_test_impl
      Src: /src/libevent/test/regress_http.c:5393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5394
      start: 5390
    functionDepth: 10
    functionLinenumber: 5390
    functionLinenumberEnd: 5394
    functionName: http_set_family_ipv6_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_ipv6_for_domain_test_impl
    linkageType: ''
    returnType: void
    signature: void http_set_family_ipv6_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:5402,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:5402,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress_http.c:5404,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:5406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5407
      start: 5396
    functionDepth: 8
    functionLinenumber: 5396
    functionLinenumberEnd: 5407
    functionName: http_write_during_read
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - strlen
    - bufferevent_write
    - evutil_timerclear
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: void http_write_during_read(evutil_socket_t fd, short what, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:5417,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:5422,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5423,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:5424,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5425,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:5426,1
    - Dst: bufferevent_disable
      Src: /src/libevent/test/regress_http.c:5427,1
    - Dst: bufferevent_write
      Src: /src/libevent/test/regress_http.c:5434,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:5434,1
    - Dst: evutil_timerclear
      Src: /src/libevent/test/regress_http.c:5435,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:5437,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5439,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:5443,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:5445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - arg
    - ssl
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5446
      start: 5408
    functionDepth: 8
    functionLinenumber: 5408
    functionLinenumberEnd: 5446
    functionName: http_write_during_read_test_impl
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evutil_timerclear
    - event_base_once
    - http_connect
    - create_bev
    - bufferevent_write
    - bufferevent_free
    - evhttp_free
    - bufferevent_setcb
    - event_base_dispatch
    - strlen
    - http_setup
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void http_write_during_read_test_impl(void *arg, int ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_write_during_read_test_impl
      Src: /src/libevent/test/regress_http.c:5448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5448
      start: 5447
    functionDepth: 9
    functionLinenumber: 5447
    functionLinenumberEnd: 5448
    functionName: http_write_during_read_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_write_during_read_test_impl
    linkageType: ''
    returnType: void
    signature: void http_write_during_read_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:5457,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:5462,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:5464,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5465,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:5467,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:5469,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:5470,1
    - Dst: evhttp_request_own
      Src: /src/libevent/test/regress_http.c:5472,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5474,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:5478,1
    - Dst: evhttp_request_free
      Src: /src/libevent/test/regress_http.c:5480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5483
      start: 5450
    functionDepth: 7
    functionLinenumber: 5450
    functionLinenumberEnd: 5483
    functionName: http_request_own_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_request_own
    - evhttp_make_request
    - evhttp_connection_free
    - evhttp_free
    - evhttp_request_new
    - tt_abort_msg
    - evhttp_request_free
    - evhttp_connection_base_new
    - http_setup
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_request_own_test(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:5493,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5494,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:5497,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5498,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:5500,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_http.c:5502,1
    - Dst: va_start
      Src: /src/libevent/test/regress_http.c:5504,1
    - Dst: evbuffer_add_vprintf
      Src: /src/libevent/test/regress_http.c:5505,1
    - Dst: va_end
      Src: /src/libevent/test/regress_http.c:5506,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5508,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:5512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - base
    - port
    - fmt
    argTypes:
    - struct event_base*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5513
      start: 5485
    functionDepth: 8
    functionLinenumber: 5485
    functionLinenumberEnd: 5513
    functionName: http_run_bev_request
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - bufferevent_get_output
    - http_connect
    - create_bev
    - bufferevent_free
    - bufferevent_setcb
    - va_start
    - va_end
    - evbuffer_add_vprintf
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: "void http_run_bev_request(struct event_base *base, int port,\n\tconst
      char *fmt, ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: http_setup_gencb
      Src: /src/libevent/test/regress_http.c:5522,1
    - Dst: evbuffer_new
      Src: /src/libevent/test/regress_http.c:5528,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:5530,1
    - Dst: http_run_bev_request
      Src: /src/libevent/test/regress_http.c:5532,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:5538,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_http.c:5539,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5541,1
    - Dst: http_run_bev_request
      Src: /src/libevent/test/regress_http.c:5543,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:5549,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/test/regress_http.c:5550,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5552,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:5555,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:5557,1
    - Dst: evbuffer_free
      Src: /src/libevent/test/regress_http.c:5559,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5560
      start: 5514
    functionDepth: 9
    functionLinenumber: 5514
    functionLinenumberEnd: 5560
    functionName: http_request_extra_body_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evbuffer_pullup
    - evhttp_free
    - evbuffer_free
    - bufferevent_free
    - evbuffer_add_printf
    - evbuffer_get_length
    - http_setup_gencb
    - http_run_bev_request
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void http_request_extra_body_test(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:5575,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:5576,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:5577,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:5579,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:5581,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:5582,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:5583,1
    - Dst: tt_fail
      Src: /src/libevent/test/regress_http.c:5588,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:5589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct http_newreqcb_test_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5590
      start: 5572
    functionDepth: 2
    functionLinenumber: 5572
    functionLinenumberEnd: 5590
    functionName: http_newreqcb_test_state_check
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_fail
    - tt_int_op
    - exit
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: void http_newreqcb_test_state_check(struct http_newreqcb_test_state*
      state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:5596,1
    - Dst: evhttp_request_set_error_cb
      Src: /src/libevent/test/regress_http.c:5598,1
    - Dst: http_newreqcb_test_state_check
      Src: /src/libevent/test/regress_http.c:5602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5603
      start: 5592
    functionDepth: 3
    functionLinenumber: 5592
    functionLinenumberEnd: 5603
    functionName: http_request_done_newreqcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_request_get_response_code
    - http_newreqcb_test_state_check
    - evhttp_request_set_error_cb
    linkageType: ''
    returnType: void
    signature: void http_request_done_newreqcb(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_newreqcb_test_state_check
      Src: /src/libevent/test/regress_http.c:5611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - err
    - arg
    argTypes:
    - enum evhttp_request_error
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5612
      start: 5605
    functionDepth: 3
    functionLinenumber: 5605
    functionLinenumberEnd: 5612
    functionName: http_request_error_newreqcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_newreqcb_test_state_check
    linkageType: ''
    returnType: void
    signature: void http_request_error_newreqcb(enum evhttp_request_error err, void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: http_newreqcb_test_state_check
      Src: /src/libevent/test/regress_http.c:5619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5625
      start: 5614
    functionDepth: 3
    functionLinenumber: 5614
    functionLinenumberEnd: 5625
    functionName: http_newreqcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_newreqcb_test_state_check
    linkageType: ''
    returnType: int
    signature: int http_newreqcb(struct evhttp_request* req, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:5633,1
    - Dst: memset
      Src: /src/libevent/test/regress_http.c:5641,1
    - Dst: memset
      Src: /src/libevent/test/regress_http.c:5642,1
    - Dst: evhttp_set_newreqcb
      Src: /src/libevent/test/regress_http.c:5644,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:5649,1
    - Dst: evhttp_connection_set_retries
      Src: /src/libevent/test/regress_http.c:5651,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5653,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:5655,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:5656,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:5656,1
    - Dst: evhttp_request_set_error_cb
      Src: /src/libevent/test/regress_http.c:5657,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:5660,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:5661,1
    - Dst: http_newreqcb_test_state_check
      Src: /src/libevent/test/regress_http.c:5665,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5668,1
    - Dst: http_newreqcb_test_state_check
      Src: /src/libevent/test/regress_http.c:5670,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:5671,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:5674,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:5678,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5682
      start: 5628
    functionDepth: 7
    functionLinenumber: 5628
    functionLinenumberEnd: 5682
    functionName: http_newreqcb_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_make_request
    - evhttp_connection_set_retries
    - evhttp_request_get_output_headers
    - evhttp_connection_free
    - evhttp_free
    - evhttp_add_header
    - evhttp_request_new
    - tt_abort_msg
    - memset
    - http_newreqcb_test_state_check
    - evhttp_request_set_error_cb
    - evhttp_connection_base_new
    - tt_int_op
    - http_setup
    - evhttp_set_newreqcb
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_newreqcb_test(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:5692,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:5697,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5698,1
    - Dst: evhttp_connection_set_connect_timeout_tv
      Src: /src/libevent/test/regress_http.c:5702,1
    - Dst: evhttp_connection_set_write_timeout_tv
      Src: /src/libevent/test/regress_http.c:5703,1
    - Dst: evhttp_connection_set_read_timeout_tv
      Src: /src/libevent/test/regress_http.c:5705,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:5707,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5708,1
    - Dst: evhttp_add_header
      Src: /src/libevent/test/regress_http.c:5709,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/test/regress_http.c:5709,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:5710,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:5710,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5711,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:5712,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:5716,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:5718,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5719
      start: 5684
    functionDepth: 7
    functionLinenumber: 5684
    functionLinenumberEnd: 5719
    functionName: http_timeout_read_client_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_make_request
    - evhttp_request_get_output_headers
    - evhttp_connection_free
    - evhttp_free
    - evhttp_add_header
    - tt_int_op
    - evhttp_request_new
    - evhttp_connection_set_write_timeout_tv
    - evhttp_connection_base_new
    - evhttp_connection_set_connect_timeout_tv
    - http_setup
    - evhttp_connection_set_read_timeout_tv
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_timeout_read_client_test(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_send_error
      Src: /src/libevent/test/regress_http.c:5763,1
    - Dst: evhttp_send_error
      Src: /src/libevent/test/regress_http.c:5766,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5769
      start: 5755
    functionDepth: 5
    functionLinenumber: 5755
    functionLinenumberEnd: 5769
    functionName: http_error_callback_gencb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evhttp_send_error
    linkageType: ''
    returnType: void
    signature: void http_error_callback_gencb(struct evhttp_request *req, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:5782,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:5789,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - req
    - buf
    - error
    - reason
    - arg
    argTypes:
    - struct evhttp_request*
    - struct evbuffer*
    - int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5797
      start: 5771
    functionDepth: 9
    functionLinenumber: 5771
    functionLinenumberEnd: 5797
    functionName: http_error_callback_errorcb
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - evbuffer_add_printf
    linkageType: ''
    returnType: int
    signature: "int http_error_callback_errorcb(struct evhttp_request *req, struct
      evbuffer *buf,\n    int error, const char *reason, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5809,1
    - Dst: tt_assert_op_type
      Src: /src/libevent/test/regress_http.c:5810,1
    - Dst: evhttp_request_get_command
      Src: /src/libevent/test/regress_http.c:5810,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:5812,1
    - Dst: evhttp_request_get_response_code
      Src: /src/libevent/test/regress_http.c:5812,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/test/regress_http.c:5815,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5816,1
    - Dst: evhttp_find_header
      Src: /src/libevent/test/regress_http.c:5817,1
    - Dst: tt_assert_msg
      Src: /src/libevent/test/regress_http.c:5818,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_http.c:5819,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:5820,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/test/regress_http.c:5820,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/test/regress_http.c:5820,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:5823,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:5828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5829
      start: 5799
    functionDepth: 2
    functionLinenumber: 5799
    functionLinenumberEnd: 5829
    functionName: http_error_callback_test_done
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_request_get_response_code
    - tt_str_op
    - tt_assert_op_type
    - event_base_loopexit
    - evhttp_request_get_command
    - evbuffer_get_length
    - tt_assert_msg
    - evhttp_request_get_input_buffer
    - tt_int_op
    - evhttp_request_get_input_headers
    - evhttp_find_header
    linkageType: ''
    returnType: void
    signature: void http_error_callback_test_done(struct evhttp_request *req, void
      *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:5843,1
    - Dst: evhttp_set_allowed_methods
      Src: /src/libevent/test/regress_http.c:5844,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:5850,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5851,1
    - Dst: evhttp_connection_set_local_address
      Src: /src/libevent/test/regress_http.c:5854,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_http.c:5863,1
    - Dst: evhttp_set_gencb
      Src: /src/libevent/test/regress_http.c:5867,1
    - Dst: evhttp_set_errorcb
      Src: /src/libevent/test/regress_http.c:5871,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:5876,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5878,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:5879,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:5881,1
    - Dst: exit
      Src: /src/libevent/test/regress_http.c:5882,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5884,1
    - Dst: tt_abort_printf
      Src: /src/libevent/test/regress_http.c:5889,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:5896,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:5898,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5899
      start: 5831
    functionDepth: 7
    functionLinenumber: 5831
    functionLinenumberEnd: 5899
    functionName: http_error_callback_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_set_gencb
    - evhttp_set_allowed_methods
    - evhttp_make_request
    - evhttp_connection_free
    - exit
    - evhttp_free
    - ARRAY_SIZE
    - evhttp_request_new
    - evhttp_set_errorcb
    - tt_abort_msg
    - evhttp_connection_base_new
    - http_setup
    - evhttp_connection_set_local_address
    - tt_abort_printf
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_error_callback_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evbuffer_add
      Src: /src/libevent/test/regress_http.c:5903,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:5903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5904
      start: 5901
    functionDepth: 7
    functionLinenumber: 5901
    functionLinenumberEnd: 5904
    functionName: http_add_output_buffer
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - strlen
    - evbuffer_add
    linkageType: ''
    returnType: void
    signature: void http_add_output_buffer(evutil_socket_t fd, short events, void
      *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:5914,1
    - Dst: evhttp_set_write_timeout_tv
      Src: /src/libevent/test/regress_http.c:5920,1
    - Dst: evhttp_set_read_timeout_tv
      Src: /src/libevent/test/regress_http.c:5922,1
    - Dst: http_connect
      Src: /src/libevent/test/regress_http.c:5924,1
    - Dst: create_bev
      Src: /src/libevent/test/regress_http.c:5925,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5926,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/test/regress_http.c:5928,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/test/regress_http.c:5929,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/test/regress_http.c:5931,1
    - Dst: strlen
      Src: /src/libevent/test/regress_http.c:5935,1
    - Dst: event_base_once
      Src: /src/libevent/test/regress_http.c:5938,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:5940,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:5941,1
    - Dst: bufferevent_free
      Src: /src/libevent/test/regress_http.c:5945,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_http.c:5947,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:5949,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5950
      start: 5905
    functionDepth: 9
    functionLinenumber: 5905
    functionLinenumberEnd: 5950
    functionName: http_timeout_read_server_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - bufferevent_get_output
    - evutil_closesocket
    - evhttp_set_write_timeout_tv
    - http_connect
    - create_bev
    - event_base_once
    - evhttp_set_read_timeout_tv
    - bufferevent_free
    - evhttp_free
    - evbuffer_add_printf
    - bufferevent_setcb
    - strlen
    - tt_int_op
    - http_setup
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void http_timeout_read_server_test(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: http_setup
      Src: /src/libevent/test/regress_http.c:5960,1
    - Dst: memset
      Src: /src/libevent/test/regress_http.c:5968,1
    - Dst: memset
      Src: /src/libevent/test/regress_http.c:5969,1
    - Dst: evhttp_set_max_connections
      Src: /src/libevent/test/regress_http.c:5971,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_http.c:5971,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/test/regress_http.c:5976,1
    - Dst: evhttp_connection_set_retries
      Src: /src/libevent/test/regress_http.c:5978,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_http.c:5980,1
    - Dst: evhttp_request_new
      Src: /src/libevent/test/regress_http.c:5982,1
    - Dst: evhttp_request_set_error_cb
      Src: /src/libevent/test/regress_http.c:5986,1
    - Dst: evhttp_make_request
      Src: /src/libevent/test/regress_http.c:5989,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/regress_http.c:5990,1
    - Dst: http_newreqcb_test_state_check
      Src: /src/libevent/test/regress_http.c:5994,1
    - Dst: event_base_loopexit
      Src: /src/libevent/test/regress_http.c:6005,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_http.c:6008,1
    - Dst: http_newreqcb_test_state_check
      Src: /src/libevent/test/regress_http.c:6010,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:6011,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:6012,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_http.c:6013,1
    - Dst: evhttp_free
      Src: /src/libevent/test/regress_http.c:6016,1
    - Dst: ARRAY_SIZE
      Src: /src/libevent/test/regress_http.c:6018,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/test/regress_http.c:6020,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6023
      start: 5955
    functionDepth: 7
    functionLinenumber: 5955
    functionLinenumberEnd: 6023
    functionName: http_max_connections_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evhttp_make_request
    - evhttp_connection_set_retries
    - evhttp_connection_free
    - evhttp_free
    - ARRAY_SIZE
    - evhttp_request_new
    - tt_abort_msg
    - event_base_loopexit
    - memset
    - event_base_dispatch
    - http_newreqcb_test_state_check
    - evhttp_request_set_error_cb
    - evhttp_connection_base_new
    - tt_int_op
    - http_setup
    - evhttp_set_max_connections
    linkageType: ''
    returnType: void
    signature: void http_max_connections_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6029
      start: 6026
    functionDepth: 0
    functionLinenumber: 6026
    functionLinenumberEnd: 6029
    functionName: HTTP_LEGACY
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTP_LEGACY(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6031
      start: 6030
    functionDepth: 0
    functionLinenumber: 6030
    functionLinenumberEnd: 6031
    functionName: HTTP_CAST_ARG
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTP_CAST_ARG(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - title
    - ','
    - name
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6033
      start: 6031
    functionDepth: 0
    functionLinenumber: 6031
    functionLinenumberEnd: 6033
    functionName: HTTP_OFF_N
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTP_OFF_N(title, name, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - title
    - ','
    - name
    - ','
    - test_opts
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6035
      start: 6033
    functionDepth: 0
    functionLinenumber: 6033
    functionLinenumberEnd: 6035
    functionName: HTTP_RET_N
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTP_RET_N(title, name, test_opts, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - title
    - ','
    - name
    - ','
    - test_opts
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6037
      start: 6035
    functionDepth: 0
    functionLinenumber: 6035
    functionLinenumberEnd: 6037
    functionName: HTTP_N
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTP_N(title, name, test_opts, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6038
      start: 6037
    functionDepth: 0
    functionLinenumber: 6037
    functionLinenumberEnd: 6038
    functionName: HTTP
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTP(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - opt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6039
      start: 6038
    functionDepth: 0
    functionLinenumber: 6038
    functionLinenumberEnd: 6039
    functionName: HTTP_OPT
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTP_OPT(name, opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6041
      start: 6039
    functionDepth: 0
    functionLinenumber: 6039
    functionLinenumberEnd: 6041
    functionName: HTTPS
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTPS(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6043
      start: 6041
    functionDepth: 0
    functionLinenumber: 6041
    functionLinenumberEnd: 6043
    functionName: HTTPS_MBEDTLS
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HTTPS_MBEDTLS(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_basic_test_impl
      Src: /src/libevent/test/regress_http.c:6046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6046
      start: 6045
    functionDepth: 10
    functionLinenumber: 6045
    functionLinenumberEnd: 6046
    functionName: https_basic_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_basic_test_impl
    linkageType: ''
    returnType: void
    signature: void https_basic_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_basic_test_impl
      Src: /src/libevent/test/regress_http.c:6048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6048
      start: 6047
    functionDepth: 10
    functionLinenumber: 6047
    functionLinenumberEnd: 6048
    functionName: https_filter_basic_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_basic_test_impl
    linkageType: ''
    returnType: void
    signature: void https_filter_basic_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_incomplete_test_
      Src: /src/libevent/test/regress_http.c:6050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6050
      start: 6049
    functionDepth: 9
    functionLinenumber: 6049
    functionLinenumberEnd: 6050
    functionName: https_incomplete_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_incomplete_test_
    linkageType: ''
    returnType: void
    signature: void https_incomplete_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_incomplete_test_
      Src: /src/libevent/test/regress_http.c:6052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6052
      start: 6051
    functionDepth: 9
    functionLinenumber: 6051
    functionLinenumberEnd: 6052
    functionName: https_incomplete_timeout_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_incomplete_test_
    linkageType: ''
    returnType: void
    signature: void https_incomplete_timeout_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_simple_test_impl
      Src: /src/libevent/test/regress_http.c:6054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6054
      start: 6053
    functionDepth: 9
    functionLinenumber: 6053
    functionLinenumberEnd: 6054
    functionName: https_simple_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_simple_test_impl
    linkageType: ''
    returnType: void
    signature: void https_simple_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_simple_test_impl
      Src: /src/libevent/test/regress_http.c:6056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6056
      start: 6055
    functionDepth: 9
    functionLinenumber: 6055
    functionLinenumberEnd: 6056
    functionName: https_simple_preexisting_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_simple_test_impl
    linkageType: ''
    returnType: void
    signature: void https_simple_preexisting_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_simple_test_impl
      Src: /src/libevent/test/regress_http.c:6058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6058
      start: 6057
    functionDepth: 9
    functionLinenumber: 6057
    functionLinenumberEnd: 6058
    functionName: https_simple_dirty_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_simple_test_impl
    linkageType: ''
    returnType: void
    signature: void https_simple_dirty_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_simple_test_impl
      Src: /src/libevent/test/regress_http.c:6060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6060
      start: 6059
    functionDepth: 9
    functionLinenumber: 6059
    functionLinenumberEnd: 6060
    functionName: https_simple_dirty_preexisting_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_simple_test_impl
    linkageType: ''
    returnType: void
    signature: void https_simple_dirty_preexisting_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_retry_conn_address_test_impl
      Src: /src/libevent/test/regress_http.c:6062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6062
      start: 6061
    functionDepth: 10
    functionLinenumber: 6061
    functionLinenumberEnd: 6062
    functionName: https_connection_retry_conn_address_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_retry_conn_address_test_impl
    linkageType: ''
    returnType: void
    signature: void https_connection_retry_conn_address_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_retry_test_impl
      Src: /src/libevent/test/regress_http.c:6064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6064
      start: 6063
    functionDepth: 9
    functionLinenumber: 6063
    functionLinenumberEnd: 6064
    functionName: https_connection_retry_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_retry_test_impl
    linkageType: ''
    returnType: void
    signature: void https_connection_retry_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_chunk_out_test_impl
      Src: /src/libevent/test/regress_http.c:6066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6066
      start: 6065
    functionDepth: 9
    functionLinenumber: 6065
    functionLinenumberEnd: 6066
    functionName: https_chunk_out_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_chunk_out_test_impl
    linkageType: ''
    returnType: void
    signature: void https_chunk_out_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_chunk_out_test_impl
      Src: /src/libevent/test/regress_http.c:6068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6068
      start: 6067
    functionDepth: 9
    functionLinenumber: 6067
    functionLinenumberEnd: 6068
    functionName: https_filter_chunk_out_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_chunk_out_test_impl
    linkageType: ''
    returnType: void
    signature: void https_filter_chunk_out_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_stream_out_test_impl
      Src: /src/libevent/test/regress_http.c:6070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6070
      start: 6069
    functionDepth: 8
    functionLinenumber: 6069
    functionLinenumberEnd: 6070
    functionName: https_stream_out_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_stream_out_test_impl
    linkageType: ''
    returnType: void
    signature: void https_stream_out_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_fail_test_impl
      Src: /src/libevent/test/regress_http.c:6072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6072
      start: 6071
    functionDepth: 8
    functionLinenumber: 6071
    functionLinenumberEnd: 6072
    functionName: https_connection_fail_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_fail_test_impl
    linkageType: ''
    returnType: void
    signature: void https_connection_fail_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_write_during_read_test_impl
      Src: /src/libevent/test/regress_http.c:6074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6074
      start: 6073
    functionDepth: 9
    functionLinenumber: 6073
    functionLinenumberEnd: 6074
    functionName: https_write_during_read_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_write_during_read_test_impl
    linkageType: ''
    returnType: void
    signature: void https_write_during_read_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_test_
      Src: /src/libevent/test/regress_http.c:6076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6076
      start: 6075
    functionDepth: 8
    functionLinenumber: 6075
    functionLinenumberEnd: 6076
    functionName: https_connection_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_test_
    linkageType: ''
    returnType: void
    signature: void https_connection_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_test_
      Src: /src/libevent/test/regress_http.c:6078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6078
      start: 6077
    functionDepth: 8
    functionLinenumber: 6077
    functionLinenumberEnd: 6078
    functionName: https_persist_connection_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_test_
    linkageType: ''
    returnType: void
    signature: void https_persist_connection_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: https_per_socket_bevcb_impl
      Src: /src/libevent/test/regress_http.c:6080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6080
      start: 6079
    functionDepth: 8
    functionLinenumber: 6079
    functionLinenumberEnd: 6080
    functionName: https_per_socket_bevcb_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - https_per_socket_bevcb_impl
    linkageType: ''
    returnType: void
    signature: void https_per_socket_bevcb_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_basic_test_impl
      Src: /src/libevent/test/regress_http.c:6085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6085
      start: 6084
    functionDepth: 10
    functionLinenumber: 6084
    functionLinenumberEnd: 6085
    functionName: https_mbedtls_basic_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_basic_test_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_basic_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_basic_test_impl
      Src: /src/libevent/test/regress_http.c:6087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6087
      start: 6086
    functionDepth: 10
    functionLinenumber: 6086
    functionLinenumberEnd: 6087
    functionName: https_mbedtls_filter_basic_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_basic_test_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_filter_basic_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_incomplete_test_
      Src: /src/libevent/test/regress_http.c:6089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6089
      start: 6088
    functionDepth: 9
    functionLinenumber: 6088
    functionLinenumberEnd: 6089
    functionName: https_mbedtls_incomplete_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_incomplete_test_
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_incomplete_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_incomplete_test_
      Src: /src/libevent/test/regress_http.c:6091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6091
      start: 6090
    functionDepth: 9
    functionLinenumber: 6090
    functionLinenumberEnd: 6091
    functionName: https_mbedtls_incomplete_timeout_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_incomplete_test_
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_incomplete_timeout_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_simple_test_impl
      Src: /src/libevent/test/regress_http.c:6093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6093
      start: 6092
    functionDepth: 9
    functionLinenumber: 6092
    functionLinenumberEnd: 6093
    functionName: https_mbedtls_simple_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_simple_test_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_simple_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_simple_test_impl
      Src: /src/libevent/test/regress_http.c:6095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6095
      start: 6094
    functionDepth: 9
    functionLinenumber: 6094
    functionLinenumberEnd: 6095
    functionName: https_mbedtls_simple_preexisting_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_simple_test_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_simple_preexisting_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_simple_test_impl
      Src: /src/libevent/test/regress_http.c:6097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6097
      start: 6096
    functionDepth: 9
    functionLinenumber: 6096
    functionLinenumberEnd: 6097
    functionName: https_mbedtls_simple_dirty_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_simple_test_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_simple_dirty_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_simple_test_impl
      Src: /src/libevent/test/regress_http.c:6099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6099
      start: 6098
    functionDepth: 9
    functionLinenumber: 6098
    functionLinenumberEnd: 6099
    functionName: https_mbedtls_simple_dirty_preexisting_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_simple_test_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_simple_dirty_preexisting_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_retry_conn_address_test_impl
      Src: /src/libevent/test/regress_http.c:6101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6101
      start: 6100
    functionDepth: 10
    functionLinenumber: 6100
    functionLinenumberEnd: 6101
    functionName: https_mbedtls_connection_retry_conn_address_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_retry_conn_address_test_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_connection_retry_conn_address_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_retry_test_impl
      Src: /src/libevent/test/regress_http.c:6103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6103
      start: 6102
    functionDepth: 9
    functionLinenumber: 6102
    functionLinenumberEnd: 6103
    functionName: https_mbedtls_connection_retry_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_retry_test_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_connection_retry_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_chunk_out_test_impl
      Src: /src/libevent/test/regress_http.c:6105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6105
      start: 6104
    functionDepth: 9
    functionLinenumber: 6104
    functionLinenumberEnd: 6105
    functionName: https_mbedtls_chunk_out_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_chunk_out_test_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_chunk_out_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_chunk_out_test_impl
      Src: /src/libevent/test/regress_http.c:6107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6107
      start: 6106
    functionDepth: 9
    functionLinenumber: 6106
    functionLinenumberEnd: 6107
    functionName: https_mbedtls_filter_chunk_out_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_chunk_out_test_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_filter_chunk_out_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_stream_out_test_impl
      Src: /src/libevent/test/regress_http.c:6109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6109
      start: 6108
    functionDepth: 8
    functionLinenumber: 6108
    functionLinenumberEnd: 6109
    functionName: https_mbedtls_stream_out_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_stream_out_test_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_stream_out_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_fail_test_impl
      Src: /src/libevent/test/regress_http.c:6111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6111
      start: 6110
    functionDepth: 8
    functionLinenumber: 6110
    functionLinenumberEnd: 6111
    functionName: https_mbedtls_connection_fail_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_fail_test_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_connection_fail_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_write_during_read_test_impl
      Src: /src/libevent/test/regress_http.c:6113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6113
      start: 6112
    functionDepth: 9
    functionLinenumber: 6112
    functionLinenumberEnd: 6113
    functionName: https_mbedtls_write_during_read_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_write_during_read_test_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_write_during_read_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_test_
      Src: /src/libevent/test/regress_http.c:6115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6115
      start: 6114
    functionDepth: 8
    functionLinenumber: 6114
    functionLinenumberEnd: 6115
    functionName: https_mbedtls_connection_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_test_
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_connection_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: http_connection_test_
      Src: /src/libevent/test/regress_http.c:6117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6117
      start: 6116
    functionDepth: 8
    functionLinenumber: 6116
    functionLinenumberEnd: 6117
    functionName: https_mbedtls_persist_connection_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - http_connection_test_
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_persist_connection_test(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: https_per_socket_bevcb_impl
      Src: /src/libevent/test/regress_http.c:6119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6119
      start: 6118
    functionDepth: 8
    functionLinenumber: 6118
    functionLinenumberEnd: 6119
    functionName: https_mbedtls_per_socket_bevcb_test
    functionSourceFile: /src/libevent/test/regress_http.c
    functionUses: 0
    functionsReached:
    - https_per_socket_bevcb_impl
    linkageType: ''
    returnType: void
    signature: void https_mbedtls_per_socket_bevcb_test(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libevent/test/tinytest_demo.c:55,1
    - Dst: tt_abort_msg
      Src: /src/libevent/test/tinytest_demo.c:58,1
    - Dst: tt_assert
      Src: /src/libevent/test/tinytest_demo.c:63,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest_demo.c:63,1
    - Dst: tt_want
      Src: /src/libevent/test/tinytest_demo.c:68,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest_demo.c:68,1
    - Dst: tt_int_op
      Src: /src/libevent/test/tinytest_demo.c:76,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest_demo.c:76,1
    - Dst: tt_int_op
      Src: /src/libevent/test/tinytest_demo.c:79,1
    - Dst: strcmp
      Src: /src/libevent/test/tinytest_demo.c:79,1
    - Dst: tt_str_op
      Src: /src/libevent/test/tinytest_demo.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 89
    functionName: test_strcmp
    functionSourceFile: /src/libevent/test/tinytest_demo.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_str_op
    - tt_want
    - tt_abort_msg
    - strcmp
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_strcmp(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libevent/test/tinytest_demo.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - testcase
    argTypes:
    - struct testcase_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 122
    functionName: setup_data_buffer
    functionSourceFile: /src/libevent/test/tinytest_demo.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      setup_data_buffer(const struct testcase_t *testcase)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libevent/test/tinytest_demo.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - testcase
    - ptr
    argTypes:
    - struct testcase_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 135
    functionName: clean_data_buffer
    functionSourceFile: /src/libevent/test/tinytest_demo.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: int clean_data_buffer(const struct testcase_t *testcase, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/libevent/test/tinytest_demo.c:153,1
    - Dst: memcpy
      Src: /src/libevent/test/tinytest_demo.c:154,1
    - Dst: tt_str_op
      Src: /src/libevent/test/tinytest_demo.c:155,1
    - Dst: tt_mem_op
      Src: /src/libevent/test/tinytest_demo.c:158,1
    - Dst: strdup
      Src: /src/libevent/test/tinytest_demo.c:162,1
    - Dst: tt_assert
      Src: /src/libevent/test/tinytest_demo.c:163,1
    - Dst: tt_str_op
      Src: /src/libevent/test/tinytest_demo.c:166,1
    - Dst: free
      Src: /src/libevent/test/tinytest_demo.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 172
    functionName: test_memcpy
    functionSourceFile: /src/libevent/test/tinytest_demo.c
    functionUses: 0
    functionsReached:
    - tt_str_op
    - tt_assert
    - tt_mem_op
    - free
    - memcpy
    - strcpy
    - strdup
    linkageType: ''
    returnType: void
    signature: void test_memcpy(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/libevent/test/tinytest_demo.c:179,1
    - Dst: Sleep
      Src: /src/libevent/test/tinytest_demo.c:181,1
    - Dst: sleep
      Src: /src/libevent/test/tinytest_demo.c:183,1
    - Dst: time
      Src: /src/libevent/test/tinytest_demo.c:185,1
    - Dst: tt_int_op
      Src: /src/libevent/test/tinytest_demo.c:187,1
    - Dst: tt_int_op
      Src: /src/libevent/test/tinytest_demo.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 193
    functionName: test_timeout
    functionSourceFile: /src/libevent/test/tinytest_demo.c
    functionUses: 0
    functionsReached:
    - Sleep
    - time
    - sleep
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_timeout(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/tinytest_demo.c:201,1
    - Dst: time
      Src: /src/libevent/test/tinytest_demo.c:205,1
    - Dst: Sleep
      Src: /src/libevent/test/tinytest_demo.c:207,1
    - Dst: sleep
      Src: /src/libevent/test/tinytest_demo.c:209,1
    - Dst: time
      Src: /src/libevent/test/tinytest_demo.c:211,1
    - Dst: tt_int_op
      Src: /src/libevent/test/tinytest_demo.c:213,1
    - Dst: tt_int_op
      Src: /src/libevent/test/tinytest_demo.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 219
    functionName: test_timeout_retry
    functionSourceFile: /src/libevent/test/tinytest_demo.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    - time
    - sleep
    - Sleep
    linkageType: ''
    returnType: void
    signature: void test_timeout_retry(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tinytest_set_aliases
      Src: /src/libevent/test/tinytest_demo.c:290,1
    - Dst: tinytest_main
      Src: /src/libevent/test/tinytest_demo.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - v
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 272
    functionDepth: 6
    functionLinenumber: 272
    functionLinenumberEnd: 292
    functionName: main
    functionSourceFile: /src/libevent/test/tinytest_demo.c
    functionUses: 3
    functionsReached:
    - tinytest_main
    - tinytest_set_aliases
    linkageType: ''
    returnType: int
    signature: int main(int c, const char **v)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: evutil_inet_pton
      Src: /src/libevent/test/regress_util.c:129,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:132,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:138,1
    - Dst: ntohl
      Src: /src/libevent/test/regress_util.c:141,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:142,1
    - Dst: ntohl
      Src: /src/libevent/test/regress_util.c:143,1
    - Dst: evutil_inet_ntop
      Src: /src/libevent/test/regress_util.c:148,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:151,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_util.c:154,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:155,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 163
    functionName: regress_ipv4_parse
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - evutil_inet_ntop
    - TT_FAIL
    - ntohl
    - strcmp
    - evutil_inet_pton
    linkageType: ''
    returnType: void
    signature: void regress_ipv4_parse(void *ptr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: evutil_inet_pton
      Src: /src/libevent/test/regress_util.c:176,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:179,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:184,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:195,1
    - Dst: evutil_inet_ntop
      Src: /src/libevent/test/regress_util.c:200,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:203,1
    - Dst: strcmp
      Src: /src/libevent/test/regress_util.c:206,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:207,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_util.c:214,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 216
    functionName: regress_ipv6_parse
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - evutil_inet_ntop
    - TT_FAIL
    - TT_BLATHER
    - strcmp
    - evutil_inet_pton
    linkageType: ''
    returnType: void
    signature: void regress_ipv6_parse(void *ptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: evutil_inet_pton_scope
      Src: /src/libevent/test/regress_util.c:242,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:246,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:251,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:262,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:267,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_util.c:272,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 274
    functionName: regress_ipv6_parse_scope
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - TT_BLATHER
    - evutil_inet_pton_scope
    - TT_FAIL
    linkageType: ''
    returnType: void
    signature: void regress_ipv6_parse_scope(void *ptr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:305,1
    - Dst: evutil_parse_sockaddr_port
      Src: /src/libevent/test/regress_util.c:306,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:309,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:312,1
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:317,1
    - Dst: htons
      Src: /src/libevent/test/regress_util.c:322,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/test/regress_util.c:323,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:325,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_util.c:326,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:327,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:329,1
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:333,1
    - Dst: htons
      Src: /src/libevent/test/regress_util.c:338,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/test/regress_util.c:339,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:341,1
    - Dst: memcmp
      Src: /src/libevent/test/regress_util.c:342,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:343,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:345,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 296
    functionDepth: 3
    functionLinenumber: 296
    functionLinenumberEnd: 349
    functionName: regress_sockaddr_port_parse
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - TT_FAIL
    - evutil_parse_sockaddr_port
    - memset
    - evutil_inet_pton
    - htons
    - memcmp
    linkageType: ''
    returnType: void
    signature: void regress_sockaddr_port_parse(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_parse_sockaddr_port
      Src: /src/libevent/test/regress_util.c:362,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:364,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/test/regress_util.c:365,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:367,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:368,1
    - Dst: evutil_parse_sockaddr_port
      Src: /src/libevent/test/regress_util.c:371,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:373,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/test/regress_util.c:374,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:376,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:377,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/test/regress_util.c:380,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:382,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 352
    functionDepth: 4
    functionLinenumber: 352
    functionLinenumberEnd: 386
    functionName: regress_sockaddr_port_format
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_str_op
    - tt_ptr_op
    - evutil_parse_sockaddr_port
    - evutil_format_sockaddr_port_
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void regress_sockaddr_port_format(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evutil_parse_sockaddr_port
      Src: /src/libevent/test/regress_util.c:417,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:420,1
    - Dst: evutil_sockaddr_is_loopback_
      Src: /src/libevent/test/regress_util.c:425,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:426,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 407
    functionDepth: 3
    functionLinenumber: 407
    functionLinenumberEnd: 430
    functionName: test_evutil_sockaddr_predicates
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - evutil_sockaddr_is_loopback_
    - TT_FAIL
    - evutil_parse_sockaddr_port
    linkageType: ''
    returnType: void
    signature: void test_evutil_sockaddr_predicates(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_want
      Src: /src/libevent/test/regress_util.c:438,1
    - Dst: evutil_strtoll
      Src: /src/libevent/test/regress_util.c:438,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_util.c:440,1
    - Dst: evutil_strtoll
      Src: /src/libevent/test/regress_util.c:440,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_util.c:443,1
    - Dst: evutil_strtoll
      Src: /src/libevent/test/regress_util.c:443,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_util.c:444,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_util.c:445,1
    - Dst: evutil_strtoll
      Src: /src/libevent/test/regress_util.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 446
    functionName: test_evutil_strtoll
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - evutil_strtoll
    - tt_want
    linkageType: ''
    returnType: void
    signature: void test_evutil_strtoll(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_util.c:458,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:459,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:460,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_util.c:462,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:463,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:464,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_util.c:466,1
    - Dst: EV_U64_ARG
      Src: /src/libevent/test/regress_util.c:466,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:467,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:468,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_util.c:470,1
    - Dst: EV_I64_ARG
      Src: /src/libevent/test/regress_util.c:470,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:471,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:472,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_util.c:474,1
    - Dst: EV_SIZE_ARG
      Src: /src/libevent/test/regress_util.c:475,1
    - Dst: EV_SSIZE_ARG
      Src: /src/libevent/test/regress_util.c:475,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:476,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:477,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_util.c:479,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:480,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:481,1
    - Dst: strlen
      Src: /src/libevent/test/regress_util.c:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 485
    functionName: test_evutil_snprintf
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_str_op
    - EV_SIZE_ARG
    - EV_I64_ARG
    - EV_U64_ARG
    - tt_int_op
    - EV_SSIZE_ARG
    - strlen
    - evutil_snprintf
    linkageType: ''
    returnType: void
    signature: void test_evutil_snprintf(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:490,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_util.c:490,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:491,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_util.c:491,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:492,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_util.c:492,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:493,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_util.c:493,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:494,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/test/regress_util.c:494,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:496,1
    - Dst: evutil_ascii_strncasecmp
      Src: /src/libevent/test/regress_util.c:496,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:497,1
    - Dst: evutil_ascii_strncasecmp
      Src: /src/libevent/test/regress_util.c:497,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:498,1
    - Dst: evutil_ascii_strncasecmp
      Src: /src/libevent/test/regress_util.c:498,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:499,1
    - Dst: evutil_ascii_strncasecmp
      Src: /src/libevent/test/regress_util.c:499,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:500,1
    - Dst: evutil_ascii_strncasecmp
      Src: /src/libevent/test/regress_util.c:500,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:501,1
    - Dst: evutil_ascii_strncasecmp
      Src: /src/libevent/test/regress_util.c:501,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:502,1
    - Dst: evutil_ascii_strncasecmp
      Src: /src/libevent/test/regress_util.c:502,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:503,1
    - Dst: evutil_ascii_strncasecmp
      Src: /src/libevent/test/regress_util.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 487
    functionDepth: 2
    functionLinenumber: 487
    functionLinenumberEnd: 506
    functionName: test_evutil_casecmp
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    - evutil_ascii_strcasecmp
    - evutil_ascii_strncasecmp
    linkageType: ''
    returnType: void
    signature: void test_evutil_casecmp(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:523,1
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:524,1
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:525,1
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:527,1
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:528,1
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:529,1
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:530,1
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:532,1
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:533,1
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:534,1
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:535,1
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:536,1
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:537,1
    - Dst: TEST_TRIM
      Src: /src/libevent/test/regress_util.c:538,1
    - Dst: mm_free
      Src: /src/libevent/test/regress_util.c:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 543
    functionName: test_evutil_rtrim
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - TEST_TRIM
    - mm_free
    linkageType: ''
    returnType: void
    signature: void test_evutil_rtrim(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - result
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 519
    functionName: TEST_TRIM
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_TRIM(s, result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tt_want
      Src: /src/libevent/test/regress_util.c:552,1
    - Dst: free
      Src: /src/libevent/test/regress_util.c:555,1
    - Dst: strdup
      Src: /src/libevent/test/regress_util.c:556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - severity
    - msg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 558
    functionName: logfn
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - free
    - tt_want
    - strdup
    linkageType: ''
    returnType: void
    signature: void logfn(int severity, const char *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libevent/test/regress_util.c:567,1
    - Dst: exit
      Src: /src/libevent/test/regress_util.c:568,1
    - Dst: exit
      Src: /src/libevent/test/regress_util.c:570,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - exitcode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 571
    functionName: fatalfn
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - exit
    - strcmp
    linkageType: ''
    returnType: void
    signature: void fatalfn(int exitcode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: regress_fork
      Src: /src/libevent/test/regress_util.c:583,1
    - Dst: fn
      Src: /src/libevent/test/regress_util.c:585,1
    - Dst: exit
      Src: /src/libevent/test/regress_util.c:586,1
    - Dst: wait
      Src: /src/libevent/test/regress_util.c:588,1
    - Dst: WEXITSTATUS
      Src: /src/libevent/test/regress_util.c:589,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - wantexitcode
    - wantseverity
    - wantmsg
    argTypes:
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 594
    functionName: check_error_logging
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - fn
    - exit
    - wait
    - regress_fork
    - tt_int_op
    - WEXITSTATUS
    linkageType: ''
    returnType: void
    signature: "void check_error_logging(void (*fn)(void), int wantexitcode,\n    int
      wantseverity, const char *wantmsg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_errx
      Src: /src/libevent/test/regress_util.c:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 596
    functionDepth: 2
    functionLinenumber: 596
    functionLinenumberEnd: 600
    functionName: errx_fn
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - event_errx
    linkageType: ''
    returnType: void
    signature: void errx_fn(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_err
      Src: /src/libevent/test/regress_util.c:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 607
    functionName: err_fn
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - event_err
    linkageType: ''
    returnType: void
    signature: void err_fn(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/libevent/test/regress_util.c:612,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/test/regress_util.c:614,1
    - Dst: event_sock_err
      Src: /src/libevent/test/regress_util.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 609
    functionDepth: 2
    functionLinenumber: 609
    functionLinenumberEnd: 619
    functionName: sock_err_fn
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - event_sock_err
    - socket
    - EVUTIL_SET_SOCKET_ERROR
    linkageType: ''
    returnType: void
    signature: void sock_err_fn(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_set_log_callback
      Src: /src/libevent/test/regress_util.c:628,1
    - Dst: event_set_fatal_callback
      Src: /src/libevent/test/regress_util.c:629,1
    - Dst: check_error_logging
      Src: /src/libevent/test/regress_util.c:646,1
    - Dst: RESET
      Src: /src/libevent/test/regress_util.c:648,1
    - Dst: event_warnx
      Src: /src/libevent/test/regress_util.c:651,1
    - Dst: LOGEQ
      Src: /src/libevent/test/regress_util.c:652,1
    - Dst: RESET
      Src: /src/libevent/test/regress_util.c:653,1
    - Dst: event_msgx
      Src: /src/libevent/test/regress_util.c:655,1
    - Dst: LOGEQ
      Src: /src/libevent/test/regress_util.c:656,1
    - Dst: RESET
      Src: /src/libevent/test/regress_util.c:657,1
    - Dst: event_debug
      Src: /src/libevent/test/regress_util.c:659,1
    - Dst: LOGEQ
      Src: /src/libevent/test/regress_util.c:661,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:663,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:664,1
    - Dst: RESET
      Src: /src/libevent/test/regress_util.c:666,1
    - Dst: event_warn
      Src: /src/libevent/test/regress_util.c:670,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_util.c:671,1
    - Dst: strerror
      Src: /src/libevent/test/regress_util.c:672,1
    - Dst: LOGEQ
      Src: /src/libevent/test/regress_util.c:673,1
    - Dst: RESET
      Src: /src/libevent/test/regress_util.c:674,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_util.c:677,1
    - Dst: strerror
      Src: /src/libevent/test/regress_util.c:678,1
    - Dst: check_error_logging
      Src: /src/libevent/test/regress_util.c:679,1
    - Dst: RESET
      Src: /src/libevent/test/regress_util.c:680,1
    - Dst: socket
      Src: /src/libevent/test/regress_util.c:684,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_util.c:686,1
    - Dst: evutil_socket_error_to_string
      Src: /src/libevent/test/regress_util.c:688,1
    - Dst: EVUTIL_SET_SOCKET_ERROR
      Src: /src/libevent/test/regress_util.c:689,1
    - Dst: evutil_snprintf
      Src: /src/libevent/test/regress_util.c:691,1
    - Dst: strerror
      Src: /src/libevent/test/regress_util.c:692,1
    - Dst: event_sock_warn
      Src: /src/libevent/test/regress_util.c:695,1
    - Dst: LOGEQ
      Src: /src/libevent/test/regress_util.c:696,1
    - Dst: RESET
      Src: /src/libevent/test/regress_util.c:697,1
    - Dst: check_error_logging
      Src: /src/libevent/test/regress_util.c:700,1
    - Dst: RESET
      Src: /src/libevent/test/regress_util.c:701,1
    - Dst: free
      Src: /src/libevent/test/regress_util.c:708,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_util.c:710,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 622
    functionDepth: 2
    functionLinenumber: 622
    functionLinenumberEnd: 711
    functionName: test_evutil_log
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - event_sock_warn
    - event_msgx
    - RESET
    - strerror
    - evutil_snprintf
    - event_warnx
    - tt_ptr_op
    - event_set_fatal_callback
    - tt_int_op
    - event_debug
    - LOGEQ
    - check_error_logging
    - EVUTIL_SET_SOCKET_ERROR
    - evutil_closesocket
    - event_set_log_callback
    - event_warn
    - free
    - socket
    - evutil_socket_error_to_string
    linkageType: ''
    returnType: void
    signature: void test_evutil_log(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 635
    functionName: RESET
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESET()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sev
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 640
    functionName: LOGEQ
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOGEQ(sev,msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:719,1
    - Dst: strlcpy
      Src: /src/libevent/test/regress_util.c:719,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:720,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:723,1
    - Dst: strlcpy
      Src: /src/libevent/test/regress_util.c:723,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:724,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:727,1
    - Dst: strlcpy
      Src: /src/libevent/test/regress_util.c:727,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 731
    functionName: test_evutil_strlcpy
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_str_op
    - tt_int_op
    - strlcpy
    linkageType: ''
    returnType: void
    signature: void test_evutil_strlcpy(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 755
    functionName: test_evutil_upcast
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_evutil_upcast(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:775,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:776,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:777,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:778,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:779,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:780,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:781,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:782,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:784,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:785,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:786,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:790,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:793,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:797,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:798,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:801,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:807,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:808,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:811,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:817,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:818,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:821,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:827,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:828,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:831,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:847,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:849,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 54
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 855
    functionName: test_evutil_integers
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_evutil_integers(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ai
    - family
    argTypes:
    - struct evutil_addrinfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 866
    functionName: ai_find_by_family
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct evutil_addrinfo
    signature: 'struct evutil_addrinfo *

      ai_find_by_family(struct evutil_addrinfo *ai, int family)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ai
    - protocol
    argTypes:
    - struct evutil_addrinfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 877
    functionName: ai_find_by_protocol
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct evutil_addrinfo
    signature: 'struct evutil_addrinfo *

      ai_find_by_protocol(struct evutil_addrinfo *ai, int protocol)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:888,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:890,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:892,1
    - Dst: evutil_parse_sockaddr_port
      Src: /src/libevent/test/regress_util.c:894,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:896,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:901,1
    - Dst: evutil_inet_ntop
      Src: /src/libevent/test/regress_util.c:907,1
    - Dst: ntohs
      Src: /src/libevent/test/regress_util.c:908,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:910,1
    - Dst: evutil_inet_ntop
      Src: /src/libevent/test/regress_util.c:915,1
    - Dst: ntohs
      Src: /src/libevent/test/regress_util.c:916,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:918,1
    - Dst: evutil_sockaddr_cmp
      Src: /src/libevent/test/regress_util.c:922,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:923,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_util.c:927,1
    - Dst: TT_FAIL
      Src: /src/libevent/test/regress_util.c:932,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 5
    argNames:
    - ai
    - sockaddr_port
    - socktype
    - protocol
    - line
    argTypes:
    - struct evutil_addrinfo*
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 880
    functionDepth: 3
    functionLinenumber: 880
    functionLinenumberEnd: 934
    functionName: test_ai_eq_
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - ntohs
    - evutil_inet_ntop
    - TT_FAIL
    - evutil_parse_sockaddr_port
    - TT_BLATHER
    - memset
    - evutil_sockaddr_cmp
    - tt_int_op
    linkageType: ''
    returnType: int
    signature: "int test_ai_eq_(const struct evutil_addrinfo *ai, const char *sockaddr_port,\n
      \   int socktype, int protocol, int line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:945,1
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:946,1
    - Dst: evutil_weakrand_
      Src: /src/libevent/test/regress_util.c:951,1
    - Dst: evutil_weakrand_
      Src: /src/libevent/test/regress_util.c:952,1
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:954,1
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:960,1
    - Dst: evutil_secure_rng_get_bytes
      Src: /src/libevent/test/regress_util.c:961,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:968,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:969,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:978,1
    - Dst: evutil_weakrand_seed_
      Src: /src/libevent/test/regress_util.c:982,1
    - Dst: evutil_weakrand_range_
      Src: /src/libevent/test/regress_util.c:984,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:985,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:986,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 936
    functionDepth: 10
    functionLinenumber: 936
    functionLinenumberEnd: 990
    functionName: test_evutil_rand
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evutil_secure_rng_get_bytes
    - evutil_weakrand_seed_
    - memset
    - tt_int_op
    - evutil_weakrand_range_
    - evutil_weakrand_
    linkageType: ''
    returnType: void
    signature: void test_evutil_rand(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:995,1
    - Dst: EVUTIL_ISDIGIT_
      Src: /src/libevent/test/regress_util.c:995,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:996,1
    - Dst: EVUTIL_ISDIGIT_
      Src: /src/libevent/test/regress_util.c:996,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:997,1
    - Dst: EVUTIL_ISDIGIT_
      Src: /src/libevent/test/regress_util.c:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 992
    functionDepth: 1
    functionLinenumber: 992
    functionLinenumberEnd: 1000
    functionName: test_EVUTIL_IS_
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    - EVUTIL_ISDIGIT_
    linkageType: ''
    returnType: void
    signature: void test_EVUTIL_IS_(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1013,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1015,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1016,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1017,1
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:1022,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1025,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1026,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1027,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:1028,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_util.c:1029,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1030,1
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:1033,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1036,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1037,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1038,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:1039,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_util.c:1040,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1041,1
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:1045,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1049,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1050,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1051,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:1052,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_util.c:1053,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1054,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1057,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1058,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1059,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_util.c:1060,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:1061,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1062,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1067,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1068,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1069,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:1070,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_util.c:1071,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1072,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1077,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1078,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1079,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:1080,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_util.c:1081,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1082,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1087,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1088,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1089,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_util.c:1090,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1091,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_util.c:1092,1
    - Dst: ai_find_by_family
      Src: /src/libevent/test/regress_util.c:1093,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1094,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_util.c:1095,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1096,1
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:1101,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1104,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1105,1
    - Dst: ai_find_by_protocol
      Src: /src/libevent/test/regress_util.c:1106,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1107,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_util.c:1108,1
    - Dst: ai_find_by_protocol
      Src: /src/libevent/test/regress_util.c:1109,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1110,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_util.c:1111,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1112,1
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:1116,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1119,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1120,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:1121,1
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:1124,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1128,1
    - Dst: tt_fail_msg
      Src: /src/libevent/test/regress_util.c:1130,1
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:1133,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1136,1
    - Dst: TT_DECLARE
      Src: /src/libevent/test/regress_util.c:1138,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1140,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_util.c:1141,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1142,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 119
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1002
    functionDepth: 7
    functionLinenumber: 1002
    functionLinenumberEnd: 1149
    functionName: test_evutil_getaddrinfo
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - evutil_getaddrinfo
    - tt_assert
    - tt_ptr_op
    - tt_fail_msg
    - evutil_freeaddrinfo
    - TT_DECLARE
    - ai_find_by_protocol
    - ai_find_by_family
    - memset
    - tt_int_op
    - test_ai_eq
    linkageType: ''
    returnType: void
    signature: void test_evutil_getaddrinfo(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:1164,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1168,1
    - Dst: TT_DECLARE
      Src: /src/libevent/test/regress_util.c:1170,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1172,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1173,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1174,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1175,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1176,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1178,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1179,1
    - Dst: htons
      Src: /src/libevent/test/regress_util.c:1179,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1180,1
    - Dst: evutil_inet_ntop
      Src: /src/libevent/test/regress_util.c:1182,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_util.c:1183,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1185,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1190,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_util.c:1192,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1194,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1195,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1196,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1198,1
    - Dst: htons
      Src: /src/libevent/test/regress_util.c:1198,1
    - Dst: evutil_inet_ntop
      Src: /src/libevent/test/regress_util.c:1200,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_util.c:1202,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1151
    functionDepth: 7
    functionLinenumber: 1151
    functionLinenumberEnd: 1209
    functionName: test_evutil_getaddrinfo_live
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - evutil_getaddrinfo
    - tt_assert
    - evutil_inet_ntop
    - evutil_freeaddrinfo
    - TT_DECLARE
    - TT_BLATHER
    - memset
    - htons
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_evutil_getaddrinfo_live(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:1218,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1224,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1225,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1226,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:1227,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_util.c:1228,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1229,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/test/regress_util.c:1233,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1234,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1235,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:1236,1
    - Dst: test_ai_eq
      Src: /src/libevent/test/regress_util.c:1237,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1238,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/test/regress_util.c:1243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1211
    functionDepth: 7
    functionLinenumber: 1211
    functionLinenumberEnd: 1244
    functionName: test_evutil_getaddrinfo_AI_ADDRCONFIG
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - evutil_getaddrinfo
    - tt_assert
    - tt_ptr_op
    - evutil_freeaddrinfo
    - memset
    - tt_int_op
    - test_ai_eq
    linkageType: ''
    returnType: void
    signature: void test_evutil_getaddrinfo_AI_ADDRCONFIG(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_load_windows_system_library_
      Src: /src/libevent/test/regress_util.c:1252,1
    - Dst: TEXT
      Src: /src/libevent/test/regress_util.c:1252,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1253,1
    - Dst: CloseHandle
      Src: /src/libevent/test/regress_util.c:1257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1247
    functionDepth: 1
    functionLinenumber: 1247
    functionLinenumberEnd: 1259
    functionName: test_evutil_loadsyslib
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - TEXT
    - CloseHandle
    - evutil_load_windows_system_library_
    linkageType: ''
    returnType: void
    signature: void test_evutil_loadsyslib(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mm_malloc
      Src: /src/libevent/test/regress_util.c:1272,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1273,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1274,1
    - Dst: mm_malloc
      Src: /src/libevent/test/regress_util.c:1279,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1280,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1281,1
    - Dst: mm_free
      Src: /src/libevent/test/regress_util.c:1282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1263
    functionDepth: 1
    functionLinenumber: 1263
    functionLinenumberEnd: 1287
    functionName: test_event_malloc
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_int_op
    - mm_free
    - mm_malloc
    linkageType: ''
    returnType: void
    signature: void test_event_malloc(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/test/regress_util.c:1299,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1300,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1301,1
    - Dst: mm_calloc
      Src: /src/libevent/test/regress_util.c:1303,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1304,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1305,1
    - Dst: mm_calloc
      Src: /src/libevent/test/regress_util.c:1307,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1308,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1309,1
    - Dst: mm_calloc
      Src: /src/libevent/test/regress_util.c:1314,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1315,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1316,1
    - Dst: mm_free
      Src: /src/libevent/test/regress_util.c:1317,1
    - Dst: mm_free
      Src: /src/libevent/test/regress_util.c:1323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1289
    functionDepth: 1
    functionLinenumber: 1289
    functionLinenumberEnd: 1324
    functionName: test_event_calloc
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_int_op
    - mm_calloc
    - mm_free
    linkageType: ''
    returnType: void
    signature: void test_event_calloc(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mm_calloc
      Src: /src/libevent/test/regress_util.c:1340,1
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_util.c:1345,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1326
    functionDepth: 1
    functionLinenumber: 1326
    functionLinenumberEnd: 1350
    functionName: test_event_calloc_enomem
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    - mm_calloc
    - tt_ptr_op
    linkageType: ''
    returnType: void
    signature: void test_event_calloc_enomem(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mm_strdup
      Src: /src/libevent/test/regress_util.c:1361,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1362,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1363,1
    - Dst: mm_strdup
      Src: /src/libevent/test/regress_util.c:1369,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1370,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1371,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:1372,1
    - Dst: mm_free
      Src: /src/libevent/test/regress_util.c:1373,1
    - Dst: mm_strdup
      Src: /src/libevent/test/regress_util.c:1376,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1377,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1378,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:1379,1
    - Dst: mm_free
      Src: /src/libevent/test/regress_util.c:1380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1352
    functionDepth: 1
    functionLinenumber: 1352
    functionLinenumberEnd: 1389
    functionName: test_event_strdup
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_str_op
    - mm_free
    - mm_strdup
    - tt_int_op
    linkageType: ''
    returnType: void
    signature: void test_event_strdup(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_util.c:1399,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress_util.c:1400,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_util.c:1401,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress_util.c:1402,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/test/regress_util.c:1403,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/regress_util.c:1405,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/regress_util.c:1406,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1410,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1411,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1412,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1391
    functionDepth: 1
    functionLinenumber: 1391
    functionLinenumberEnd: 1417
    functionName: test_evutil_usleep
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - evutil_timersub
    - evutil_gettimeofday
    - tt_int_op
    - evutil_usleep_
    linkageType: ''
    returnType: void
    signature: void test_evutil_usleep(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libevent/test/regress_util.c:1429,1
    - Dst: strstr
      Src: /src/libevent/test/regress_util.c:1430,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_util.c:1452,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_util.c:1453,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1460,1
    - Dst: evutil_configure_monotonic_time_
      Src: /src/libevent/test/regress_util.c:1460,1
    - Dst: evutil_gettime_monotonic_
      Src: /src/libevent/test/regress_util.c:1463,1
    - Dst: evutil_usleep_
      Src: /src/libevent/test/regress_util.c:1464,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1469,1
    - Dst: evutil_timercmp
      Src: /src/libevent/test/regress_util.c:1469,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/regress_util.c:1470,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1471,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_util.c:1473,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1475,1
    - Dst: abs
      Src: /src/libevent/test/regress_util.c:1475,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 1
    argNames:
    - data_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1419
    functionDepth: 3
    functionLinenumber: 1419
    functionLinenumberEnd: 1479
    functionName: test_evutil_monotonic_res
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evutil_configure_monotonic_time_
    - evutil_usleep_
    - TT_BLATHER
    - evutil_timercmp
    - evutil_timersub
    - abs
    - strstr
    - tt_int_op
    - evutil_gettime_monotonic_
    linkageType: ''
    returnType: void
    signature: void test_evutil_monotonic_res(void *data_)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libevent/test/regress_util.c:1486,1
    - Dst: strstr
      Src: /src/libevent/test/regress_util.c:1487,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1497,1
    - Dst: evutil_configure_monotonic_time_
      Src: /src/libevent/test/regress_util.c:1497,1
    - Dst: evutil_gettime_monotonic_
      Src: /src/libevent/test/regress_util.c:1501,1
    - Dst: evutil_gettime_monotonic_
      Src: /src/libevent/test/regress_util.c:1504,1
    - Dst: evutil_timercmp
      Src: /src/libevent/test/regress_util.c:1505,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1511,1
    - Dst: evutil_timercmp
      Src: /src/libevent/test/regress_util.c:1511,1
    - Dst: evutil_timersub
      Src: /src/libevent/test/regress_util.c:1512,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1513,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_util.c:1515,1
    - Dst: TT_BLATHER
      Src: /src/libevent/test/regress_util.c:1517,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1518,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - data_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1481
    functionDepth: 3
    functionLinenumber: 1481
    functionLinenumberEnd: 1522
    functionName: test_evutil_monotonic_prc
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evutil_configure_monotonic_time_
    - evutil_timercmp
    - TT_BLATHER
    - evutil_timersub
    - strstr
    - tt_int_op
    - evutil_gettime_monotonic_
    linkageType: ''
    returnType: void
    signature: void test_evutil_monotonic_prc(void *data_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gmtime
      Src: /src/libevent/test/regress_util.c:1528,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_util.c:1530,1
    - Dst: strerror
      Src: /src/libevent/test/regress_util.c:1530,1
    - Dst: exit
      Src: /src/libevent/test/regress_util.c:1531,1
    - Dst: gmtime_r
      Src: /src/libevent/test/regress_util.c:1535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cur_p
    - t
    argTypes:
    - struct tm*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1524
    functionDepth: 0
    functionLinenumber: 1524
    functionLinenumberEnd: 1537
    functionName: create_tm_from_unix_epoch
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - exit
    - gmtime
    - gmtime_r
    - strerror
    - fprintf
    linkageType: ''
    returnType: void
    signature: void create_tm_from_unix_epoch(struct tm *cur_p, const time_t t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_tm_from_unix_epoch
      Src: /src/libevent/test/regress_util.c:1580,1
    - Dst: evutil_date_rfc1123
      Src: /src/libevent/test/regress_util.c:1581,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:1582,1
    - Dst: strlen
      Src: /src/libevent/test/regress_util.c:1589,1
    - Dst: create_tm_from_unix_epoch
      Src: /src/libevent/test/regress_util.c:1592,1
    - Dst: evutil_date_rfc1123
      Src: /src/libevent/test/regress_util.c:1593,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:1594,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1571
    functionDepth: 3
    functionLinenumber: 1571
    functionLinenumberEnd: 1599
    functionName: test_evutil_date_rfc1123
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_str_op
    - evutil_date_rfc1123
    - strlen
    - create_tm_from_unix_epoch
    linkageType: ''
    returnType: void
    signature: void test_evutil_date_rfc1123(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1615,1
    - Dst: evutil_v4addr_is_local_
      Src: /src/libevent/test/regress_util.c:1615,1
    - Dst: htonl
      Src: /src/libevent/test/regress_util.c:1618,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1619,1
    - Dst: evutil_v4addr_is_local_
      Src: /src/libevent/test/regress_util.c:1619,1
    - Dst: LOCAL
      Src: /src/libevent/test/regress_util.c:1620,1
    - Dst: LOCAL
      Src: /src/libevent/test/regress_util.c:1621,1
    - Dst: LOCAL
      Src: /src/libevent/test/regress_util.c:1622,1
    - Dst: LOCAL
      Src: /src/libevent/test/regress_util.c:1625,1
    - Dst: LOCAL
      Src: /src/libevent/test/regress_util.c:1626,1
    - Dst: LOCAL
      Src: /src/libevent/test/regress_util.c:1627,1
    - Dst: LOCAL
      Src: /src/libevent/test/regress_util.c:1630,1
    - Dst: LOCAL
      Src: /src/libevent/test/regress_util.c:1631,1
    - Dst: LOCAL
      Src: /src/libevent/test/regress_util.c:1632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1601
    functionDepth: 2
    functionLinenumber: 1601
    functionLinenumberEnd: 1635
    functionName: test_evutil_v4addr_is_local
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - LOCAL
    - tt_int_op
    - htonl
    - evutil_v4addr_is_local_
    linkageType: ''
    returnType: void
    signature: void test_evutil_v4addr_is_local(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - 'yes'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1608
    functionDepth: 0
    functionLinenumber: 1608
    functionLinenumberEnd: 1612
    functionName: LOCAL
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCAL(str, yes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1651,1
    - Dst: evutil_v6addr_is_local_
      Src: /src/libevent/test/regress_util.c:1651,1
    - Dst: LOCAL6
      Src: /src/libevent/test/regress_util.c:1652,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1655,1
    - Dst: evutil_v6addr_is_local_
      Src: /src/libevent/test/regress_util.c:1655,1
    - Dst: LOCAL6
      Src: /src/libevent/test/regress_util.c:1656,1
    - Dst: LOCAL6
      Src: /src/libevent/test/regress_util.c:1659,1
    - Dst: LOCAL6
      Src: /src/libevent/test/regress_util.c:1661,1
    - Dst: LOCAL6
      Src: /src/libevent/test/regress_util.c:1663,1
    - Dst: LOCAL6
      Src: /src/libevent/test/regress_util.c:1665,1
    - Dst: LOCAL6
      Src: /src/libevent/test/regress_util.c:1667,1
    - Dst: LOCAL6
      Src: /src/libevent/test/regress_util.c:1669,1
    - Dst: LOCAL6
      Src: /src/libevent/test/regress_util.c:1672,1
    - Dst: LOCAL6
      Src: /src/libevent/test/regress_util.c:1673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1637
    functionDepth: 1
    functionLinenumber: 1637
    functionLinenumberEnd: 1676
    functionName: test_evutil_v6addr_is_local
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_int_op
    - evutil_v6addr_is_local_
    - LOCAL6
    linkageType: ''
    returnType: void
    signature: void test_evutil_v6addr_is_local(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - 'yes'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1645
    functionDepth: 0
    functionLinenumber: 1645
    functionLinenumberEnd: 1649
    functionName: LOCAL6
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCAL6(str, yes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1678
    functionDepth: 0
    functionLinenumber: 1678
    functionLinenumberEnd: 1683
    functionName: socketpair_init
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void socketpair_init(evutil_socket_t fd[2])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_util.c:1689,1
    - Dst: evutil_closesocket
      Src: /src/libevent/test/regress_util.c:1691,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - fd
    argTypes:
    - evutil_socket_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1685
    functionDepth: 1
    functionLinenumber: 1685
    functionLinenumberEnd: 1692
    functionName: socketpair_close
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - evutil_closesocket
    linkageType: ''
    returnType: void
    signature: void socketpair_close(evutil_socket_t fd[2])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: socketpair_init
      Src: /src/libevent/test/regress_util.c:1705,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1706,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_util.c:1706,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1707,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_util.c:1707,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1708,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_util.c:1708,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1709,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_util.c:1709,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1712,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_util.c:1712,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1713,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_util.c:1713,1
    - Dst: socketpair_init
      Src: /src/libevent/test/regress_util.c:1714,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1715,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_util.c:1715,1
    - Dst: SOCKETPAIR_CHECK_CLOSE
      Src: /src/libevent/test/regress_util.c:1716,1
    - Dst: socketpair_init
      Src: /src/libevent/test/regress_util.c:1717,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1718,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_util.c:1718,1
    - Dst: SOCKETPAIR_CHECK_CLOSE
      Src: /src/libevent/test/regress_util.c:1719,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1721,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_util.c:1721,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1722,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_util.c:1722,1
    - Dst: socketpair_init
      Src: /src/libevent/test/regress_util.c:1723,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1724,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_util.c:1724,1
    - Dst: SOCKETPAIR_CHECK_CLOSE
      Src: /src/libevent/test/regress_util.c:1725,1
    - Dst: socketpair_init
      Src: /src/libevent/test/regress_util.c:1726,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1727,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_util.c:1727,1
    - Dst: SOCKETPAIR_CHECK_CLOSE
      Src: /src/libevent/test/regress_util.c:1728,1
    - Dst: socketpair_close
      Src: /src/libevent/test/regress_util.c:1731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1732
      start: 1694
    functionDepth: 5
    functionLinenumber: 1694
    functionLinenumberEnd: 1732
    functionName: test_evutil_socketpair_create
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - SOCKETPAIR_CHECK_CLOSE
    - socketpair_init
    - tt_int_op
    - evutil_socketpair
    - socketpair_close
    linkageType: ''
    returnType: void
    signature: void test_evutil_socketpair_create(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1699
    functionDepth: 0
    functionLinenumber: 1699
    functionLinenumberEnd: 1704
    functionName: SOCKETPAIR_CHECK_CLOSE
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SOCKETPAIR_CHECK_CLOSE(fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libevent/test/regress_util.c:1739,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:1750,1
    - Dst: evutil_check_working_afunix_
      Src: /src/libevent/test/regress_util.c:1753,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1757,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/regress_util.c:1757,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1758,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1759,1
    - Dst: getsockopt
      Src: /src/libevent/test/regress_util.c:1762,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1763,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1764,1
    - Dst: CHK_LOCALADDR
      Src: /src/libevent/test/regress_util.c:1775,1
    - Dst: CHK_LOCALADDR
      Src: /src/libevent/test/regress_util.c:1776,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1777,1
    - Dst: htonl
      Src: /src/libevent/test/regress_util.c:1777,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1778,1
    - Dst: htonl
      Src: /src/libevent/test/regress_util.c:1778,1
    - Dst: CHK_LOCALADDR
      Src: /src/libevent/test/regress_util.c:1783,1
    - Dst: CHK_LOCALADDR
      Src: /src/libevent/test/regress_util.c:1784,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1785,1
    - Dst: strlen
      Src: /src/libevent/test/regress_util.c:1785,1
    - Dst: send
      Src: /src/libevent/test/regress_util.c:1789,1
    - Dst: strlen
      Src: /src/libevent/test/regress_util.c:1789,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1790,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1791,1
    - Dst: recv
      Src: /src/libevent/test/regress_util.c:1791,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:1792,1
    - Dst: memset
      Src: /src/libevent/test/regress_util.c:1793,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1794,1
    - Dst: send
      Src: /src/libevent/test/regress_util.c:1794,1
    - Dst: strlen
      Src: /src/libevent/test/regress_util.c:1794,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1795,1
    - Dst: recv
      Src: /src/libevent/test/regress_util.c:1795,1
    - Dst: tt_str_op
      Src: /src/libevent/test/regress_util.c:1796,1
    - Dst: shutdown
      Src: /src/libevent/test/regress_util.c:1798,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1799,1
    - Dst: send
      Src: /src/libevent/test/regress_util.c:1799,1
    - Dst: strlen
      Src: /src/libevent/test/regress_util.c:1799,1
    - Dst: shutdown
      Src: /src/libevent/test/regress_util.c:1800,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1801,1
    - Dst: recv
      Src: /src/libevent/test/regress_util.c:1801,1
    - Dst: shutdown
      Src: /src/libevent/test/regress_util.c:1802,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1803,1
    - Dst: send
      Src: /src/libevent/test/regress_util.c:1803,1
    - Dst: strlen
      Src: /src/libevent/test/regress_util.c:1803,1
    - Dst: socketpair_close
      Src: /src/libevent/test/regress_util.c:1806,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1735
    functionDepth: 5
    functionLinenumber: 1735
    functionLinenumberEnd: 1807
    functionName: test_evutil_win_socketpair
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_str_op
    - tt_assert
    - recv
    - socketpair_close
    - shutdown
    - memset
    - evutil_check_working_afunix_
    - strstr
    - getsockopt
    - strlen
    - tt_int_op
    - evutil_socketpair
    - CHK_LOCALADDR
    - htonl
    - send
    linkageType: ''
    returnType: void
    signature: void test_evutil_win_socketpair(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - s
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1772
      start: 1766
    functionDepth: 0
    functionLinenumber: 1766
    functionLinenumberEnd: 1772
    functionName: CHK_LOCALADDR
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHK_LOCALADDR(a, s, f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RegOpenKeyExA
      Src: /src/libevent/test/regress_util.c:1817,1
    - Dst: RegQueryValueExA
      Src: /src/libevent/test/regress_util.c:1820,1
    - Dst: atoi
      Src: /src/libevent/test/regress_util.c:1822,1
    - Dst: RegCloseKey
      Src: /src/libevent/test/regress_util.c:1824,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1827
      start: 1810
    functionDepth: 0
    functionLinenumber: 1810
    functionLinenumberEnd: 1827
    functionName: get_windows_build
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - RegOpenKeyExA
    - RegCloseKey
    - RegQueryValueExA
    - atoi
    linkageType: ''
    returnType: int
    signature: int get_windows_build()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_windows_build
      Src: /src/libevent/test/regress_util.c:1837,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_util.c:1838,1
    - Dst: evutil_check_working_afunix_
      Src: /src/libevent/test/regress_util.c:1839,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1841,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_util.c:1843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1829
    functionDepth: 2
    functionLinenumber: 1829
    functionLinenumberEnd: 1846
    functionName: test_evutil_check_working_afunix
    functionSourceFile: /src/libevent/test/regress_util.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_int_op
    - evutil_check_working_afunix_
    - get_windows_build
    linkageType: ''
    returnType: void
    signature: void test_evutil_check_working_afunix(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_weakrand
      Src: /src/libevent/test/regress_minheap.c:38,1
    - Dst: test_weakrand
      Src: /src/libevent/test/regress_minheap.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ev
    argTypes:
    - struct event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: set_random_timeout
    functionSourceFile: /src/libevent/test/regress_minheap.c
    functionUses: 0
    functionsReached:
    - test_weakrand
    linkageType: ''
    returnType: void
    signature: void set_random_timeout(struct event *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_want
      Src: /src/libevent/test/regress_minheap.c:49,1
    - Dst: evutil_timercmp
      Src: /src/libevent/test/regress_minheap.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - heap
    argTypes:
    - struct min_heap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: check_heap
    functionSourceFile: /src/libevent/test/regress_minheap.c
    functionUses: 0
    functionsReached:
    - tt_want
    - evutil_timercmp
    linkageType: ''
    returnType: void
    signature: void check_heap(struct min_heap *heap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: min_heap_ctor_
      Src: /src/libevent/test/regress_minheap.c:62,1
    - Dst: malloc
      Src: /src/libevent/test/regress_minheap.c:65,1
    - Dst: set_random_timeout
      Src: /src/libevent/test/regress_minheap.c:66,1
    - Dst: min_heap_push_
      Src: /src/libevent/test/regress_minheap.c:67,1
    - Dst: check_heap
      Src: /src/libevent/test/regress_minheap.c:69,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_minheap.c:71,1
    - Dst: min_heap_size_
      Src: /src/libevent/test/regress_minheap.c:71,1
    - Dst: min_heap_erase_
      Src: /src/libevent/test/regress_minheap.c:74,1
    - Dst: check_heap
      Src: /src/libevent/test/regress_minheap.c:76,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_minheap.c:78,1
    - Dst: min_heap_size_
      Src: /src/libevent/test/regress_minheap.c:78,1
    - Dst: min_heap_pop_
      Src: /src/libevent/test/regress_minheap.c:80,1
    - Dst: min_heap_pop_
      Src: /src/libevent/test/regress_minheap.c:82,1
    - Dst: tt_want
      Src: /src/libevent/test/regress_minheap.c:85,1
    - Dst: evutil_timercmp
      Src: /src/libevent/test/regress_minheap.c:85,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_minheap.c:88,1
    - Dst: min_heap_size_
      Src: /src/libevent/test/regress_minheap.c:88,1
    - Dst: free
      Src: /src/libevent/test/regress_minheap.c:91,1
    - Dst: min_heap_dtor_
      Src: /src/libevent/test/regress_minheap.c:93,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 94
    functionName: test_heap_randomized
    functionSourceFile: /src/libevent/test/regress_minheap.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - tt_want
    - min_heap_size_
    - set_random_timeout
    - evutil_timercmp
    - min_heap_erase_
    - free
    - malloc
    - min_heap_ctor_
    - check_heap
    - min_heap_pop_
    - min_heap_push_
    - min_heap_dtor_
    linkageType: ''
    returnType: void
    signature: void test_heap_randomized(void *ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/test/test-eof.c:63,1
    - Dst: exit
      Src: /src/libevent/test/test-eof.c:64,1
    - Dst: recv
      Src: /src/libevent/test/test-eof.c:67,1
    - Dst: printf
      Src: /src/libevent/test/test-eof.c:69,1
    - Dst: event_add
      Src: /src/libevent/test/test-eof.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 79
    functionName: read_cb
    functionSourceFile: /src/libevent/test/test-eof.c
    functionUses: 0
    functionsReached:
    - exit
    - recv
    - event_add
    - printf
    linkageType: ''
    returnType: void
    signature: void read_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/libevent/test/test-eof.c:92,1
    - Dst: WSAStartup
      Src: /src/libevent/test/test-eof.c:94,1
    - Dst: evutil_socketpair
      Src: /src/libevent/test/test-eof.c:97,1
    - Dst: send
      Src: /src/libevent/test/test-eof.c:101,1
    - Dst: strlen
      Src: /src/libevent/test/test-eof.c:101,1
    - Dst: shutdown
      Src: /src/libevent/test/test-eof.c:103,1
    - Dst: event_init
      Src: /src/libevent/test/test-eof.c:106,1
    - Dst: event_set
      Src: /src/libevent/test/test-eof.c:109,1
    - Dst: event_add
      Src: /src/libevent/test/test-eof.c:111,1
    - Dst: event_dispatch
      Src: /src/libevent/test/test-eof.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 81
    functionDepth: 5
    functionLinenumber: 81
    functionLinenumberEnd: 116
    functionName: main
    functionSourceFile: /src/libevent/test/test-eof.c
    functionUses: 3
    functionsReached:
    - event_set
    - MAKEWORD
    - event_init
    - event_dispatch
    - event_add
    - shutdown
    - strlen
    - WSAStartup
    - evutil_socketpair
    - send
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: timer_callback
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void timer_callback(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - evcb
    - arg
    argTypes:
    - struct event_callback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: simple_callback
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void simple_callback(struct event_callback *evcb, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ev
    - arg
    argTypes:
    - struct event*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: event_finalize_callback_1
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_finalize_callback_1(struct event *ev, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - evcb
    - arg
    argTypes:
    - struct event_callback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: callback_finalize_callback_1
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void callback_finalize_callback_1(struct event_callback *evcb, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_deferred_cb_init_
      Src: /src/libevent/test/regress_finalize.c:86,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress_finalize.c:87,1
    - Dst: event_free_finalize
      Src: /src/libevent/test/regress_finalize.c:89,1
    - Dst: event_callback_finalize_
      Src: /src/libevent/test/regress_finalize.c:90,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_finalize.c:92,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:94,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:95,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress_finalize.c:98,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress_finalize.c:102,1
    - Dst: event_deferred_cb_init_
      Src: /src/libevent/test/regress_finalize.c:103,1
    - Dst: event_active
      Src: /src/libevent/test/regress_finalize.c:105,1
    - Dst: event_callback_activate_
      Src: /src/libevent/test/regress_finalize.c:106,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_finalize.c:108,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:109,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:110,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress_finalize.c:113,1
    - Dst: event_active
      Src: /src/libevent/test/regress_finalize.c:117,1
    - Dst: event_callback_activate_
      Src: /src/libevent/test/regress_finalize.c:118,1
    - Dst: event_free_finalize
      Src: /src/libevent/test/regress_finalize.c:119,1
    - Dst: event_callback_finalize_
      Src: /src/libevent/test/regress_finalize.c:120,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_finalize.c:122,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:123,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:124,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress_finalize.c:128,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress_finalize.c:132,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_finalize.c:133,1
    - Dst: event_add
      Src: /src/libevent/test/regress_finalize.c:134,1
    - Dst: event_free_finalize
      Src: /src/libevent/test/regress_finalize.c:135,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_finalize.c:137,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:138,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress_finalize.c:141,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress_finalize.c:144,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_finalize.c:145,1
    - Dst: evtimer_assign
      Src: /src/libevent/test/regress_finalize.c:146,1
    - Dst: event_add
      Src: /src/libevent/test/regress_finalize.c:147,1
    - Dst: event_free_finalize
      Src: /src/libevent/test/regress_finalize.c:148,1
    - Dst: event_finalize
      Src: /src/libevent/test/regress_finalize.c:149,1
    - Dst: event_add
      Src: /src/libevent/test/regress_finalize.c:151,1
    - Dst: event_del
      Src: /src/libevent/test/regress_finalize.c:152,1
    - Dst: event_active
      Src: /src/libevent/test/regress_finalize.c:153,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_finalize.c:155,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:156,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress_finalize.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 72
    functionDepth: 4
    functionLinenumber: 72
    functionLinenumberEnd: 162
    functionName: test_fin_cb_invoked
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - evtimer_assign
    - event_finalize
    - event_active
    - event_del
    - event_base_assert_ok_
    - event_callback_activate_
    - event_free_finalize
    - event_callback_finalize_
    - evtimer_new
    - event_deferred_cb_init_
    - event_add
    - tt_int_op
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_fin_cb_invoked(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libevent/test/regress_finalize.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: tfff_malloc
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      tfff_malloc(size_t n)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libevent/test/regress_finalize.c:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 182
    functionName: tfff_free
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void tfff_free(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/libevent/test/regress_finalize.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - sz
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: tfff_realloc
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: 'void *

      tfff_realloc(void *p, size_t sz)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tinytest_set_test_skipped_
      Src: /src/libevent/test/regress_finalize.c:194,1
    - Dst: event_set_mem_functions
      Src: /src/libevent/test/regress_finalize.c:203,1
    - Dst: event_base_new
      Src: /src/libevent/test/regress_finalize.c:205,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_finalize.c:206,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress_finalize.c:208,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress_finalize.c:209,1
    - Dst: event_free_finalize
      Src: /src/libevent/test/regress_finalize.c:212,1
    - Dst: event_finalize
      Src: /src/libevent/test/regress_finalize.c:213,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_finalize.c:215,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:217,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:218,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress_finalize.c:220,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:221,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:222,1
    - Dst: event_free
      Src: /src/libevent/test/regress_finalize.c:224,1
    - Dst: event_base_free
      Src: /src/libevent/test/regress_finalize.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 190
    functionDepth: 6
    functionLinenumber: 190
    functionLinenumberEnd: 230
    functionName: test_fin_free_finalize
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - event_finalize
    - event_base_free
    - event_base_assert_ok_
    - tinytest_set_test_skipped_
    - event_free_finalize
    - event_set_mem_functions
    - evtimer_new
    - event_base_new
    - tt_int_op
    - event_free
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_fin_free_finalize(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_free
      Src: /src/libevent/test/regress_finalize.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ev
    - arg
    argTypes:
    - struct event*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 238
    functionDepth: 4
    functionLinenumber: 238
    functionLinenumberEnd: 244
    functionName: event_finalize_callback_2
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached:
    - event_free
    linkageType: ''
    returnType: void
    signature: void event_finalize_callback_2(struct event *ev, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_finalize
      Src: /src/libevent/test/regress_finalize.c:249,1
    - Dst: event_finalize
      Src: /src/libevent/test/regress_finalize.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 245
    functionDepth: 4
    functionLinenumber: 245
    functionLinenumberEnd: 254
    functionName: timer_callback_2
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached:
    - event_finalize
    linkageType: ''
    returnType: void
    signature: void timer_callback_2(evutil_socket_t fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evtimer_new
      Src: /src/libevent/test/regress_finalize.c:264,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress_finalize.c:265,1
    - Dst: event_active
      Src: /src/libevent/test/regress_finalize.c:270,1
    - Dst: event_active
      Src: /src/libevent/test/regress_finalize.c:271,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_finalize.c:273,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:274,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:275,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress_finalize.c:277,1
    - Dst: event_new
      Src: /src/libevent/test/regress_finalize.c:280,1
    - Dst: event_new
      Src: /src/libevent/test/regress_finalize.c:281,1
    - Dst: event_active
      Src: /src/libevent/test/regress_finalize.c:283,1
    - Dst: event_active
      Src: /src/libevent/test/regress_finalize.c:284,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_finalize.c:286,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:287,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:288,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress_finalize.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 256
    functionDepth: 5
    functionLinenumber: 256
    functionLinenumberEnd: 293
    functionName: test_fin_within_cb
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached:
    - event_active
    - event_base_assert_ok_
    - event_new
    - evtimer_new
    - tt_int_op
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_fin_within_cb(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_assign
      Src: /src/libevent/test/regress_finalize.c:301,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:302,1
    - Dst: free
      Src: /src/libevent/test/regress_finalize.c:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ev
    - arg
    argTypes:
    - struct event*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 295
    functionDepth: 4
    functionLinenumber: 295
    functionLinenumberEnd: 311
    functionName: event_finalize_callback_free
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached:
    - event_assign
    - tt_int_op
    - free
    linkageType: ''
    returnType: void
    signature: void event_finalize_callback_free(struct event *ev, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tt_ptr_op
      Src: /src/libevent/test/regress_finalize.c:319,1
    - Dst: event_new
      Src: /src/libevent/test/regress_finalize.c:319,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:320,1
    - Dst: event_add
      Src: /src/libevent/test/regress_finalize.c:320,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:321,1
    - Dst: event_finalize
      Src: /src/libevent/test/regress_finalize.c:321,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_finalize.c:324,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress_finalize.c:325,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:326,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:330,1
    - Dst: event_add
      Src: /src/libevent/test/regress_finalize.c:330,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:333,1
    - Dst: event_finalize
      Src: /src/libevent/test/regress_finalize.c:333,1
    - Dst: event_base_dispatch
      Src: /src/libevent/test/regress_finalize.c:334,1
    - Dst: event_base_assert_ok_
      Src: /src/libevent/test/regress_finalize.c:335,1
    - Dst: tt_int_op
      Src: /src/libevent/test/regress_finalize.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 312
    functionDepth: 5
    functionLinenumber: 312
    functionLinenumberEnd: 340
    functionName: test_fin_debug_use_after_free
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached:
    - event_finalize
    - tt_ptr_op
    - event_new
    - event_base_assert_ok_
    - event_add
    - tt_int_op
    - event_base_dispatch
    linkageType: ''
    returnType: void
    signature: void test_fin_debug_use_after_free(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - what
    - arg
    argTypes:
    - evutil_socket_t*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 349
    functionName: timer_callback_3
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void timer_callback_3(evutil_socket_t *fd, short what, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evtimer_new
      Src: /src/libevent/test/regress_finalize.c:365,1
    - Dst: evtimer_new
      Src: /src/libevent/test/regress_finalize.c:366,1
    - Dst: event_deferred_cb_init_
      Src: /src/libevent/test/regress_finalize.c:367,1
    - Dst: event_deferred_cb_init_
      Src: /src/libevent/test/regress_finalize.c:368,1
    - Dst: event_callback_finalize_many
      Src: /src/libevent/test/regress_finalize.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 379
    functionName: test_fin_many
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached:
    - evtimer_new
    - event_deferred_cb_init_
    - event_callback_finalize_many
    linkageType: ''
    returnType: void
    signature: void test_fin_many(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 385
    functionName: TEST
    functionSourceFile: /src/libevent/test/regress_finalize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST(name, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: SSL_use_certificate
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_use_certificate(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: SSL_use_PrivateKey
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_use_PrivateKey(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: X509_free
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X509_free(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ssl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: SSL_SET_HOSTNAME
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_SET_HOSTNAME(ssl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libevent/test/regress_mbedtls.c:101,1
    - Dst: event_debug
      Src: /src/libevent/test/regress_mbedtls.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - userdata
    - level
    - file
    - line
    - str
    argTypes:
    - void*
    - int
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: mbedtls_debug
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 0
    functionsReached:
    - strlen
    - event_debug
    linkageType: ''
    returnType: void
    signature: "void mbedtls_debug(\n\tvoid *userdata, int level, const char *file,
      int line, const char *str)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_secure_rng_init
      Src: /src/libevent/test/regress_mbedtls.c:116,1
    - Dst: evutil_secure_rng_get_bytes
      Src: /src/libevent/test/regress_mbedtls.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - buffer
    - len
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 109
    functionDepth: 10
    functionLinenumber: 109
    functionLinenumberEnd: 121
    functionName: mbedtls_rng
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 0
    functionsReached:
    - evutil_secure_rng_get_bytes
    - evutil_secure_rng_init
    linkageType: ''
    returnType: int
    signature: int mbedtls_rng(void* ctx, unsigned char* buffer, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libevent/test/regress_mbedtls.c:128,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_mbedtls.c:129,1
    - Dst: mbedtls_pk_init
      Src: /src/libevent/test/regress_mbedtls.c:130,1
    - Dst: mbedtls_pk_parse_key
      Src: /src/libevent/test/regress_mbedtls.c:131,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_mbedtls.c:138,1
    - Dst: end
      Src: /src/libevent/test/regress_mbedtls.c:140,1
    - Dst: mbedtls_pk_free
      Src: /src/libevent/test/regress_mbedtls.c:142,1
    - Dst: free
      Src: /src/libevent/test/regress_mbedtls.c:143,1
    - Dst: gmtime
      Src: /src/libevent/test/regress_mbedtls.c:152,1
    - Dst: fprintf
      Src: /src/libevent/test/regress_mbedtls.c:154,1
    - Dst: strerror
      Src: /src/libevent/test/regress_mbedtls.c:154,1
    - Dst: exit
      Src: /src/libevent/test/regress_mbedtls.c:155,1
    - Dst: gmtime_r
      Src: /src/libevent/test/regress_mbedtls.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 161
    functionName: mbedtls_getkey
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 0
    functionsReached:
    - tt_assert
    - mbedtls_pk_free
    - end
    - exit
    - gmtime
    - free
    - gmtime_r
    - malloc
    - strerror
    - mbedtls_pk_init
    - fprintf
    - mbedtls_pk_parse_key
    linkageType: ''
    returnType: mbedtls_pk_context
    signature: 'mbedtls_pk_context *

      mbedtls_getkey(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/libevent/test/regress_mbedtls.c:167,1
    - Dst: snprintf
      Src: /src/libevent/test/regress_mbedtls.c:186,1
    - Dst: create_tm_from_unix_epoch
      Src: /src/libevent/test/regress_mbedtls.c:189,1
    - Dst: strftime
      Src: /src/libevent/test/regress_mbedtls.c:190,1
    - Dst: create_tm_from_unix_epoch
      Src: /src/libevent/test/regress_mbedtls.c:192,1
    - Dst: strftime
      Src: /src/libevent/test/regress_mbedtls.c:193,1
    - Dst: mbedtls_x509write_crt_init
      Src: /src/libevent/test/regress_mbedtls.c:195,1
    - Dst: mbedtls_x509write_crt_set_version
      Src: /src/libevent/test/regress_mbedtls.c:196,1
    - Dst: mbedtls_x509write_crt_set_serial_raw
      Src: /src/libevent/test/regress_mbedtls.c:203,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_mbedtls.c:205,1
    - Dst: mbedtls_mpi_init
      Src: /src/libevent/test/regress_mbedtls.c:207,1
    - Dst: mbedtls_mpi_read_string
      Src: /src/libevent/test/regress_mbedtls.c:208,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_mbedtls.c:209,1
    - Dst: mbedtls_x509write_crt_set_serial
      Src: /src/libevent/test/regress_mbedtls.c:210,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_mbedtls.c:211,1
    - Dst: mbedtls_mpi_free
      Src: /src/libevent/test/regress_mbedtls.c:212,1
    - Dst: mbedtls_x509write_crt_set_subject_name
      Src: /src/libevent/test/regress_mbedtls.c:215,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_mbedtls.c:216,1
    - Dst: mbedtls_x509write_crt_set_issuer_name
      Src: /src/libevent/test/regress_mbedtls.c:217,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_mbedtls.c:218,1
    - Dst: mbedtls_x509write_crt_set_md_alg
      Src: /src/libevent/test/regress_mbedtls.c:220,1
    - Dst: mbedtls_x509write_crt_set_validity
      Src: /src/libevent/test/regress_mbedtls.c:223,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_mbedtls.c:224,1
    - Dst: mbedtls_x509write_crt_set_issuer_key
      Src: /src/libevent/test/regress_mbedtls.c:225,1
    - Dst: mbedtls_x509write_crt_set_subject_key
      Src: /src/libevent/test/regress_mbedtls.c:226,1
    - Dst: mbedtls_x509write_crt_pem
      Src: /src/libevent/test/regress_mbedtls.c:229,1
    - Dst: mbedtls_ctr_drbg_seed
      Src: /src/libevent/test/regress_mbedtls.c:231,1
    - Dst: strlen
      Src: /src/libevent/test/regress_mbedtls.c:232,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_mbedtls.c:233,1
    - Dst: mbedtls_x509write_crt_pem
      Src: /src/libevent/test/regress_mbedtls.c:234,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_mbedtls.c:237,1
    - Dst: mbedtls_x509write_crt_free
      Src: /src/libevent/test/regress_mbedtls.c:238,1
    - Dst: malloc
      Src: /src/libevent/test/regress_mbedtls.c:240,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_mbedtls.c:241,1
    - Dst: mbedtls_x509_crt_init
      Src: /src/libevent/test/regress_mbedtls.c:242,1
    - Dst: mbedtls_x509_crt_parse
      Src: /src/libevent/test/regress_mbedtls.c:243,1
    - Dst: strlen
      Src: /src/libevent/test/regress_mbedtls.c:243,1
    - Dst: tt_assert
      Src: /src/libevent/test/regress_mbedtls.c:244,1
    - Dst: mbedtls_x509_crt_free
      Src: /src/libevent/test/regress_mbedtls.c:248,1
    - Dst: free
      Src: /src/libevent/test/regress_mbedtls.c:249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 49
    argCount: 1
    argNames:
    - pk
    argTypes:
    - mbedtls_pk_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 252
    functionName: mbedtls_getcert
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_x509write_crt_set_md_alg
    - mbedtls_mpi_read_string
    - mbedtls_x509write_crt_set_validity
    - mbedtls_x509write_crt_set_issuer_key
    - mbedtls_x509_crt_init
    - snprintf
    - mbedtls_x509write_crt_set_serial_raw
    - mbedtls_mpi_init
    - mbedtls_x509write_crt_init
    - mbedtls_x509_crt_parse
    - mbedtls_x509_crt_free
    - strlen
    - mbedtls_x509write_crt_set_subject_key
    - mbedtls_x509write_crt_set_version
    - mbedtls_x509write_crt_set_serial
    - malloc
    - mbedtls_ctr_drbg_seed
    - create_tm_from_unix_epoch
    - strftime
    - tt_assert
    - mbedtls_x509write_crt_set_issuer_name
    - mbedtls_x509write_crt_set_subject_name
    - free
    - time
    - mbedtls_x509write_crt_pem
    - mbedtls_x509write_crt_free
    - mbedtls_mpi_free
    linkageType: ''
    returnType: mbedtls_x509_crt
    signature: 'mbedtls_x509_crt *

      mbedtls_getcert(mbedtls_pk_context *pk)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libevent/test/regress_mbedtls.c:259,1
    - Dst: mbedtls_ssl_config_init
      Src: /src/libevent/test/regress_mbedtls.c:262,1
    - Dst: mbedtls_ssl_conf_renegotiation
      Src: /src/libevent/test/regress_mbedtls.c:263,1
    - Dst: mbedtls_ssl_conf_dbg
      Src: /src/libevent/test/regress_mbedtls.c:265,1
    - Dst: mbedtls_ssl_config_defaults
      Src: /src/libevent/test/regress_mbedtls.c:267,1
    - Dst: mbedtls_ssl_conf_rng
      Src: /src/libevent/test/regress_mbedtls.c:270,1
    - Dst: mbedtls_ssl_conf_max_version
      Src: /src/libevent/test/regress_mbedtls.c:276,1
    - Dst: mbedtls_ssl_conf_own_cert
      Src: /src/libevent/test/regress_mbedtls.c:281,1
    - Dst: mbedtls_ssl_conf_ca_chain
      Src: /src/libevent/test/regress_mbedtls.c:284,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - endpoint
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 287
    functionName: get_mbedtls_config
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 2
    functionsReached:
    - mbedtls_ssl_config_init
    - mbedtls_ssl_config_defaults
    - mbedtls_ssl_conf_renegotiation
    - mbedtls_ssl_conf_rng
    - mbedtls_ssl_conf_ca_chain
    - mbedtls_ssl_conf_dbg
    - mbedtls_ssl_conf_own_cert
    - malloc
    - mbedtls_ssl_conf_max_version
    linkageType: ''
    returnType: mbedtls_ssl_config
    signature: 'mbedtls_ssl_config *

      get_mbedtls_config(int endpoint)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_debug_set_threshold
      Src: /src/libevent/test/regress_mbedtls.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 293
    functionName: init_mbedtls
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 0
    functionsReached:
    - mbedtls_debug_set_threshold
    linkageType: ''
    returnType: void
    signature: void init_mbedtls(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_mbedtls
      Src: /src/libevent/test/regress_mbedtls.c:298,1
    - Dst: psa_crypto_init
      Src: /src/libevent/test/regress_mbedtls.c:301,1
    - Dst: mbedtls_entropy_init
      Src: /src/libevent/test/regress_mbedtls.c:303,1
    - Dst: mbedtls_ctr_drbg_init
      Src: /src/libevent/test/regress_mbedtls.c:304,1
    - Dst: mbedtls_ctr_drbg_seed
      Src: /src/libevent/test/regress_mbedtls.c:305,1
    - Dst: mbedtls_getkey
      Src: /src/libevent/test/regress_mbedtls.c:309,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/test/regress_mbedtls.c:310,1
    - Dst: mbedtls_getcert
      Src: /src/libevent/test/regress_mbedtls.c:312,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/test/regress_mbedtls.c:313,1
    - Dst: basic_test_setup
      Src: /src/libevent/test/regress_mbedtls.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - testcase
    argTypes:
    - struct testcase_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 295
    functionDepth: 11
    functionLinenumber: 295
    functionLinenumberEnd: 318
    functionName: mbedtls_test_setup
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 0
    functionsReached:
    - basic_test_setup
    - psa_crypto_init
    - EVUTIL_ASSERT
    - init_mbedtls
    - mbedtls_getkey
    - mbedtls_ctr_drbg_seed
    - mbedtls_entropy_init
    - mbedtls_ctr_drbg_init
    - mbedtls_getcert
    linkageType: ''
    returnType: void
    signature: 'void *

      mbedtls_test_setup(const struct testcase_t *testcase)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: basic_test_cleanup
      Src: /src/libevent/test/regress_mbedtls.c:322,1
    - Dst: mbedtls_x509_crt_free
      Src: /src/libevent/test/regress_mbedtls.c:337,1
    - Dst: free
      Src: /src/libevent/test/regress_mbedtls.c:338,1
    - Dst: mbedtls_pk_free
      Src: /src/libevent/test/regress_mbedtls.c:339,1
    - Dst: free
      Src: /src/libevent/test/regress_mbedtls.c:340,1
    - Dst: mbedtls_ssl_config_free
      Src: /src/libevent/test/regress_mbedtls.c:343,1
    - Dst: free
      Src: /src/libevent/test/regress_mbedtls.c:344,1
    - Dst: mbedtls_ssl_config_free
      Src: /src/libevent/test/regress_mbedtls.c:348,1
    - Dst: free
      Src: /src/libevent/test/regress_mbedtls.c:349,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 2
    argNames:
    - testcase
    - ptr
    argTypes:
    - struct testcase_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 319
    functionDepth: 8
    functionLinenumber: 319
    functionLinenumberEnd: 354
    functionName: mbedtls_test_cleanup
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 0
    functionsReached:
    - basic_test_cleanup
    - mbedtls_pk_free
    - mbedtls_x509_crt_free
    - free
    - mbedtls_ssl_config_free
    linkageType: ''
    returnType: int
    signature: int mbedtls_test_cleanup(const struct testcase_t *testcase, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/libevent/test/regress_mbedtls.c:360,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/test/regress_mbedtls.c:362,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/test/regress_mbedtls.c:362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - out
    - outlen
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 366
    functionName: bio_rwcount_read
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 0
    functionsReached:
    - recv
    - EVUTIL_ERR_RW_RETRIABLE
    - EVUTIL_SOCKET_ERROR
    linkageType: ''
    returnType: int
    signature: int bio_rwcount_read(void *ctx, unsigned char *out, size_t outlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/libevent/test/regress_mbedtls.c:371,1
    - Dst: EVUTIL_ERR_RW_RETRIABLE
      Src: /src/libevent/test/regress_mbedtls.c:373,1
    - Dst: EVUTIL_SOCKET_ERROR
      Src: /src/libevent/test/regress_mbedtls.c:373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - in
    - inlen
    argTypes:
    - void*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 377
    functionName: bio_rwcount_write
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 1
    functionsReached:
    - EVUTIL_ERR_RW_RETRIABLE
    - EVUTIL_SOCKET_ERROR
    - send
    linkageType: ''
    returnType: int
    signature: int bio_rwcount_write(void *ctx, const unsigned char *in, size_t inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_ssl_set_bio
      Src: /src/libevent/test/regress_mbedtls.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - rw
    argTypes:
    - SSL*
    - struct rwcount*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 383
    functionName: BIO_setup
    functionSourceFile: /src/libevent/test/regress_mbedtls.c
    functionUses: 1
    functionsReached:
    - mbedtls_ssl_set_bio
    linkageType: ''
    returnType: void
    signature: void BIO_setup(SSL *ssl, struct rwcount *rw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: SLIST_HEAD_INITIALIZER
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_HEAD_INITIALIZER(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: SLIST_FIRST
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_FIRST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: SLIST_END
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_END(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: SLIST_EMPTY
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: SLIST_NEXT
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_NEXT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: SLIST_FOREACH
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_FOREACH(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: SLIST_INIT
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_INIT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - slistelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: SLIST_INSERT_AFTER
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_INSERT_AFTER(slistelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: SLIST_INSERT_HEAD
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_INSERT_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: SLIST_REMOVE_HEAD
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLIST_REMOVE_HEAD(head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: LIST_HEAD_INITIALIZER
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_HEAD_INITIALIZER(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: LIST_ENTRY
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: LIST_FIRST
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_FIRST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: LIST_END
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_END(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: LIST_EMPTY
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: LIST_NEXT
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_NEXT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: LIST_FOREACH
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_FOREACH(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: LIST_INIT
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_INIT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 181
    functionName: LIST_INSERT_AFTER
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_INSERT_AFTER(listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 188
    functionName: LIST_INSERT_BEFORE
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_INSERT_BEFORE(listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: LIST_INSERT_HEAD
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_INSERT_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: LIST_REMOVE
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_REMOVE(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elm
    - ','
    - elm2
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 210
    functionName: LIST_REPLACE
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_REPLACE(elm, elm2, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: SIMPLEQ_HEAD
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_HEAD(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 222
    functionName: SIMPLEQ_HEAD_INITIALIZER
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_HEAD_INITIALIZER(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 232
    functionName: SIMPLEQ_FIRST
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_FIRST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 233
    functionName: SIMPLEQ_END
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_END(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: SIMPLEQ_EMPTY
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    functionName: SIMPLEQ_NEXT
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_NEXT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 240
    functionName: SIMPLEQ_FOREACH
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_FOREACH(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: SIMPLEQ_INIT
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_INIT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 254
    functionName: SIMPLEQ_INSERT_HEAD
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_INSERT_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 260
    functionName: SIMPLEQ_INSERT_TAIL
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_INSERT_TAIL(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 266
    functionName: SIMPLEQ_INSERT_AFTER
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_INSERT_AFTER(head, listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: SIMPLEQ_REMOVE_HEAD
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLEQ_REMOVE_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: TAILQ_HEAD
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_HEAD(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 283
    functionName: TAILQ_HEAD_INITIALIZER
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_HEAD_INITIALIZER(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 286
    functionName: TAILQ_ENTRY
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 294
    functionName: TAILQ_FIRST
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 125
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_FIRST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 295
    functionName: TAILQ_END
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_END(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 296
    functionName: TAILQ_NEXT
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_NEXT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - head
    - ','
    - headname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 298
    functionName: TAILQ_LAST
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_LAST(head, headname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elm
    - ','
    - headname
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 301
    functionName: TAILQ_PREV
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_PREV(elm, headname, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 303
    functionName: TAILQ_EMPTY
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 45
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 308
    functionName: TAILQ_FOREACH
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 180
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_FOREACH(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - headname
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 313
    functionName: TAILQ_FOREACH_REVERSE
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_FOREACH_REVERSE(var, head, headname, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 321
    functionName: TAILQ_INIT
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 47
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_INIT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 331
    functionName: TAILQ_INSERT_HEAD
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_INSERT_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 338
    functionName: TAILQ_INSERT_TAIL
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 63
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_INSERT_TAIL(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 348
    functionName: TAILQ_INSERT_AFTER
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_INSERT_AFTER(head, listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 355
    functionName: TAILQ_INSERT_BEFORE
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_INSERT_BEFORE(listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 364
    functionName: TAILQ_REMOVE
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 93
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_REMOVE(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - elm2
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 374
    functionName: TAILQ_REPLACE
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_REPLACE(head, elm, elm2, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 380
    functionName: CIRCLEQ_HEAD
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_HEAD(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 386
    functionName: CIRCLEQ_HEAD_INITIALIZER
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_HEAD_INITIALIZER(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 389
    functionName: CIRCLEQ_ENTRY
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 397
    functionName: CIRCLEQ_FIRST
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_FIRST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 398
    functionName: CIRCLEQ_LAST
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_LAST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 399
    functionName: CIRCLEQ_END
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_END(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 400
    functionName: CIRCLEQ_NEXT
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_NEXT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 401
    functionName: CIRCLEQ_PREV
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_PREV(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 403
    functionName: CIRCLEQ_EMPTY
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 408
    functionName: CIRCLEQ_FOREACH
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_FOREACH(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 413
    functionName: CIRCLEQ_FOREACH_REVERSE
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_FOREACH_REVERSE(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 421
    functionName: CIRCLEQ_INIT
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_INIT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 431
    functionName: CIRCLEQ_INSERT_AFTER
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_INSERT_AFTER(head, listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 441
    functionName: CIRCLEQ_INSERT_BEFORE
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 451
    functionName: CIRCLEQ_INSERT_HEAD
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_INSERT_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 461
    functionName: CIRCLEQ_INSERT_TAIL
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_INSERT_TAIL(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 474
    functionName: CIRCLEQ_REMOVE
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_REMOVE(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - elm2
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 487
    functionName: CIRCLEQ_REPLACE
    functionSourceFile: /src/libevent/compat/sys/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_REPLACE(head, elm, elm2, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - root
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: SPLAY_INITIALIZER
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_INITIALIZER(root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - root
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: SPLAY_INIT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_INIT(root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: SPLAY_ENTRY
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: SPLAY_LEFT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_LEFT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: SPLAY_RIGHT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_RIGHT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: SPLAY_ROOT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_ROOT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: SPLAY_EMPTY
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: SPLAY_ROTATE_RIGHT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_ROTATE_RIGHT(head, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: SPLAY_ROTATE_LEFT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_ROTATE_LEFT(head, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: SPLAY_LINKLEFT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_LINKLEFT(head, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: SPLAY_LINKRIGHT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_LINKRIGHT(head, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - head
    - ','
    - node
    - ','
    - left
    - ','
    - right
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: SPLAY_ASSEMBLE
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_ASSEMBLE(head, node, left, right, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: SPLAY_PROTOTYPE
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_PROTOTYPE(name, type, field, cmp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SPLAY_EMPTY
      Src: /src/libevent/compat/sys/tree.h:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 130
    functionName: _SPLAY_FIND
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached:
    - SPLAY_EMPTY
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\\\nname##_SPLAY_FIND(struct name *head,
      struct type *elm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SPLAY_RIGHT
      Src: /src/libevent/compat/sys/tree.h:136,1
    - Dst: SPLAY_RIGHT
      Src: /src/libevent/compat/sys/tree.h:137,1
    - Dst: SPLAY_LEFT
      Src: /src/libevent/compat/sys/tree.h:138,1
    - Dst: SPLAY_LEFT
      Src: /src/libevent/compat/sys/tree.h:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 144
    functionName: _SPLAY_NEXT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached:
    - SPLAY_RIGHT
    - SPLAY_LEFT
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\\\nname##_SPLAY_NEXT(struct name *head,
      struct type *elm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SPLAY_ROOT
      Src: /src/libevent/compat/sys/tree.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - head
    - val
    argTypes:
    - struct name*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: _SPLAY_MIN_MAX
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached:
    - SPLAY_ROOT
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\\\nname##_SPLAY_MIN_MAX(struct name *head,
      int val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 239
    functionName: SPLAY_GENERATE
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_GENERATE(name, type, field, cmp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SPLAY_LEFT
      Src: /src/libevent/compat/sys/tree.h:244,1
    - Dst: SPLAY_RIGHT
      Src: /src/libevent/compat/sys/tree.h:244,1
    - Dst: SPLAY_LEFT
      Src: /src/libevent/compat/sys/tree.h:249,1
    - Dst: SPLAY_ROTATE_RIGHT
      Src: /src/libevent/compat/sys/tree.h:253,1
    - Dst: SPLAY_LEFT
      Src: /src/libevent/compat/sys/tree.h:254,1
    - Dst: SPLAY_LINKLEFT
      Src: /src/libevent/compat/sys/tree.h:257,1
    - Dst: SPLAY_RIGHT
      Src: /src/libevent/compat/sys/tree.h:259,1
    - Dst: SPLAY_ROTATE_LEFT
      Src: /src/libevent/compat/sys/tree.h:263,1
    - Dst: SPLAY_RIGHT
      Src: /src/libevent/compat/sys/tree.h:264,1
    - Dst: SPLAY_LINKRIGHT
      Src: /src/libevent/compat/sys/tree.h:267,1
    - Dst: SPLAY_ASSEMBLE
      Src: /src/libevent/compat/sys/tree.h:270,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 2
    argNames:
    - head
    - __comp
    argTypes:
    - struct name*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 271
    functionName: _SPLAY_MINMAX
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached:
    - SPLAY_LINKLEFT
    - SPLAY_ROTATE_RIGHT
    - SPLAY_LEFT
    - SPLAY_ROTATE_LEFT
    - SPLAY_LINKRIGHT
    - SPLAY_RIGHT
    - SPLAY_ASSEMBLE
    linkageType: ''
    returnType: void
    signature: void _SPLAY_MINMAX(struct name *head, int __comp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 277
    functionName: SPLAY_INSERT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_INSERT(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 278
    functionName: SPLAY_REMOVE
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_REMOVE(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 279
    functionName: SPLAY_FIND
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_FIND(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 280
    functionName: SPLAY_NEXT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_NEXT(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 282
    functionName: SPLAY_MIN
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_MIN(name, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 284
    functionName: SPLAY_MAX
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_MAX(name, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - name
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: SPLAY_FOREACH
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_FOREACH(x, name, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - root
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 298
    functionName: RB_INITIALIZER
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_INITIALIZER(root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - root
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: RB_INIT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_INIT(root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 307
    functionName: RB_ENTRY
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: RB_LEFT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_LEFT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 315
    functionName: RB_RIGHT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_RIGHT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 316
    functionName: RB_PARENT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_PARENT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 317
    functionName: RB_COLOR
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_COLOR(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 318
    functionName: RB_ROOT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_ROOT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 319
    functionName: RB_EMPTY
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elm
    - ','
    - parent
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 325
    functionName: RB_SET
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_SET(elm, parent, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - black
    - ','
    - red
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: RB_SET_BLACKRED
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_SET_BLACKRED(black, red, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 354
    functionName: RB_ROTATE_LEFT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_ROTATE_LEFT(head, elm, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 374
    functionName: RB_ROTATE_RIGHT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_ROTATE_RIGHT(head, elm, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 386
    functionName: RB_PROTOTYPE
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_PROTOTYPE(name, type, field, cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 577
    functionName: RB_GENERATE
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_GENERATE(name, type, field, cmp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RB_ROOT
      Src: /src/libevent/compat/sys/tree.h:584,1
    - Dst: RB_LEFT
      Src: /src/libevent/compat/sys/tree.h:589,1
    - Dst: RB_RIGHT
      Src: /src/libevent/compat/sys/tree.h:591,1
    - Dst: RB_SET
      Src: /src/libevent/compat/sys/tree.h:595,1
    - Dst: RB_LEFT
      Src: /src/libevent/compat/sys/tree.h:598,1
    - Dst: RB_RIGHT
      Src: /src/libevent/compat/sys/tree.h:600,1
    - Dst: RB_AUGMENT
      Src: /src/libevent/compat/sys/tree.h:601,1
    - Dst: RB_ROOT
      Src: /src/libevent/compat/sys/tree.h:603,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 606
    functionName: _RB_INSERT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached:
    - RB_RIGHT
    - RB_AUGMENT
    - RB_ROOT
    - RB_SET
    - RB_LEFT
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\t\t\\\nname##_RB_INSERT(struct name *head,
      struct type *elm)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RB_ROOT
      Src: /src/libevent/compat/sys/tree.h:612,1
    - Dst: cmp
      Src: /src/libevent/compat/sys/tree.h:615,1
    - Dst: RB_LEFT
      Src: /src/libevent/compat/sys/tree.h:617,1
    - Dst: RB_RIGHT
      Src: /src/libevent/compat/sys/tree.h:619,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 624
    functionName: _RB_FIND
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached:
    - RB_RIGHT
    - RB_ROOT
    - cmp
    - RB_LEFT
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\t\t\\\nname##_RB_FIND(struct name *head,
      struct type *elm)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RB_RIGHT
      Src: /src/libevent/compat/sys/tree.h:629,1
    - Dst: RB_RIGHT
      Src: /src/libevent/compat/sys/tree.h:630,1
    - Dst: RB_LEFT
      Src: /src/libevent/compat/sys/tree.h:631,1
    - Dst: RB_LEFT
      Src: /src/libevent/compat/sys/tree.h:632,1
    - Dst: RB_PARENT
      Src: /src/libevent/compat/sys/tree.h:634,1
    - Dst: RB_LEFT
      Src: /src/libevent/compat/sys/tree.h:635,1
    - Dst: RB_PARENT
      Src: /src/libevent/compat/sys/tree.h:635,1
    - Dst: RB_PARENT
      Src: /src/libevent/compat/sys/tree.h:636,1
    - Dst: RB_PARENT
      Src: /src/libevent/compat/sys/tree.h:638,1
    - Dst: RB_RIGHT
      Src: /src/libevent/compat/sys/tree.h:639,1
    - Dst: RB_PARENT
      Src: /src/libevent/compat/sys/tree.h:639,1
    - Dst: RB_PARENT
      Src: /src/libevent/compat/sys/tree.h:640,1
    - Dst: RB_PARENT
      Src: /src/libevent/compat/sys/tree.h:641,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - elm
    argTypes:
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 645
    functionName: _RB_NEXT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached:
    - RB_RIGHT
    - RB_PARENT
    - RB_LEFT
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\t\t\\\nname##_RB_NEXT(struct type *elm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_ROOT
      Src: /src/libevent/compat/sys/tree.h:650,1
    - Dst: RB_LEFT
      Src: /src/libevent/compat/sys/tree.h:655,1
    - Dst: RB_RIGHT
      Src: /src/libevent/compat/sys/tree.h:657,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - head
    - val
    argTypes:
    - struct name*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 660
    functionName: _RB_MINMAX
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 0
    functionsReached:
    - RB_RIGHT
    - RB_ROOT
    - RB_LEFT
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\t\t\\\nname##_RB_MINMAX(struct name *head,
      int val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 666
    functionName: RB_INSERT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_INSERT(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 667
    functionName: RB_REMOVE
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_REMOVE(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 668
    functionName: RB_FIND
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_FIND(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 669
    functionName: RB_NEXT
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_NEXT(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 670
    functionName: RB_MIN
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_MIN(name, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 671
    functionName: RB_MAX
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_MAX(name, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - name
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 676
    functionName: RB_FOREACH
    functionSourceFile: /src/libevent/compat/sys/tree.h
    functionUses: 63
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_FOREACH(x, name, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: eq
    functionSourceFile: /src/libevent/sample/watch-timing.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int eq(double a, double b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libevent/sample/watch-timing.c:83,1
    - Dst: calloc
      Src: /src/libevent/sample/watch-timing.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - max_bins
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 92
    functionName: histogram_new
    functionSourceFile: /src/libevent/sample/watch-timing.c
    functionUses: 0
    functionsReached:
    - calloc
    - malloc
    linkageType: ''
    returnType: struct histogram
    signature: 'struct histogram *

      histogram_new(unsigned max_bins)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libevent/sample/watch-timing.c:97,1
    - Dst: free
      Src: /src/libevent/sample/watch-timing.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct histogram*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: histogram_free
    functionSourceFile: /src/libevent/sample/watch-timing.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void histogram_free(struct histogram *h)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: eq
      Src: /src/libevent/sample/watch-timing.c:130,1
    - Dst: eq
      Src: /src/libevent/sample/watch-timing.c:147,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 2
    argNames:
    - h
    - observation
    argTypes:
    - struct histogram*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 185
    functionName: histogram_update
    functionSourceFile: /src/libevent/sample/watch-timing.c
    functionUses: 0
    functionsReached:
    - eq
    linkageType: ''
    returnType: void
    signature: void histogram_update(struct histogram *h, double observation)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: eq
      Src: /src/libevent/sample/watch-timing.c:245,1
    - Dst: eq
      Src: /src/libevent/sample/watch-timing.c:247,1
    - Dst: sqrt
      Src: /src/libevent/sample/watch-timing.c:251,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - h
    - quantile
    argTypes:
    - struct histogram*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 254
    functionName: histogram_query
    functionSourceFile: /src/libevent/sample/watch-timing.c
    functionUses: 0
    functionsReached:
    - sqrt
    - eq
    linkageType: ''
    returnType: double
    signature: double histogram_query(const struct histogram *h, double quantile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/sample/watch-timing.c:286,1
    - Dst: evwatch_prepare_get_timeout
      Src: /src/libevent/sample/watch-timing.c:287,1
    - Dst: evutil_timersub
      Src: /src/libevent/sample/watch-timing.c:289,1
    - Dst: histogram_update
      Src: /src/libevent/sample/watch-timing.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - watcher
    - info
    - arg
    argTypes:
    - struct evwatch*
    - struct evwatch_prepare_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 292
    functionName: on_prepare
    functionSourceFile: /src/libevent/sample/watch-timing.c
    functionUses: 0
    functionsReached:
    - evutil_timersub
    - evutil_gettimeofday
    - evwatch_prepare_get_timeout
    - histogram_update
    linkageType: ''
    returnType: void
    signature: void on_prepare(struct evwatch *watcher, const struct evwatch_prepare_cb_info
      *info, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/sample/watch-timing.c:297,1
    - Dst: evutil_timersub
      Src: /src/libevent/sample/watch-timing.c:298,1
    - Dst: evutil_timersub
      Src: /src/libevent/sample/watch-timing.c:299,1
    - Dst: histogram_update
      Src: /src/libevent/sample/watch-timing.c:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - watcher
    - info
    - arg
    argTypes:
    - struct evwatch*
    - struct evwatch_check_cb_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 302
    functionName: on_check
    functionSourceFile: /src/libevent/sample/watch-timing.c
    functionUses: 0
    functionsReached:
    - evutil_timersub
    - evutil_gettimeofday
    - histogram_update
    linkageType: ''
    returnType: void
    signature: void on_check(struct evwatch *watcher, const struct evwatch_check_cb_info
      *info, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/sample/watch-timing.c:307,1
    - Dst: histogram_query
      Src: /src/libevent/sample/watch-timing.c:308,1
    - Dst: histogram_query
      Src: /src/libevent/sample/watch-timing.c:309,1
    - Dst: histogram_query
      Src: /src/libevent/sample/watch-timing.c:310,1
    - Dst: histogram_query
      Src: /src/libevent/sample/watch-timing.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 312
    functionName: on_timeout
    functionSourceFile: /src/libevent/sample/watch-timing.c
    functionUses: 10
    functionsReached:
    - histogram_query
    - printf
    linkageType: ''
    returnType: void
    signature: void on_timeout(evutil_socket_t fd, short events, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopbreak
      Src: /src/libevent/sample/watch-timing.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sig
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 319
    functionName: on_sigint
    functionSourceFile: /src/libevent/sample/watch-timing.c
    functionUses: 0
    functionsReached:
    - event_base_loopbreak
    linkageType: ''
    returnType: void
    signature: void on_sigint(evutil_socket_t sig, short events, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: event_base_new
      Src: /src/libevent/sample/watch-timing.c:327,1
    - Dst: histogram_new
      Src: /src/libevent/sample/watch-timing.c:328,1
    - Dst: histogram_new
      Src: /src/libevent/sample/watch-timing.c:329,1
    - Dst: evwatch_prepare_new
      Src: /src/libevent/sample/watch-timing.c:333,1
    - Dst: evwatch_check_new
      Src: /src/libevent/sample/watch-timing.c:334,1
    - Dst: event_new
      Src: /src/libevent/sample/watch-timing.c:337,1
    - Dst: event_add
      Src: /src/libevent/sample/watch-timing.c:340,1
    - Dst: evsignal_new
      Src: /src/libevent/sample/watch-timing.c:343,1
    - Dst: event_add
      Src: /src/libevent/sample/watch-timing.c:346,1
    - Dst: event_base_dispatch
      Src: /src/libevent/sample/watch-timing.c:349,1
    - Dst: event_free
      Src: /src/libevent/sample/watch-timing.c:352,1
    - Dst: event_free
      Src: /src/libevent/sample/watch-timing.c:353,1
    - Dst: event_base_free
      Src: /src/libevent/sample/watch-timing.c:354,1
    - Dst: histogram_free
      Src: /src/libevent/sample/watch-timing.c:355,1
    - Dst: histogram_free
      Src: /src/libevent/sample/watch-timing.c:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 321
    functionDepth: 6
    functionLinenumber: 321
    functionLinenumberEnd: 359
    functionName: main
    functionSourceFile: /src/libevent/sample/watch-timing.c
    functionUses: 3
    functionsReached:
    - histogram_new
    - event_base_free
    - evwatch_check_new
    - event_new
    - evsignal_new
    - event_add
    - evwatch_prepare_new
    - event_base_new
    - event_free
    - histogram_free
    - event_base_dispatch
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 27
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 56
    argCount: 1
    argNames:
    - in
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 111
    functionName: Curl_raw_toupper
    functionSourceFile: /src/libevent/sample/hostcheck.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char Curl_raw_toupper(char in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Curl_raw_toupper
      Src: /src/libevent/sample/hostcheck.c:126,1
    - Dst: Curl_raw_toupper
      Src: /src/libevent/sample/hostcheck.c:126,1
    - Dst: Curl_raw_toupper
      Src: /src/libevent/sample/hostcheck.c:135,1
    - Dst: Curl_raw_toupper
      Src: /src/libevent/sample/hostcheck.c:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - first
    - second
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 136
    functionName: Curl_raw_equal
    functionSourceFile: /src/libevent/sample/hostcheck.c
    functionUses: 0
    functionsReached:
    - Curl_raw_toupper
    linkageType: ''
    returnType: int
    signature: int Curl_raw_equal(const char *first, const char *second)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Curl_raw_toupper
      Src: /src/libevent/sample/hostcheck.c:141,1
    - Dst: Curl_raw_toupper
      Src: /src/libevent/sample/hostcheck.c:141,1
    - Dst: Curl_raw_toupper
      Src: /src/libevent/sample/hostcheck.c:151,1
    - Dst: Curl_raw_toupper
      Src: /src/libevent/sample/hostcheck.c:151,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - first
    - second
    - max
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 152
    functionName: Curl_raw_nequal
    functionSourceFile: /src/libevent/sample/hostcheck.c
    functionUses: 0
    functionsReached:
    - Curl_raw_toupper
    linkageType: ''
    returnType: int
    signature: int Curl_raw_nequal(const char *first, const char *second, size_t max)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/libevent/sample/hostcheck.c:168,1
    - Dst: Curl_raw_equal
      Src: /src/libevent/sample/hostcheck.c:170,1
    - Dst: strchr
      Src: /src/libevent/sample/hostcheck.c:176,1
    - Dst: strchr
      Src: /src/libevent/sample/hostcheck.c:177,1
    - Dst: Curl_raw_nequal
      Src: /src/libevent/sample/hostcheck.c:179,1
    - Dst: Curl_raw_equal
      Src: /src/libevent/sample/hostcheck.c:183,1
    - Dst: strchr
      Src: /src/libevent/sample/hostcheck.c:186,1
    - Dst: Curl_raw_equal
      Src: /src/libevent/sample/hostcheck.c:188,1
    - Dst: Curl_raw_nequal
      Src: /src/libevent/sample/hostcheck.c:199,1
    - Dst: Curl_raw_nequal
      Src: /src/libevent/sample/hostcheck.c:200,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 2
    argNames:
    - hostname
    - pattern
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 203
    functionName: hostmatch
    functionSourceFile: /src/libevent/sample/hostcheck.c
    functionUses: 0
    functionsReached:
    - Curl_raw_equal
    - Curl_raw_nequal
    - strchr
    linkageType: ''
    returnType: int
    signature: int hostmatch(const char *hostname, const char *pattern)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Curl_raw_equal
      Src: /src/libevent/sample/hostcheck.c:211,1
    - Dst: hostmatch
      Src: /src/libevent/sample/hostcheck.c:214,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - match_pattern
    - hostname
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 217
    functionName: Curl_cert_hostcheck
    functionSourceFile: /src/libevent/sample/hostcheck.c
    functionUses: 0
    functionsReached:
    - hostmatch
    - Curl_raw_equal
    linkageType: ''
    returnType: int
    signature: int Curl_cert_hostcheck(const char *match_pattern, const char *hostname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/libevent/sample/dns-example.c:49,1
    - Dst: evutil_snprintf
      Src: /src/libevent/sample/dns-example.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - address
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: debug_ntoa
    functionSourceFile: /src/libevent/sample/dns-example.c
    functionUses: 0
    functionsReached:
    - evutil_snprintf
    - ntohl
    linkageType: ''
    returnType: char
    signature: 'char *

      debug_ntoa(u32 address)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:65,1
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:70,1
    - Dst: debug_ntoa
      Src: /src/libevent/sample/dns-example.c:70,1
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:72,1
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:76,1
    - Dst: fflush
      Src: /src/libevent/sample/dns-example.c:78,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 6
    argNames:
    - result
    - type
    - count
    - ttl
    - addrs
    - orig
    argTypes:
    - int
    - char
    - int
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 79
    functionName: main_callback
    functionSourceFile: /src/libevent/sample/dns-example.c
    functionUses: 0
    functionsReached:
    - fflush
    - debug_ntoa
    - printf
    linkageType: ''
    returnType: void
    signature: "void main_callback(int result, char type, int count, int ttl,\n\t\t\t
      \ void *addrs, void *orig)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:89,1
    - Dst: evutil_gai_strerror
      Src: /src/libevent/sample/dns-example.c:89,1
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:92,1
    - Dst: evutil_inet_ntop
      Src: /src/libevent/sample/dns-example.c:98,1
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:100,1
    - Dst: evutil_inet_ntop
      Src: /src/libevent/sample/dns-example.c:104,1
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:106,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/sample/dns-example.c:111,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - err
    - ai
    - arg
    argTypes:
    - int
    - struct evutil_addrinfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 112
    functionName: gai_callback
    functionSourceFile: /src/libevent/sample/dns-example.c
    functionUses: 0
    functionsReached:
    - evutil_gai_strerror
    - evutil_freeaddrinfo
    - evutil_inet_ntop
    - printf
    linkageType: ''
    returnType: void
    signature: void gai_callback(int err, struct evutil_addrinfo *ai, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/libevent/sample/dns-example.c:122,1
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:125,1
    - Dst: evdns_server_request_add_a_reply
      Src: /src/libevent/sample/dns-example.c:126,1
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:129,1
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:132,1
    - Dst: evdns_server_request_add_ptr_reply
      Src: /src/libevent/sample/dns-example.c:133,1
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:136,1
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:138,1
    - Dst: evdns_server_request_respond
      Src: /src/libevent/sample/dns-example.c:143,1
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:145,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - req
    - data
    argTypes:
    - struct evdns_server_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 114
    functionDepth: 6
    functionLinenumber: 114
    functionLinenumberEnd: 146
    functionName: evdns_server_callback
    functionSourceFile: /src/libevent/sample/dns-example.c
    functionUses: 0
    functionsReached:
    - evdns_server_request_respond
    - printf
    - htonl
    - evdns_server_request_add_ptr_reply
    - evdns_server_request_add_a_reply
    linkageType: ''
    returnType: void
    signature: void evdns_server_callback(struct evdns_server_request *req, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/sample/dns-example.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - is_warn
    - msg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: logfn
    functionSourceFile: /src/libevent/sample/dns-example.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void logfn(int is_warn, const char *msg)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/sample/dns-example.c:171,1
    - Dst: fprintf
      Src: /src/libevent/sample/dns-example.c:174,1
    - Dst: fprintf
      Src: /src/libevent/sample/dns-example.c:175,1
    - Dst: getopt
      Src: /src/libevent/sample/dns-example.c:179,1
    - Dst: fprintf
      Src: /src/libevent/sample/dns-example.c:187,1
    - Dst: WSAStartup
      Src: /src/libevent/sample/dns-example.c:194,1
    - Dst: event_base_new
      Src: /src/libevent/sample/dns-example.c:198,1
    - Dst: fprintf
      Src: /src/libevent/sample/dns-example.c:200,1
    - Dst: evdns_base_new
      Src: /src/libevent/sample/dns-example.c:203,1
    - Dst: event_base_free
      Src: /src/libevent/sample/dns-example.c:205,1
    - Dst: fprintf
      Src: /src/libevent/sample/dns-example.c:206,1
    - Dst: evdns_set_log_fn
      Src: /src/libevent/sample/dns-example.c:210,1
    - Dst: socket
      Src: /src/libevent/sample/dns-example.c:215,1
    - Dst: perror
      Src: /src/libevent/sample/dns-example.c:217,1
    - Dst: exit
      Src: /src/libevent/sample/dns-example.c:218,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/sample/dns-example.c:220,1
    - Dst: htons
      Src: /src/libevent/sample/dns-example.c:222,1
    - Dst: bind
      Src: /src/libevent/sample/dns-example.c:224,1
    - Dst: perror
      Src: /src/libevent/sample/dns-example.c:225,1
    - Dst: exit
      Src: /src/libevent/sample/dns-example.c:226,1
    - Dst: evdns_add_server_port_with_base
      Src: /src/libevent/sample/dns-example.c:228,1
    - Dst: evdns_base_config_windows_nameservers
      Src: /src/libevent/sample/dns-example.c:234,1
    - Dst: evdns_base_nameserver_ip_add
      Src: /src/libevent/sample/dns-example.c:238,1
    - Dst: evdns_base_resolv_conf_parse
      Src: /src/libevent/sample/dns-example.c:240,1
    - Dst: fprintf
      Src: /src/libevent/sample/dns-example.c:244,1
    - Dst: printf
      Src: /src/libevent/sample/dns-example.c:249,1
    - Dst: evutil_inet_pton
      Src: /src/libevent/sample/dns-example.c:253,1
    - Dst: fprintf
      Src: /src/libevent/sample/dns-example.c:254,1
    - Dst: fprintf
      Src: /src/libevent/sample/dns-example.c:257,1
    - Dst: evdns_base_resolve_reverse
      Src: /src/libevent/sample/dns-example.c:258,1
    - Dst: memset
      Src: /src/libevent/sample/dns-example.c:261,1
    - Dst: fprintf
      Src: /src/libevent/sample/dns-example.c:265,1
    - Dst: evdns_getaddrinfo
      Src: /src/libevent/sample/dns-example.c:266,1
    - Dst: fprintf
      Src: /src/libevent/sample/dns-example.c:269,1
    - Dst: evdns_base_resolve_ipv4
      Src: /src/libevent/sample/dns-example.c:270,1
    - Dst: fflush
      Src: /src/libevent/sample/dns-example.c:273,1
    - Dst: event_base_dispatch
      Src: /src/libevent/sample/dns-example.c:274,1
    - Dst: evdns_base_free
      Src: /src/libevent/sample/dns-example.c:275,1
    - Dst: event_base_free
      Src: /src/libevent/sample/dns-example.c:276,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 100
    argCount: 2
    argNames:
    - c
    - v
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 157
    functionDepth: 10
    functionLinenumber: 157
    functionLinenumberEnd: 278
    functionName: main
    functionSourceFile: /src/libevent/sample/dns-example.c
    functionUses: 3
    functionsReached:
    - evdns_add_server_port_with_base
    - event_base_free
    - printf
    - htons
    - bind
    - evdns_base_resolve_ipv4
    - evdns_getaddrinfo
    - evdns_set_log_fn
    - fflush
    - evdns_base_nameserver_ip_add
    - evutil_inet_pton
    - event_base_new
    - fprintf
    - evutil_make_socket_nonblocking
    - evdns_base_resolve_reverse
    - exit
    - perror
    - evdns_base_config_windows_nameservers
    - evdns_base_free
    - memset
    - getopt
    - evdns_base_resolv_conf_parse
    - socket
    - evdns_base_new
    - WSAStartup
    - event_base_dispatch
    linkageType: ''
    returnType: int
    signature: int main(int c, char **v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: S_ISDIR
    functionSourceFile: /src/libevent/sample/http-server.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISDIR(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/libevent/sample/http-server.c:120,1
    - Dst: strchr
      Src: /src/libevent/sample/http-server.c:121,1
    - Dst: evutil_ascii_strcasecmp
      Src: /src/libevent/sample/http-server.c:125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 131
    functionName: guess_content_type
    functionSourceFile: /src/libevent/sample/http-server.c
    functionUses: 0
    functionsReached:
    - strrchr
    - evutil_ascii_strcasecmp
    - strchr
    linkageType: ''
    returnType: char
    signature: 'char *

      guess_content_type(const char *path)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_get_command
      Src: /src/libevent/sample/http-server.c:143,1
    - Dst: printf
      Src: /src/libevent/sample/http-server.c:156,1
    - Dst: evhttp_request_get_uri
      Src: /src/libevent/sample/http-server.c:157,1
    - Dst: evhttp_request_get_input_headers
      Src: /src/libevent/sample/http-server.c:159,1
    - Dst: printf
      Src: /src/libevent/sample/http-server.c:162,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/sample/http-server.c:165,1
    - Dst: puts
      Src: /src/libevent/sample/http-server.c:166,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/sample/http-server.c:167,1
    - Dst: evbuffer_remove
      Src: /src/libevent/sample/http-server.c:170,1
    - Dst: fwrite
      Src: /src/libevent/sample/http-server.c:172,1
    - Dst: puts
      Src: /src/libevent/sample/http-server.c:174,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/sample/http-server.c:176,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 135
    functionDepth: 6
    functionLinenumber: 135
    functionLinenumberEnd: 177
    functionName: dump_request_cb
    functionSourceFile: /src/libevent/sample/http-server.c
    functionUses: 0
    functionsReached:
    - evhttp_send_reply
    - evbuffer_remove
    - printf
    - evhttp_request_get_uri
    - puts
    - fwrite
    - evhttp_request_get_command
    - evbuffer_get_length
    - evhttp_request_get_input_buffer
    - evhttp_request_get_input_headers
    linkageType: ''
    returnType: void
    signature: void dump_request_cb(struct evhttp_request *req, void *arg)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_request_get_uri
      Src: /src/libevent/sample/http-server.c:188,1
    - Dst: evhttp_request_get_command
      Src: /src/libevent/sample/http-server.c:197,1
    - Dst: dump_request_cb
      Src: /src/libevent/sample/http-server.c:198,1
    - Dst: printf
      Src: /src/libevent/sample/http-server.c:202,1
    - Dst: evhttp_uri_parse
      Src: /src/libevent/sample/http-server.c:205,1
    - Dst: printf
      Src: /src/libevent/sample/http-server.c:207,1
    - Dst: evhttp_send_error
      Src: /src/libevent/sample/http-server.c:208,1
    - Dst: evhttp_uri_get_path
      Src: /src/libevent/sample/http-server.c:213,1
    - Dst: evhttp_uridecode
      Src: /src/libevent/sample/http-server.c:217,1
    - Dst: strstr
      Src: /src/libevent/sample/http-server.c:224,1
    - Dst: strlen
      Src: /src/libevent/sample/http-server.c:227,1
    - Dst: strlen
      Src: /src/libevent/sample/http-server.c:227,1
    - Dst: malloc
      Src: /src/libevent/sample/http-server.c:228,1
    - Dst: perror
      Src: /src/libevent/sample/http-server.c:229,1
    - Dst: evutil_snprintf
      Src: /src/libevent/sample/http-server.c:232,1
    - Dst: stat
      Src: /src/libevent/sample/http-server.c:234,1
    - Dst: evbuffer_new
      Src: /src/libevent/sample/http-server.c:239,1
    - Dst: S_ISDIR
      Src: /src/libevent/sample/http-server.c:241,1
    - Dst: strlen
      Src: /src/libevent/sample/http-server.c:255,1
    - Dst: strlen
      Src: /src/libevent/sample/http-server.c:255,1
    - Dst: strlen
      Src: /src/libevent/sample/http-server.c:259,1
    - Dst: malloc
      Src: /src/libevent/sample/http-server.c:260,1
    - Dst: memcpy
      Src: /src/libevent/sample/http-server.c:263,1
    - Dst: FindFirstFileA
      Src: /src/libevent/sample/http-server.c:267,1
    - Dst: free
      Src: /src/libevent/sample/http-server.c:268,1
    - Dst: opendir
      Src: /src/libevent/sample/http-server.c:272,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/sample/http-server.c:276,1
    - Dst: readdir
      Src: /src/libevent/sample/http-server.c:294,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/sample/http-server.c:297,1
    - Dst: FindNextFileA
      Src: /src/libevent/sample/http-server.c:301,1
    - Dst: evbuffer_add_printf
      Src: /src/libevent/sample/http-server.c:305,1
    - Dst: FindClose
      Src: /src/libevent/sample/http-server.c:307,1
    - Dst: closedir
      Src: /src/libevent/sample/http-server.c:309,1
    - Dst: evhttp_add_header
      Src: /src/libevent/sample/http-server.c:311,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/sample/http-server.c:311,1
    - Dst: guess_content_type
      Src: /src/libevent/sample/http-server.c:316,1
    - Dst: open
      Src: /src/libevent/sample/http-server.c:317,1
    - Dst: perror
      Src: /src/libevent/sample/http-server.c:318,1
    - Dst: fstat
      Src: /src/libevent/sample/http-server.c:322,1
    - Dst: perror
      Src: /src/libevent/sample/http-server.c:325,1
    - Dst: evhttp_add_header
      Src: /src/libevent/sample/http-server.c:328,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/sample/http-server.c:328,1
    - Dst: evbuffer_add_file
      Src: /src/libevent/sample/http-server.c:330,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/sample/http-server.c:333,1
    - Dst: evhttp_send_error
      Src: /src/libevent/sample/http-server.c:336,1
    - Dst: close
      Src: /src/libevent/sample/http-server.c:338,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/sample/http-server.c:341,1
    - Dst: free
      Src: /src/libevent/sample/http-server.c:343,1
    - Dst: free
      Src: /src/libevent/sample/http-server.c:345,1
    - Dst: evbuffer_free
      Src: /src/libevent/sample/http-server.c:347,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 97
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 183
    functionDepth: 9
    functionLinenumber: 183
    functionLinenumberEnd: 348
    functionName: send_document_cb
    functionSourceFile: /src/libevent/sample/http-server.c
    functionUses: 0
    functionsReached:
    - guess_content_type
    - evbuffer_free
    - open
    - printf
    - evbuffer_add_file
    - stat
    - evhttp_request_get_command
    - readdir
    - evhttp_uri_free
    - evhttp_send_error
    - evhttp_request_get_uri
    - closedir
    - memcpy
    - FindClose
    - evhttp_uridecode
    - evutil_snprintf
    - strlen
    - dump_request_cb
    - close
    - FindFirstFileA
    - evhttp_uri_parse
    - perror
    - evhttp_uri_get_path
    - FindNextFileA
    - malloc
    - opendir
    - S_ISDIR
    - evhttp_send_reply
    - fstat
    - evhttp_add_header
    - evbuffer_add_printf
    - free
    - strstr
    - evhttp_request_get_output_headers
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void send_document_cb(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/sample/http-server.c:353,1
    - Dst: exit
      Src: /src/libevent/sample/http-server.c:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - prog
    - exit_code
    argTypes:
    - FILE*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 363
    functionName: print_usage
    functionSourceFile: /src/libevent/sample/http-server.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_usage(FILE *out, const char *prog, int exit_code)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/sample/http-server.c:370,1
    - Dst: getopt
      Src: /src/libevent/sample/http-server.c:372,1
    - Dst: atoi
      Src: /src/libevent/sample/http-server.c:374,1
    - Dst: atoi
      Src: /src/libevent/sample/http-server.c:378,1
    - Dst: print_usage
      Src: /src/libevent/sample/http-server.c:381,1
    - Dst: fprintf
      Src: /src/libevent/sample/http-server.c:382,1
    - Dst: print_usage
      Src: /src/libevent/sample/http-server.c:387,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 392
    functionName: parse_opts
    functionSourceFile: /src/libevent/sample/http-server.c
    functionUses: 0
    functionsReached:
    - print_usage
    - getopt
    - memset
    - fprintf
    - atoi
    linkageType: ''
    returnType: struct options
    signature: struct options parse_opts(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopbreak
      Src: /src/libevent/sample/http-server.c:398,1
    - Dst: fprintf
      Src: /src/libevent/sample/http-server.c:399,1
    - Dst: evutil_strsignal
      Src: /src/libevent/sample/http-server.c:400,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/sample/http-server.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sig
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 394
    functionDepth: 3
    functionLinenumber: 394
    functionLinenumberEnd: 401
    functionName: do_term
    functionSourceFile: /src/libevent/sample/http-server.c
    functionUses: 0
    functionsReached:
    - evutil_strsignal
    - fprintf
    - EV_SOCK_ARG
    - event_base_loopbreak
    linkageType: ''
    returnType: void
    signature: void do_term(evutil_socket_t sig, short events, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_bound_socket_get_fd
      Src: /src/libevent/sample/http-server.c:414,1
    - Dst: memset
      Src: /src/libevent/sample/http-server.c:415,1
    - Dst: getsockname
      Src: /src/libevent/sample/http-server.c:416,1
    - Dst: perror
      Src: /src/libevent/sample/http-server.c:417,1
    - Dst: ntohs
      Src: /src/libevent/sample/http-server.c:422,1
    - Dst: ntohs
      Src: /src/libevent/sample/http-server.c:425,1
    - Dst: printf
      Src: /src/libevent/sample/http-server.c:430,1
    - Dst: fprintf
      Src: /src/libevent/sample/http-server.c:435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - handle
    argTypes:
    - struct evhttp_bound_socket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 438
    functionName: display_listen_sock
    functionSourceFile: /src/libevent/sample/http-server.c
    functionUses: 0
    functionsReached:
    - ntohs
    - evhttp_bound_socket_get_fd
    - getsockname
    - perror
    - printf
    - memset
    - fprintf
    linkageType: ''
    returnType: int
    signature: int display_listen_sock(struct evhttp_bound_socket *handle)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: parse_opts
      Src: /src/libevent/sample/http-server.c:463,1
    - Dst: MAKEWORD
      Src: /src/libevent/sample/http-server.c:470,1
    - Dst: WSAStartup
      Src: /src/libevent/sample/http-server.c:471,1
    - Dst: signal
      Src: /src/libevent/sample/http-server.c:474,1
    - Dst: setbuf
      Src: /src/libevent/sample/http-server.c:480,1
    - Dst: setbuf
      Src: /src/libevent/sample/http-server.c:481,1
    - Dst: getenv
      Src: /src/libevent/sample/http-server.c:484,1
    - Dst: event_enable_debug_logging
      Src: /src/libevent/sample/http-server.c:485,1
    - Dst: event_config_new
      Src: /src/libevent/sample/http-server.c:487,1
    - Dst: evthread_use_windows_threads
      Src: /src/libevent/sample/http-server.c:491,1
    - Dst: event_config_set_num_cpus_hint
      Src: /src/libevent/sample/http-server.c:492,1
    - Dst: event_config_set_flag
      Src: /src/libevent/sample/http-server.c:494,1
    - Dst: event_base_new_with_config
      Src: /src/libevent/sample/http-server.c:498,1
    - Dst: fprintf
      Src: /src/libevent/sample/http-server.c:500,1
    - Dst: event_config_free
      Src: /src/libevent/sample/http-server.c:503,1
    - Dst: evhttp_new
      Src: /src/libevent/sample/http-server.c:507,1
    - Dst: fprintf
      Src: /src/libevent/sample/http-server.c:509,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/sample/http-server.c:514,1
    - Dst: evhttp_set_gencb
      Src: /src/libevent/sample/http-server.c:518,1
    - Dst: evhttp_set_max_body_size
      Src: /src/libevent/sample/http-server.c:520,1
    - Dst: unlink
      Src: /src/libevent/sample/http-server.c:526,1
    - Dst: perror
      Src: /src/libevent/sample/http-server.c:527,1
    - Dst: strcpy
      Src: /src/libevent/sample/http-server.c:533,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/sample/http-server.c:535,1
    - Dst: perror
      Src: /src/libevent/sample/http-server.c:539,1
    - Dst: evhttp_bind_listener
      Src: /src/libevent/sample/http-server.c:544,1
    - Dst: fprintf
      Src: /src/libevent/sample/http-server.c:546,1
    - Dst: fprintf
      Src: /src/libevent/sample/http-server.c:551,1
    - Dst: evhttp_bind_socket_with_handle
      Src: /src/libevent/sample/http-server.c:557,1
    - Dst: fprintf
      Src: /src/libevent/sample/http-server.c:559,1
    - Dst: display_listen_sock
      Src: /src/libevent/sample/http-server.c:565,1
    - Dst: evsignal_new
      Src: /src/libevent/sample/http-server.c:570,1
    - Dst: event_add
      Src: /src/libevent/sample/http-server.c:573,1
    - Dst: event_base_dispatch
      Src: /src/libevent/sample/http-server.c:576,1
    - Dst: WSACleanup
      Src: /src/libevent/sample/http-server.c:579,1
    - Dst: event_config_free
      Src: /src/libevent/sample/http-server.c:584,1
    - Dst: evhttp_free
      Src: /src/libevent/sample/http-server.c:586,1
    - Dst: event_free
      Src: /src/libevent/sample/http-server.c:588,1
    - Dst: event_base_free
      Src: /src/libevent/sample/http-server.c:590,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 96
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 454
    functionDepth: 6
    functionLinenumber: 454
    functionLinenumberEnd: 593
    functionName: main
    functionSourceFile: /src/libevent/sample/http-server.c
    functionUses: 3
    functionsReached:
    - event_base_free
    - event_add
    - strcpy
    - event_free
    - getenv
    - evconnlistener_new_bind
    - evhttp_bind_socket_with_handle
    - evhttp_bind_listener
    - evhttp_free
    - event_enable_debug_logging
    - signal
    - WSAStartup
    - evhttp_set_max_body_size
    - fprintf
    - unlink
    - MAKEWORD
    - event_config_set_num_cpus_hint
    - perror
    - parse_opts
    - event_config_free
    - evthread_use_windows_threads
    - evhttp_set_gencb
    - setbuf
    - event_config_new
    - display_listen_sock
    - evsignal_new
    - event_base_new_with_config
    - event_config_set_flag
    - WSACleanup
    - evhttp_set_cb
    - evhttp_new
    - event_base_dispatch
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 18
    functionName: VERIFY
    functionSourceFile: /src/libevent/sample/http-connect.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERIFY(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:29,1
    - Dst: evhttp_uri_parse
      Src: /src/libevent/sample/http-connect.c:29,1
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:30,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/sample/http-connect.c:30,1
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:31,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/sample/http-connect.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: uri_parse
    functionSourceFile: /src/libevent/sample/http-connect.c
    functionUses: 3
    functionsReached:
    - VERIFY
    - evhttp_uri_get_host
    - evhttp_uri_parse
    - evhttp_uri_get_port
    linkageType: ''
    returnType: struct evhttp_uri
    signature: struct evhttp_uri * uri_parse(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:38,1
    - Dst: evhttp_uri_join
      Src: /src/libevent/sample/http-connect.c:38,1
    - Dst: evhttp_uri_parse
      Src: /src/libevent/sample/http-connect.c:40,1
    - Dst: evhttp_uri_set_scheme
      Src: /src/libevent/sample/http-connect.c:41,1
    - Dst: evhttp_uri_set_userinfo
      Src: /src/libevent/sample/http-connect.c:42,1
    - Dst: evhttp_uri_set_host
      Src: /src/libevent/sample/http-connect.c:43,1
    - Dst: evhttp_uri_set_port
      Src: /src/libevent/sample/http-connect.c:44,1
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:45,1
    - Dst: evhttp_uri_join
      Src: /src/libevent/sample/http-connect.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - uri
    - buffer
    argTypes:
    - struct evhttp_uri*
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 47
    functionName: uri_path
    functionSourceFile: /src/libevent/sample/http-connect.c
    functionUses: 0
    functionsReached:
    - VERIFY
    - evhttp_uri_parse
    - evhttp_uri_set_scheme
    - evhttp_uri_set_port
    - evhttp_uri_set_userinfo
    - evhttp_uri_set_host
    - evhttp_uri_join
    linkageType: ''
    returnType: char
    signature: char * uri_path(struct evhttp_uri *uri, char buffer[URL_MAX])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:50,1
    - Dst: evhttp_uri_join
      Src: /src/libevent/sample/http-connect.c:50,1
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:51,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/sample/http-connect.c:51,1
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:52,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/sample/http-connect.c:52,1
    - Dst: evutil_snprintf
      Src: /src/libevent/sample/http-connect.c:53,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/sample/http-connect.c:54,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/sample/http-connect.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - uri
    - buffer
    argTypes:
    - struct evhttp_uri*
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: uri_hostport
    functionSourceFile: /src/libevent/sample/http-connect.c
    functionUses: 0
    functionsReached:
    - evhttp_uri_get_host
    - VERIFY
    - evhttp_uri_get_port
    - evutil_snprintf
    - evhttp_uri_join
    linkageType: ''
    returnType: char
    signature: char * uri_hostport(struct evhttp_uri *uri, char buffer[URL_MAX])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:63,1
    - Dst: evhttp_request_get_input_buffer
      Src: /src/libevent/sample/http-connect.c:65,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/sample/http-connect.c:66,1
    - Dst: fwrite
      Src: /src/libevent/sample/http-connect.c:67,1
    - Dst: evbuffer_pullup
      Src: /src/libevent/sample/http-connect.c:67,1
    - Dst: evbuffer_drain
      Src: /src/libevent/sample/http-connect.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 69
    functionName: get_cb
    functionSourceFile: /src/libevent/sample/http-connect.c
    functionUses: 0
    functionsReached:
    - VERIFY
    - evbuffer_pullup
    - fwrite
    - evbuffer_get_length
    - evhttp_request_get_input_buffer
    - evbuffer_drain
    linkageType: ''
    returnType: void
    signature: void get_cb(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:79,1
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:80,1
    - Dst: evhttp_request_new
      Src: /src/libevent/sample/http-connect.c:82,1
    - Dst: evhttp_add_header
      Src: /src/libevent/sample/http-connect.c:83,1
    - Dst: evhttp_add_header
      Src: /src/libevent/sample/http-connect.c:84,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/sample/http-connect.c:84,1
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:85,1
    - Dst: evhttp_make_request
      Src: /src/libevent/sample/http-connect.c:85,1
    - Dst: uri_path
      Src: /src/libevent/sample/http-connect.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - proxy_req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 71
    functionDepth: 6
    functionLinenumber: 71
    functionLinenumberEnd: 87
    functionName: connect_cb
    functionSourceFile: /src/libevent/sample/http-connect.c
    functionUses: 0
    functionsReached:
    - evhttp_uri_get_host
    - evhttp_make_request
    - VERIFY
    - uri_path
    - evhttp_add_header
    - evhttp_request_new
    linkageType: ''
    returnType: void
    signature: void connect_cb(struct evhttp_request *proxy_req, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/sample/http-connect.c:103,1
    - Dst: uri_parse
      Src: /src/libevent/sample/http-connect.c:107,1
    - Dst: uri_parse
      Src: /src/libevent/sample/http-connect.c:108,1
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:110,1
    - Dst: event_base_new
      Src: /src/libevent/sample/http-connect.c:110,1
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:111,1
    - Dst: evhttp_connection_base_new
      Src: /src/libevent/sample/http-connect.c:111,1
    - Dst: evhttp_uri_get_host
      Src: /src/libevent/sample/http-connect.c:112,1
    - Dst: evhttp_uri_get_port
      Src: /src/libevent/sample/http-connect.c:112,1
    - Dst: VERIFY
      Src: /src/libevent/sample/http-connect.c:115,1
    - Dst: evhttp_request_new
      Src: /src/libevent/sample/http-connect.c:115,1
    - Dst: uri_hostport
      Src: /src/libevent/sample/http-connect.c:117,1
    - Dst: evhttp_add_header
      Src: /src/libevent/sample/http-connect.c:118,1
    - Dst: evhttp_add_header
      Src: /src/libevent/sample/http-connect.c:119,1
    - Dst: evhttp_make_request
      Src: /src/libevent/sample/http-connect.c:120,1
    - Dst: event_base_dispatch
      Src: /src/libevent/sample/http-connect.c:122,1
    - Dst: evhttp_connection_free
      Src: /src/libevent/sample/http-connect.c:124,1
    - Dst: event_base_free
      Src: /src/libevent/sample/http-connect.c:125,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/sample/http-connect.c:126,1
    - Dst: evhttp_uri_free
      Src: /src/libevent/sample/http-connect.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 89
    functionDepth: 7
    functionLinenumber: 89
    functionLinenumberEnd: 130
    functionName: main
    functionSourceFile: /src/libevent/sample/http-connect.c
    functionUses: 3
    functionsReached:
    - evhttp_uri_get_host
    - evhttp_make_request
    - evhttp_connection_free
    - VERIFY
    - event_base_free
    - uri_parse
    - evhttp_add_header
    - evhttp_uri_get_port
    - evhttp_request_new
    - printf
    - uri_hostport
    - evhttp_uri_free
    - evhttp_connection_base_new
    - event_base_new
    - event_base_dispatch
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/sample/event-read-fifo.c:43,1
    - Dst: ReadFile
      Src: /src/libevent/sample/event-read-fifo.c:46,1
    - Dst: fprintf
      Src: /src/libevent/sample/event-read-fifo.c:50,1
    - Dst: event_del
      Src: /src/libevent/sample/event-read-fifo.c:51,1
    - Dst: read
      Src: /src/libevent/sample/event-read-fifo.c:57,1
    - Dst: perror
      Src: /src/libevent/sample/event-read-fifo.c:61,1
    - Dst: fprintf
      Src: /src/libevent/sample/event-read-fifo.c:63,1
    - Dst: event_del
      Src: /src/libevent/sample/event-read-fifo.c:64,1
    - Dst: event_base_loopbreak
      Src: /src/libevent/sample/event-read-fifo.c:65,1
    - Dst: event_get_base
      Src: /src/libevent/sample/event-read-fifo.c:65,1
    - Dst: fprintf
      Src: /src/libevent/sample/event-read-fifo.c:71,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 33
    functionDepth: 4
    functionLinenumber: 33
    functionLinenumberEnd: 72
    functionName: fifo_read
    functionSourceFile: /src/libevent/sample/event-read-fifo.c
    functionUses: 0
    functionsReached:
    - event_del
    - ReadFile
    - perror
    - read
    - fprintf
    - event_get_base
    - event_base_loopbreak
    linkageType: ''
    returnType: void
    signature: void fifo_read(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopbreak
      Src: /src/libevent/sample/event-read-fifo.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: signal_cb
    functionSourceFile: /src/libevent/sample/event-read-fifo.c
    functionUses: 0
    functionsReached:
    - event_base_loopbreak
    linkageType: ''
    returnType: void
    signature: void signal_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CreateFileA
      Src: /src/libevent/sample/event-read-fifo.c:92,1
    - Dst: lstat
      Src: /src/libevent/sample/event-read-fifo.c:109,1
    - Dst: perror
      Src: /src/libevent/sample/event-read-fifo.c:112,1
    - Dst: exit
      Src: /src/libevent/sample/event-read-fifo.c:113,1
    - Dst: unlink
      Src: /src/libevent/sample/event-read-fifo.c:117,1
    - Dst: mkfifo
      Src: /src/libevent/sample/event-read-fifo.c:118,1
    - Dst: perror
      Src: /src/libevent/sample/event-read-fifo.c:119,1
    - Dst: exit
      Src: /src/libevent/sample/event-read-fifo.c:120,1
    - Dst: open
      Src: /src/libevent/sample/event-read-fifo.c:123,1
    - Dst: perror
      Src: /src/libevent/sample/event-read-fifo.c:126,1
    - Dst: exit
      Src: /src/libevent/sample/event-read-fifo.c:127,1
    - Dst: fprintf
      Src: /src/libevent/sample/event-read-fifo.c:130,1
    - Dst: event_base_new
      Src: /src/libevent/sample/event-read-fifo.c:133,1
    - Dst: event_new
      Src: /src/libevent/sample/event-read-fifo.c:137,1
    - Dst: event_self_cbarg
      Src: /src/libevent/sample/event-read-fifo.c:138,1
    - Dst: evsignal_new
      Src: /src/libevent/sample/event-read-fifo.c:141,1
    - Dst: perror
      Src: /src/libevent/sample/event-read-fifo.c:143,1
    - Dst: event_add
      Src: /src/libevent/sample/event-read-fifo.c:146,1
    - Dst: event_new
      Src: /src/libevent/sample/event-read-fifo.c:148,1
    - Dst: event_self_cbarg
      Src: /src/libevent/sample/event-read-fifo.c:149,1
    - Dst: perror
      Src: /src/libevent/sample/event-read-fifo.c:152,1
    - Dst: event_add
      Src: /src/libevent/sample/event-read-fifo.c:157,1
    - Dst: event_base_dispatch
      Src: /src/libevent/sample/event-read-fifo.c:159,1
    - Dst: event_free
      Src: /src/libevent/sample/event-read-fifo.c:162,1
    - Dst: event_free
      Src: /src/libevent/sample/event-read-fifo.c:164,1
    - Dst: event_base_free
      Src: /src/libevent/sample/event-read-fifo.c:165,1
    - Dst: CloseHandle
      Src: /src/libevent/sample/event-read-fifo.c:167,1
    - Dst: close
      Src: /src/libevent/sample/event-read-fifo.c:169,1
    - Dst: unlink
      Src: /src/libevent/sample/event-read-fifo.c:170,1
    - Dst: libevent_global_shutdown
      Src: /src/libevent/sample/event-read-fifo.c:172,1
    - Dst: event_free
      Src: /src/libevent/sample/event-read-fifo.c:178,1
    - Dst: event_free
      Src: /src/libevent/sample/event-read-fifo.c:181,1
    - Dst: event_base_free
      Src: /src/libevent/sample/event-read-fifo.c:182,1
    - Dst: CloseHandle
      Src: /src/libevent/sample/event-read-fifo.c:184,1
    - Dst: close
      Src: /src/libevent/sample/event-read-fifo.c:186,1
    - Dst: unlink
      Src: /src/libevent/sample/event-read-fifo.c:187,1
    - Dst: libevent_global_shutdown
      Src: /src/libevent/sample/event-read-fifo.c:189,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 60
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 84
    functionDepth: 6
    functionLinenumber: 84
    functionLinenumberEnd: 191
    functionName: main
    functionSourceFile: /src/libevent/sample/event-read-fifo.c
    functionUses: 3
    functionsReached:
    - event_base_free
    - open
    - event_add
    - event_free
    - lstat
    - CloseHandle
    - event_base_new
    - fprintf
    - close
    - unlink
    - mkfifo
    - exit
    - perror
    - libevent_global_shutdown
    - CreateFileA
    - event_self_cbarg
    - event_new
    - evsignal_new
    - event_base_dispatch
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/libevent/sample/https-client.c:119,1
    - Dst: fputs
      Src: /src/libevent/sample/https-client.c:120,1
    - Dst: fputs
      Src: /src/libevent/sample/https-client.c:121,1
    - Dst: fputs
      Src: /src/libevent/sample/https-client.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 123
    functionName: syntax
    functionSourceFile: /src/libevent/sample/https-client.c
    functionUses: 0
    functionsReached:
    - fputs
    linkageType: ''
    returnType: void
    signature: void syntax(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/libevent/sample/https-client.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: err
    functionSourceFile: /src/libevent/sample/https-client.c
    functionUses: 13
    functionsReached:
    - fputs
    linkageType: ''
    returnType: void
    signature: void err(const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_strerror
      Src: /src/libevent/sample/https-client.c:136,1
    - Dst: fprintf
      Src: /src/libevent/sample/https-client.c:137,1
    - Dst: exit
      Src: /src/libevent/sample/https-client.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - func
    - err
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: err_mbedtls
    functionSourceFile: /src/libevent/sample/https-client.c
    functionUses: 0
    functionsReached:
    - fprintf
    - mbedtls_strerror
    - exit
    linkageType: ''
    returnType: void
    signature: void err_mbedtls(const char* func, int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - userdata
    - crt
    - depth
    - flags
    argTypes:
    - void*
    - mbedtls_x509_crt*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: cert_verify_callback
    functionSourceFile: /src/libevent/sample/https-client.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cert_verify_callback(void *userdata, mbedtls_x509_crt *crt,\n\t\t\t\t\t\t\t\tint
      depth, uint32_t *flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/sample/https-client.c:152,1
    - Dst: ERR_print_errors_fp
      Src: /src/libevent/sample/https-client.c:156,1
    - Dst: exit
      Src: /src/libevent/sample/https-client.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - func
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 159
    functionName: err_openssl
    functionSourceFile: /src/libevent/sample/https-client.c
    functionUses: 0
    functionsReached:
    - ERR_print_errors_fp
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void err_openssl(const char *func)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: X509_verify_cert
      Src: /src/libevent/sample/https-client.c:180,1
    - Dst: X509_STORE_CTX_get_current_cert
      Src: /src/libevent/sample/https-client.c:182,1
    - Dst: validate_hostname
      Src: /src/libevent/sample/https-client.c:185,1
    - Dst: X509_NAME_oneline
      Src: /src/libevent/sample/https-client.c:209,1
    - Dst: X509_get_subject_name
      Src: /src/libevent/sample/https-client.c:209,1
    - Dst: printf
      Src: /src/libevent/sample/https-client.c:213,1
    - Dst: printf
      Src: /src/libevent/sample/https-client.c:218,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - x509_ctx
    - arg
    argTypes:
    - X509_STORE_CTX*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 222
    functionName: cert_verify_callback
    functionSourceFile: /src/libevent/sample/https-client.c
    functionUses: 0
    functionsReached:
    - X509_NAME_oneline
    - X509_get_subject_name
    - X509_verify_cert
    - printf
    - X509_STORE_CTX_get_current_cert
    - validate_hostname
    linkageType: ''
    returnType: int
    signature: int cert_verify_callback(X509_STORE_CTX *x509_ctx, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CertOpenSystemStore
      Src: /src/libevent/sample/https-client.c:233,1
    - Dst: err
      Src: /src/libevent/sample/https-client.c:235,1
    - Dst: CertEnumCertificatesInStore
      Src: /src/libevent/sample/https-client.c:238,1
    - Dst: d2i_X509
      Src: /src/libevent/sample/https-client.c:239,1
    - Dst: X509_STORE_add_cert
      Src: /src/libevent/sample/https-client.c:242,1
    - Dst: X509_free
      Src: /src/libevent/sample/https-client.c:243,1
    - Dst: err_openssl
      Src: /src/libevent/sample/https-client.c:246,1
    - Dst: CertCloseStore
      Src: /src/libevent/sample/https-client.c:250,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - store
    - name
    argTypes:
    - X509_STORE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 252
    functionName: add_cert_for_store
    functionSourceFile: /src/libevent/sample/https-client.c
    functionUses: 0
    functionsReached:
    - CertOpenSystemStore
    - CertCloseStore
    - err_openssl
    - CertEnumCertificatesInStore
    - err
    - X509_STORE_add_cert
    - d2i_X509
    - X509_free
    linkageType: ''
    returnType: int
    signature: int add_cert_for_store(X509_STORE *store, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libevent/sample/https-client.c:258,1
    - Dst: strncpy
      Src: /src/libevent/sample/https-client.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - src
    - chars
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 264
    functionName: strndup
    functionSourceFile: /src/libevent/sample/https-client.c
    functionUses: 12
    functionsReached:
    - strncpy
    - malloc
    linkageType: ''
    returnType: char
    signature: char * strndup(const char* src, size_t chars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_fprintf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:93,1
    - Dst: fflush
      Src: /src/libevent/sample/ssl-client-mbedtls.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - level
    - file
    - line
    - str
    argTypes:
    - void*
    - int
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: my_debug
    functionSourceFile: /src/libevent/sample/ssl-client-mbedtls.c
    functionUses: 0
    functionsReached:
    - fflush
    - mbedtls_fprintf
    linkageType: ''
    returnType: void
    signature: void my_debug(void *ctx, int level, const char *file, int line, const
      char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: writecb
    functionSourceFile: /src/libevent/sample/ssl-client-mbedtls.c
    functionUses: 4
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void writecb(struct bufferevent *bev, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_read
      Src: /src/libevent/sample/ssl-client-mbedtls.c:110,1
    - Dst: fprintf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:111,1
    - Dst: fwrite
      Src: /src/libevent/sample/ssl-client-mbedtls.c:113,1
    - Dst: fwrite
      Src: /src/libevent/sample/ssl-client-mbedtls.c:114,1
    - Dst: fflush
      Src: /src/libevent/sample/ssl-client-mbedtls.c:115,1
    - Dst: event_base_loopbreak
      Src: /src/libevent/sample/ssl-client-mbedtls.c:117,1
    - Dst: bufferevent_get_base
      Src: /src/libevent/sample/ssl-client-mbedtls.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 103
    functionDepth: 6
    functionLinenumber: 103
    functionLinenumberEnd: 121
    functionName: readcb
    functionSourceFile: /src/libevent/sample/ssl-client-mbedtls.c
    functionUses: 3
    functionsReached:
    - bufferevent_get_base
    - bufferevent_read
    - fflush
    - fwrite
    - fprintf
    - event_base_loopbreak
    linkageType: ''
    returnType: void
    signature: void readcb(struct bufferevent *bev, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:126,1
    - Dst: bufferevent_write
      Src: /src/libevent/sample/ssl-client-mbedtls.c:133,1
    - Dst: fprintf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:136,1
    - Dst: fprintf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:138,1
    - Dst: bufferevent_free
      Src: /src/libevent/sample/ssl-client-mbedtls.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 123
    functionDepth: 8
    functionLinenumber: 123
    functionLinenumberEnd: 141
    functionName: eventcb
    functionSourceFile: /src/libevent/sample/ssl-client-mbedtls.c
    functionUses: 6
    functionsReached:
    - fprintf
    - bufferevent_write
    - bufferevent_free
    linkageType: ''
    returnType: void
    signature: void eventcb(struct bufferevent *bev, short what, void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/libevent/sample/ssl-client-mbedtls.c:169,1
    - Dst: WSAStartup
      Src: /src/libevent/sample/ssl-client-mbedtls.c:171,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:173,1
    - Dst: mbedtls_debug_set_threshold
      Src: /src/libevent/sample/ssl-client-mbedtls.c:179,1
    - Dst: mbedtls_net_init
      Src: /src/libevent/sample/ssl-client-mbedtls.c:185,1
    - Dst: mbedtls_ssl_config_init
      Src: /src/libevent/sample/ssl-client-mbedtls.c:186,1
    - Dst: mbedtls_x509_crt_init
      Src: /src/libevent/sample/ssl-client-mbedtls.c:187,1
    - Dst: psa_crypto_init
      Src: /src/libevent/sample/ssl-client-mbedtls.c:190,1
    - Dst: mbedtls_ctr_drbg_init
      Src: /src/libevent/sample/ssl-client-mbedtls.c:192,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:194,1
    - Dst: fflush
      Src: /src/libevent/sample/ssl-client-mbedtls.c:195,1
    - Dst: mbedtls_entropy_init
      Src: /src/libevent/sample/ssl-client-mbedtls.c:197,1
    - Dst: mbedtls_ctr_drbg_seed
      Src: /src/libevent/sample/ssl-client-mbedtls.c:198,1
    - Dst: strlen
      Src: /src/libevent/sample/ssl-client-mbedtls.c:199,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:200,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:204,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:210,1
    - Dst: fflush
      Src: /src/libevent/sample/ssl-client-mbedtls.c:211,1
    - Dst: mbedtls_x509_crt_parse
      Src: /src/libevent/sample/ssl-client-mbedtls.c:213,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:216,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:221,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:226,1
    - Dst: fflush
      Src: /src/libevent/sample/ssl-client-mbedtls.c:227,1
    - Dst: mbedtls_net_connect
      Src: /src/libevent/sample/ssl-client-mbedtls.c:229,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:231,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:235,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:240,1
    - Dst: fflush
      Src: /src/libevent/sample/ssl-client-mbedtls.c:241,1
    - Dst: mbedtls_ssl_config_defaults
      Src: /src/libevent/sample/ssl-client-mbedtls.c:243,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:245,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:250,1
    - Dst: mbedtls_ssl_conf_authmode
      Src: /src/libevent/sample/ssl-client-mbedtls.c:254,1
    - Dst: mbedtls_ssl_conf_ca_chain
      Src: /src/libevent/sample/ssl-client-mbedtls.c:255,1
    - Dst: mbedtls_ssl_conf_rng
      Src: /src/libevent/sample/ssl-client-mbedtls.c:257,1
    - Dst: mbedtls_ssl_conf_dbg
      Src: /src/libevent/sample/ssl-client-mbedtls.c:259,1
    - Dst: bufferevent_mbedtls_dyncontext_new
      Src: /src/libevent/sample/ssl-client-mbedtls.c:261,1
    - Dst: mbedtls_ssl_set_hostname
      Src: /src/libevent/sample/ssl-client-mbedtls.c:263,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:264,1
    - Dst: fflush
      Src: /src/libevent/sample/ssl-client-mbedtls.c:268,1
    - Dst: event_enable_debug_mode
      Src: /src/libevent/sample/ssl-client-mbedtls.c:270,1
    - Dst: event_base_new
      Src: /src/libevent/sample/ssl-client-mbedtls.c:271,1
    - Dst: evdns_base_new
      Src: /src/libevent/sample/ssl-client-mbedtls.c:272,1
    - Dst: evdns_base_set_option
      Src: /src/libevent/sample/ssl-client-mbedtls.c:273,1
    - Dst: evutil_make_socket_nonblocking
      Src: /src/libevent/sample/ssl-client-mbedtls.c:275,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/sample/ssl-client-mbedtls.c:277,1
    - Dst: bufferevent_mbedtls_filter_new
      Src: /src/libevent/sample/ssl-client-mbedtls.c:278,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/sample/ssl-client-mbedtls.c:281,1
    - Dst: bufferevent_enable
      Src: /src/libevent/sample/ssl-client-mbedtls.c:283,1
    - Dst: event_base_loop
      Src: /src/libevent/sample/ssl-client-mbedtls.c:286,1
    - Dst: event_base_free
      Src: /src/libevent/sample/ssl-client-mbedtls.c:287,1
    - Dst: mbedtls_strerror
      Src: /src/libevent/sample/ssl-client-mbedtls.c:295,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:296,1
    - Dst: mbedtls_net_free
      Src: /src/libevent/sample/ssl-client-mbedtls.c:300,1
    - Dst: mbedtls_x509_crt_free
      Src: /src/libevent/sample/ssl-client-mbedtls.c:302,1
    - Dst: mbedtls_ssl_config_free
      Src: /src/libevent/sample/ssl-client-mbedtls.c:303,1
    - Dst: mbedtls_ctr_drbg_free
      Src: /src/libevent/sample/ssl-client-mbedtls.c:305,1
    - Dst: mbedtls_entropy_free
      Src: /src/libevent/sample/ssl-client-mbedtls.c:306,1
    - Dst: mbedtls_printf
      Src: /src/libevent/sample/ssl-client-mbedtls.c:310,1
    - Dst: fflush
      Src: /src/libevent/sample/ssl-client-mbedtls.c:311,1
    - Dst: getchar
      Src: /src/libevent/sample/ssl-client-mbedtls.c:312,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 85
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 144
    functionDepth: 9
    functionLinenumber: 144
    functionLinenumberEnd: 316
    functionName: main
    functionSourceFile: /src/libevent/sample/ssl-client-mbedtls.c
    functionUses: 3
    functionsReached:
    - event_base_free
    - mbedtls_net_free
    - mbedtls_strerror
    - mbedtls_ssl_conf_authmode
    - mbedtls_x509_crt_init
    - mbedtls_ctr_drbg_init
    - bufferevent_mbedtls_filter_new
    - mbedtls_ssl_config_init
    - mbedtls_net_connect
    - evdns_base_set_option
    - mbedtls_net_init
    - fflush
    - mbedtls_x509_crt_parse
    - mbedtls_x509_crt_free
    - bufferevent_setcb
    - event_base_loop
    - mbedtls_entropy_free
    - strlen
    - event_base_new
    - psa_crypto_init
    - bufferevent_mbedtls_dyncontext_new
    - evutil_make_socket_nonblocking
    - MAKEWORD
    - mbedtls_ssl_config_defaults
    - mbedtls_ssl_conf_rng
    - mbedtls_printf
    - getchar
    - mbedtls_ssl_set_hostname
    - mbedtls_ssl_conf_dbg
    - bufferevent_enable
    - mbedtls_ssl_config_free
    - mbedtls_entropy_init
    - mbedtls_ctr_drbg_seed
    - mbedtls_debug_set_threshold
    - bufferevent_socket_new
    - mbedtls_ssl_conf_ca_chain
    - event_enable_debug_mode
    - mbedtls_ctr_drbg_free
    - evdns_base_new
    - WSAStartup
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/sample/le-proxy.c:59,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/sample/le-proxy.c:60,1
    - Dst: evbuffer_drain
      Src: /src/libevent/sample/le-proxy.c:62,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/sample/le-proxy.c:65,1
    - Dst: evbuffer_add_buffer
      Src: /src/libevent/sample/le-proxy.c:66,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/sample/le-proxy.c:68,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/sample/le-proxy.c:72,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/sample/le-proxy.c:74,1
    - Dst: bufferevent_disable
      Src: /src/libevent/sample/le-proxy.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 53
    functionDepth: 6
    functionLinenumber: 53
    functionLinenumberEnd: 78
    functionName: readcb
    functionSourceFile: /src/libevent/sample/le-proxy.c
    functionUses: 3
    functionsReached:
    - bufferevent_get_output
    - bufferevent_get_input
    - bufferevent_setcb
    - evbuffer_add_buffer
    - bufferevent_setwatermark
    - evbuffer_get_length
    - evbuffer_drain
    - bufferevent_disable
    linkageType: ''
    returnType: void
    signature: void readcb(struct bufferevent *bev, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_setcb
      Src: /src/libevent/sample/le-proxy.c:87,1
    - Dst: bufferevent_setwatermark
      Src: /src/libevent/sample/le-proxy.c:88,1
    - Dst: bufferevent_enable
      Src: /src/libevent/sample/le-proxy.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 91
    functionName: drained_writecb
    functionSourceFile: /src/libevent/sample/le-proxy.c
    functionUses: 0
    functionsReached:
    - bufferevent_setcb
    - bufferevent_setwatermark
    - bufferevent_enable
    linkageType: ''
    returnType: void
    signature: void drained_writecb(struct bufferevent *bev, void *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_output
      Src: /src/libevent/sample/le-proxy.c:96,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/sample/le-proxy.c:98,1
    - Dst: bufferevent_free
      Src: /src/libevent/sample/le-proxy.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bev
    - ctx
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 6
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: close_on_finished_writecb
    functionSourceFile: /src/libevent/sample/le-proxy.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_output
    - bufferevent_free
    - evbuffer_get_length
    linkageType: ''
    returnType: void
    signature: void close_on_finished_writecb(struct bufferevent *bev, void *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_openssl_error
      Src: /src/libevent/sample/le-proxy.c:111,1
    - Dst: ERR_reason_error_string
      Src: /src/libevent/sample/le-proxy.c:113,1
    - Dst: ERR_lib_error_string
      Src: /src/libevent/sample/le-proxy.c:115,1
    - Dst: fprintf
      Src: /src/libevent/sample/le-proxy.c:117,1
    - Dst: ERR_func_error_string
      Src: /src/libevent/sample/le-proxy.c:121,1
    - Dst: fprintf
      Src: /src/libevent/sample/le-proxy.c:122,1
    - Dst: perror
      Src: /src/libevent/sample/le-proxy.c:127,1
    - Dst: readcb
      Src: /src/libevent/sample/le-proxy.c:132,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/sample/le-proxy.c:134,1
    - Dst: bufferevent_get_output
      Src: /src/libevent/sample/le-proxy.c:135,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/sample/le-proxy.c:139,1
    - Dst: bufferevent_disable
      Src: /src/libevent/sample/le-proxy.c:142,1
    - Dst: bufferevent_free
      Src: /src/libevent/sample/le-proxy.c:146,1
    - Dst: bufferevent_free
      Src: /src/libevent/sample/le-proxy.c:149,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - bev
    - what
    - ctx
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 103
    functionDepth: 6
    functionLinenumber: 103
    functionLinenumberEnd: 151
    functionName: eventcb
    functionSourceFile: /src/libevent/sample/le-proxy.c
    functionUses: 6
    functionsReached:
    - bufferevent_get_output
    - ERR_lib_error_string
    - readcb
    - bufferevent_free
    - perror
    - ERR_reason_error_string
    - bufferevent_disable
    - bufferevent_setcb
    - ERR_func_error_string
    - evbuffer_get_length
    - fprintf
    - bufferevent_get_openssl_error
    linkageType: ''
    returnType: void
    signature: void eventcb(struct bufferevent *bev, short what, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/libevent/sample/le-proxy.c:156,1
    - Dst: fputs
      Src: /src/libevent/sample/le-proxy.c:157,1
    - Dst: fputs
      Src: /src/libevent/sample/le-proxy.c:158,1
    - Dst: fputs
      Src: /src/libevent/sample/le-proxy.c:159,1
    - Dst: exit
      Src: /src/libevent/sample/le-proxy.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 162
    functionName: syntax
    functionSourceFile: /src/libevent/sample/le-proxy.c
    functionUses: 0
    functionsReached:
    - exit
    - fputs
    linkageType: ''
    returnType: void
    signature: void syntax(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_socket_new
      Src: /src/libevent/sample/le-proxy.c:171,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/sample/le-proxy.c:175,1
    - Dst: SSL_new
      Src: /src/libevent/sample/le-proxy.c:178,1
    - Dst: bufferevent_openssl_socket_new
      Src: /src/libevent/sample/le-proxy.c:179,1
    - Dst: assert
      Src: /src/libevent/sample/le-proxy.c:184,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/sample/le-proxy.c:186,1
    - Dst: perror
      Src: /src/libevent/sample/le-proxy.c:188,1
    - Dst: bufferevent_free
      Src: /src/libevent/sample/le-proxy.c:189,1
    - Dst: bufferevent_free
      Src: /src/libevent/sample/le-proxy.c:190,1
    - Dst: SSL_new
      Src: /src/libevent/sample/le-proxy.c:196,1
    - Dst: bufferevent_openssl_filter_new
      Src: /src/libevent/sample/le-proxy.c:197,1
    - Dst: perror
      Src: /src/libevent/sample/le-proxy.c:201,1
    - Dst: bufferevent_free
      Src: /src/libevent/sample/le-proxy.c:202,1
    - Dst: bufferevent_free
      Src: /src/libevent/sample/le-proxy.c:203,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/sample/le-proxy.c:209,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/sample/le-proxy.c:210,1
    - Dst: bufferevent_enable
      Src: /src/libevent/sample/le-proxy.c:212,1
    - Dst: bufferevent_enable
      Src: /src/libevent/sample/le-proxy.c:213,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 5
    argNames:
    - listener
    - fd
    - a
    - slen
    - p
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts:
    - condition: (b_in && b_out)
      pos:
        line_end: 183
        line_start: 183
        source_file: /src/libevent/sample/le-proxy.c
    constantsTouched: []
    func_position:
      end: 214
      start: 164
    functionDepth: 6
    functionLinenumber: 164
    functionLinenumberEnd: 214
    functionName: accept_cb
    functionSourceFile: /src/libevent/sample/le-proxy.c
    functionUses: 0
    functionsReached:
    - bufferevent_socket_new
    - bufferevent_openssl_filter_new
    - bufferevent_free
    - perror
    - bufferevent_setcb
    - bufferevent_openssl_socket_new
    - bufferevent_enable
    - assert
    - bufferevent_socket_connect
    - SSL_new
    linkageType: ''
    returnType: void
    signature: "void accept_cb(struct evconnlistener *listener, evutil_socket_t fd,\n
      \   struct sockaddr *a, int slen, void *p)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/libevent/sample/le-proxy.c:229,1
    - Dst: WSAStartup
      Src: /src/libevent/sample/le-proxy.c:230,1
    - Dst: signal
      Src: /src/libevent/sample/le-proxy.c:233,1
    - Dst: perror
      Src: /src/libevent/sample/le-proxy.c:234,1
    - Dst: syntax
      Src: /src/libevent/sample/le-proxy.c:240,1
    - Dst: strcmp
      Src: /src/libevent/sample/le-proxy.c:243,1
    - Dst: strcmp
      Src: /src/libevent/sample/le-proxy.c:245,1
    - Dst: syntax
      Src: /src/libevent/sample/le-proxy.c:248,1
    - Dst: syntax
      Src: /src/libevent/sample/le-proxy.c:254,1
    - Dst: memset
      Src: /src/libevent/sample/le-proxy.c:256,1
    - Dst: evutil_parse_sockaddr_port
      Src: /src/libevent/sample/le-proxy.c:258,1
    - Dst: atoi
      Src: /src/libevent/sample/le-proxy.c:260,1
    - Dst: syntax
      Src: /src/libevent/sample/le-proxy.c:263,1
    - Dst: htons
      Src: /src/libevent/sample/le-proxy.c:264,1
    - Dst: htonl
      Src: /src/libevent/sample/le-proxy.c:265,1
    - Dst: memset
      Src: /src/libevent/sample/le-proxy.c:270,1
    - Dst: evutil_parse_sockaddr_port
      Src: /src/libevent/sample/le-proxy.c:272,1
    - Dst: syntax
      Src: /src/libevent/sample/le-proxy.c:274,1
    - Dst: event_base_new
      Src: /src/libevent/sample/le-proxy.c:276,1
    - Dst: perror
      Src: /src/libevent/sample/le-proxy.c:278,1
    - Dst: SSL_library_init
      Src: /src/libevent/sample/le-proxy.c:286,1
    - Dst: ERR_load_crypto_strings
      Src: /src/libevent/sample/le-proxy.c:287,1
    - Dst: SSL_load_error_strings
      Src: /src/libevent/sample/le-proxy.c:288,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/libevent/sample/le-proxy.c:289,1
    - Dst: RAND_poll
      Src: /src/libevent/sample/le-proxy.c:291,1
    - Dst: fprintf
      Src: /src/libevent/sample/le-proxy.c:293,1
    - Dst: SSL_CTX_new
      Src: /src/libevent/sample/le-proxy.c:296,1
    - Dst: TLS_method
      Src: /src/libevent/sample/le-proxy.c:296,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/sample/le-proxy.c:299,1
    - Dst: fprintf
      Src: /src/libevent/sample/le-proxy.c:304,1
    - Dst: event_base_free
      Src: /src/libevent/sample/le-proxy.c:305,1
    - Dst: event_base_dispatch
      Src: /src/libevent/sample/le-proxy.c:308,1
    - Dst: evconnlistener_free
      Src: /src/libevent/sample/le-proxy.c:310,1
    - Dst: event_base_free
      Src: /src/libevent/sample/le-proxy.c:311,1
    - Dst: WSACleanup
      Src: /src/libevent/sample/le-proxy.c:314,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 66
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 216
    functionDepth: 6
    functionLinenumber: 216
    functionLinenumberEnd: 318
    functionName: main
    functionSourceFile: /src/libevent/sample/le-proxy.c
    functionUses: 3
    functionsReached:
    - event_base_free
    - OpenSSL_add_all_algorithms
    - htons
    - syntax
    - evconnlistener_new_bind
    - atoi
    - ERR_load_crypto_strings
    - signal
    - event_base_new
    - SSL_library_init
    - fprintf
    - MAKEWORD
    - SSL_CTX_new
    - perror
    - memset
    - SSL_load_error_strings
    - TLS_method
    - evconnlistener_free
    - evutil_parse_sockaddr_port
    - strcmp
    - RAND_poll
    - WSACleanup
    - WSAStartup
    - htonl
    - event_base_dispatch
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/sample/signal-test.c:36,1
    - Dst: event_get_signal
      Src: /src/libevent/sample/signal-test.c:36,1
    - Dst: event_del
      Src: /src/libevent/sample/signal-test.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 42
    functionName: signal_cb
    functionSourceFile: /src/libevent/sample/signal-test.c
    functionUses: 0
    functionsReached:
    - event_del
    - event_get_signal
    - printf
    linkageType: ''
    returnType: void
    signature: void signal_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/libevent/sample/signal-test.c:54,1
    - Dst: WSAStartup
      Src: /src/libevent/sample/signal-test.c:56,1
    - Dst: event_base_new
      Src: /src/libevent/sample/signal-test.c:60,1
    - Dst: evsignal_new
      Src: /src/libevent/sample/signal-test.c:67,1
    - Dst: event_self_cbarg
      Src: /src/libevent/sample/signal-test.c:67,1
    - Dst: event_add
      Src: /src/libevent/sample/signal-test.c:72,1
    - Dst: event_base_dispatch
      Src: /src/libevent/sample/signal-test.c:74,1
    - Dst: event_free
      Src: /src/libevent/sample/signal-test.c:78,1
    - Dst: event_base_free
      Src: /src/libevent/sample/signal-test.c:80,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 44
    functionDepth: 6
    functionLinenumber: 44
    functionLinenumberEnd: 82
    functionName: main
    functionSourceFile: /src/libevent/sample/signal-test.c
    functionUses: 3
    functionsReached:
    - MAKEWORD
    - event_base_free
    - evsignal_new
    - event_free
    - event_add
    - event_base_new
    - WSAStartup
    - event_base_dispatch
    - event_self_cbarg
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WSAStartup
      Src: /src/libevent/sample/hello-world.c:48,1
    - Dst: event_base_new
      Src: /src/libevent/sample/hello-world.c:51,1
    - Dst: fprintf
      Src: /src/libevent/sample/hello-world.c:53,1
    - Dst: htons
      Src: /src/libevent/sample/hello-world.c:58,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/sample/hello-world.c:60,1
    - Dst: fprintf
      Src: /src/libevent/sample/hello-world.c:66,1
    - Dst: evsignal_new
      Src: /src/libevent/sample/hello-world.c:70,1
    - Dst: event_add
      Src: /src/libevent/sample/hello-world.c:72,1
    - Dst: fprintf
      Src: /src/libevent/sample/hello-world.c:73,1
    - Dst: event_base_dispatch
      Src: /src/libevent/sample/hello-world.c:77,1
    - Dst: evconnlistener_free
      Src: /src/libevent/sample/hello-world.c:79,1
    - Dst: event_free
      Src: /src/libevent/sample/hello-world.c:80,1
    - Dst: event_base_free
      Src: /src/libevent/sample/hello-world.c:81,1
    - Dst: printf
      Src: /src/libevent/sample/hello-world.c:83,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 38
    functionDepth: 6
    functionLinenumber: 38
    functionLinenumberEnd: 85
    functionName: main
    functionSourceFile: /src/libevent/sample/hello-world.c
    functionUses: 3
    functionsReached:
    - evconnlistener_free
    - event_base_free
    - evsignal_new
    - event_free
    - printf
    - event_add
    - htons
    - event_base_new
    - WSAStartup
    - fprintf
    - evconnlistener_new_bind
    - event_base_dispatch
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_socket_new
      Src: /src/libevent/sample/hello-world.c:94,1
    - Dst: fprintf
      Src: /src/libevent/sample/hello-world.c:96,1
    - Dst: event_base_loopbreak
      Src: /src/libevent/sample/hello-world.c:97,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/sample/hello-world.c:100,1
    - Dst: bufferevent_enable
      Src: /src/libevent/sample/hello-world.c:101,1
    - Dst: bufferevent_disable
      Src: /src/libevent/sample/hello-world.c:102,1
    - Dst: bufferevent_write
      Src: /src/libevent/sample/hello-world.c:104,1
    - Dst: strlen
      Src: /src/libevent/sample/hello-world.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - listener
    - fd
    - sa
    - socklen
    - user_data
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 87
    functionDepth: 8
    functionLinenumber: 87
    functionLinenumberEnd: 105
    functionName: listener_cb
    functionSourceFile: /src/libevent/sample/hello-world.c
    functionUses: 0
    functionsReached:
    - bufferevent_socket_new
    - bufferevent_write
    - bufferevent_disable
    - bufferevent_setcb
    - strlen
    - bufferevent_enable
    - fprintf
    - event_base_loopbreak
    linkageType: ''
    returnType: void
    signature: "void listener_cb(struct evconnlistener *listener, evutil_socket_t
      fd,\n    struct sockaddr *sa, int socklen, void *user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_output
      Src: /src/libevent/sample/hello-world.c:110,1
    - Dst: evbuffer_get_length
      Src: /src/libevent/sample/hello-world.c:111,1
    - Dst: printf
      Src: /src/libevent/sample/hello-world.c:112,1
    - Dst: bufferevent_free
      Src: /src/libevent/sample/hello-world.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bev
    - user_data
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 107
    functionDepth: 6
    functionLinenumber: 107
    functionLinenumberEnd: 115
    functionName: conn_writecb
    functionSourceFile: /src/libevent/sample/hello-world.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_output
    - bufferevent_free
    - evbuffer_get_length
    - printf
    linkageType: ''
    returnType: void
    signature: void conn_writecb(struct bufferevent *bev, void *user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/sample/hello-world.c:121,1
    - Dst: printf
      Src: /src/libevent/sample/hello-world.c:123,1
    - Dst: strerror
      Src: /src/libevent/sample/hello-world.c:124,1
    - Dst: bufferevent_free
      Src: /src/libevent/sample/hello-world.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - bev
    - events
    - user_data
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 117
    functionDepth: 6
    functionLinenumber: 117
    functionLinenumberEnd: 129
    functionName: conn_eventcb
    functionSourceFile: /src/libevent/sample/hello-world.c
    functionUses: 0
    functionsReached:
    - bufferevent_free
    - strerror
    - printf
    linkageType: ''
    returnType: void
    signature: void conn_eventcb(struct bufferevent *bev, short events, void *user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/sample/hello-world.c:137,1
    - Dst: event_base_loopexit
      Src: /src/libevent/sample/hello-world.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sig
    - events
    - user_data
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 140
    functionName: signal_cb
    functionSourceFile: /src/libevent/sample/hello-world.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    - printf
    linkageType: ''
    returnType: void
    signature: void signal_cb(evutil_socket_t sig, short events, void *user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: CHECK_FMT
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_FMT(a,b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libevent/sample/becat.c:104,1
    - Dst: vfprintf
      Src: /src/libevent/sample/becat.c:105,1
    - Dst: va_end
      Src: /src/libevent/sample/becat.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: info
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 41
    functionsReached:
    - va_end
    - vfprintf
    - va_start
    linkageType: ''
    returnType: void
    signature: void info(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libevent/sample/becat.c:111,1
    - Dst: vfprintf
      Src: /src/libevent/sample/becat.c:112,1
    - Dst: va_end
      Src: /src/libevent/sample/becat.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: error
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 238
    functionsReached:
    - va_end
    - vfprintf
    - va_start
    linkageType: ''
    returnType: void
    signature: void error(const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_getfd
      Src: /src/libevent/sample/becat.c:124,1
    - Dst: info
      Src: /src/libevent/sample/becat.c:125,1
    - Dst: bufferevent_free
      Src: /src/libevent/sample/becat.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bevp
    argTypes:
    - struct bufferevent**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 116
    functionDepth: 6
    functionLinenumber: 116
    functionLinenumberEnd: 129
    functionName: be_free
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - info
    - bufferevent_free
    - bufferevent_getfd
    linkageType: ''
    returnType: void
    signature: void be_free(struct bufferevent **bevp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SSL_new
      Src: /src/libevent/sample/becat.c:142,1
    - Dst: SSL_use_certificate
      Src: /src/libevent/sample/becat.c:145,1
    - Dst: SSL_use_PrivateKey
      Src: /src/libevent/sample/becat.c:147,1
    - Dst: bufferevent_openssl_socket_new
      Src: /src/libevent/sample/becat.c:149,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/sample/becat.c:151,1
    - Dst: bufferevent_set_max_single_read
      Src: /src/libevent/sample/becat.c:154,1
    - Dst: SSL_free
      Src: /src/libevent/sample/becat.c:160,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - ctx
    - base
    - fd
    argTypes:
    - struct context*
    - struct event_base*
    - evutil_socket_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 130
    functionDepth: 6
    functionLinenumber: 130
    functionLinenumberEnd: 162
    functionName: be_new
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - bufferevent_socket_new
    - SSL_free
    - SSL_use_PrivateKey
    - SSL_use_certificate
    - bufferevent_openssl_socket_new
    - SSL_new
    - bufferevent_set_max_single_read
    linkageType: ''
    returnType: struct bufferevent
    signature: 'struct bufferevent *

      be_new(struct context *ctx, struct event_base *base, evutil_socket_t fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: info
      Src: /src/libevent/sample/becat.c:167,1
    - Dst: bufferevent_set_timeouts
      Src: /src/libevent/sample/becat.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bev
    - o
    argTypes:
    - struct bufferevent*
    - struct options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 169
    functionName: be_set_timeout
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - info
    - bufferevent_set_timeouts
    linkageType: ''
    returnType: int
    signature: int be_set_timeout(struct bufferevent *bev, const struct options *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_library_init
      Src: /src/libevent/sample/becat.c:175,1
    - Dst: ERR_load_crypto_strings
      Src: /src/libevent/sample/becat.c:176,1
    - Dst: SSL_load_error_strings
      Src: /src/libevent/sample/becat.c:177,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/libevent/sample/becat.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: ssl_init
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 1
    functionsReached:
    - SSL_library_init
    - OpenSSL_add_all_algorithms
    - ERR_load_crypto_strings
    - SSL_load_error_strings
    linkageType: ''
    returnType: void
    signature: void ssl_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    functionName: ssl_init
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ssl_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_free
      Src: /src/libevent/sample/becat.c:186,1
    - Dst: EVP_PKEY_free
      Src: /src/libevent/sample/becat.c:187,1
    - Dst: X509_free
      Src: /src/libevent/sample/becat.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - struct ssl_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: ssl_ctx_free
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - SSL_CTX_free
    - X509_free
    linkageType: ''
    returnType: void
    signature: void ssl_ctx_free(struct ssl_context *ssl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_RSA_gen
      Src: /src/libevent/sample/becat.c:194,1
    - Dst: EVP_PKEY_new
      Src: /src/libevent/sample/becat.c:200,1
    - Dst: BN_new
      Src: /src/libevent/sample/becat.c:202,1
    - Dst: BN_set_word
      Src: /src/libevent/sample/becat.c:203,1
    - Dst: RSA_new
      Src: /src/libevent/sample/becat.c:206,1
    - Dst: RSA_generate_key_ex
      Src: /src/libevent/sample/becat.c:207,1
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/libevent/sample/becat.c:209,1
    - Dst: BN_free
      Src: /src/libevent/sample/becat.c:213,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - struct ssl_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 216
    functionName: ssl_load_key
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_assign_RSA
    - BN_new
    - BN_set_word
    - BN_free
    - EVP_PKEY_new
    - RSA_new
    - EVP_RSA_gen
    - RSA_generate_key_ex
    linkageType: ''
    returnType: int
    signature: int ssl_load_key(struct ssl_context *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X509_new
      Src: /src/libevent/sample/becat.c:221,1
    - Dst: ASN1_INTEGER_set
      Src: /src/libevent/sample/becat.c:223,1
    - Dst: X509_get_serialNumber
      Src: /src/libevent/sample/becat.c:223,1
    - Dst: X509_gmtime_adj
      Src: /src/libevent/sample/becat.c:225,1
    - Dst: X509_getm_notBefore
      Src: /src/libevent/sample/becat.c:225,1
    - Dst: X509_gmtime_adj
      Src: /src/libevent/sample/becat.c:227,1
    - Dst: X509_getm_notAfter
      Src: /src/libevent/sample/becat.c:227,1
    - Dst: time
      Src: /src/libevent/sample/becat.c:228,1
    - Dst: X509_set_pubkey
      Src: /src/libevent/sample/becat.c:230,1
    - Dst: X509_get_subject_name
      Src: /src/libevent/sample/becat.c:232,1
    - Dst: X509_NAME_add_entry_by_txt
      Src: /src/libevent/sample/becat.c:233,1
    - Dst: X509_NAME_add_entry_by_txt
      Src: /src/libevent/sample/becat.c:235,1
    - Dst: X509_NAME_add_entry_by_txt
      Src: /src/libevent/sample/becat.c:237,1
    - Dst: X509_set_issuer_name
      Src: /src/libevent/sample/becat.c:239,1
    - Dst: X509_sign
      Src: /src/libevent/sample/becat.c:241,1
    - Dst: EVP_sha1
      Src: /src/libevent/sample/becat.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - struct ssl_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 244
    functionName: ssl_load_cert
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - X509_get_subject_name
    - X509_set_issuer_name
    - X509_set_pubkey
    - ASN1_INTEGER_set
    - X509_getm_notAfter
    - X509_getm_notBefore
    - X509_new
    - time
    - X509_NAME_add_entry_by_txt
    - EVP_sha1
    - X509_gmtime_adj
    - X509_get_serialNumber
    - X509_sign
    linkageType: ''
    returnType: int
    signature: int ssl_load_cert(struct ssl_context *ssl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl_init
      Src: /src/libevent/sample/becat.c:249,1
    - Dst: TLS_method
      Src: /src/libevent/sample/becat.c:251,1
    - Dst: SSL_CTX_new
      Src: /src/libevent/sample/becat.c:254,1
    - Dst: ssl_load_key
      Src: /src/libevent/sample/becat.c:256,1
    - Dst: ssl_load_cert
      Src: /src/libevent/sample/becat.c:258,1
    - Dst: ssl_ctx_free
      Src: /src/libevent/sample/becat.c:264,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - struct ssl_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 266
    functionName: ssl_ctx_init
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - TLS_method
    - SSL_CTX_new
    - ssl_ctx_free
    - ssl_load_cert
    - ssl_init
    - ssl_load_key
    linkageType: ''
    returnType: int
    signature: int ssl_ctx_init(struct ssl_context *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libevent/sample/becat.c:270,1
    - Dst: fprintf
      Src: /src/libevent/sample/becat.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - name
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 288
    functionName: print_usage
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 1
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_usage(FILE *out, const char *name)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/sample/becat.c:294,1
    - Dst: getopt
      Src: /src/libevent/sample/becat.c:298,1
    - Dst: atoi
      Src: /src/libevent/sample/becat.c:300,1
    - Dst: strdup
      Src: /src/libevent/sample/becat.c:301,1
    - Dst: atoi
      Src: /src/libevent/sample/becat.c:302,1
    - Dst: atoi
      Src: /src/libevent/sample/becat.c:304,1
    - Dst: atoi
      Src: /src/libevent/sample/becat.c:305,1
    - Dst: atoi
      Src: /src/libevent/sample/becat.c:306,1
    - Dst: print_usage
      Src: /src/libevent/sample/becat.c:322,1
    - Dst: exit
      Src: /src/libevent/sample/becat.c:323,1
    - Dst: fprintf
      Src: /src/libevent/sample/becat.c:325,1
    - Dst: exit
      Src: /src/libevent/sample/becat.c:326,1
    - Dst: strdup
      Src: /src/libevent/sample/becat.c:331,1
    - Dst: atoi
      Src: /src/libevent/sample/becat.c:335,1
    - Dst: print_usage
      Src: /src/libevent/sample/becat.c:339,1
    - Dst: exit
      Src: /src/libevent/sample/becat.c:340,1
    - Dst: strdup
      Src: /src/libevent/sample/becat.c:344,1
    - Dst: strdup
      Src: /src/libevent/sample/becat.c:346,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 349
    functionName: parse_opts
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 1
    functionsReached:
    - print_usage
    - exit
    - getopt
    - memset
    - fprintf
    - strdup
    - atoi
    linkageType: ''
    returnType: struct options
    signature: struct options parse_opts(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: event_base_loopexit
      Src: /src/libevent/sample/becat.c:354,1
    - Dst: fprintf
      Src: /src/libevent/sample/becat.c:355,1
    - Dst: evutil_strsignal
      Src: /src/libevent/sample/becat.c:356,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/sample/becat.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sig
    - events
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 351
    functionDepth: 3
    functionLinenumber: 351
    functionLinenumberEnd: 357
    functionName: do_term
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - evutil_strsignal
    - fprintf
    - EV_SOCK_ARG
    - event_base_loopexit
    linkageType: ''
    returnType: void
    signature: void do_term(evutil_socket_t sig, short events, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libevent/sample/becat.c:368,1
    - Dst: evutil_snprintf
      Src: /src/libevent/sample/becat.c:372,1
    - Dst: evutil_getaddrinfo
      Src: /src/libevent/sample/becat.c:373,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/sample/becat.c:379,1
    - Dst: memcpy
      Src: /src/libevent/sample/becat.c:383,1
    - Dst: evutil_freeaddrinfo
      Src: /src/libevent/sample/becat.c:386,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - ss
    - address
    - port
    argTypes:
    - struct sockaddr_storage*
    - char*
    - ev_uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 359
    functionDepth: 7
    functionLinenumber: 359
    functionLinenumberEnd: 388
    functionName: make_address
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - evutil_getaddrinfo
    - evutil_freeaddrinfo
    - memset
    - memcpy
    - evutil_snprintf
    linkageType: ''
    returnType: ev_socklen_t
    signature: ev_socklen_t make_address(struct sockaddr_storage *ss, const char *address,
      ev_uint16_t port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_openssl_error
      Src: /src/libevent/sample/becat.c:393,1
    - Dst: ERR_reason_error_string
      Src: /src/libevent/sample/becat.c:394,1
    - Dst: ERR_lib_error_string
      Src: /src/libevent/sample/becat.c:395,1
    - Dst: error
      Src: /src/libevent/sample/becat.c:397,1
    - Dst: ERR_func_error_string
      Src: /src/libevent/sample/becat.c:399,1
    - Dst: error
      Src: /src/libevent/sample/becat.c:400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bev
    argTypes:
    - struct bufferevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 403
    functionName: be_ssl_errors
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - ERR_lib_error_string
    - ERR_reason_error_string
    - ERR_func_error_string
    - error
    - bufferevent_get_openssl_error
    linkageType: ''
    returnType: void
    signature: void be_ssl_errors(struct bufferevent *bev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_base
      Src: /src/libevent/sample/becat.c:406,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/sample/becat.c:407,1
    - Dst: info
      Src: /src/libevent/sample/becat.c:410,1
    - Dst: be_ssl_errors
      Src: /src/libevent/sample/becat.c:414,1
    - Dst: event_base_loopexit
      Src: /src/libevent/sample/becat.c:418,1
    - Dst: error
      Src: /src/libevent/sample/becat.c:420,1
    - Dst: be_free
      Src: /src/libevent/sample/becat.c:421,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - bev
    - what
    - ssl
    - stop
    argTypes:
    - struct bufferevent*
    - short
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 404
    functionDepth: 7
    functionLinenumber: 404
    functionLinenumberEnd: 423
    functionName: event_cb_
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - bufferevent_get_base
    - be_ssl_errors
    - info
    - event_base_loopexit
    - be_free
    - error
    - bufferevent_getfd
    linkageType: ''
    returnType: int
    signature: int event_cb_(struct bufferevent *bev, short what, int ssl, int stop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_get_input
      Src: /src/libevent/sample/becat.c:428,1
    - Dst: evbuffer_write
      Src: /src/libevent/sample/becat.c:429,1
    - Dst: fileno
      Src: /src/libevent/sample/becat.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 425
    functionDepth: 6
    functionLinenumber: 425
    functionLinenumberEnd: 430
    functionName: read_cb
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - fileno
    - evbuffer_write
    - bufferevent_get_input
    linkageType: ''
    returnType: void
    signature: void read_cb(struct bufferevent *bev, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_write_buffer
      Src: /src/libevent/sample/becat.c:434,1
    - Dst: bufferevent_get_input
      Src: /src/libevent/sample/becat.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 431
    functionDepth: 7
    functionLinenumber: 431
    functionLinenumberEnd: 435
    functionName: write_cb
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 1
    functionsReached:
    - bufferevent_write_buffer
    - bufferevent_get_input
    linkageType: ''
    returnType: void
    signature: void write_cb(struct bufferevent *bev, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/sample/becat.c:439,1
    - Dst: event_cb_
      Src: /src/libevent/sample/becat.c:440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 436
    functionDepth: 8
    functionLinenumber: 436
    functionLinenumberEnd: 443
    functionName: server_event_cb
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - EVUTIL_ASSERT
    - event_cb_
    linkageType: ''
    returnType: void
    signature: void server_event_cb(struct bufferevent *bev, short what, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evconnlistener_get_base
      Src: /src/libevent/sample/becat.c:452,1
    - Dst: evconnlistener_disable
      Src: /src/libevent/sample/becat.c:455,1
    - Dst: info
      Src: /src/libevent/sample/becat.c:457,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/sample/becat.c:458,1
    - Dst: evutil_set_tcp_keepalive
      Src: /src/libevent/sample/becat.c:459,1
    - Dst: be_new
      Src: /src/libevent/sample/becat.c:462,1
    - Dst: error
      Src: /src/libevent/sample/becat.c:464,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/sample/becat.c:468,1
    - Dst: bufferevent_enable
      Src: /src/libevent/sample/becat.c:469,1
    - Dst: error
      Src: /src/libevent/sample/becat.c:470,1
    - Dst: be_set_timeout
      Src: /src/libevent/sample/becat.c:473,1
    - Dst: info
      Src: /src/libevent/sample/becat.c:474,1
    - Dst: EVUTIL_ASSERT
      Src: /src/libevent/sample/becat.c:479,1
    - Dst: bufferevent_enable
      Src: /src/libevent/sample/becat.c:482,1
    - Dst: error
      Src: /src/libevent/sample/becat.c:483,1
    - Dst: be_free
      Src: /src/libevent/sample/becat.c:490,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 5
    argNames:
    - listener
    - fd
    - sa
    - socklen
    - arg
    argTypes:
    - struct evconnlistener*
    - evutil_socket_t
    - struct sockaddr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 445
    functionDepth: 7
    functionLinenumber: 445
    functionLinenumberEnd: 491
    functionName: accept_cb
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - evutil_set_tcp_keepalive
    - info
    - be_set_timeout
    - evconnlistener_disable
    - EVUTIL_ASSERT
    - error
    - bufferevent_setcb
    - evutil_format_sockaddr_port_
    - evconnlistener_get_base
    - be_free
    - bufferevent_enable
    - be_new
    linkageType: ''
    returnType: void
    signature: "void accept_cb(struct evconnlistener *listener, evutil_socket_t fd,\n\tstruct
      sockaddr *sa, int socklen, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_cb_
      Src: /src/libevent/sample/becat.c:496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 493
    functionDepth: 8
    functionLinenumber: 493
    functionLinenumberEnd: 499
    functionName: client_event_cb
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - event_cb_
    linkageType: ''
    returnType: void
    signature: void client_event_cb(struct bufferevent *bev, short what, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_cb_
      Src: /src/libevent/sample/becat.c:504,1
    - Dst: be_free
      Src: /src/libevent/sample/becat.c:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bev
    - what
    - arg
    argTypes:
    - struct bufferevent*
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 501
    functionDepth: 8
    functionLinenumber: 501
    functionLinenumberEnd: 509
    functionName: in_event_cb
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - be_free
    - event_cb_
    linkageType: ''
    returnType: void
    signature: void in_event_cb(struct bufferevent *bev, short what, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferevent_trigger
      Src: /src/libevent/sample/becat.c:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bev
    - arg
    argTypes:
    - struct bufferevent*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 511
    functionDepth: 3
    functionLinenumber: 511
    functionLinenumberEnd: 517
    functionName: trigger_bev_write_cb
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 0
    functionsReached:
    - bufferevent_trigger
    linkageType: ''
    returnType: void
    signature: void trigger_bev_write_cb(struct bufferevent *bev, void *arg)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: parse_opts
      Src: /src/libevent/sample/becat.c:531,1
    - Dst: memset
      Src: /src/libevent/sample/becat.c:534,1
    - Dst: getenv
      Src: /src/libevent/sample/becat.c:537,1
    - Dst: event_enable_debug_logging
      Src: /src/libevent/sample/becat.c:538,1
    - Dst: event_base_new
      Src: /src/libevent/sample/becat.c:540,1
    - Dst: evsignal_new
      Src: /src/libevent/sample/becat.c:544,1
    - Dst: event_add
      Src: /src/libevent/sample/becat.c:547,1
    - Dst: MAKEWORD
      Src: /src/libevent/sample/becat.c:554,1
    - Dst: WSAStartup
      Src: /src/libevent/sample/becat.c:555,1
    - Dst: signal
      Src: /src/libevent/sample/becat.c:558,1
    - Dst: ssl_ctx_init
      Src: /src/libevent/sample/becat.c:562,1
    - Dst: make_address
      Src: /src/libevent/sample/becat.c:571,1
    - Dst: error
      Src: /src/libevent/sample/becat.c:573,1
    - Dst: info
      Src: /src/libevent/sample/becat.c:577,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/sample/becat.c:578,1
    - Dst: evconnlistener_new_bind
      Src: /src/libevent/sample/becat.c:580,1
    - Dst: error
      Src: /src/libevent/sample/becat.c:582,1
    - Dst: evconnlistener_get_fd
      Src: /src/libevent/sample/becat.c:587,1
    - Dst: evutil_set_tcp_keepalive
      Src: /src/libevent/sample/becat.c:588,1
    - Dst: make_address
      Src: /src/libevent/sample/becat.c:593,1
    - Dst: error
      Src: /src/libevent/sample/becat.c:595,1
    - Dst: info
      Src: /src/libevent/sample/becat.c:599,1
    - Dst: evutil_format_sockaddr_port_
      Src: /src/libevent/sample/becat.c:600,1
    - Dst: be_new
      Src: /src/libevent/sample/becat.c:602,1
    - Dst: error
      Src: /src/libevent/sample/becat.c:604,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/sample/becat.c:608,1
    - Dst: bufferevent_enable
      Src: /src/libevent/sample/becat.c:609,1
    - Dst: error
      Src: /src/libevent/sample/becat.c:610,1
    - Dst: be_set_timeout
      Src: /src/libevent/sample/becat.c:613,1
    - Dst: info
      Src: /src/libevent/sample/becat.c:614,1
    - Dst: bufferevent_socket_connect
      Src: /src/libevent/sample/becat.c:618,1
    - Dst: info
      Src: /src/libevent/sample/becat.c:619,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/sample/becat.c:623,1
    - Dst: evutil_set_tcp_keepalive
      Src: /src/libevent/sample/becat.c:624,1
    - Dst: bufferevent_socket_new
      Src: /src/libevent/sample/becat.c:632,1
    - Dst: bufferevent_set_max_single_read
      Src: /src/libevent/sample/becat.c:634,1
    - Dst: error
      Src: /src/libevent/sample/becat.c:638,1
    - Dst: bufferevent_setcb
      Src: /src/libevent/sample/becat.c:641,1
    - Dst: bufferevent_enable
      Src: /src/libevent/sample/becat.c:642,1
    - Dst: error
      Src: /src/libevent/sample/becat.c:643,1
    - Dst: bufferevent_disable
      Src: /src/libevent/sample/becat.c:646,1
    - Dst: event_base_dispatch
      Src: /src/libevent/sample/becat.c:648,1
    - Dst: event_free
      Src: /src/libevent/sample/becat.c:657,1
    - Dst: be_free
      Src: /src/libevent/sample/becat.c:658,1
    - Dst: be_free
      Src: /src/libevent/sample/becat.c:659,1
    - Dst: evconnlistener_free
      Src: /src/libevent/sample/becat.c:661,1
    - Dst: event_base_free
      Src: /src/libevent/sample/becat.c:663,1
    - Dst: free
      Src: /src/libevent/sample/becat.c:665,1
    - Dst: free
      Src: /src/libevent/sample/becat.c:666,1
    - Dst: ssl_ctx_free
      Src: /src/libevent/sample/becat.c:668,1
    - Dst: WSACleanup
      Src: /src/libevent/sample/becat.c:671,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 125
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 519
    functionDepth: 8
    functionLinenumber: 519
    functionLinenumberEnd: 675
    functionName: main
    functionSourceFile: /src/libevent/sample/becat.c
    functionUses: 3
    functionsReached:
    - evutil_set_tcp_keepalive
    - info
    - ssl_ctx_free
    - event_base_free
    - event_add
    - event_free
    - evconnlistener_new_bind
    - be_new
    - getenv
    - error
    - be_set_timeout
    - make_address
    - bufferevent_setcb
    - event_enable_debug_logging
    - evutil_format_sockaddr_port_
    - signal
    - event_base_new
    - bufferevent_disable
    - event_base_dispatch
    - MAKEWORD
    - memset
    - bufferevent_enable
    - parse_opts
    - be_free
    - bufferevent_socket_connect
    - bufferevent_socket_new
    - evconnlistener_free
    - evsignal_new
    - evconnlistener_get_fd
    - free
    - WSACleanup
    - WSAStartup
    - ssl_ctx_init
    - bufferevent_set_max_single_read
    - bufferevent_getfd
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: log_d
    functionSourceFile: /src/libevent/sample/ws-chat-server.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: log_d(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_FOREACH
      Src: /src/libevent/sample/ws-chat-server.c:69,1
    - Dst: evws_send_text
      Src: /src/libevent/sample/ws-chat-server.c:70,1
    - Dst: log_d
      Src: /src/libevent/sample/ws-chat-server.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 4
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: broadcast_msg
    functionSourceFile: /src/libevent/sample/ws-chat-server.c
    functionUses: 0
    functionsReached:
    - log_d
    - evws_send_text
    - TAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void broadcast_msg(char *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/libevent/sample/ws-chat-server.c:83,1
    - Dst: memcmp
      Src: /src/libevent/sample/ws-chat-server.c:84,1
    - Dst: evws_close
      Src: /src/libevent/sample/ws-chat-server.c:85,1
    - Dst: snprintf
      Src: /src/libevent/sample/ws-chat-server.c:86,1
    - Dst: strncmp
      Src: /src/libevent/sample/ws-chat-server.c:87,1
    - Dst: snprintf
      Src: /src/libevent/sample/ws-chat-server.c:91,1
    - Dst: snprintf
      Src: /src/libevent/sample/ws-chat-server.c:93,1
    - Dst: snprintf
      Src: /src/libevent/sample/ws-chat-server.c:96,1
    - Dst: broadcast_msg
      Src: /src/libevent/sample/ws-chat-server.c:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - evws
    - type
    - data
    - len
    - arg
    argTypes:
    - struct evws_connection*
    - int
    - unsigned char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 75
    functionDepth: 5
    functionLinenumber: 75
    functionLinenumberEnd: 100
    functionName: on_msg_cb
    functionSourceFile: /src/libevent/sample/ws-chat-server.c
    functionUses: 0
    functionsReached:
    - strncmp
    - broadcast_msg
    - evws_close
    - memcmp
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void on_msg_cb(struct evws_connection *evws, int type, const unsigned
      char *data,\n\tsize_t len, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_d
      Src: /src/libevent/sample/ws-chat-server.c:106,1
    - Dst: TAILQ_REMOVE
      Src: /src/libevent/sample/ws-chat-server.c:107,1
    - Dst: free
      Src: /src/libevent/sample/ws-chat-server.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - evws
    - arg
    argTypes:
    - struct evws_connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: on_close_cb
    functionSourceFile: /src/libevent/sample/ws-chat-server.c
    functionUses: 0
    functionsReached:
    - free
    - log_d
    - TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void on_close_cb(struct evws_connection *evws, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/libevent/sample/ws-chat-server.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: nice_addr
    functionSourceFile: /src/libevent/sample/ws-chat-server.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: char
    signature: 'char *

      nice_addr(const char *addr)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/libevent/sample/ws-chat-server.c:129,1
    - Dst: evutil_inet_ntop
      Src: /src/libevent/sample/ws-chat-server.c:130,1
    - Dst: ntohs
      Src: /src/libevent/sample/ws-chat-server.c:133,1
    - Dst: evutil_inet_ntop
      Src: /src/libevent/sample/ws-chat-server.c:134,1
    - Dst: nice_addr
      Src: /src/libevent/sample/ws-chat-server.c:135,1
    - Dst: strlen
      Src: /src/libevent/sample/ws-chat-server.c:137,1
    - Dst: memmove
      Src: /src/libevent/sample/ws-chat-server.c:138,1
    - Dst: strlen
      Src: /src/libevent/sample/ws-chat-server.c:142,1
    - Dst: snprintf
      Src: /src/libevent/sample/ws-chat-server.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - sa
    - addr
    - len
    argTypes:
    - struct sockaddr*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 144
    functionName: addr2str
    functionSourceFile: /src/libevent/sample/ws-chat-server.c
    functionUses: 0
    functionsReached:
    - ntohs
    - nice_addr
    - evutil_inet_ntop
    - memmove
    - strlen
    - snprintf
    linkageType: ''
    returnType: void
    signature: void addr2str(struct sockaddr *sa, char *addr, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/libevent/sample/ws-chat-server.c:155,1
    - Dst: evws_new_session
      Src: /src/libevent/sample/ws-chat-server.c:157,1
    - Dst: free
      Src: /src/libevent/sample/ws-chat-server.c:159,1
    - Dst: log_d
      Src: /src/libevent/sample/ws-chat-server.c:160,1
    - Dst: bufferevent_getfd
      Src: /src/libevent/sample/ws-chat-server.c:164,1
    - Dst: evws_connection_get_bufferevent
      Src: /src/libevent/sample/ws-chat-server.c:164,1
    - Dst: getpeername
      Src: /src/libevent/sample/ws-chat-server.c:167,1
    - Dst: addr2str
      Src: /src/libevent/sample/ws-chat-server.c:168,1
    - Dst: log_d
      Src: /src/libevent/sample/ws-chat-server.c:170,1
    - Dst: evws_connection_set_closecb
      Src: /src/libevent/sample/ws-chat-server.c:172,1
    - Dst: TAILQ_INSERT_TAIL
      Src: /src/libevent/sample/ws-chat-server.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 147
    functionDepth: 7
    functionLinenumber: 147
    functionLinenumberEnd: 174
    functionName: on_ws
    functionSourceFile: /src/libevent/sample/ws-chat-server.c
    functionUses: 0
    functionsReached:
    - calloc
    - getpeername
    - evws_connection_set_closecb
    - log_d
    - evws_connection_get_bufferevent
    - evws_new_session
    - free
    - addr2str
    - TAILQ_INSERT_TAIL
    - bufferevent_getfd
    linkageType: ''
    returnType: void
    signature: void on_ws(struct evhttp_request *req, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evhttp_add_header
      Src: /src/libevent/sample/ws-chat-server.c:183,1
    - Dst: evhttp_request_get_output_headers
      Src: /src/libevent/sample/ws-chat-server.c:184,1
    - Dst: open
      Src: /src/libevent/sample/ws-chat-server.c:185,1
    - Dst: perror
      Src: /src/libevent/sample/ws-chat-server.c:186,1
    - Dst: fstat
      Src: /src/libevent/sample/ws-chat-server.c:190,1
    - Dst: perror
      Src: /src/libevent/sample/ws-chat-server.c:193,1
    - Dst: evbuffer_new
      Src: /src/libevent/sample/ws-chat-server.c:198,1
    - Dst: evbuffer_add_file
      Src: /src/libevent/sample/ws-chat-server.c:199,1
    - Dst: evhttp_send_reply
      Src: /src/libevent/sample/ws-chat-server.c:200,1
    - Dst: evbuffer_free
      Src: /src/libevent/sample/ws-chat-server.c:201,1
    - Dst: evhttp_send_error
      Src: /src/libevent/sample/ws-chat-server.c:205,1
    - Dst: close
      Src: /src/libevent/sample/ws-chat-server.c:207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - req
    - arg
    argTypes:
    - struct evhttp_request*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 176
    functionDepth: 7
    functionLinenumber: 176
    functionLinenumberEnd: 208
    functionName: on_html
    functionSourceFile: /src/libevent/sample/ws-chat-server.c
    functionUses: 0
    functionsReached:
    - close
    - evhttp_send_reply
    - fstat
    - evbuffer_free
    - evhttp_add_header
    - perror
    - open
    - evhttp_send_error
    - evbuffer_add_file
    - evhttp_request_get_output_headers
    - evbuffer_new
    linkageType: ''
    returnType: void
    signature: void on_html(struct evhttp_request *req, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/sample/ws-chat-server.c:213,1
    - Dst: evutil_strsignal
      Src: /src/libevent/sample/ws-chat-server.c:213,1
    - Dst: EV_SOCK_ARG
      Src: /src/libevent/sample/ws-chat-server.c:213,1
    - Dst: event_base_loopbreak
      Src: /src/libevent/sample/ws-chat-server.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 210
    functionDepth: 3
    functionLinenumber: 210
    functionLinenumberEnd: 215
    functionName: signal_cb
    functionSourceFile: /src/libevent/sample/ws-chat-server.c
    functionUses: 0
    functionsReached:
    - evutil_strsignal
    - EV_SOCK_ARG
    - event_base_loopbreak
    - printf
    linkageType: ''
    returnType: void
    signature: void signal_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TAILQ_INIT
      Src: /src/libevent/sample/ws-chat-server.c:224,1
    - Dst: event_base_new
      Src: /src/libevent/sample/ws-chat-server.c:226,1
    - Dst: evsignal_new
      Src: /src/libevent/sample/ws-chat-server.c:228,1
    - Dst: perror
      Src: /src/libevent/sample/ws-chat-server.c:230,1
    - Dst: event_add
      Src: /src/libevent/sample/ws-chat-server.c:233,1
    - Dst: evhttp_new
      Src: /src/libevent/sample/ws-chat-server.c:235,1
    - Dst: perror
      Src: /src/libevent/sample/ws-chat-server.c:237,1
    - Dst: evhttp_bind_socket_with_handle
      Src: /src/libevent/sample/ws-chat-server.c:240,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/sample/ws-chat-server.c:242,1
    - Dst: evhttp_set_cb
      Src: /src/libevent/sample/ws-chat-server.c:243,1
    - Dst: log_d
      Src: /src/libevent/sample/ws-chat-server.c:245,1
    - Dst: event_base_dispatch
      Src: /src/libevent/sample/ws-chat-server.c:246,1
    - Dst: log_d
      Src: /src/libevent/sample/ws-chat-server.c:248,1
    - Dst: evhttp_get_connection_count
      Src: /src/libevent/sample/ws-chat-server.c:248,1
    - Dst: evhttp_free
      Src: /src/libevent/sample/ws-chat-server.c:249,1
    - Dst: event_free
      Src: /src/libevent/sample/ws-chat-server.c:251,1
    - Dst: event_base_free
      Src: /src/libevent/sample/ws-chat-server.c:252,1
    - Dst: libevent_global_shutdown
      Src: /src/libevent/sample/ws-chat-server.c:253,1
    - Dst: event_free
      Src: /src/libevent/sample/ws-chat-server.c:259,1
    - Dst: event_base_free
      Src: /src/libevent/sample/ws-chat-server.c:262,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 217
    functionDepth: 6
    functionLinenumber: 217
    functionLinenumberEnd: 265
    functionName: main
    functionSourceFile: /src/libevent/sample/ws-chat-server.c
    functionUses: 3
    functionsReached:
    - evhttp_set_cb
    - event_base_free
    - evhttp_free
    - perror
    - log_d
    - evsignal_new
    - libevent_global_shutdown
    - event_add
    - event_base_new
    - evhttp_new
    - event_free
    - evhttp_get_connection_count
    - TAILQ_INIT
    - evhttp_bind_socket_with_handle
    - event_base_dispatch
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evutil_gettimeofday
      Src: /src/libevent/sample/time-test.c:49,1
    - Dst: evutil_timersub
      Src: /src/libevent/sample/time-test.c:50,1
    - Dst: printf
      Src: /src/libevent/sample/time-test.c:54,1
    - Dst: evutil_timerclear
      Src: /src/libevent/sample/time-test.c:60,1
    - Dst: event_add
      Src: /src/libevent/sample/time-test.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - event
    - arg
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 64
    functionName: timeout_cb
    functionSourceFile: /src/libevent/sample/time-test.c
    functionUses: 0
    functionsReached:
    - evutil_gettimeofday
    - evutil_timerclear
    - printf
    - evutil_timersub
    - event_add
    linkageType: ''
    returnType: void
    signature: void timeout_cb(evutil_socket_t fd, short event, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libevent/sample/time-test.c:71,1
    - Dst: event_base_loopexit
      Src: /src/libevent/sample/time-test.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sig
    - events
    - user_data
    argTypes:
    - evutil_socket_t
    - short
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: signal_cb
    functionSourceFile: /src/libevent/sample/time-test.c
    functionUses: 0
    functionsReached:
    - event_base_loopexit
    - printf
    linkageType: ''
    returnType: void
    signature: void signal_cb(evutil_socket_t sig, short events, void *user_data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MAKEWORD
      Src: /src/libevent/sample/time-test.c:88,1
    - Dst: WSAStartup
      Src: /src/libevent/sample/time-test.c:90,1
    - Dst: strcmp
      Src: /src/libevent/sample/time-test.c:93,1
    - Dst: event_base_new
      Src: /src/libevent/sample/time-test.c:102,1
    - Dst: event_new
      Src: /src/libevent/sample/time-test.c:105,1
    - Dst: event_self_cbarg
      Src: /src/libevent/sample/time-test.c:105,1
    - Dst: evsignal_new
      Src: /src/libevent/sample/time-test.c:106,1
    - Dst: fprintf
      Src: /src/libevent/sample/time-test.c:108,1
    - Dst: fprintf
      Src: /src/libevent/sample/time-test.c:112,1
    - Dst: evutil_timerclear
      Src: /src/libevent/sample/time-test.c:115,1
    - Dst: event_add
      Src: /src/libevent/sample/time-test.c:117,1
    - Dst: event_add
      Src: /src/libevent/sample/time-test.c:118,1
    - Dst: evutil_gettimeofday
      Src: /src/libevent/sample/time-test.c:120,1
    - Dst: setbuf
      Src: /src/libevent/sample/time-test.c:122,1
    - Dst: setbuf
      Src: /src/libevent/sample/time-test.c:123,1
    - Dst: event_base_dispatch
      Src: /src/libevent/sample/time-test.c:125,1
    - Dst: event_free
      Src: /src/libevent/sample/time-test.c:127,1
    - Dst: event_free
      Src: /src/libevent/sample/time-test.c:128,1
    - Dst: event_base_free
      Src: /src/libevent/sample/time-test.c:129,1
    - Dst: event_free
      Src: /src/libevent/sample/time-test.c:134,1
    - Dst: event_free
      Src: /src/libevent/sample/time-test.c:136,1
    - Dst: event_base_free
      Src: /src/libevent/sample/time-test.c:138,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 76
    functionDepth: 6
    functionLinenumber: 76
    functionLinenumberEnd: 140
    functionName: main
    functionSourceFile: /src/libevent/sample/time-test.c
    functionUses: 3
    functionsReached:
    - evutil_gettimeofday
    - setbuf
    - MAKEWORD
    - evutil_timerclear
    - event_base_free
    - event_new
    - strcmp
    - evsignal_new
    - event_free
    - event_base_dispatch
    - event_add
    - event_base_new
    - WSAStartup
    - fprintf
    - event_self_cbarg
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/libevent/sample/openssl_hostname_validation.c:71,1
    - Dst: X509_get_subject_name
      Src: /src/libevent/sample/openssl_hostname_validation.c:71,1
    - Dst: X509_NAME_get_entry
      Src: /src/libevent/sample/openssl_hostname_validation.c:77,1
    - Dst: X509_get_subject_name
      Src: /src/libevent/sample/openssl_hostname_validation.c:77,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/libevent/sample/openssl_hostname_validation.c:83,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/libevent/sample/openssl_hostname_validation.c:87,1
    - Dst: ASN1_STRING_length
      Src: /src/libevent/sample/openssl_hostname_validation.c:90,1
    - Dst: strlen
      Src: /src/libevent/sample/openssl_hostname_validation.c:90,1
    - Dst: Curl_cert_hostcheck
      Src: /src/libevent/sample/openssl_hostname_validation.c:95,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - hostname
    - server_cert
    argTypes:
    - char*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 64
    functionDepth: 4
    functionLinenumber: 64
    functionLinenumberEnd: 101
    functionName: matches_common_name
    functionSourceFile: /src/libevent/sample/openssl_hostname_validation.c
    functionUses: 0
    functionsReached:
    - X509_get_subject_name
    - X509_NAME_get_index_by_NID
    - X509_NAME_get_entry
    - Curl_cert_hostcheck
    - X509_NAME_ENTRY_get_data
    - ASN1_STRING_get0_data
    - ASN1_STRING_length
    - strlen
    linkageType: ''
    returnType: HostnameValidationResult
    signature: HostnameValidationResult matches_common_name(const char *hostname,
      const X509 *server_cert)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/libevent/sample/openssl_hostname_validation.c:116,1
    - Dst: X509_get_ext_d2i
      Src: /src/libevent/sample/openssl_hostname_validation.c:119,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/libevent/sample/openssl_hostname_validation.c:123,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/libevent/sample/openssl_hostname_validation.c:127,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/libevent/sample/openssl_hostname_validation.c:131,1
    - Dst: ASN1_STRING_length
      Src: /src/libevent/sample/openssl_hostname_validation.c:134,1
    - Dst: strlen
      Src: /src/libevent/sample/openssl_hostname_validation.c:134,1
    - Dst: Curl_cert_hostcheck
      Src: /src/libevent/sample/openssl_hostname_validation.c:139,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/libevent/sample/openssl_hostname_validation.c:147,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - hostname
    - server_cert
    argTypes:
    - char*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 150
    functionName: matches_subject_alternative_name
    functionSourceFile: /src/libevent/sample/openssl_hostname_validation.c
    functionUses: 0
    functionsReached:
    - sk_GENERAL_NAME_value
    - X509_get_ext_d2i
    - sk_GENERAL_NAME_num
    - strlen
    - Curl_cert_hostcheck
    - ASN1_STRING_get0_data
    - STACK_OF
    - ASN1_STRING_length
    - sk_GENERAL_NAME_pop_free
    linkageType: ''
    returnType: HostnameValidationResult
    signature: HostnameValidationResult matches_subject_alternative_name(const char
      *hostname, const X509 *server_cert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: matches_subject_alternative_name
      Src: /src/libevent/sample/openssl_hostname_validation.c:171,1
    - Dst: matches_common_name
      Src: /src/libevent/sample/openssl_hostname_validation.c:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - hostname
    - server_cert
    argTypes:
    - char*
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 164
    functionDepth: 5
    functionLinenumber: 164
    functionLinenumberEnd: 178
    functionName: validate_hostname
    functionSourceFile: /src/libevent/sample/openssl_hostname_validation.c
    functionUses: 1
    functionsReached:
    - matches_subject_alternative_name
    - matches_common_name
    linkageType: ''
    returnType: HostnameValidationResult
    signature: HostnameValidationResult validate_hostname(const char *hostname, const
      X509 *server_cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: EVBUFFER_LENGTH
    functionSourceFile: /src/libevent/include/event2/buffer_compat.h
    functionUses: 41
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBUFFER_LENGTH(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: EVBUFFER_DATA
    functionSourceFile: /src/libevent/include/event2/buffer_compat.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBUFFER_DATA(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: EVENT_IN_DOXYGEN_
    functionSourceFile: /src/libevent/include/event2/bufferevent.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct bufferevent
    signature: struct bufferevent EVENT_IN_DOXYGEN_
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ev
    - ','
    - cb
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: evtimer_set
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evtimer_set(ev, cb, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ev
    - ','
    - x
    - ','
    - cb
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: evsignal_set
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evsignal_set(ev, x, cb, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ev
    - ','
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: timeout_add
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: timeout_add(ev, tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ev
    - ','
    - cb
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: timeout_set
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: timeout_set(ev, cb, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: timeout_del
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: timeout_del(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ev
    - ','
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: timeout_pending
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: timeout_pending(ev, tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: timeout_initialized
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: timeout_initialized(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ev
    - ','
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: signal_add
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: signal_add(ev, tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ev
    - ','
    - x
    - ','
    - cb
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: signal_set
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: signal_set(ev, x, cb, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: signal_del
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: signal_del(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ev
    - ','
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: signal_pending
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: signal_pending(ev, tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: signal_initialized
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: signal_initialized(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 223
    functionName: EVENT_FD
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_FD(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 224
    functionName: EVENT_SIGNAL
    functionSourceFile: /src/libevent/include/event2/event_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVENT_SIGNAL(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 342
    functionName: EVENT_IN_DOXYGEN_
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evutil_monotonic_timer
    signature: struct evutil_monotonic_timer EVENT_IN_DOXYGEN_
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 496
    functionName: EVUTIL_CLOSESOCKET
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_CLOSESOCKET(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 526
    functionName: EVUTIL_SOCKET_ERROR
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_SOCKET_ERROR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - errcode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 529
    functionName: EVUTIL_SET_SOCKET_ERROR
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_SET_SOCKET_ERROR(errcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 553
    functionName: EVUTIL_SOCKET_ERROR
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_SOCKET_ERROR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - errcode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 555
    functionName: EVUTIL_SET_SOCKET_ERROR
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_SET_SOCKET_ERROR(errcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 557
    functionName: evutil_socket_geterror
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_socket_geterror(sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - errcode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 559
    functionName: evutil_socket_error_to_string
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_socket_error_to_string(errcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 563
    functionName: EVUTIL_SOCKET_ERROR
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_SOCKET_ERROR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - errcode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 565
    functionName: EVUTIL_SET_SOCKET_ERROR
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVUTIL_SET_SOCKET_ERROR(errcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 566
    functionName: evutil_socket_geterror
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_socket_geterror(sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - errcode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 567
    functionName: evutil_socket_error_to_string
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_socket_error_to_string(errcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tvp
    - ','
    - uvp
    - ','
    - vvp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 581
    functionName: evutil_timeradd
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_timeradd(tvp, uvp, vvp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tvp
    - ','
    - uvp
    - ','
    - vvp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 582
    functionName: evutil_timersub
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_timersub(tvp, uvp, vvp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tvp
    - ','
    - uvp
    - ','
    - vvp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 592
    functionName: evutil_timeradd
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_timeradd(tvp, uvp, vvp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tvp
    - ','
    - uvp
    - ','
    - vvp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 601
    functionName: evutil_timersub
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_timersub(tvp, uvp, vvp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tvp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 605
    functionName: evutil_timerclear
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_timerclear(tvp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tvp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 607
    functionName: evutil_timerclear
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_timerclear(tvp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tvp
    - ','
    - uvp
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 616
    functionName: evutil_timercmp
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_timercmp(tvp, uvp, cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tvp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 619
    functionName: evutil_timerisset
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_timerisset(tvp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tvp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 621
    functionName: evutil_timerisset
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_timerisset(tvp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 626
    functionName: evutil_offsetof
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_offsetof(type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 628
    functionName: evutil_offsetof
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_offsetof(type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tv
    - ','
    - tz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 638
    functionName: evutil_gettimeofday
    functionSourceFile: /src/libevent/include/event2/util.h
    functionUses: 53
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evutil_gettimeofday(tv, tz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: EVBUFFER_INPUT
    functionSourceFile: /src/libevent/include/event2/bufferevent_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBUFFER_INPUT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: EVBUFFER_OUTPUT
    functionSourceFile: /src/libevent/include/event2/bufferevent_compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVBUFFER_OUTPUT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: TAILQ_ENTRY
    functionSourceFile: /src/libevent/include/event2/rpc_struct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: TAILQ_ENTRY
    functionSourceFile: /src/libevent/include/event2/event_struct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: TAILQ_HEAD
    functionSourceFile: /src/libevent/include/event2/event_struct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_HEAD(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: LIST_ENTRY
    functionSourceFile: /src/libevent/include/event2/event_struct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - msg
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: EVTAG_HAS
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTAG_HAS(msg, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - msg
    - ','
    - member
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: EVTAG_ASSIGN
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTAG_ASSIGN(msg, member, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - msg
    - ','
    - member
    - ','
    - value
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: EVTAG_ASSIGN_WITH_LEN
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTAG_ASSIGN_WITH_LEN(msg, member, value, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - msg
    - ','
    - member
    - ','
    - pvalue
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: EVTAG_GET
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTAG_GET(msg, member, pvalue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - msg
    - ','
    - member
    - ','
    - pvalue
    - ','
    - plen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: EVTAG_GET_WITH_LEN
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTAG_GET_WITH_LEN(msg, member, pvalue, plen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - msg
    - ','
    - member
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: EVTAG_ARRAY_ADD_VALUE
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTAG_ARRAY_ADD_VALUE(msg, member, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - msg
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: EVTAG_ARRAY_ADD
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTAG_ARRAY_ADD(msg, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - msg
    - ','
    - member
    - ','
    - offset
    - ','
    - pvalue
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: EVTAG_ARRAY_GET
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTAG_ARRAY_GET(msg, member, offset, pvalue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - msg
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: EVTAG_ARRAY_LEN
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTAG_ARRAY_LEN(msg, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rpcname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: EVRPC_STRUCT
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVRPC_STRUCT(rpcname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - rpcname
    - ','
    - reqstruct
    - ','
    - rplystruct
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 191
    functionName: EVRPC_HEADER
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVRPC_HEADER(rpcname, reqstruct, rplystruct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - rpcname
    - ','
    - reqstruct
    - ','
    - rplystruct
    - ','
    - pool
    - ','
    - request
    - ','
    - reply
    - ','
    - cb
    - ','
    - cbarg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 228
    functionName: EVRPC_MAKE_CTX
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "EVRPC_MAKE_CTX(rpcname, reqstruct, rplystruct, \\\n    pool, request,
      reply, cb, cbarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - rpcname
    - ','
    - reqstruct
    - ','
    - rplystruct
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 253
    functionName: EVRPC_GENERATE
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVRPC_GENERATE(rpcname, reqstruct, rplystruct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rpc_req
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 264
    functionName: EVRPC_REQUEST_HTTP
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVRPC_REQUEST_HTTP(rpc_req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rpc_req
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 287
    functionName: EVRPC_REQUEST_DONE
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVRPC_REQUEST_DONE(rpc_req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - base
    - ','
    - name
    - ','
    - request
    - ','
    - reply
    - ','
    - callback
    - ','
    - cbarg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 340
    functionName: EVRPC_REGISTER
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVRPC_REGISTER(base, name, request, reply, callback, cbarg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 361
    functionName: EVRPC_UNREGISTER
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVRPC_UNREGISTER(base, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - name
    - ','
    - pool
    - ','
    - request
    - ','
    - reply
    - ','
    - cb
    - ','
    - cbarg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 389
    functionName: EVRPC_MAKE_REQUEST
    functionSourceFile: /src/libevent/include/event2/rpc.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVRPC_MAKE_REQUEST(name, pool, request, reply, cb, cbarg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 221
    functionName: EVENT_IN_DOXYGEN_
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct event_base
    signature: struct event_base EVENT_IN_DOXYGEN_
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 278
    functionName: EVENT_IN_DOXYGEN_
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct event
    signature: struct event EVENT_IN_DOXYGEN_
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: EVENT_IN_DOXYGEN_
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct event_config
    signature: struct event_config EVENT_IN_DOXYGEN_
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ev
    - ','
    - b
    - ','
    - cb
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1000
    functionName: evtimer_assign
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evtimer_assign(ev, b, cb, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - cb
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 1000
    functionDepth: 0
    functionLinenumber: 1000
    functionLinenumberEnd: 1001
    functionName: evtimer_new
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evtimer_new(b, cb, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ev
    - ','
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 1001
    functionDepth: 0
    functionLinenumber: 1001
    functionLinenumberEnd: 1002
    functionName: evtimer_add
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 40
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evtimer_add(ev, tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 1002
    functionDepth: 0
    functionLinenumber: 1002
    functionLinenumberEnd: 1003
    functionName: evtimer_del
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evtimer_del(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ev
    - ','
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 1003
    functionDepth: 0
    functionLinenumber: 1003
    functionLinenumberEnd: 1004
    functionName: evtimer_pending
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evtimer_pending(ev, tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 1004
    functionDepth: 0
    functionLinenumber: 1004
    functionLinenumberEnd: 1005
    functionName: evtimer_initialized
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evtimer_initialized(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ev
    - ','
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1013
    functionDepth: 0
    functionLinenumber: 1013
    functionLinenumberEnd: 1014
    functionName: evsignal_add
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evsignal_add(ev, tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - ev
    - ','
    - b
    - ','
    - x
    - ','
    - cb
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1016
    functionName: evsignal_assign
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evsignal_assign(ev, b, x, cb, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - b
    - ','
    - x
    - ','
    - cb
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1018
    functionName: evsignal_new
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evsignal_new(b, x, cb, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1018
    functionDepth: 0
    functionLinenumber: 1018
    functionLinenumberEnd: 1019
    functionName: evsignal_del
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evsignal_del(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ev
    - ','
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1020
    functionName: evsignal_pending
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evsignal_pending(ev, tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1020
    functionDepth: 0
    functionLinenumber: 1020
    functionLinenumberEnd: 1021
    functionName: evsignal_initialized
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evsignal_initialized(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - cb
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1030
    functionDepth: 0
    functionLinenumber: 1030
    functionLinenumberEnd: 1031
    functionName: evuser_new
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evuser_new(b, cb, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1032
    functionName: evuser_del
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evuser_del(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ev
    - ','
    - tv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1033
    functionName: evuser_pending
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evuser_pending(ev, tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1033
    functionDepth: 0
    functionLinenumber: 1033
    functionLinenumberEnd: 1034
    functionName: evuser_initialized
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evuser_initialized(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1035
    functionName: evuser_trigger
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evuser_trigger(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1376
    functionDepth: 0
    functionLinenumber: 1376
    functionLinenumberEnd: 1377
    functionName: event_get_signal
    functionSourceFile: /src/libevent/include/event2/event.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: event_get_signal(ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - msg
    - ','
    - member
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: EVTAG_ASSIGN
    functionSourceFile: /src/libevent/include/event2/rpc_compat.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTAG_ASSIGN(msg, member, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - msg
    - ','
    - member
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: EVTAG_GET
    functionSourceFile: /src/libevent/include/event2/rpc_compat.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTAG_GET(msg, member, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - msg
    - ','
    - member
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: EVTAG_ADD
    functionSourceFile: /src/libevent/include/event2/rpc_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTAG_ADD(msg, member, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - msg
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: EVTAG_LEN
    functionSourceFile: /src/libevent/include/event2/rpc_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTAG_LEN(msg, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - evbuf
    - ','
    - number
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: encode_int
    functionSourceFile: /src/libevent/include/event2/tag_compat.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: encode_int(evbuf, number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - evbuf
    - ','
    - number
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: encode_int64
    functionSourceFile: /src/libevent/include/event2/tag_compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: encode_int64(evbuf, number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: TAILQ_ENTRY
    functionSourceFile: /src/libevent/include/event2/keyvalq_struct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: TAILQ_HEAD
    functionSourceFile: /src/libevent/include/event2/keyvalq_struct.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_HEAD(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: EVENT_IN_DOXYGEN_
    functionSourceFile: /src/libevent/include/event2/buffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct evbuffer
    signature: struct evbuffer EVENT_IN_DOXYGEN_
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: __P
    functionSourceFile: /src/libevent/WIN32-Code/getopt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __P(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: _DIAGASSERT
    functionSourceFile: /src/libevent/WIN32-Code/getopt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _DIAGASSERT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: __P
    functionSourceFile: /src/libevent/WIN32-Code/getopt_long.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __P(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: _DIAGASSERT
    functionSourceFile: /src/libevent/WIN32-Code/getopt_long.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _DIAGASSERT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - root
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: SPLAY_INITIALIZER
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_INITIALIZER(root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - root
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: SPLAY_INIT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_INIT(root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: SPLAY_ENTRY
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: SPLAY_LEFT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_LEFT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: SPLAY_RIGHT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_RIGHT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: SPLAY_ROOT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_ROOT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: SPLAY_EMPTY
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: SPLAY_ROTATE_RIGHT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_ROTATE_RIGHT(head, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: SPLAY_ROTATE_LEFT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_ROTATE_LEFT(head, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: SPLAY_LINKLEFT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_LINKLEFT(head, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: SPLAY_LINKRIGHT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_LINKRIGHT(head, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - head
    - ','
    - node
    - ','
    - left
    - ','
    - right
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: SPLAY_ASSEMBLE
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_ASSEMBLE(head, node, left, right, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: SPLAY_PROTOTYPE
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_PROTOTYPE(name, type, field, cmp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SPLAY_EMPTY
      Src: /src/libevent/WIN32-Code/tree.h:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 130
    functionName: _SPLAY_FIND
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached:
    - SPLAY_EMPTY
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\\\nname##_SPLAY_FIND(struct name *head,
      struct type *elm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SPLAY_RIGHT
      Src: /src/libevent/WIN32-Code/tree.h:136,1
    - Dst: SPLAY_RIGHT
      Src: /src/libevent/WIN32-Code/tree.h:137,1
    - Dst: SPLAY_LEFT
      Src: /src/libevent/WIN32-Code/tree.h:138,1
    - Dst: SPLAY_LEFT
      Src: /src/libevent/WIN32-Code/tree.h:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 144
    functionName: _SPLAY_NEXT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached:
    - SPLAY_RIGHT
    - SPLAY_LEFT
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\\\nname##_SPLAY_NEXT(struct name *head,
      struct type *elm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SPLAY_ROOT
      Src: /src/libevent/WIN32-Code/tree.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - head
    - val
    argTypes:
    - struct name*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: _SPLAY_MIN_MAX
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached:
    - SPLAY_ROOT
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\\\nname##_SPLAY_MIN_MAX(struct name *head,
      int val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 239
    functionName: SPLAY_GENERATE
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_GENERATE(name, type, field, cmp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SPLAY_LEFT
      Src: /src/libevent/WIN32-Code/tree.h:244,1
    - Dst: SPLAY_RIGHT
      Src: /src/libevent/WIN32-Code/tree.h:244,1
    - Dst: SPLAY_LEFT
      Src: /src/libevent/WIN32-Code/tree.h:249,1
    - Dst: SPLAY_ROTATE_RIGHT
      Src: /src/libevent/WIN32-Code/tree.h:253,1
    - Dst: SPLAY_LEFT
      Src: /src/libevent/WIN32-Code/tree.h:254,1
    - Dst: SPLAY_LINKLEFT
      Src: /src/libevent/WIN32-Code/tree.h:257,1
    - Dst: SPLAY_RIGHT
      Src: /src/libevent/WIN32-Code/tree.h:259,1
    - Dst: SPLAY_ROTATE_LEFT
      Src: /src/libevent/WIN32-Code/tree.h:263,1
    - Dst: SPLAY_RIGHT
      Src: /src/libevent/WIN32-Code/tree.h:264,1
    - Dst: SPLAY_LINKRIGHT
      Src: /src/libevent/WIN32-Code/tree.h:267,1
    - Dst: SPLAY_ASSEMBLE
      Src: /src/libevent/WIN32-Code/tree.h:270,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 2
    argNames:
    - head
    - __comp
    argTypes:
    - struct name*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 271
    functionName: _SPLAY_MINMAX
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached:
    - SPLAY_LINKLEFT
    - SPLAY_ROTATE_RIGHT
    - SPLAY_LEFT
    - SPLAY_ROTATE_LEFT
    - SPLAY_LINKRIGHT
    - SPLAY_RIGHT
    - SPLAY_ASSEMBLE
    linkageType: ''
    returnType: void
    signature: void _SPLAY_MINMAX(struct name *head, int __comp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 277
    functionName: SPLAY_INSERT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_INSERT(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 278
    functionName: SPLAY_REMOVE
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_REMOVE(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 279
    functionName: SPLAY_FIND
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_FIND(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 280
    functionName: SPLAY_NEXT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_NEXT(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 282
    functionName: SPLAY_MIN
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_MIN(name, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 284
    functionName: SPLAY_MAX
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_MAX(name, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - name
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: SPLAY_FOREACH
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLAY_FOREACH(x, name, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - root
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 298
    functionName: RB_INITIALIZER
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_INITIALIZER(root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - root
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: RB_INIT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_INIT(root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 307
    functionName: RB_ENTRY
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: RB_LEFT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_LEFT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 315
    functionName: RB_RIGHT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_RIGHT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 316
    functionName: RB_PARENT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_PARENT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 317
    functionName: RB_COLOR
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_COLOR(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 318
    functionName: RB_ROOT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_ROOT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 319
    functionName: RB_EMPTY
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elm
    - ','
    - parent
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 325
    functionName: RB_SET
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_SET(elm, parent, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - black
    - ','
    - red
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: RB_SET_BLACKRED
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_SET_BLACKRED(black, red, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 354
    functionName: RB_ROTATE_LEFT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_ROTATE_LEFT(head, elm, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - tmp
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 374
    functionName: RB_ROTATE_RIGHT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_ROTATE_RIGHT(head, elm, tmp, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 386
    functionName: RB_PROTOTYPE
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_PROTOTYPE(name, type, field, cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - field
    - ','
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 577
    functionName: RB_GENERATE
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_GENERATE(name, type, field, cmp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RB_ROOT
      Src: /src/libevent/WIN32-Code/tree.h:584,1
    - Dst: RB_LEFT
      Src: /src/libevent/WIN32-Code/tree.h:589,1
    - Dst: RB_RIGHT
      Src: /src/libevent/WIN32-Code/tree.h:591,1
    - Dst: RB_SET
      Src: /src/libevent/WIN32-Code/tree.h:595,1
    - Dst: RB_LEFT
      Src: /src/libevent/WIN32-Code/tree.h:598,1
    - Dst: RB_RIGHT
      Src: /src/libevent/WIN32-Code/tree.h:600,1
    - Dst: RB_AUGMENT
      Src: /src/libevent/WIN32-Code/tree.h:601,1
    - Dst: RB_ROOT
      Src: /src/libevent/WIN32-Code/tree.h:603,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 606
    functionName: _RB_INSERT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached:
    - RB_RIGHT
    - RB_AUGMENT
    - RB_ROOT
    - RB_SET
    - RB_LEFT
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\t\t\\\nname##_RB_INSERT(struct name *head,
      struct type *elm)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RB_ROOT
      Src: /src/libevent/WIN32-Code/tree.h:612,1
    - Dst: cmp
      Src: /src/libevent/WIN32-Code/tree.h:615,1
    - Dst: RB_LEFT
      Src: /src/libevent/WIN32-Code/tree.h:617,1
    - Dst: RB_RIGHT
      Src: /src/libevent/WIN32-Code/tree.h:619,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - head
    - elm
    argTypes:
    - struct name*
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 624
    functionName: _RB_FIND
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached:
    - RB_RIGHT
    - RB_ROOT
    - cmp
    - RB_LEFT
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\t\t\\\nname##_RB_FIND(struct name *head,
      struct type *elm)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RB_RIGHT
      Src: /src/libevent/WIN32-Code/tree.h:629,1
    - Dst: RB_RIGHT
      Src: /src/libevent/WIN32-Code/tree.h:630,1
    - Dst: RB_LEFT
      Src: /src/libevent/WIN32-Code/tree.h:631,1
    - Dst: RB_LEFT
      Src: /src/libevent/WIN32-Code/tree.h:632,1
    - Dst: RB_PARENT
      Src: /src/libevent/WIN32-Code/tree.h:634,1
    - Dst: RB_LEFT
      Src: /src/libevent/WIN32-Code/tree.h:635,1
    - Dst: RB_PARENT
      Src: /src/libevent/WIN32-Code/tree.h:635,1
    - Dst: RB_PARENT
      Src: /src/libevent/WIN32-Code/tree.h:636,1
    - Dst: RB_PARENT
      Src: /src/libevent/WIN32-Code/tree.h:638,1
    - Dst: RB_RIGHT
      Src: /src/libevent/WIN32-Code/tree.h:639,1
    - Dst: RB_PARENT
      Src: /src/libevent/WIN32-Code/tree.h:639,1
    - Dst: RB_PARENT
      Src: /src/libevent/WIN32-Code/tree.h:640,1
    - Dst: RB_PARENT
      Src: /src/libevent/WIN32-Code/tree.h:641,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - elm
    argTypes:
    - struct type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 645
    functionName: _RB_NEXT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached:
    - RB_RIGHT
    - RB_PARENT
    - RB_LEFT
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\t\t\\\nname##_RB_NEXT(struct type *elm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RB_ROOT
      Src: /src/libevent/WIN32-Code/tree.h:650,1
    - Dst: RB_LEFT
      Src: /src/libevent/WIN32-Code/tree.h:655,1
    - Dst: RB_RIGHT
      Src: /src/libevent/WIN32-Code/tree.h:657,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - head
    - val
    argTypes:
    - struct name*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 660
    functionName: _RB_MINMAX
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 0
    functionsReached:
    - RB_RIGHT
    - RB_ROOT
    - RB_LEFT
    linkageType: ''
    returnType: struct type
    signature: "struct type *\t\t\t\t\t\t\t\t\\\nname##_RB_MINMAX(struct name *head,
      int val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 666
    functionName: RB_INSERT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_INSERT(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 667
    functionName: RB_REMOVE
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_REMOVE(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 668
    functionName: RB_FIND
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_FIND(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 669
    functionName: RB_NEXT
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_NEXT(name, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 670
    functionName: RB_MIN
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_MIN(name, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 671
    functionName: RB_MAX
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_MAX(name, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - name
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 676
    functionName: RB_FOREACH
    functionSourceFile: /src/libevent/WIN32-Code/tree.h
    functionUses: 63
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_FOREACH(x, name, head)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: event_base_new
      Src: /src/libevent/test-export/test-export.c:27,1
    - Dst: evhttp_new
      Src: /src/libevent/test-export/test-export.c:29,1
    - Dst: evdns_base_new
      Src: /src/libevent/test-export/test-export.c:30,1
    - Dst: evrpc_init
      Src: /src/libevent/test-export/test-export.c:34,1
    - Dst: event_base_free
      Src: /src/libevent/test-export/test-export.c:37,1
    - Dst: evhttp_free
      Src: /src/libevent/test-export/test-export.c:39,1
    - Dst: evrpc_free
      Src: /src/libevent/test-export/test-export.c:41,1
    - Dst: evdns_base_free
      Src: /src/libevent/test-export/test-export.c:43,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 19
    functionDepth: 9
    functionLinenumber: 19
    functionLinenumberEnd: 46
    functionName: test
    functionSourceFile: /src/libevent/test-export/test-export.c
    functionUses: 42
    functionsReached:
    - event_base_free
    - evhttp_free
    - evrpc_init
    - evrpc_free
    - evdns_base_free
    - evdns_base_new
    - event_base_new
    - evhttp_new
    linkageType: ''
    returnType: int
    signature: int test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evthread_use_pthreads
      Src: /src/libevent/test-export/test-export.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: test
    functionSourceFile: /src/libevent/test-export/test-export.c
    functionUses: 42
    functionsReached:
    - evthread_use_pthreads
    linkageType: ''
    returnType: int
    signature: int test()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SSL_library_init
      Src: /src/libevent/test-export/test-export.c:63,1
    - Dst: ERR_load_crypto_strings
      Src: /src/libevent/test-export/test-export.c:64,1
    - Dst: SSL_load_error_strings
      Src: /src/libevent/test-export/test-export.c:65,1
    - Dst: OpenSSL_add_all_algorithms
      Src: /src/libevent/test-export/test-export.c:66,1
    - Dst: event_base_new
      Src: /src/libevent/test-export/test-export.c:68,1
    - Dst: SSL_CTX_new
      Src: /src/libevent/test-export/test-export.c:73,1
    - Dst: SSLv23_method
      Src: /src/libevent/test-export/test-export.c:73,1
    - Dst: SSL_new
      Src: /src/libevent/test-export/test-export.c:77,1
    - Dst: bufferevent_openssl_socket_new
      Src: /src/libevent/test-export/test-export.c:81,1
    - Dst: event_base_free
      Src: /src/libevent/test-export/test-export.c:90,1
    - Dst: SSL_CTX_free
      Src: /src/libevent/test-export/test-export.c:92,1
    - Dst: SSL_free
      Src: /src/libevent/test-export/test-export.c:94,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 54
    functionDepth: 6
    functionLinenumber: 54
    functionLinenumberEnd: 96
    functionName: test
    functionSourceFile: /src/libevent/test-export/test-export.c
    functionUses: 42
    functionsReached:
    - SSL_CTX_new
    - SSL_free
    - event_base_free
    - ERR_load_crypto_strings
    - SSLv23_method
    - OpenSSL_add_all_algorithms
    - SSL_CTX_free
    - bufferevent_openssl_socket_new
    - event_base_new
    - SSL_library_init
    - SSL_new
    - SSL_load_error_strings
    linkageType: ''
    returnType: int
    signature: int test()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: event_base_new
      Src: /src/libevent/test-export/test-export.c:107,1
    - Dst: malloc
      Src: /src/libevent/test-export/test-export.c:112,1
    - Dst: mbedtls_ssl_config_init
      Src: /src/libevent/test-export/test-export.c:116,1
    - Dst: bufferevent_mbedtls_dyncontext_new
      Src: /src/libevent/test-export/test-export.c:118,1
    - Dst: bufferevent_mbedtls_socket_new
      Src: /src/libevent/test-export/test-export.c:120,1
    - Dst: event_base_free
      Src: /src/libevent/test-export/test-export.c:129,1
    - Dst: bufferevent_mbedtls_dyncontext_free
      Src: /src/libevent/test-export/test-export.c:131,1
    - Dst: mbedtls_ssl_config_free
      Src: /src/libevent/test-export/test-export.c:134,1
    - Dst: free
      Src: /src/libevent/test-export/test-export.c:135,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 98
    functionDepth: 6
    functionLinenumber: 98
    functionLinenumberEnd: 138
    functionName: test
    functionSourceFile: /src/libevent/test-export/test-export.c
    functionUses: 42
    functionsReached:
    - mbedtls_ssl_config_init
    - bufferevent_mbedtls_dyncontext_free
    - event_base_free
    - bufferevent_mbedtls_socket_new
    - free
    - malloc
    - mbedtls_ssl_config_free
    - event_base_new
    - bufferevent_mbedtls_dyncontext_new
    linkageType: ''
    returnType: int
    signature: int test()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: event_base_new
      Src: /src/libevent/test-export/test-export.c:145,1
    - Dst: event_base_free
      Src: /src/libevent/test-export/test-export.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 140
    functionDepth: 6
    functionLinenumber: 140
    functionLinenumberEnd: 150
    functionName: test
    functionSourceFile: /src/libevent/test-export/test-export.c
    functionUses: 42
    functionsReached:
    - event_base_new
    - event_base_free
    linkageType: ''
    returnType: int
    signature: int test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WSAStartup
      Src: /src/libevent/test-export/test-export.c:160,1
    - Dst: MAKEWORD
      Src: /src/libevent/test-export/test-export.c:160,1
    - Dst: test
      Src: /src/libevent/test-export/test-export.c:163,1
    - Dst: WSACleanup
      Src: /src/libevent/test-export/test-export.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 153
    functionDepth: 10
    functionLinenumber: 153
    functionLinenumberEnd: 168
    functionName: main
    functionSourceFile: /src/libevent/test-export/test-export.c
    functionUses: 3
    functionsReached:
    - WSAStartup
    - MAKEWORD
    - WSACleanup
    - test
    linkageType: ''
    returnType: int
    signature: int main(int argc, char const *argv[])
Fuzzer filename: /src/tmux/fuzz/style-fuzzer.c
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- mm-internal.h
- ctype.h
- stropts.h
- event2/keyvalq_struct.h
- zlib.h
- stddef.h
- sys/tree.h
- event2/http_struct.h
- sys/stat.h
- libproc.h
- bcrypt.h
- port.h
- BaseTsd.h
- minheap-internal.h
- sys/signalfd.h
- ../mm-internal.h
- stdlib.h
- event2/tag_compat.h
- sha1.h
- mbedtls/ssl.h
- sys/proc.h
- systemd/sd-id128.h
- openssl_hostname_validation.h
- ../minheap-internal.h
- sys/dir.h
- process.h
- evdns-internal.h
- utf8proc.h
- event2/listener.h
- sys/epoll.h
- winerror.h
- sys/time.h
- imsg.h
- limits.h
- compat/vis.h
- ../log-internal.h
- mbedtls-compat.h
- bufferevent-internal.h
- event2/event_compat.h
- mbedtls/version.h
- defer-internal.h
- errno.h
- sys/timerfd.h
- event2/rpc.h
- time.h
- mach/mach.h
- inttypes.h
- compat/bitstring.h
- wincrypt.h
- locale.h
- libgen.h
- event2/dns.h
- sys/prctl.h
- ../ipv6-internal.h
- evutil.h
- sys/ioccom.h
- resolv.h
- mbedtls/compat-3-crypto.h
- sys/param.h
- sys/locking.h
- stdio.h
- mbedtls/debug.h
- regress.h
- compat/queue.h
- ifaddrs.h
- mach/mach_time.h
- event-internal.h
- signal.h
- event2/event_struct.h
- event2/thread.h
- ratelim-internal.h
- sys/event.h
- openssl/rsa.h
- tinytest_macros.h
- openssl/pem.h
- event2/dns_compat.h
- regex.h
- event2/http_compat.h
- event2/tag.h
- regress_testutils.h
- netinet/in.h
- vproc.h
- compat/tree.h
- ../event-internal.h
- iocp-internal.h
- event2/event-config.h
- util-internal.h
- err.h
- math.h
- evrpc-internal.h
- hostcheck.h
- evthread-internal.h
- procfs.h
- event2/buffer_compat.h
- sys/sysctl.h
- compat.h
- fnmatch.h
- tmux-protocol.h
- ssl-compat.h
- sys/signal.h
- mbedtls/config.h
- event2/rpc_struct.h
- mbedtls/ctr_drbg.h
- ipv6-internal.h
- AvailabilityMacros.h
- vis.h
- regress_http.h
- kqueue-internal.h
- sys/un.h
- ../iocp-internal.h
- event2/event.h
- libutil.h
- sys/random.h
- stdint.h
- sys/sendfile.h
- paths.h
- event2/http.h
- psa/crypto.h
- sys/resource.h
- sys/file.h
- mbedtls/error.h
- http-internal.h
- ws2tcpip.h
- strings.h
- langinfo.h
- tinytest_local.h
- openssl/x509v3.h
- kernel/OS.h
- event2/watch.h
- mswsock.h
- io.h
- mstcpip.h
- event.h
- mbedtls/net.h
- assert.h
- mbedtls/build_info.h
- ucred.h
- openssl/x509.h
- sys/cdefs.h
- net/if.h
- netioapi.h
- openssl/bio.h
- util.h
- evsignal-internal.h
- log-internal.h
- ../evthread-internal.h
- windows.h
- openssl-compat.h
- systemd/sd-daemon.h
- openssl/err.h
- ncurses.h
- tmux.h
- curses.h
- utempter.h
- mbedtls/compat-2.x.h
- sys/wait.h
- sys/ndir.h
- strlcpy-internal.h
- netinet/tcp.h
- mbedtls/net_sockets.h
- sys/syscall.h
- arpa/inet.h
- glob.h
- event2/bufferevent_ssl.h
- sys/user.h
- netinet/in6.h
- sys/uio.h
- openssl/ssl.h
- xmalloc.h
- evconfig-private.h
- pty.h
- time-internal.h
- afunix.h
- fcntl.h
- sys/timeb.h
- event2/bufferevent_compat.h
- syslog.h
- stdbool.h
- ../strlcpy-internal.h
- iphlpapi.h
- pwd.h
- mbedtls/platform.h
- sys/socket.h
- unistd.h
- openssl/bn.h
- malloc.h
- event2/buffer.h
- string.h
- event2/ws.h
- wepoll.h
- tinytest.h
- stdarg.h
- sys/auxv.h
- ../time-internal.h
- regress_thread.h
- event2/rpc_compat.h
- systemd/sd-bus.h
- event2/util.h
- ht-internal.h
- sys/types.h
- regress.gen.h
- tchar.h
- evmap-internal.h
- poll.h
- sys/eventfd.h
- sys/select.h
- event2/visibility.h
- mbedtls/certs.h
- event2/bufferevent.h
- sys/mman.h
- pthread.h
- compat/imsg.h
- sys/ioctl.h
- getopt.h
- changelist-internal.h
- regress_ssl.c
- sys/queue.h
- systemd/sd-login.h
- wchar.h
- ../util-internal.h
- evbuffer-internal.h
- termios.h
- netdb.h
- sys/utsname.h
- winsock2.h
- openssl/rand.h
- bitstring.h
- regress_ws.h
- epolltable-internal.h
- mbedtls/entropy.h
- sys/devpoll.h
- sys/filio.h
- ndir.h
- shlobj.h
- event2/bufferevent_struct.h
- event2/dns_struct.h
- ./arc4random.c
- term.h
- dirent.h
report: name
sources:
- function_names:
  - cmd_kill_session_exec
  source_file: /src/tmux/cmd-kill-session.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - window_clock_start_timer
  - window_clock_timer_callback
  - window_clock_init
  - window_clock_free
  - window_clock_resize
  - window_clock_key
  - window_clock_draw_screen
  source_file: /src/tmux/window-clock.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: screen
        type: struct screen
      - name: tim
        type: time_t
      - name: timer
        type: struct event
      item_type: struct
      name: window_clock_mode_data
      pos:
        line_end: 50
        line_start: 46
        source_file: /src/tmux/window-clock.c
    typedefs: []
    union: []
- function_names:
  - cmd_switch_client_exec
  source_file: /src/tmux/cmd-switch-client.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - window_cmp
  - winlink_cmp
  - window_pane_cmp
  - winlink_find_by_window
  - RB_FOREACH
  - winlink_find_by_index
  - winlink_find_by_window_id
  - RB_FOREACH
  - winlink_next_index
  - winlink_count
  - winlink_add
  - winlink_set_window
  - winlink_remove
  - winlink_next
  - winlink_previous
  - winlink_next_by_number
  - winlink_previous_by_number
  - winlink_stack_push
  - winlink_stack_remove
  - window_find_by_id_str
  - window_find_by_id
  - window_update_activity
  - window_create
  - window_destroy
  - window_pane_destroy_ready
  - window_add_ref
  - window_remove_ref
  - window_set_name
  - window_resize
  - window_pane_send_resize
  - window_has_floating_panes
  - window_has_pane
  - window_update_focus
  - window_pane_update_focus
  - window_set_active_pane
  - window_pane_get_palette
  - window_redraw_active_switch
  - window_get_active_at
  - window_find_string
  - window_zoom
  - window_unzoom
  - window_push_zoom
  - window_pop_zoom
  - window_add_pane
  - window_lost_pane
  - window_remove_pane
  - window_pane_at_index
  - window_pane_next_by_number
  - window_pane_previous_by_number
  - window_pane_index
  - window_count_panes
  - window_destroy_panes
  - window_printable_flags
  - window_pane_printable_flags
  - window_pane_find_by_id_str
  - window_pane_find_by_id
  - window_pane_create
  - window_pane_destroy
  - window_pane_read_callback
  - window_pane_error_callback
  - window_pane_set_event
  - window_pane_resize
  - window_pane_set_mode
  - window_pane_reset_mode
  - window_pane_reset_mode_all
  - window_pane_copy_paste
  - window_pane_copy_key
  - window_pane_paste
  - window_pane_key
  - window_pane_visible
  - window_pane_exited
  - window_pane_search
  - window_pane_choose_best
  - window_pane_full_size_offset
  - window_pane_find_up
  - window_pane_find_down
  - window_pane_find_left
  - window_pane_find_right
  - window_pane_stack_push
  - window_pane_stack_remove
  - winlink_clear_flags
  - winlink_shuffle_up
  - window_pane_input_callback
  - window_pane_start_input
  - window_pane_get_new_data
  - window_pane_update_used_data
  - window_set_fill_character
  - window_pane_default_cursor
  - window_pane_mode
  - window_pane_show_scrollbar
  - window_pane_get_bg
  - window_get_bg_client
  - window_pane_get_bg_control_client
  - window_pane_get_fg
  - window_pane_get_fg_control_client
  - window_pane_get_theme
  - window_pane_send_theme_update
  - window_pane_border_status_get_range
  - window_pane_tiled_geometry
  - window_pane_floating_geometry
  source_file: /src/tmux/window.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*item'
        type: struct cmdq_item
      - name: wp
        type: u_int
      - name: '*file'
        type: struct client_file
      item_type: struct
      name: window_pane_input_data
      pos:
        line_end: 67
        line_start: 63
        source_file: /src/tmux/window.c
    typedefs: []
    union: []
- function_names:
  - layout_create_cell
  - layout_free_cell
  - layout_print_cell
  - layout_search_by_border
  - layout_set_size
  - layout_make_leaf
  - layout_make_node
  - layout_fix_zindexes
  - layout_fix_offsets1
  - layout_fix_offsets
  - layout_cell_is_top
  - layout_cell_is_bottom
  - layout_add_horizontal_border
  - layout_fix_panes
  - layout_count_cells
  - layout_resize_check
  - layout_resize_adjust
  - layout_destroy_cell
  - layout_init
  - layout_free
  - layout_resize
  - layout_resize_pane_to
  - layout_resize_layout
  - layout_resize_pane
  - layout_resize_pane_grow
  - layout_resize_pane_shrink
  - layout_assign_pane
  - layout_new_pane_size
  - layout_set_size_check
  - layout_resize_child_cells
  - layout_split_pane
  - layout_close_pane
  - layout_spread_cell
  - layout_spread_out
  source_file: /src/tmux/layout.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tty_add_features
  - tty_get_features
  - tty_apply_features
  - tty_default_features
  source_file: /src/tmux/tty-features.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: "*const\t*capabilities"
        type: char
      - name: flags
        type: int
      item_type: struct
      name: tty_feature
      pos:
        line_end: 47
        line_start: 43
        source_file: /src/tmux/tty-features.c
    - fields:
      - name: '*name'
        type: char
      - name: version
        type: u_int
      - name: '*features'
        type: char
      item_type: struct
      name: "table[] = {\n#define TTY_FEATURES_BASE_MODERN_XTERM \\\n\t\"256,RGB,bpaste,clipboard,mouse,strikethrough,title\"\n\t\t{
        .name = \"mintty\",\n\t\t  .features = TTY_FEATURES_BASE_MODERN_XTERM \",\"\n\t\t\t
        \     \"ccolour,\"\n\t\t\t      \"cstyle,\"\n\t\t\t      \"extkeys,\"\n\t\t\t
        \     \"margins,\"\n\t\t\t      \"overline,\"\n\t\t\t      \"usstyle\"\n\t\t}"
      pos:
        line_end: 484
        line_start: 480
        source_file: /src/tmux/tty-features.c
    typedefs: []
    union: []
- function_names:
  - file_get_path
  - file_cmp
  - file_create_with_peer
  - file_create_with_client
  - file_free
  - file_fire_done_cb
  - file_fire_done
  - file_fire_read
  - file_can_print
  - file_print
  - file_vprint
  - file_print_buffer
  - file_error
  - file_write
  - file_read
  - file_cancel
  - file_push_cb
  - file_push
  - file_write_left
  - RB_FOREACH
  - file_write_error_callback
  - file_write_callback
  - file_write_open
  - file_write_data
  - file_write_close
  - file_read_error_callback
  - file_read_callback
  - file_read_open
  - file_read_cancel
  - file_write_ready
  - file_read_data
  - file_read_done
  source_file: /src/tmux/file.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - server_redraw_client
  - server_status_client
  - server_redraw_session
  - server_redraw_session_group
  - server_status_session
  - server_status_session_group
  - server_redraw_window
  - server_redraw_window_borders
  - server_status_window
  - server_lock
  - server_lock_session
  - server_lock_client
  - server_kill_pane
  - server_kill_window
  - server_renumber_session
  - server_renumber_all
  - server_link_window
  - server_unlink_window
  - server_destroy_pane
  - server_destroy_session_group
  - server_find_session
  - server_newer_session
  - server_newer_detached_session
  - server_destroy_session
  - server_check_unattached
  - server_unzoom_window
  source_file: /src/tmux/server-fn.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_break_pane_exec
  source_file: /src/tmux/cmd-break-pane.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BREAK_PANE_TEMPLATE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/tmux/cmd-break-pane.c
      type_or_value: '"#{session_name}:#{window_index}.#{pane_index}"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_rename_window_exec
  source_file: /src/tmux/cmd-rename-window.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_find_inside_pane
  - cmd_find_client_better
  - cmd_find_best_client
  - cmd_find_session_better
  - cmd_find_best_session
  - cmd_find_best_session_with_window
  - cmd_find_best_winlink_with_window
  - cmd_find_map_table
  - cmd_find_get_session
  - cmd_find_get_window
  - cmd_find_get_window_with_session
  - cmd_find_get_pane
  - cmd_find_get_pane_with_session
  - cmd_find_get_pane_with_window
  - cmd_find_clear_state
  - cmd_find_empty_state
  - cmd_find_valid_state
  - cmd_find_copy_state
  - cmd_find_log_state
  - cmd_find_from_session
  - cmd_find_from_winlink
  - cmd_find_from_session_window
  - cmd_find_from_window
  - cmd_find_from_winlink_pane
  - cmd_find_from_pane
  - cmd_find_from_nothing
  - cmd_find_from_mouse
  - cmd_find_from_client
  - cmd_find_target
  - cmd_find_current_client
  - cmd_find_client
  source_file: /src/tmux/cmd-find.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_show_options_exec
  - cmd_show_options_print
  - cmd_show_options_all
  source_file: /src/tmux/cmd-show-options.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - nitems
  - is_runnable
  - is_stopped
  - cmp_procs
  - osdep_get_name
  - osdep_get_cwd_fallback
  - osdep_get_cwd
  - osdep_get_cwd
  - osdep_event_init
  source_file: /src/tmux/osdep-freebsd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - resize_window
  - ignore_client_size
  - clients_with_window
  - clients_calculate_size
  - default_window_size_skip_client
  - default_window_size
  - recalculate_size_skip_client
  - recalculate_size
  - recalculate_sizes
  - recalculate_sizes_now
  source_file: /src/tmux/resize.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - osdep_get_name
  - osdep_get_cwd
  - osdep_event_init
  source_file: /src/tmux/osdep-unknown.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - is_runnable
  - is_stopped
  - cmp_procs
  - osdep_get_name
  - osdep_get_cwd
  - osdep_event_init
  source_file: /src/tmux/osdep-netbsd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tty_use_margin
  - tty_full_width
  - TTY_BLOCK_START
  - TTY_BLOCK_STOP
  - tty_create_log
  - tty_init
  - tty_resize
  - tty_set_size
  - tty_read_callback
  - tty_timer_callback
  - tty_block_maybe
  - tty_write_callback
  - tty_open
  - tty_start_timer_callback
  - tty_start_start_timer
  - tty_start_tty
  - tty_send_requests
  - tty_repeat_requests
  - tty_stop_tty
  - tty_close
  - tty_free
  - tty_update_features
  - tty_raw
  - tty_putcode
  - tty_putcode_i
  - tty_putcode_ii
  - tty_putcode_iii
  - tty_putcode_s
  - tty_putcode_ss
  - tty_add
  - tty_puts
  - tty_putc
  - tty_putn
  - tty_set_italics
  - tty_set_title
  - tty_set_path
  - tty_force_cursor_colour
  - tty_update_cursor
  - tty_update_mode
  - tty_emulate_repeat
  - tty_repeat_space
  - tty_window_bigger
  - tty_window_offset
  - tty_window_offset1
  - tty_update_window_offset
  - tty_update_client_offset
  - tty_large_region
  - tty_fake_bce
  - tty_redraw_region
  - tty_is_visible
  - tty_clamp_line
  - tty_clear_line
  - tty_clear_pane_line
  - tty_clamp_area
  - tty_clear_area
  - tty_clear_pane_area
  - tty_draw_pane
  - tty_check_codeset
  - tty_check_overlay
  - tty_check_overlay_range
  - tty_set_client_cb
  - tty_draw_images
  - tty_sync_start
  - tty_sync_end
  - tty_client_ready
  - tty_write
  - tty_write_one
  - tty_cmd_insertcharacter
  - tty_cmd_deletecharacter
  - tty_cmd_clearcharacter
  - tty_cmd_insertline
  - tty_cmd_deleteline
  - tty_cmd_clearline
  - tty_cmd_clearendofline
  - tty_cmd_clearstartofline
  - tty_cmd_reverseindex
  - tty_cmd_linefeed
  - tty_cmd_scrollup
  - tty_cmd_scrolldown
  - tty_cmd_clearendofscreen
  - tty_cmd_clearstartofscreen
  - tty_cmd_clearscreen
  - tty_cmd_alignmenttest
  - tty_cmd_cell
  - tty_cmd_cells
  - tty_cmd_setselection
  - tty_set_selection
  - tty_cmd_rawstring
  - tty_cmd_sixelimage
  - tty_cmd_syncstart
  - tty_cell
  - tty_reset
  - tty_invalidate
  - tty_region_off
  - tty_region_pane
  - tty_region
  - tty_margin_off
  - tty_margin_pane
  - tty_margin
  - tty_cursor_pane_unless_wrap
  - tty_cursor_pane
  - tty_cursor
  - tty_hyperlink
  - tty_attributes
  - tty_colours
  - tty_check_fg
  - tty_check_bg
  - tty_check_us
  - tty_colours_fg
  - tty_colours_bg
  - tty_colours_us
  - tty_try_colour
  - tty_window_default_style
  - tty_style_changed
  - tty_default_colours
  - tty_default_attributes
  - tty_clipboard_query_callback
  - tty_clipboard_query
  - tty_set_progress_bar
  source_file: /src/tmux/tty.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TTY_QUERY_TIMEOUT
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/tmux/tty.c
      type_or_value: '5'
    - item_type: preproc_def
      name: TTY_REQUEST_LIMIT
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/tmux/tty.c
      type_or_value: '30'
    structs: []
    typedefs: []
    union: []
- function_names:
  - alerts_timer
  - alerts_callback
  - alerts_action_applies
  - alerts_check_all
  - alerts_check_session
  - alerts_enabled
  - alerts_reset_all
  - alerts_reset
  - alerts_queue
  - alerts_check_bell
  - alerts_check_activity
  - alerts_check_silence
  - alerts_set_message
  source_file: /src/tmux/alerts.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_rotate_window_exec
  source_file: /src/tmux/cmd-rotate-window.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - layout_set_lookup
  - layout_set_select
  - layout_set_next
  - layout_set_previous
  - layout_first_tiled
  - layout_set_even
  - layout_set_even_h
  - layout_set_even_v
  - layout_set_main_h
  - layout_set_main_h_mirrored
  - layout_set_main_v
  - layout_set_main_v_mirrored
  - layout_set_tiled
  source_file: /src/tmux/layout-set.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: (*arrange)(struct window *)
        type: void
      item_type: struct
      name: "layout_sets[] = {\n\t{ \"even-horizontal\", layout_set_even_h },\n\t{
        \"even-vertical\", layout_set_even_v },\n\t{ \"main-horizontal\", layout_set_main_h
        },\n\t{ \"main-horizontal-mirrored\", layout_set_main_h_mirrored },\n\t{ \"main-vertical\",
        layout_set_main_v },\n\t{ \"main-vertical-mirrored\", layout_set_main_v_mirrored
        },\n\t{ \"tiled\", layout_set_tiled },\n}"
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/tmux/layout-set.c
    typedefs: []
    union: []
- function_names:
  - osdep_get_name
  - osdep_get_cwd
  - osdep_event_init
  source_file: /src/tmux/osdep-hpux.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_save_buffer_done
  - cmd_save_buffer_exec
  source_file: /src/tmux/cmd-save-buffer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - server_acl_cmp
  - server_acl_init
  - server_acl_user_find
  - server_acl_display
  - server_acl_user_allow
  - server_acl_user_deny
  - server_acl_user_allow_write
  - server_acl_user_deny_write
  - server_acl_join
  - server_acl_get_uid
  source_file: /src/tmux/server-acl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SERVER_ACL_READONLY
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/tmux/server-acl.c
      type_or_value: '0x1'
    structs:
    - fields:
      - name: uid
        type: uid_t
      - name: flags
        type: int
      - name: (server_acl_user)
        type: RB_ENTRY
      item_type: struct
      name: server_acl_user
      pos:
        line_end: 38
        line_start: 31
        source_file: /src/tmux/server-acl.c
    typedefs: []
    union: []
- function_names:
  - cmd_join_pane_exec
  source_file: /src/tmux/cmd-join-pane.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_new_window_exec
  source_file: /src/tmux/cmd-new-window.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NEW_WINDOW_TEMPLATE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/tmux/cmd-new-window.c
      type_or_value: '"#{session_name}:#{window_index}.#{pane_index}"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - CONTROL_SHOULD_NOTIFY_CLIENT
  - control_notify_pane_mode_changed
  - control_notify_window_layout_changed
  - control_notify_window_pane_changed
  - control_notify_window_unlinked
  - control_notify_window_linked
  - control_notify_window_renamed
  - control_notify_client_session_changed
  - control_notify_client_detached
  - control_notify_session_renamed
  - control_notify_session_created
  - control_notify_session_closed
  - control_notify_session_window_changed
  - control_notify_paste_buffer_changed
  - control_notify_paste_buffer_deleted
  source_file: /src/tmux/control-notify.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_list_panes_exec
  - cmd_list_panes_server
  - cmd_list_panes_session
  - cmd_list_panes_window
  source_file: /src/tmux/cmd-list-panes.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_server_access_deny
  - cmd_server_access_exec
  source_file: /src/tmux/cmd-server-access.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - menu_add_items
  - menu_add_item
  - menu_create
  - menu_free
  - menu_mode_cb
  - menu_check_cb
  - menu_reapply_styles
  - menu_draw_cb
  - menu_free_cb
  - menu_key_cb
  - menu_resize_cb
  - menu_prepare
  - menu_display
  source_file: /src/tmux/menu.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*item'
        type: struct cmdq_item
      - name: flags
        type: int
      - name: '*style'
        type: char
      - name: '*border_style'
        type: char
      - name: '*selected_style'
        type: char
      - name: style_gc
        type: struct grid_cell
      - name: border_style_gc
        type: struct grid_cell
      - name: selected_style_gc
        type: struct grid_cell
      - name: border_lines
        type: enum box_lines
      - name: fs
        type: struct cmd_find_state
      - name: s
        type: struct screen
      - name: r
        type: struct visible_ranges
      - name: px
        type: u_int
      - name: py
        type: u_int
      - name: '*menu'
        type: struct menu
      - name: choice
        type: int
      - name: cb
        type: menu_choice_cb
      - name: '*data'
        type: void
      item_type: struct
      name: menu_data
      pos:
        line_end: 50
        line_start: 25
        source_file: /src/tmux/menu.c
    typedefs: []
    union: []
- function_names:
  - cmd_lock_server_exec
  source_file: /src/tmux/cmd-lock-server.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - grid_reader_start
  - grid_reader_get_cursor
  - grid_reader_line_length
  - grid_reader_cursor_right
  - grid_reader_cursor_left
  - grid_reader_cursor_down
  - grid_reader_cursor_up
  - grid_reader_cursor_start_of_line
  - grid_reader_cursor_end_of_line
  - grid_reader_handle_wrap
  - grid_reader_in_set
  - grid_reader_cursor_next_word
  - grid_reader_cursor_next_word_end
  - grid_reader_cursor_previous_word
  - grid_reader_cell_equals_data
  - grid_reader_cursor_jump
  - grid_reader_cursor_jump_back
  - grid_reader_cursor_back_to_indentation
  source_file: /src/tmux/grid-reader.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - session_cmp
  - session_group_cmp
  - session_alive
  - session_find
  - session_find_by_id_str
  - session_find_by_id
  - session_create
  - session_add_ref
  - session_remove_ref
  - session_free
  - session_destroy
  - session_lock_timer
  - session_update_activity
  - session_next_session
  - session_previous_session
  - session_attach
  - session_detach
  - session_has
  - session_is_linked
  - session_next_alert
  - session_next
  - session_previous_alert
  - session_previous
  - session_select
  - session_last
  - session_set_current
  - session_group_contains
  - session_group_find
  - session_group_new
  - session_group_add
  - session_group_remove
  - session_group_count
  - session_group_attached_count
  - session_group_synchronize_to
  - session_group_synchronize_from
  - session_group_synchronize1
  - RB_FOREACH
  - session_renumber_windows
  - session_theme_changed
  - session_update_history
  source_file: /src/tmux/session.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sixel_parse_expand_lines
  - sixel_parse_expand_line
  - sixel_get_pixel
  - sixel_set_pixel
  - sixel_parse_write
  - sixel_parse_attributes
  - sixel_parse_colour
  - sixel_parse_repeat
  - sixel_parse
  - sixel_free
  - sixel_log
  - sixel_size_in_cells
  - sixel_scale
  - sixel_print_add
  - sixel_print_repeat
  - sixel_print_compress_colors
  - sixel_print
  - sixel_to_screen
  source_file: /src/tmux/image-sixel.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SIXEL_WIDTH_LIMIT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/tmux/image-sixel.c
      type_or_value: '10000'
    - item_type: preproc_def
      name: SIXEL_HEIGHT_LIMIT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/tmux/image-sixel.c
      type_or_value: '10000'
    structs:
    - fields:
      - name: x
        type: u_int
      - name: '*data'
        type: uint16_t
      item_type: struct
      name: sixel_line
      pos:
        line_end: 31
        line_start: 28
        source_file: /src/tmux/image-sixel.c
    - fields:
      - name: x
        type: u_int
      - name: y
        type: u_int
      - name: xpixel
        type: u_int
      - name: ypixel
        type: u_int
      - name: set_ra
        type: u_int
      - name: ra_x
        type: u_int
      - name: ra_y
        type: u_int
      - name: '*colours'
        type: u_int
      - name: ncolours
        type: u_int
      - name: used_colours
        type: u_int
      - name: p2
        type: u_int
      - name: dx
        type: u_int
      - name: dy
        type: u_int
      - name: dc
        type: u_int
      - name: '*lines'
        type: struct sixel_line
      item_type: struct
      name: sixel_image
      pos:
        line_end: 53
        line_start: 33
        source_file: /src/tmux/image-sixel.c
    - fields:
      - name: next_x
        type: u_int
      - name: next_y
        type: u_int
      - name: count
        type: u_int
      - name: pattern
        type: char
      - name: next_pattern
        type: char
      - name: len
        type: size_t
      - name: used
        type: size_t
      - name: '*data'
        type: char
      item_type: struct
      name: sixel_chunk
      pos:
        line_end: 66
        line_start: 55
        source_file: /src/tmux/image-sixel.c
    typedefs: []
    union: []
- function_names:
  - hyperlinks_by_uri_cmp
  - hyperlinks_by_inner_cmp
  - hyperlinks_remove
  - hyperlinks_put
  - hyperlinks_get
  - hyperlinks_init
  - hyperlinks_copy
  - hyperlinks_reset
  - hyperlinks_free
  source_file: /src/tmux/hyperlinks.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_HYPERLINKS
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/tmux/hyperlinks.c
      type_or_value: '5000'
    structs:
    - fields:
      - name: '*tree'
        type: struct hyperlinks
      - name: inner
        type: u_int
      - name: '*internal_id'
        type: char
      - name: '*external_id'
        type: char
      - name: '*uri'
        type: char
      - name: (hyperlinks_uri)
        type: TAILQ_ENTRY
      - name: (hyperlinks_uri)
        type: RB_ENTRY
      - name: (hyperlinks_uri)
        type: RB_ENTRY
      item_type: struct
      name: hyperlinks_uri
      pos:
        line_end: 58
        line_start: 47
        source_file: /src/tmux/hyperlinks.c
    - fields:
      - name: next_inner
        type: u_int
      - name: by_inner
        type: struct hyperlinks_by_inner_tree
      - name: by_uri
        type: struct hyperlinks_by_uri_tree
      - name: references
        type: u_int
      item_type: struct
      name: hyperlinks
      pos:
        line_end: 71
        line_start: 66
        source_file: /src/tmux/hyperlinks.c
    typedefs: []
    union: []
- function_names:
  - cmd_log_argv
  - cmd_prepend_argv
  - cmd_append_argv
  - cmd_pack_argv
  - cmd_unpack_argv
  - cmd_copy_argv
  - cmd_free_argv
  - cmd_stringify_argv
  - cmd_get_entry
  - cmd_get_args
  - cmd_get_group
  - cmd_get_source
  - cmd_get_parse_flags
  - cmd_get_alias
  - cmd_find
  - cmd_parse
  - cmd_free
  - cmd_copy
  - cmd_print
  - cmd_list_new
  - cmd_list_append
  - cmd_list_append_all
  - cmd_list_move
  - cmd_list_free
  - cmd_list_copy
  - cmd_list_print
  - cmd_list_first
  - cmd_list_next
  - cmd_list_all_have
  - cmd_list_any_have
  - cmd_mouse_at
  - cmd_mouse_window
  - cmd_mouse_pane
  - cmd_template_replace
  source_file: /src/tmux/cmd.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*entry'
        type: struct cmd_entry
      - name: '*args'
        type: struct args
      - name: group
        type: u_int
      - name: '*file'
        type: char
      - name: line
        type: u_int
      - name: parse_flags
        type: int
      - name: qentry
        type: TAILQ_ENTRY
      item_type: struct
      name: cmd
      pos:
        line_end: 227
        line_start: 217
        source_file: /src/tmux/cmd.c
    typedefs: []
    union: []
- function_names:
  - spawn_log
  - spawn_window
  - spawn_pane
  source_file: /src/tmux/spawn.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - osdep_get_name
  - osdep_get_cwd
  - osdep_event_init
  source_file: /src/tmux/osdep-haiku.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - grid_store_cell
  - grid_need_extended_cell
  - grid_get_extended_cell
  - grid_extended_cell
  - grid_compact_line
  - grid_get_line
  - grid_adjust_lines
  - grid_clear_cell
  - grid_check_y
  - grid_cells_look_equal
  - grid_cells_equal
  - grid_set_tab
  - grid_free_line
  - grid_free_lines
  - grid_create
  - grid_destroy
  - grid_compare
  - grid_trim_history
  - grid_collect_history
  - grid_remove_history
  - grid_scroll_history
  - grid_clear_history
  - grid_scroll_history_region
  - grid_expand_line
  - grid_empty_line
  - grid_peek_line
  - grid_get_cell1
  - grid_get_cell
  - grid_set_cell
  - grid_set_padding
  - grid_set_cells
  - grid_clear
  - grid_clear_lines
  - grid_move_lines
  - grid_move_cells
  - grid_string_cells_fg
  - grid_string_cells_bg
  - grid_string_cells_us
  - grid_string_cells_add_code
  - grid_string_cells_add_hyperlink
  - grid_string_cells_code
  - grid_string_cells
  - grid_duplicate_lines
  - grid_reflow_dead
  - grid_reflow_add
  - grid_reflow_move
  - grid_reflow_join
  - grid_reflow_split
  - grid_reflow
  - grid_wrap_position
  - grid_unwrap_position
  - grid_line_length
  - grid_in_set
  source_file: /src/tmux/grid.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: mask
        type: u_int
      - name: code
        type: u_int
      item_type: struct
      name: "attrs[] = {\n\t\t{ GRID_ATTR_BRIGHT, 1 },\n\t\t{ GRID_ATTR_DIM, 2 },\n\t\t{
        GRID_ATTR_ITALICS, 3 },\n\t\t{ GRID_ATTR_UNDERSCORE, 4 },\n\t\t{ GRID_ATTR_BLINK,
        5 },\n\t\t{ GRID_ATTR_REVERSE, 7 },\n\t\t{ GRID_ATTR_HIDDEN, 8 },\n\t\t{ GRID_ATTR_STRIKETHROUGH,
        9 },\n\t\t{ GRID_ATTR_UNDERSCORE_2, 42 },\n\t\t{ GRID_ATTR_UNDERSCORE_3, 43
        },\n\t\t{ GRID_ATTR_UNDERSCORE_4, 44 },\n\t\t{ GRID_ATTR_UNDERSCORE_5, 45
        },\n\t\t{ GRID_ATTR_OVERLINE, 53 },\n\t}"
      pos:
        line_end: 981
        line_start: 978
        source_file: /src/tmux/grid.c
    typedefs: []
    union: []
- function_names:
  - input_key_cmp
  - input_key_get
  - input_key_split2
  - input_key_build
  - input_key_pane
  - input_key_write
  - input_key_extended
  - input_key_vt10x
  - input_key_mode1
  - input_key
  - input_key_get_mouse
  - input_key_mouse
  source_file: /src/tmux/input-keys.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: key
        type: key_code
      - name: '*data'
        type: char
      - name: (input_key_entry)
        type: RB_ENTRY
      item_type: struct
      name: input_key_entry
      pos:
        line_end: 40
        line_start: 35
        source_file: /src/tmux/input-keys.c
    typedefs: []
    union: []
- function_names:
  - cmd_swap_window_exec
  source_file: /src/tmux/cmd-swap-window.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - wait_channel_cmp
  - cmd_wait_for_add
  - cmd_wait_for_remove
  - cmd_wait_for_exec
  - cmd_wait_for_signal
  - cmd_wait_for_wait
  - cmd_wait_for_lock
  - cmd_wait_for_unlock
  - cmd_wait_for_flush
  source_file: /src/tmux/cmd-wait-for.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*item'
        type: struct cmdq_item
      - name: (wait_item)
        type: TAILQ_ENTRY
      item_type: struct
      name: wait_item
      pos:
        line_end: 46
        line_start: 43
        source_file: /src/tmux/cmd-wait-for.c
    typedefs: []
    union: []
- function_names:
  - proc_event_cb
  - proc_signal_cb
  - peer_check_version
  - proc_update_event
  - proc_send
  - proc_start
  - proc_loop
  - proc_exit
  - proc_set_signals
  - proc_clear_signals
  - proc_add_peer
  - proc_remove_peer
  - proc_kill_peer
  - proc_flush_peer
  - proc_toggle_log
  - proc_fork_and_daemon
  - proc_get_peer_uid
  source_file: /src/tmux/proc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PEER_BAD
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/tmux/proc.c
      type_or_value: '0x1'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: exit
        type: int
      - name: (*signalcb)(int)
        type: void
      - name: ev_sigint
        type: struct event
      - name: ev_sighup
        type: struct event
      - name: ev_sigchld
        type: struct event
      - name: ev_sigcont
        type: struct event
      - name: ev_sigterm
        type: struct event
      - name: ev_sigusr1
        type: struct event
      - name: ev_sigusr2
        type: struct event
      - name: ev_sigwinch
        type: struct event
      - name: (, tmuxpeer)
        type: TAILQ_HEAD
      item_type: struct
      name: tmuxproc
      pos:
        line_end: 51
        line_start: 35
        source_file: /src/tmux/proc.c
    - fields:
      - name: '*parent'
        type: struct tmuxproc
      - name: ibuf
        type: struct imsgbuf
      - name: event
        type: struct event
      - name: uid
        type: uid_t
      - name: flags
        type: int
      - name: (*dispatchcb)(struct imsg *, void *)
        type: void
      - name: '*arg'
        type: void
      - name: (tmuxpeer)
        type: TAILQ_ENTRY
      item_type: struct
      name: tmuxpeer
      pos:
        line_end: 67
        line_start: 53
        source_file: /src/tmux/proc.c
    typedefs: []
    union: []
- function_names:
  - evbuffer_readln
  - pledge
  - CMSG_FIRSTHDR
  - CMSG_ALIGN
  - CMSG_SPACE
  - CMSG_LEN
  - SUN_LEN
  - timercmp
  - timeradd
  - timersub
  - flock
  - regcomp
  - regexec
  - regfree
  - getopt
  source_file: /src/tmux/compat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __unused
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/tmux/compat.h
      type_or_value: __attribute__ ((__unused__))
    - item_type: preproc_def
      name: __dead
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/tmux/compat.h
      type_or_value: __attribute__ ((__noreturn__))
    - item_type: preproc_def
      name: __packed
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/tmux/compat.h
      type_or_value: __attribute__ ((__packed__))
    - item_type: preproc_def
      name: __weak
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/tmux/compat.h
      type_or_value: __attribute__ ((__weak__))
    - item_type: preproc_def
      name: ECHOPRT
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/tmux/compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ACCESSPERMS
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/tmux/compat.h
      type_or_value: (S_IRWXU|S_IRWXG|S_IRWXO)
    - item_type: preproc_def
      name: _PATH_BSHELL
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/tmux/compat.h
      type_or_value: '"/bin/sh"'
    - item_type: preproc_def
      name: _PATH_TMP
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/tmux/compat.h
      type_or_value: '"/tmp/"'
    - item_type: preproc_def
      name: _PATH_DEVNULL
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/tmux/compat.h
      type_or_value: '"/dev/null"'
    - item_type: preproc_def
      name: _PATH_TTY
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/tmux/compat.h
      type_or_value: '"/dev/tty"'
    - item_type: preproc_def
      name: _PATH_DEV
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/tmux/compat.h
      type_or_value: '"/dev/"'
    - item_type: preproc_def
      name: _PATH_DEFPATH
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/tmux/compat.h
      type_or_value: '"/usr/bin:/bin"'
    - item_type: preproc_def
      name: _PATH_VI
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/tmux/compat.h
      type_or_value: '"/usr/bin/vi"'
    - item_type: preproc_def
      name: IMAXBEL
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/tmux/compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CMSG_ALIGN
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/tmux/compat.h
      type_or_value: _CMSG_DATA_ALIGN
    - item_type: preproc_def
      name: O_DIRECTORY
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/tmux/compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FNM_CASEFOLD
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/tmux/compat.h
      type_or_value: FNM_IGNORECASE
    - item_type: preproc_def
      name: FNM_CASEFOLD
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/tmux/compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: INFTIM
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/tmux/compat.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: WAIT_ANY
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/tmux/compat.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: TTY_NAME_MAX
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/tmux/compat.h
      type_or_value: '32'
    - item_type: preproc_def
      name: HOST_NAME_MAX
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/tmux/compat.h
      type_or_value: '255'
    - item_type: preproc_def
      name: CLOCK_REALTIME
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/tmux/compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CLOCK_MONOTONIC
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/tmux/compat.h
      type_or_value: CLOCK_REALTIME
    - item_type: preproc_def
      name: LOCK_SH
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/tmux/compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: LOCK_EX
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/tmux/compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: LOCK_NB
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/tmux/compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: main
      pos:
        line_end: 465
        line_start: 464
        source_file: /src/tmux/compat.h
      type_or_value: __weak main
    - item_type: preproc_def
      name: opterr
      pos:
        line_end: 479
        line_start: 478
        source_file: /src/tmux/compat.h
      type_or_value: BSDopterr
    - item_type: preproc_def
      name: optind
      pos:
        line_end: 480
        line_start: 479
        source_file: /src/tmux/compat.h
      type_or_value: BSDoptind
    - item_type: preproc_def
      name: optopt
      pos:
        line_end: 481
        line_start: 480
        source_file: /src/tmux/compat.h
      type_or_value: BSDoptopt
    - item_type: preproc_def
      name: optreset
      pos:
        line_end: 482
        line_start: 481
        source_file: /src/tmux/compat.h
      type_or_value: BSDoptreset
    - item_type: preproc_def
      name: optarg
      pos:
        line_end: 483
        line_start: 482
        source_file: /src/tmux/compat.h
      type_or_value: BSDoptarg
    structs: []
    typedefs: []
    union: []
- function_names:
  - input_table_compare
  - input_stop_utf8
  - input_ground_timer_callback
  - input_start_ground_timer
  - input_reset_cell
  - input_save_state
  - input_restore_state
  - input_init
  - input_free
  - input_reset
  - input_pending
  - input_set_state
  - input_parse
  - input_parse_pane
  - input_parse_buffer
  - input_parse_screen
  - input_split
  - input_get
  - input_send_reply
  - input_reply
  - input_clear
  - input_ground
  - input_print
  - input_intermediate
  - input_parameter
  - input_input
  - input_c0_dispatch
  - input_esc_dispatch
  - input_csi_dispatch
  - input_csi_dispatch_rm
  - input_csi_dispatch_rm_private
  - input_csi_dispatch_sm
  - input_csi_dispatch_sm_private
  - input_csi_dispatch_sm_graphics
  - input_csi_dispatch_winops
  - input_csi_dispatch_sgr_256_do
  - input_csi_dispatch_sgr_256
  - input_csi_dispatch_sgr_rgb_do
  - input_csi_dispatch_sgr_rgb
  - input_csi_dispatch_sgr_colon
  - input_csi_dispatch_sgr
  - input_end_bel
  - input_enter_dcs
  - input_handle_decrqss
  - input_dcs_dispatch
  - input_enter_osc
  - input_exit_osc
  - input_enter_apc
  - input_exit_apc
  - input_enter_rename
  - input_exit_rename
  - input_top_bit_set
  - input_osc_colour_reply
  - input_osc_4
  - input_osc_8
  - input_set_progress_bar
  - input_osc_9
  - input_osc_10
  - input_osc_110
  - input_osc_11
  - input_osc_111
  - input_osc_12
  - input_osc_112
  - input_osc_133
  - input_osc_52_reply
  - input_osc_52_parse
  - input_osc_52
  - input_osc_104
  - input_reply_clipboard
  - input_set_buffer_size
  - input_request_timer_callback
  - input_start_request_timer
  - input_make_request
  - input_free_request
  - input_add_request
  - input_request_palette_reply
  - input_request_clipboard_reply
  - input_request_reply
  - input_cancel_requests
  - input_report_current_theme
  source_file: /src/tmux/input.c
  types:
    enum:
    - enumerators:
      - name: INPUT_END_ST
      - name: INPUT_END_BEL
      item_type: enum
      name: input_end_type
      pos:
        line_end: 57
        line_start: 54
        source_file: /src/tmux/input.c
    - enumerators:
      - name: INPUT_ESC_DECALN
      - name: INPUT_ESC_DECSC
      - name: INPUT_ESC_DECRC
      - name: INPUT_ESC_DECKPNM
      - name: INPUT_ESC_DECKPAM
      - name: INPUT_ESC_HTS
      - name: INPUT_ESC_IND
      - name: INPUT_ESC_NEL
      - name: INPUT_ESC_RI
      - name: INPUT_ESC_RIS
      - name: INPUT_ESC_SCSG0_ON
      - name: INPUT_ESC_SCSG0_OFF
      - name: INPUT_ESC_SCSG1_ON
      - name: INPUT_ESC_SCSG1_OFF
      - name: INPUT_ESC_ST
      item_type: enum
      name: input_esc_type
      pos:
        line_end: 236
        line_start: 220
        source_file: /src/tmux/input.c
    - enumerators:
      - name: INPUT_CSI_CPL
      - name: INPUT_CSI_CUP
      - name: INPUT_CSI_EL
      - name: INPUT_CSI_DSR
      - name: INPUT_CSI_DCH
      - name: INPUT_CSI_ICH
      - name: INPUT_CSI_QUERY_PRIVATE
      - name: INPUT_CSI_RM_PRIVATE
      - name: INPUT_CSI_SM
      - name: INPUT_CSI_TBC
      - name: INPUT_CSI_CNL
      - name: INPUT_CSI_CUF
      - name: INPUT_CSI_DA_TWO
      - name: INPUT_CSI_ED
      - name: INPUT_CSI_DL
      - name: INPUT_CSI_MODSET
      - name: INPUT_CSI_RM
      - name: INPUT_CSI_SGR
      - name: INPUT_CSI_SU
      - name: INPUT_CSI_VPA
      - name: INPUT_CSI_CUD
      - name: INPUT_CSI_DA
      - name: INPUT_CSI_DECSTBM
      - name: INPUT_CSI_ECH
      - name: INPUT_CSI_MODOFF
      - name: INPUT_CSI_REP
      - name: INPUT_CSI_SD
      - name: INPUT_CSI_SM_PRIVATE
      - name: INPUT_CSI_WINOPS
      - name: INPUT_CSI_XDA
      - name: INPUT_CSI_CBT
      - name: INPUT_CSI_CUB
      - name: INPUT_CSI_CUU
      - name: INPUT_CSI_DSR_PRIVATE
      - name: INPUT_CSI_DECSCUSR
      - name: INPUT_CSI_HPA
      - name: INPUT_CSI_IL
      - name: INPUT_CSI_RCP
      - name: INPUT_CSI_SCP
      - name: INPUT_CSI_SM_GRAPHICS
      item_type: enum
      name: input_csi_type
      pos:
        line_end: 299
        line_start: 258
        source_file: /src/tmux/input.c
    preproc_defs:
    - item_type: preproc_def
      name: INPUT_REQUEST_TIMEOUT
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/tmux/input.c
      type_or_value: '500'
    - item_type: preproc_def
      name: INPUT_BUF_START
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/tmux/input.c
      type_or_value: '32'
    - item_type: preproc_def
      name: INPUT_DISCARD
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/tmux/input.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: INPUT_LAST
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/tmux/input.c
      type_or_value: '0x2'
    - item_type: preproc_def
      name: INPUT_STATE_ANYWHERE
      pos:
        line_end: 369
        line_start: 365
        source_file: /src/tmux/input.c
      type_or_value: "{ 0x18, 0x18, input_c0_dispatch, &input_state_ground }, \\\n\t{
        0x1a, 0x1a, input_c0_dispatch, &input_state_ground }, \\\n\t{ 0x1b, 0x1b,
        NULL,\t\t &input_state_esc_enter }"
    structs:
    - fields:
      - name: '*c'
        type: struct client
      - name: '*ictx'
        type: struct input_ctx
      - name: type
        type: enum input_request_type
      - name: t
        type: uint64_t
      - name: end
        type: enum input_end_type
      - name: idx
        type: int
      - name: '*data'
        type: void
      - name: (input_request)
        type: TAILQ_ENTRY
      - name: (input_request)
        type: TAILQ_ENTRY
      item_type: struct
      name: input_request
      pos:
        line_end: 73
        line_start: 60
        source_file: /src/tmux/input.c
    - fields:
      - name: cell
        type: struct grid_cell
      - name: set
        type: int
      - name: g0set
        type: int
      - name: g1set
        type: int
      item_type: struct
      name: input_cell
      pos:
        line_end: 82
        line_start: 77
        source_file: /src/tmux/input.c
    - fields:
      - name: type
        type: "enum {\n\t\tINPUT_MISSING,\n\t\tINPUT_NUMBER,\n\t\tINPUT_STRING\n\t}"
      item_type: struct
      name: input_param
      pos:
        line_end: 95
        line_start: 85
        source_file: /src/tmux/input.c
    - fields:
      - name: '*wp'
        type: struct window_pane
      - name: '*event'
        type: struct bufferevent
      - name: ctx
        type: struct screen_write_ctx
      - name: '*palette'
        type: struct colour_palette
      - name: '*c'
        type: struct client
      - name: cell
        type: struct input_cell
      - name: old_cell
        type: struct input_cell
      - name: old_cx
        type: u_int
      - name: old_cy
        type: u_int
      - name: old_mode
        type: int
      - name: interm_buf[4]
        type: u_char
      - name: interm_len
        type: size_t
      - name: param_buf[64]
        type: u_char
      - name: param_len
        type: size_t
      - name: '*input_buf'
        type: u_char
      - name: input_len
        type: size_t
      - name: input_space
        type: size_t
      - name: input_end
        type: enum input_end_type
      - name: param_list[24]
        type: struct input_param
      - name: param_list_len
        type: u_int
      - name: utf8data
        type: struct utf8_data
      - name: utf8started
        type: int
      - name: ch
        type: int
      - name: last
        type: struct utf8_data
      - name: '*state'
        type: struct input_state
      - name: flags
        type: int
      - name: requests
        type: struct input_requests
      - name: request_count
        type: u_int
      - name: request_timer
        type: struct event
      - name: '*since_ground'
        type: struct evbuffer
      - name: ground_timer
        type: struct event
      item_type: struct
      name: input_ctx
      pos:
        line_end: 147
        line_start: 98
        source_file: /src/tmux/input.c
    - fields:
      - name: ch
        type: int
      - name: '*interm'
        type: char
      - name: type
        type: int
      item_type: struct
      name: input_table_entry
      pos:
        line_end: 217
        line_start: 213
        source_file: /src/tmux/input.c
    - fields:
      - name: first
        type: int
      - name: last
        type: int
      - name: (*handler)(struct input_ctx *)
        type: int
      - name: '*state'
        type: struct input_state
      item_type: struct
      name: input_transition
      pos:
        line_end: 354
        line_start: 348
        source_file: /src/tmux/input.c
    - fields:
      - name: '*name'
        type: char
      - name: (*enter)(struct input_ctx *)
        type: void
      - name: (*exit)(struct input_ctx *)
        type: void
      - name: '*transitions'
        type: struct input_transition
      item_type: struct
      name: input_state
      pos:
        line_end: 362
        line_start: 357
        source_file: /src/tmux/input.c
    typedefs: []
    union: []
- function_names:
  - cmd_set_environment_exec
  source_file: /src/tmux/cmd-set-environment.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tty_term_ncodes
  - tty_term_strip
  - tty_term_override_next
  - tty_term_apply
  - tty_term_apply_overrides
  - tty_term_create
  - tty_term_free
  - tty_term_read_list
  - tty_term_free_list
  - tty_term_has
  - tty_term_string
  - tty_term_string_i
  - tty_term_string_ii
  - tty_term_string_iii
  - tty_term_string_s
  - tty_term_string_ss
  - tty_term_number
  - tty_term_flag
  - tty_term_describe
  source_file: /src/tmux/tty-term.c
  types:
    enum:
    - enumerators:
      - name: TTYCODE_NONE
        value: '0'
      - name: TTYCODE_FLAG
      - name: TTYCODE_STRING
      - name: TTYCODE_NUMBER
      item_type: enum
      name: tty_code_type
      pos:
        line_end: 41
        line_start: 36
        source_file: /src/tmux/tty-term.c
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: enum tty_code_type
      - name: value
        type: "union {\n\t\tchar\t       *string;\n\t\tint\t\tnumber;\n\t\tint\t\tflag;\n\t}"
      item_type: struct
      name: tty_code
      pos:
        line_end: 50
        line_start: 43
        source_file: /src/tmux/tty-term.c
    - fields:
      - name: type
        type: enum tty_code_type
      - name: '*name'
        type: char
      item_type: struct
      name: tty_term_code_entry
      pos:
        line_end: 55
        line_start: 52
        source_file: /src/tmux/tty-term.c
    typedefs: []
    union: []
- function_names:
  - cmd_select_pane_redraw
  - cmd_select_pane_exec
  source_file: /src/tmux/cmd-select-pane.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_capture_pane_append
  - cmd_capture_pane_pending
  - cmd_capture_pane_history
  - cmd_capture_pane_exec
  source_file: /src/tmux/cmd-capture-pane.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - image_log
  - image_free
  - image_free_all
  - image_fallback
  - image_store
  - image_check_line
  - image_check_area
  - image_scroll_up
  source_file: /src/tmux/image.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_IMAGE_COUNT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/tmux/image.c
      type_or_value: '20'
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_split_window_get_floating_cell
  - cmd_split_window_get_tiled_cell
  - cmd_split_window_exec
  source_file: /src/tmux/cmd-split-window.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPLIT_WINDOW_TEMPLATE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/tmux/cmd-split-window.c
      type_or_value: '"#{session_name}:#{window_index}.#{pane_index}"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_choose_tree_args_parse
  - cmd_choose_tree_exec
  source_file: /src/tmux/cmd-choose-tree.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - popup_free
  - popup_reapply_styles
  - popup_redraw_cb
  - popup_set_client_cb
  - popup_init_ctx_cb
  - popup_mode_cb
  - popup_check_cb
  - popup_draw_cb
  - popup_free_cb
  - popup_resize_cb
  - popup_make_pane
  - popup_menu_done
  - popup_handle_drag
  - popup_key_cb
  - popup_job_update_cb
  - popup_job_complete_cb
  - popup_present
  - popup_modify
  - popup_display
  - popup_write
  - popup_editor_free
  - popup_editor_close_cb
  - popup_editor
  source_file: /src/tmux/popup.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*c'
        type: struct client
      - name: '*item'
        type: struct cmdq_item
      - name: flags
        type: int
      - name: '*title'
        type: char
      - name: '*style'
        type: char
      - name: '*border_style'
        type: char
      - name: border_cell
        type: struct grid_cell
      - name: border_lines
        type: enum box_lines
      - name: s
        type: struct screen
      - name: defaults
        type: struct grid_cell
      - name: palette
        type: struct colour_palette
      - name: r
        type: struct visible_ranges
      - name: or[2]
        type: struct visible_ranges
      - name: '*job'
        type: struct job
      - name: '*ictx'
        type: struct input_ctx
      - name: status
        type: int
      - name: cb
        type: popup_close_cb
      - name: '*arg'
        type: void
      - name: '*menu'
        type: struct menu
      - name: '*md'
        type: struct menu_data
      - name: close
        type: int
      - name: px
        type: u_int
      - name: py
        type: u_int
      - name: sx
        type: u_int
      - name: sy
        type: u_int
      - name: ppx
        type: u_int
      - name: ppy
        type: u_int
      - name: psx
        type: u_int
      - name: psy
        type: u_int
      - name: dragging
        type: enum { OFF, MOVE, SIZE }
      - name: dx
        type: u_int
      - name: dy
        type: u_int
      - name: lx
        type: u_int
      - name: ly
        type: u_int
      - name: lb
        type: u_int
      item_type: struct
      name: popup_data
      pos:
        line_end: 75
        line_start: 28
        source_file: /src/tmux/popup.c
    - fields:
      - name: '*path'
        type: char
      - name: cb
        type: popup_finish_edit_cb
      - name: '*arg'
        type: void
      item_type: struct
      name: popup_editor
      pos:
        line_end: 81
        line_start: 77
        source_file: /src/tmux/popup.c
    typedefs: []
    union: []
- function_names:
  - cmd_select_window_exec
  source_file: /src/tmux/cmd-select-window.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_set_option_args_parse
  - cmd_set_option_exec
  source_file: /src/tmux/cmd-set-option.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sort_qsort
  - sort_buffer_cmp
  - sort_client_cmp
  - sort_session_cmp
  - sort_pane_cmp
  - sort_winlink_cmp
  - sort_key_binding_cmp
  - sort_next_order
  - sort_order_from_string
  - sort_order_to_string
  - sort_would_window_tree_swap
  - sort_get_buffers
  - sort_get_clients
  - sort_get_sessions
  - sort_get_panes
  - sort_get_panes_session
  - sort_get_panes_window
  - sort_get_winlinks
  - sort_get_winlinks_session
  - sort_get_key_bindings
  - sort_get_key_bindings_table
  source_file: /src/tmux/sort.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - osdep_get_name
  - osdep_get_cwd
  - osdep_event_init
  source_file: /src/tmux/osdep-sunos.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - job_run
  - job_transfer
  - job_free
  - job_resize
  - job_read_callback
  - job_write_callback
  - job_error_callback
  - job_check_died
  - job_get_status
  - job_get_data
  - job_get_event
  - job_kill_all
  - job_still_running
  - job_print_summary
  source_file: /src/tmux/job.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: state
        type: "enum {\n\t\tJOB_RUNNING,\n\t\tJOB_DEAD,\n\t\tJOB_CLOSED\n\t}"
      - name: flags
        type: int
      - name: '*cmd'
        type: char
      - name: pid
        type: pid_t
      - name: tty[TTY_NAME_MAX]
        type: char
      - name: status
        type: int
      - name: fd
        type: int
      - name: '*event'
        type: struct bufferevent
      - name: updatecb
        type: job_update_cb
      - name: completecb
        type: job_complete_cb
      - name: freecb
        type: job_free_cb
      - name: '*data'
        type: void
      - name: entry
        type: LIST_ENTRY
      item_type: struct
      name: job
      pos:
        line_end: 64
        line_start: 41
        source_file: /src/tmux/job.c
    typedefs: []
    union: []
- function_names:
  - cmd_list_keys_get_prefix
  - cmd_list_keys_get_width
  - cmd_list_keys_get_table_width
  - cmd_list_keys_get_root_and_prefix
  - cmd_list_keys_filter_key_list
  - cmd_list_keys_format_add_key_binding
  - cmd_list_keys_exec
  source_file: /src/tmux/cmd-list-keys.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIST_KEYS_TEMPLATE
      pos:
        line_end: 39
        line_start: 29
        source_file: /src/tmux/cmd-list-keys.c
      type_or_value: "\"#{?notes_only,\"\t\t\t\t\t\\\n\t\"#{key_prefix} \"\t\t\t\t\t\\\n\t\"#{p|#{key_string_width}:key_string}
        \"\t\t\t\\\n\t\"#{?key_note,#{key_note},#{key_command}}\"\t\t\\\n\t\",\"\t\t\t\t\t\t\t\\\n\t\"bind-key
        #{?key_has_repeat,#{?key_repeat,-r,  },} \"\t\\\n\t\"-T #{p|#{key_table_width}:key_table}
        \"\t\t\t\\\n\t\"#{p|#{key_string_width}:key_string} \"\t\t\t\\\n\t\"#{key_command}}\""
    structs: []
    typedefs: []
    union: []
- function_names:
  - utf8_has_zwj
  - utf8_is_zwj
  - utf8_is_vs
  - utf8_is_hangul_filler
  - utf8_should_combine
  - hanguljamo_get_subclass
  - hanguljamo_get_class
  - hanguljamo_check_state
  source_file: /src/tmux/utf8-combined.c
  types:
    enum:
    - enumerators:
      - name: HANGULJAMO_SUBCLASS_NOT_HANGULJAMO
      - name: HANGULJAMO_SUBCLASS_CHOSEONG
      - name: HANGULJAMO_SUBCLASS_CHOSEONG_FILLER
      - name: HANGULJAMO_SUBCLASS_JUNGSEONG_FILLER
      - name: HANGULJAMO_SUBCLASS_OLD_CHOSEONG
      - name: HANGULJAMO_SUBCLASS_JUNGSEONG
      - name: HANGULJAMO_SUBCLASS_OLD_JUNGSEONG
      - name: HANGULJAMO_SUBCLASS_JONGSEONG
      - name: HANGULJAMO_SUBCLASS_OLD_JONGSEONG
      - name: HANGULJAMO_SUBCLASS_EXTENDED_OLD_CHOSEONG
      - name: HANGULJAMO_SUBCLASS_EXTENDED_OLD_JUNGSEONG
      - name: HANGULJAMO_SUBCLASS_EXTENDED_OLD_JONGSEONG
      item_type: enum
      name: hanguljamo_subclass
      pos:
        line_end: 39
        line_start: 26
        source_file: /src/tmux/utf8-combined.c
    - enumerators:
      - name: HANGULJAMO_CLASS_NOT_HANGULJAMO
      - name: HANGULJAMO_CLASS_CHOSEONG
      - name: HANGULJAMO_CLASS_JUNGSEONG
      - name: HANGULJAMO_CLASS_JONGSEONG
      item_type: enum
      name: hanguljamo_class
      pos:
        line_end: 46
        line_start: 41
        source_file: /src/tmux/utf8-combined.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_copy_mode_exec
  source_file: /src/tmux/cmd-copy-mode.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - server_set_marked
  - server_clear_marked
  - server_is_marked
  - server_check_marked
  - server_create_socket
  - server_tidy_event
  - server_start
  - server_loop
  - server_send_exit
  - server_update_socket
  - server_accept
  - server_add_accept
  - server_signal
  - server_child_signal
  - server_child_exited
  - server_child_stopped
  - server_add_message
  source_file: /src/tmux/server.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - getshell
  - checkshell
  - areshell
  - expand_path
  - expand_paths
  - make_label
  - shell_argv0
  - setblocking
  - get_timer
  - clean_name
  - sig2name
  - find_cwd
  - find_home
  - getversion
  - main
  source_file: /src/tmux/tmux.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - osdep_get_name
  - osdep_get_cwd
  - osdep_event_init
  source_file: /src/tmux/osdep-linux.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - key_string_search_table
  - key_string_get_modifiers
  - key_string_lookup_string
  - key_string_lookup_key
  source_file: /src/tmux/key-string.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*string'
        type: char
      - name: key
        type: key_code
      item_type: struct
      name: "key_string_table[] = {\n\t/* Function keys. */\n\t{ \"F1\",\t\tKEYC_F1|KEYC_IMPLIED_META
        },\n\t{ \"F2\",\t\tKEYC_F2|KEYC_IMPLIED_META },\n\t{ \"F3\",\t\tKEYC_F3|KEYC_IMPLIED_META
        },\n\t{ \"F4\",\t\tKEYC_F4|KEYC_IMPLIED_META },\n\t{ \"F5\",\t\tKEYC_F5|KEYC_IMPLIED_META
        },\n\t{ \"F6\",\t\tKEYC_F6|KEYC_IMPLIED_META },\n\t{ \"F7\",\t\tKEYC_F7|KEYC_IMPLIED_META
        },\n\t{ \"F8\",\t\tKEYC_F8|KEYC_IMPLIED_META },\n\t{ \"F9\",\t\tKEYC_F9|KEYC_IMPLIED_META
        },\n\t{ \"F10\",\tKEYC_F10|KEYC_IMPLIED_META },\n\t{ \"F11\",\tKEYC_F11|KEYC_IMPLIED_META
        },\n\t{ \"F12\",\tKEYC_F12|KEYC_IMPLIED_META },\n\t{ \"IC\",\t\tKEYC_IC|KEYC_IMPLIED_META
        },\n\t{ \"Insert\",\tKEYC_IC|KEYC_IMPLIED_META },\n\t{ \"DC\",\t\tKEYC_DC|KEYC_IMPLIED_META
        },\n\t{ \"Delete\",\tKEYC_DC|KEYC_IMPLIED_META },\n\t{ \"Home\",\tKEYC_HOME|KEYC_IMPLIED_META
        },\n\t{ \"End\",\tKEYC_END|KEYC_IMPLIED_META },\n\t{ \"NPage\",\tKEYC_NPAGE|KEYC_IMPLIED_META
        },\n\t{ \"PageDown\",\tKEYC_NPAGE|KEYC_IMPLIED_META },\n\t{ \"PgDn\",\tKEYC_NPAGE|KEYC_IMPLIED_META
        },\n\t{ \"PPage\",\tKEYC_PPAGE|KEYC_IMPLIED_META },\n\t{ \"PageUp\",\tKEYC_PPAGE|KEYC_IMPLIED_META
        },\n\t{ \"PgUp\",\tKEYC_PPAGE|KEYC_IMPLIED_META },\n\t{ \"BTab\",\tKEYC_BTAB
        },\n\t{ \"Space\",\t' ' },\n\t{ \"BSpace\",\tKEYC_BSPACE },\n\n\t/*\n\t *
        C0 control characters, with the exception of Tab, Enter,\n\t * and Esc, should
        never appear as keys. We still render them,\n\t * so to be able to spot them
        in logs in case of an abnormality.\n\t */\n\t{ \"[NUL]\",\tC0_NUL },\n\t{
        \"[SOH]\",\tC0_SOH },\n\t{ \"[STX]\",\tC0_STX },\n\t{ \"[ETX]\",\tC0_ETX },\n\t{
        \"[EOT]\",\tC0_EOT },\n\t{ \"[ENQ]\",\tC0_ENQ },\n\t{ \"[ASC]\",\tC0_ASC },\n\t{
        \"[BEL]\",\tC0_BEL },\n\t{ \"[BS]\",\tC0_BS },\n\t{ \"Tab\",\tC0_HT },\n\t{
        \"[LF]\",\tC0_LF },\n\t{ \"[VT]\",\tC0_VT },\n\t{ \"[FF]\",\tC0_FF },\n\t{
        \"Enter\",\tC0_CR },\n\t{ \"[SO]\",\tC0_SO },\n\t{ \"[SI]\",\tC0_SI },\n\t{
        \"[DLE]\",\tC0_DLE },\n\t{ \"[DC1]\",\tC0_DC1 },\n\t{ \"[DC2]\",\tC0_DC2 },\n\t{
        \"[DC3]\",\tC0_DC3 },\n\t{ \"[DC4]\",\tC0_DC4 },\n\t{ \"[NAK]\",\tC0_NAK },\n\t{
        \"[SYN]\",\tC0_SYN },\n\t{ \"[ETB]\",\tC0_ETB },\n\t{ \"[CAN]\",\tC0_CAN },\n\t{
        \"[EM]\",\tC0_EM },\n\t{ \"[SUB]\",\tC0_SUB },\n\t{ \"Escape\",\tC0_ESC },\n\t{
        \"[FS]\",\tC0_FS },\n\t{ \"[GS]\",\tC0_GS },\n\t{ \"[RS]\",\tC0_RS },\n\t{
        \"[US]\",\tC0_US },\n\n\t/* Arrow keys. */\n\t{ \"Up\",\t\tKEYC_UP|KEYC_CURSOR|KEYC_IMPLIED_META
        },\n\t{ \"Down\",\tKEYC_DOWN|KEYC_CURSOR|KEYC_IMPLIED_META },\n\t{ \"Left\",\tKEYC_LEFT|KEYC_CURSOR|KEYC_IMPLIED_META
        },\n\t{ \"Right\",\tKEYC_RIGHT|KEYC_CURSOR|KEYC_IMPLIED_META },\n\n\t/* Numeric
        keypad. */\n\t{ \"KP/\",\tKEYC_KP_SLASH|KEYC_KEYPAD },\n\t{ \"KP*\",\tKEYC_KP_STAR|KEYC_KEYPAD
        },\n\t{ \"KP-\",\tKEYC_KP_MINUS|KEYC_KEYPAD },\n\t{ \"KP7\",\tKEYC_KP_SEVEN|KEYC_KEYPAD
        },\n\t{ \"KP8\",\tKEYC_KP_EIGHT|KEYC_KEYPAD },\n\t{ \"KP9\",\tKEYC_KP_NINE|KEYC_KEYPAD
        },\n\t{ \"KP+\",\tKEYC_KP_PLUS|KEYC_KEYPAD },\n\t{ \"KP4\",\tKEYC_KP_FOUR|KEYC_KEYPAD
        },\n\t{ \"KP5\",\tKEYC_KP_FIVE|KEYC_KEYPAD },\n\t{ \"KP6\",\tKEYC_KP_SIX|KEYC_KEYPAD
        },\n\t{ \"KP1\",\tKEYC_KP_ONE|KEYC_KEYPAD },\n\t{ \"KP2\",\tKEYC_KP_TWO|KEYC_KEYPAD
        },\n\t{ \"KP3\",\tKEYC_KP_THREE|KEYC_KEYPAD },\n\t{ \"KPEnter\",\tKEYC_KP_ENTER|KEYC_KEYPAD
        },\n\t{ \"KP0\",\tKEYC_KP_ZERO|KEYC_KEYPAD },\n\t{ \"KP.\",\tKEYC_KP_PERIOD|KEYC_KEYPAD
        },\n\n\t/* Mouse keys. */\n\tKEYC_MOUSE_STRING(MOUSEDOWN1, MouseDown1),\n\tKEYC_MOUSE_STRING(MOUSEDOWN2,
        MouseDown2),\n\tKEYC_MOUSE_STRING(MOUSEDOWN3, MouseDown3),\n\tKEYC_MOUSE_STRING(MOUSEDOWN6,
        MouseDown6),\n\tKEYC_MOUSE_STRING(MOUSEDOWN7, MouseDown7),\n\tKEYC_MOUSE_STRING(MOUSEDOWN8,
        MouseDown8),\n\tKEYC_MOUSE_STRING(MOUSEDOWN9, MouseDown9),\n\tKEYC_MOUSE_STRING(MOUSEDOWN10,
        MouseDown10),\n\tKEYC_MOUSE_STRING(MOUSEDOWN11, MouseDown11),\n\tKEYC_MOUSE_STRING(MOUSEUP1,
        MouseUp1),\n\tKEYC_MOUSE_STRING(MOUSEUP2, MouseUp2),\n\tKEYC_MOUSE_STRING(MOUSEUP3,
        MouseUp3),\n\tKEYC_MOUSE_STRING(MOUSEUP6, MouseUp6),\n\tKEYC_MOUSE_STRING(MOUSEUP7,
        MouseUp7),\n\tKEYC_MOUSE_STRING(MOUSEUP8, MouseUp8),\n\tKEYC_MOUSE_STRING(MOUSEUP9,
        MouseUp9),\n\tKEYC_MOUSE_STRING(MOUSEUP10, MouseUp10),\n\tKEYC_MOUSE_STRING(MOUSEUP11,
        MouseUp11),\n\tKEYC_MOUSE_STRING(MOUSEDRAG1, MouseDrag1),\n\tKEYC_MOUSE_STRING(MOUSEDRAG2,
        MouseDrag2),\n\tKEYC_MOUSE_STRING(MOUSEDRAG3, MouseDrag3),\n\tKEYC_MOUSE_STRING(MOUSEDRAG6,
        MouseDrag6),\n\tKEYC_MOUSE_STRING(MOUSEDRAG7, MouseDrag7),\n\tKEYC_MOUSE_STRING(MOUSEDRAG8,
        MouseDrag8),\n\tKEYC_MOUSE_STRING(MOUSEDRAG9, MouseDrag9),\n\tKEYC_MOUSE_STRING(MOUSEDRAG10,
        MouseDrag10),\n\tKEYC_MOUSE_STRING(MOUSEDRAG11, MouseDrag11),\n\tKEYC_MOUSE_STRING(MOUSEDRAGEND1,
        MouseDragEnd1),\n\tKEYC_MOUSE_STRING(MOUSEDRAGEND2, MouseDragEnd2),\n\tKEYC_MOUSE_STRING(MOUSEDRAGEND3,
        MouseDragEnd3),\n\tKEYC_MOUSE_STRING(MOUSEDRAGEND6, MouseDragEnd6),\n\tKEYC_MOUSE_STRING(MOUSEDRAGEND7,
        MouseDragEnd7),\n\tKEYC_MOUSE_STRING(MOUSEDRAGEND8, MouseDragEnd8),\n\tKEYC_MOUSE_STRING(MOUSEDRAGEND9,
        MouseDragEnd9),\n\tKEYC_MOUSE_STRING(MOUSEDRAGEND10, MouseDragEnd10),\n\tKEYC_MOUSE_STRING(MOUSEDRAGEND11,
        MouseDragEnd11),\n\tKEYC_MOUSE_STRING(WHEELUP, WheelUp),\n\tKEYC_MOUSE_STRING(WHEELDOWN,
        WheelDown),\n\tKEYC_MOUSE_STRING(SECONDCLICK1, SecondClick1),\n\tKEYC_MOUSE_STRING(SECONDCLICK2,
        SecondClick2),\n\tKEYC_MOUSE_STRING(SECONDCLICK3, SecondClick3),\n\tKEYC_MOUSE_STRING(SECONDCLICK6,
        SecondClick6),\n\tKEYC_MOUSE_STRING(SECONDCLICK7, SecondClick7),\n\tKEYC_MOUSE_STRING(SECONDCLICK8,
        SecondClick8),\n\tKEYC_MOUSE_STRING(SECONDCLICK9, SecondClick9),\n\tKEYC_MOUSE_STRING(SECONDCLICK10,
        SecondClick10),\n\tKEYC_MOUSE_STRING(SECONDCLICK11, SecondClick11),\n\tKEYC_MOUSE_STRING(DOUBLECLICK1,
        DoubleClick1),\n\tKEYC_MOUSE_STRING(DOUBLECLICK2, DoubleClick2),\n\tKEYC_MOUSE_STRING(DOUBLECLICK3,
        DoubleClick3),\n\tKEYC_MOUSE_STRING(DOUBLECLICK6, DoubleClick6),\n\tKEYC_MOUSE_STRING(DOUBLECLICK7,
        DoubleClick7),\n\tKEYC_MOUSE_STRING(DOUBLECLICK8, DoubleClick8),\n\tKEYC_MOUSE_STRING(DOUBLECLICK9,
        DoubleClick9),\n\tKEYC_MOUSE_STRING(DOUBLECLICK10, DoubleClick10),\n\tKEYC_MOUSE_STRING(DOUBLECLICK11,
        DoubleClick11),\n\tKEYC_MOUSE_STRING(TRIPLECLICK1, TripleClick1),\n\tKEYC_MOUSE_STRING(TRIPLECLICK2,
        TripleClick2),\n\tKEYC_MOUSE_STRING(TRIPLECLICK3, TripleClick3),\n\tKEYC_MOUSE_STRING(TRIPLECLICK6,
        TripleClick6),\n\tKEYC_MOUSE_STRING(TRIPLECLICK7, TripleClick7),\n\tKEYC_MOUSE_STRING(TRIPLECLICK8,
        TripleClick8),\n\tKEYC_MOUSE_STRING(TRIPLECLICK9, TripleClick9),\n\tKEYC_MOUSE_STRING(TRIPLECLICK10,
        TripleClick10),\n\tKEYC_MOUSE_STRING(TRIPLECLICK11, TripleClick11)\n}"
      pos:
        line_end: 33
        line_start: 30
        source_file: /src/tmux/key-string.c
    typedefs: []
    union: []
- function_names:
  - key_table_cmp
  - key_bindings_cmp
  - key_bindings_free
  - key_bindings_get_table
  - key_bindings_first_table
  - key_bindings_next_table
  - key_bindings_unref_table
  - key_bindings_get
  - key_bindings_get_default
  - key_bindings_first
  - key_bindings_next
  - key_bindings_add
  - key_bindings_remove
  - key_bindings_reset
  - key_bindings_remove_table
  - key_bindings_reset_table
  - key_bindings_init_done
  - key_bindings_init
  - key_bindings_read_only
  - key_bindings_dispatch
  - key_bindings_has_repeat
  source_file: /src/tmux/key-bindings.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_SESSION_MENU
      pos:
        line_end: 36
        line_start: 26
        source_file: /src/tmux/key-bindings.c
      type_or_value: "\" 'Next' 'n' {switch-client -n}\" \\\n\t\" 'Previous' 'p' {switch-client
        -p}\" \\\n\t\" ''\" \\\n\t\" 'Renumber' 'N' {move-window -r}\" \\\n\t\" 'Rename'
        'r' {command-prompt -I \\\"#S\\\" {rename-session -- '%%'}}\" \\\n\t\" 'Detach'
        'd' {detach-client}\" \\\n\t\" ''\" \\\n\t\" 'New Session' 's' {new-session}\"
        \\\n\t\" 'New Window' 'w' {new-window}\""
    - item_type: preproc_def
      name: DEFAULT_WINDOW_MENU
      pos:
        line_end: 48
        line_start: 36
        source_file: /src/tmux/key-bindings.c
      type_or_value: "\" '#{?#{>:#{session_windows},1},,-}Swap Left' 'l' {swap-window
        -t:-1}\" \\\n\t\" '#{?#{>:#{session_windows},1},,-}Swap Right' 'r' {swap-window
        -t:+1}\" \\\n\t\" '#{?pane_marked_set,,-}Swap Marked' 's' {swap-window}\"
        \\\n\t\" ''\" \\\n\t\" 'Kill' 'X' {kill-window}\" \\\n\t\" 'Respawn' 'R' {respawn-window
        -k}\" \\\n\t\" '#{?pane_marked,Unmark,Mark}' 'm' {select-pane -m}\" \\\n\t\"
        'Rename' 'n' {command-prompt -FI \\\"#W\\\" {rename-window -t '#{window_id}'
        -- '%%'}}\" \\\n\t\" ''\" \\\n\t\" 'New After' 'w' {new-window -a}\" \\\n\t\"
        'New At End' 'W' {new-window}\""
    - item_type: preproc_def
      name: DEFAULT_PANE_MENU
      pos:
        line_end: 73
        line_start: 48
        source_file: /src/tmux/key-bindings.c
      type_or_value: "\" '#{?#{m/r:(copy|view)-mode,#{pane_mode}},Go To Top,}' '<'
        {send -X history-top}\" \\\n\t\" '#{?#{m/r:(copy|view)-mode,#{pane_mode}},Go
        To Bottom,}' '>' {send -X history-bottom}\" \\\n\t\" ''\" \\\n\t\" '#{?#{&&:#{buffer_size},#{!:#{pane_in_mode}}},Paste
        #[underscore]#{=/9/...:buffer_sample},}' 'p' {paste-buffer}\" \\\n\t\" ''\"
        \\\n\t\" '#{?mouse_word,Search For #[underscore]#{=/9/...:mouse_word},}' 'C-r'
        {if -F '#{?#{m/r:(copy|view)-mode,#{pane_mode}},0,1}' 'copy-mode -t='; send
        -Xt= search-backward -- \\\"#{q:mouse_word}\\\"}\" \\\n\t\" '#{?mouse_word,Type
        #[underscore]#{=/9/...:mouse_word},}' 'C-y' {copy-mode -q; send-keys -l --
        \\\"#{q:mouse_word}\\\"}\" \\\n\t\" '#{?mouse_word,Copy #[underscore]#{=/9/...:mouse_word},}'
        'c' {copy-mode -q; set-buffer -- \\\"#{q:mouse_word}\\\"}\" \\\n\t\" '#{?mouse_line,Copy
        Line,}' 'l' {copy-mode -q; set-buffer -- \\\"#{q:mouse_line}\\\"}\" \\\n\t\"
        ''\" \\\n\t\" '#{?mouse_hyperlink,Type #[underscore]#{=/9/...:mouse_hyperlink},}'
        'C-h' {copy-mode -q; send-keys -l -- \\\"#{q:mouse_hyperlink}\\\"}\" \\\n\t\"
        '#{?mouse_hyperlink,Copy #[underscore]#{=/9/...:mouse_hyperlink},}' 'h' {copy-mode
        -q; set-buffer -- \\\"#{q:mouse_hyperlink}\\\"}\" \\\n\t\" ''\" \\\n\t\" '#{?#{!:#{pane_floating_flag}},Horizontal
        Split,}' 'h' {split-window -h}\" \\\n\t\" '#{?#{!:#{pane_floating_flag}},Vertical
        Split,}' 'v' {split-window -v}\" \\\n\t\" ''\" \\\n\t\" '#{?#{&&:#{!:#{pane_floating_flag}},#{>:#{window_panes},1}},Swap
        Up,}' 'u' {swap-pane -U}\" \\\n\t\" '#{?#{&&:#{!:#{pane_floating_flag}},#{>:#{window_panes},1}},Swap
        Down,}' 'd' {swap-pane -D}\" \\\n\t\" '#{?pane_marked_set,,-}Swap Marked'
        's' {swap-pane}\" \\\n\t\" ''\" \\\n\t\" 'Kill' 'X' {kill-pane}\" \\\n\t\"
        'Respawn' 'R' {respawn-pane -k}\" \\\n\t\" '#{?pane_marked,Unmark,Mark}' 'm'
        {select-pane -m}\" \\\n\t\" '#{?#{>:#{window_panes},1},,-}#{?window_zoomed_flag,Unzoom,Zoom}'
        'z' {resize-pane -Z}\""
    structs: []
    typedefs: []
    union: []
- function_names:
  - client_get_lock
  - client_connect
  - client_exit_message
  - client_exit
  - client_main
  - client_send_identify
  - client_exec
  - client_signal
  - client_file_check_cb
  - client_dispatch
  - client_dispatch_exit_message
  - client_dispatch_wait
  - client_dispatch_attached
  source_file: /src/tmux/client.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_show_messages_terminals
  - cmd_show_messages_exec
  source_file: /src/tmux/cmd-show-messages.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHOW_MESSAGES_TEMPLATE
      pos:
        line_end: 32
        line_start: 30
        source_file: /src/tmux/cmd-show-messages.c
      type_or_value: '"#{t/p:message_time}: #{message_text}"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_run_shell_args_parse
  - cmd_run_shell_print
  - cmd_run_shell_exec
  - cmd_run_shell_timer
  - cmd_run_shell_callback
  - cmd_run_shell_free
  source_file: /src/tmux/cmd-run-shell.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*client'
        type: struct client
      - name: '*cmd'
        type: char
      - name: '*state'
        type: struct args_command_state
      - name: '*cwd'
        type: char
      - name: '*item'
        type: struct cmdq_item
      - name: '*s'
        type: struct session
      - name: wp_id
        type: int
      - name: timer
        type: struct event
      - name: flags
        type: int
      item_type: struct
      name: cmd_run_shell_data
      pos:
        line_end: 66
        line_start: 56
        source_file: /src/tmux/cmd-run-shell.c
    typedefs: []
    union: []
- function_names:
  - window_copy_scroll_timer
  - window_copy_clone_screen
  - window_copy_common_init
  - window_copy_init
  - window_copy_view_init
  - window_copy_free
  - window_copy_add
  - window_copy_init_ctx_cb
  - window_copy_vadd
  - window_copy_scroll
  - window_copy_scroll1
  - window_copy_pageup
  - window_copy_pageup1
  - window_copy_pagedown
  - window_copy_pagedown1
  - window_copy_previous_paragraph
  - window_copy_next_paragraph
  - window_copy_get_word
  - window_copy_get_line
  - window_copy_get_hyperlink
  - window_copy_cursor_hyperlink_cb
  - window_copy_cursor_word_cb
  - window_copy_cursor_line_cb
  - window_copy_search_match_cb
  - window_copy_formats
  - window_copy_get_screen
  - window_copy_size_changed
  - window_copy_resize
  - window_copy_key_table
  - window_copy_expand_search_string
  - window_copy_cmd_append_selection
  - window_copy_cmd_append_selection_and_cancel
  - window_copy_cmd_back_to_indentation
  - window_copy_cmd_begin_selection
  - window_copy_cmd_stop_selection
  - window_copy_cmd_bottom_line
  - window_copy_cmd_cancel
  - window_copy_cmd_clear_selection
  - window_copy_do_copy_end_of_line
  - window_copy_cmd_copy_end_of_line
  - window_copy_cmd_copy_end_of_line_and_cancel
  - window_copy_cmd_copy_pipe_end_of_line
  - window_copy_cmd_copy_pipe_end_of_line_and_cancel
  - window_copy_do_copy_line
  - window_copy_cmd_copy_line
  - window_copy_cmd_copy_line_and_cancel
  - window_copy_cmd_copy_pipe_line
  - window_copy_cmd_copy_pipe_line_and_cancel
  - window_copy_cmd_copy_selection_no_clear
  - window_copy_cmd_copy_selection
  - window_copy_cmd_copy_selection_and_cancel
  - window_copy_cmd_cursor_down
  - window_copy_cmd_cursor_down_and_cancel
  - window_copy_cmd_cursor_left
  - window_copy_cmd_cursor_right
  - window_copy_cmd_scroll_to
  - window_copy_cmd_scroll_bottom
  - window_copy_cmd_scroll_middle
  - window_copy_cmd_scroll_to_mouse
  - window_copy_cmd_scroll_top
  - window_copy_cmd_cursor_up
  - window_copy_cmd_centre_vertical
  - window_copy_cmd_centre_horizontal
  - window_copy_cmd_end_of_line
  - window_copy_cmd_halfpage_down
  - window_copy_cmd_halfpage_down_and_cancel
  - window_copy_cmd_halfpage_up
  - window_copy_cmd_toggle_position
  - window_copy_cmd_history_bottom
  - window_copy_cmd_history_top
  - window_copy_cmd_jump_again
  - window_copy_cmd_jump_reverse
  - window_copy_cmd_middle_line
  - window_copy_cmd_previous_matching_bracket
  - window_copy_cmd_next_matching_bracket
  - window_copy_cmd_next_paragraph
  - window_copy_cmd_next_space
  - window_copy_cmd_next_space_end
  - window_copy_cmd_next_word
  - window_copy_cmd_next_word_end
  - window_copy_cmd_other_end
  - window_copy_cmd_selection_mode
  - window_copy_cmd_page_down
  - window_copy_cmd_page_down_and_cancel
  - window_copy_cmd_page_up
  - window_copy_cmd_previous_paragraph
  - window_copy_cmd_previous_space
  - window_copy_cmd_previous_word
  - window_copy_cmd_rectangle_on
  - window_copy_cmd_rectangle_off
  - window_copy_cmd_rectangle_toggle
  - window_copy_cmd_scroll_exit_on
  - window_copy_cmd_scroll_exit_off
  - window_copy_cmd_scroll_exit_toggle
  - window_copy_cmd_scroll_down
  - window_copy_cmd_scroll_down_and_cancel
  - window_copy_cmd_scroll_up
  - window_copy_cmd_search_again
  - window_copy_cmd_search_reverse
  - window_copy_cmd_select_line
  - window_copy_cmd_select_word
  - window_copy_cmd_set_mark
  - window_copy_cmd_start_of_line
  - window_copy_cmd_top_line
  - window_copy_cmd_copy_pipe_no_clear
  - window_copy_cmd_copy_pipe
  - window_copy_cmd_copy_pipe_and_cancel
  - window_copy_cmd_pipe_no_clear
  - window_copy_cmd_pipe
  - window_copy_cmd_pipe_and_cancel
  - window_copy_cmd_goto_line
  - window_copy_cmd_jump_backward
  - window_copy_cmd_jump_forward
  - window_copy_cmd_jump_to_backward
  - window_copy_cmd_jump_to_forward
  - window_copy_cmd_jump_to_mark
  - window_copy_cmd_next_prompt
  - window_copy_cmd_previous_prompt
  - window_copy_cmd_search_backward
  - window_copy_cmd_search_backward_text
  - window_copy_cmd_search_forward
  - window_copy_cmd_search_forward_text
  - window_copy_cmd_search_backward_incremental
  - window_copy_cmd_search_forward_incremental
  - window_copy_cmd_refresh_from_pane
  - window_copy_cmd_recentre_top_bottom
  - window_copy_command
  - window_copy_scroll_to
  - window_copy_search_compare
  - window_copy_search_lr
  - window_copy_search_rl
  - window_copy_search_lr_regex
  - window_copy_search_rl_regex
  - window_copy_cellstring
  - window_copy_last_regex
  - window_copy_stringify
  - window_copy_cstrtocellpos
  - window_copy_move_left
  - window_copy_move_right
  - window_copy_is_lowercase
  - window_copy_search_back_overlap
  - window_copy_search_jump
  - window_copy_move_after_search_mark
  - window_copy_search
  - window_copy_visible_lines
  - window_copy_search_mark_at
  - window_copy_clip_width
  - window_copy_search_mark_match
  - window_copy_search_marks
  - window_copy_clear_marks
  - window_copy_search_up
  - window_copy_search_down
  - window_copy_goto_line
  - window_copy_match_start_end
  - window_copy_match_at_cursor
  - window_copy_update_style
  - window_copy_write_one
  - window_copy_line_number_mode
  - window_copy_line_number_is_absolute
  - window_copy_line_numbers_active
  - window_copy_line_number_width
  - window_copy_cursor_offset
  - window_copy_cursor_unoffset
  - window_copy_set_line_numbers
  - window_copy_get_current_offset
  - window_copy_write_line
  - window_copy_write_lines
  - window_copy_redraw_selection
  - window_copy_redraw_lines
  - window_copy_redraw_screen
  - window_copy_style_changed
  - window_copy_synchronize_cursor_end
  - window_copy_synchronize_cursor
  - window_copy_update_cursor
  - window_copy_start_selection
  - window_copy_adjust_selection
  - window_copy_update_selection
  - window_copy_set_selection
  - window_copy_get_selection
  - window_copy_copy_buffer
  - window_copy_pipe_run
  - window_copy_pipe
  - window_copy_copy_pipe
  - window_copy_copy_selection
  - window_copy_append_selection
  - window_copy_copy_line
  - window_copy_clear_selection
  - window_copy_in_set
  - window_copy_find_length
  - window_copy_cursor_limit
  - window_copy_cursor_start_of_line
  - window_copy_cursor_back_to_indentation
  - window_copy_cursor_end_of_line
  - window_copy_other_end
  - window_copy_cursor_left
  - window_copy_cursor_right
  - window_copy_cursor_up
  - window_copy_cursor_down
  - window_copy_cursor_jump
  - window_copy_cursor_jump_back
  - window_copy_cursor_jump_to
  - window_copy_cursor_jump_to_back
  - window_copy_cursor_next_word
  - window_copy_cursor_next_word_end_pos
  - window_copy_cursor_next_word_end
  - window_copy_cursor_previous_word_pos
  - window_copy_cursor_previous_word
  - window_copy_cursor_prompt
  - window_copy_scroll_up
  - window_copy_scroll_down
  - window_copy_rectangle_set
  - window_copy_move_mouse
  - window_copy_start_drag
  - window_copy_drag_update
  - window_copy_drag_release
  - window_copy_jump_to_mark
  - window_copy_acquire_cursor_up
  - window_copy_acquire_cursor_down
  source_file: /src/tmux/window-copy.c
  types:
    enum:
    - enumerators:
      - name: WINDOW_COPY_CMD_NOTHING
      - name: WINDOW_COPY_CMD_REDRAW
      - name: WINDOW_COPY_CMD_CANCEL
      item_type: enum
      name: window_copy_cmd_action
      pos:
        line_end: 209
        line_start: 205
        source_file: /src/tmux/window-copy.c
    - enumerators:
      - name: WINDOW_COPY_CMD_CLEAR_ALWAYS
      - name: WINDOW_COPY_CMD_CLEAR_NEVER
      - name: WINDOW_COPY_CMD_CLEAR_EMACS_ONLY
      item_type: enum
      name: window_copy_cmd_clear
      pos:
        line_end: 215
        line_start: 211
        source_file: /src/tmux/window-copy.c
    - enumerators:
      - name: WINDOW_COPY_LINE_NUMBERS_OFF
      - name: WINDOW_COPY_LINE_NUMBERS_HYBRID
      - name: WINDOW_COPY_LINE_NUMBERS_DEFAULT
      - name: WINDOW_COPY_LINE_NUMBERS_ABSOLUTE
      - name: WINDOW_COPY_LINE_NUMBERS_RELATIVE
      item_type: enum
      name: window_copy_line_numbers
      pos:
        line_end: 223
        line_start: 217
        source_file: /src/tmux/window-copy.c
    preproc_defs:
    - item_type: preproc_def
      name: WINDOW_COPY_SEARCH_TIMEOUT
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/tmux/window-copy.c
      type_or_value: '10000'
    - item_type: preproc_def
      name: WINDOW_COPY_SEARCH_ALL_TIMEOUT
      pos:
        line_end: 333
        line_start: 332
        source_file: /src/tmux/window-copy.c
      type_or_value: '200'
    - item_type: preproc_def
      name: WINDOW_COPY_SEARCH_MAX_LINE
      pos:
        line_end: 334
        line_start: 333
        source_file: /src/tmux/window-copy.c
      type_or_value: '2000'
    - item_type: preproc_def
      name: WINDOW_COPY_DRAG_REPEAT_TIME
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/tmux/window-copy.c
      type_or_value: '50000'
    - item_type: preproc_def
      name: WINDOW_COPY_CMD_FLAG_READONLY
      pos:
        line_end: 2870
        line_start: 2869
        source_file: /src/tmux/window-copy.c
      type_or_value: '0x1'
    structs:
    - fields:
      - name: '*wme'
        type: struct window_mode_entry
      - name: '*args'
        type: struct args
      - name: '*wargs'
        type: struct args
      - name: '*m'
        type: struct mouse_event
      - name: '*c'
        type: struct client
      - name: '*s'
        type: struct session
      - name: '*wl'
        type: struct winlink
      item_type: struct
      name: window_copy_cmd_state
      pos:
        line_end: 234
        line_start: 225
        source_file: /src/tmux/window-copy.c
    - fields:
      - name: screen
        type: struct screen
      - name: '*backing'
        type: struct screen
      - name: backing_written
        type: int
      - name: '*ictx'
        type: struct input_ctx
      - name: viewmode
        type: int
      - name: oy
        type: u_int
      - name: selx
        type: u_int
      - name: sely
        type: u_int
      - name: endselx
        type: u_int
      - name: endsely
        type: u_int
      - name: cursordrag
        type: "enum {\n\t\tCURSORDRAG_NONE,\t/* selection is independent of cursor
          */\n\t\tCURSORDRAG_ENDSEL,\t/* end is synchronized with cursor */\n\t\tCURSORDRAG_SEL,\t\t/*
          start is synchronized with cursor */\n\t}"
      - name: modekeys
        type: int
      - name: lineflag
        type: "enum {\n\t\tLINE_SEL_NONE,\n\t\tLINE_SEL_LEFT_RIGHT,\n\t\tLINE_SEL_RIGHT_LEFT,\n\t}"
      - name: rectflag
        type: int
      - name: scroll_exit
        type: int
      - name: hide_position
        type: int
      - name: line_numbers
        type: int
      - name: selflag
        type: "enum {\n\t\tSEL_CHAR,\t\t/* select one char at a time */\n\t\tSEL_WORD,\t\t/*
          select one word at a time */\n\t\tSEL_LINE,\t\t/* select one line at a time
          */\n\t}"
      - name: recentre_state
        type: "enum {\n\t\tRECENTRE_TOP,\n\t\tRECENTRE_MIDDLE,\n\t\tRECENTRE_BOTTOM,\n\t}"
      - name: recentre_line
        type: u_int
      - name: '*separators'
        type: char
      - name: dx
        type: u_int
      - name: dy
        type: u_int
      - name: selrx
        type: u_int
      - name: selry
        type: u_int
      - name: endselrx
        type: u_int
      - name: endselry
        type: u_int
      - name: cx
        type: u_int
      - name: cy
        type: u_int
      - name: lastcx
        type: u_int
      - name: lastsx
        type: u_int
      - name: mx
        type: u_int
      - name: my
        type: u_int
      - name: showmark
        type: int
      - name: searchtype
        type: int
      - name: searchdirection
        type: int
      - name: searchregex
        type: int
      - name: '*searchstr'
        type: char
      - name: '*searchmark'
        type: u_char
      - name: searchcount
        type: int
      - name: searchmore
        type: int
      - name: searchall
        type: int
      - name: searchx
        type: int
      - name: searchy
        type: int
      - name: searcho
        type: int
      - name: searchgen
        type: u_char
      - name: timeout
        type: int
      - name: jumptype
        type: int
      - name: '*jumpchar'
        type: struct utf8_data
      - name: dragtimer
        type: struct event
      item_type: struct
      name: window_copy_mode_data
      pos:
        line_end: 340
        line_start: 250
        source_file: /src/tmux/window-copy.c
    - fields:
      - name: '*command'
        type: char
      - name: minargs
        type: u_int
      - name: maxargs
        type: u_int
      - name: args
        type: struct args_parse
      - name: flags
        type: int
      - name: clear
        type: enum window_copy_cmd_clear
      - name: (*f)(struct window_copy_cmd_state *)
        type: enum window_copy_cmd_action
      item_type: struct
      name: "window_copy_cmd_table[] = {\n\t{ .command = \"append-selection\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_append_selection\n\t},\n\t{ .command = \"append-selection-and-cancel\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_append_selection_and_cancel\n\t},\n\t{ .command = \"back-to-indentation\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t
        \ .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t  .f = window_copy_cmd_back_to_indentation\n\t},\n\t{
        .command = \"begin-selection\",\n\t  .args = { \"\", 0, 0, NULL },\n\t  .flags
        = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t  .f = window_copy_cmd_begin_selection\n\t},\n\t{
        .command = \"bottom-line\",\n\t  .args = { \"\", 0, 0, NULL },\n\t  .flags
        = WINDOW_COPY_CMD_FLAG_READONLY,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t
        \ .f = window_copy_cmd_bottom_line\n\t},\n\t{ .command = \"cancel\",\n\t  .args
        = { \"\", 0, 0, NULL },\n\t  .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t  .clear
        = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t  .f = window_copy_cmd_cancel\n\t},\n\t{
        .command = \"clear-selection\",\n\t  .args = { \"\", 0, 0, NULL },\n\t  .flags
        = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t  .f = window_copy_cmd_clear_selection\n\t},\n\t{
        .command = \"copy-end-of-line\",\n\t  .args = { \"CP\", 0, 1, NULL },\n\t
        \ .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t  .f = window_copy_cmd_copy_end_of_line\n\t},\n\t{
        .command = \"copy-end-of-line-and-cancel\",\n\t  .args = { \"CP\", 0, 1, NULL
        },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t  .f =
        window_copy_cmd_copy_end_of_line_and_cancel\n\t},\n\t{ .command = \"copy-pipe-end-of-line\",\n\t
        \ .args = { \"CP\", 0, 2, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_copy_pipe_end_of_line\n\t},\n\t{ .command = \"copy-pipe-end-of-line-and-cancel\",\n\t
        \ .args = { \"CP\", 0, 2, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_copy_pipe_end_of_line_and_cancel\n\t},\n\t{ .command
        = \"copy-line\",\n\t  .args = { \"CP\", 0, 1, NULL },\n\t  .flags = 0,\n\t
        \ .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t  .f = window_copy_cmd_copy_line\n\t},\n\t{
        .command = \"copy-line-and-cancel\",\n\t  .args = { \"CP\", 0, 1, NULL },\n\t
        \ .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t  .f = window_copy_cmd_copy_line_and_cancel\n\t},\n\t{
        .command = \"copy-pipe-line\",\n\t  .args = { \"CP\", 0, 2, NULL },\n\t  .flags
        = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t  .f = window_copy_cmd_copy_pipe_line\n\t},\n\t{
        .command = \"copy-pipe-line-and-cancel\",\n\t  .args = { \"CP\", 0, 2, NULL
        },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t  .f =
        window_copy_cmd_copy_pipe_line_and_cancel\n\t},\n\t{ .command = \"copy-pipe-no-clear\",\n\t
        \ .args = { \"CP\", 0, 2, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_NEVER,\n\t
        \ .f = window_copy_cmd_copy_pipe_no_clear\n\t},\n\t{ .command = \"copy-pipe\",\n\t
        \ .args = { \"CP\", 0, 2, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_copy_pipe\n\t},\n\t{ .command = \"copy-pipe-and-cancel\",\n\t
        \ .args = { \"CP\", 0, 2, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_copy_pipe_and_cancel\n\t},\n\t{ .command = \"copy-selection-no-clear\",\n\t
        \ .args = { \"CP\", 0, 1, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_NEVER,\n\t
        \ .f = window_copy_cmd_copy_selection_no_clear\n\t},\n\t{ .command = \"copy-selection\",\n\t
        \ .args = { \"CP\", 0, 1, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_copy_selection\n\t},\n\t{ .command = \"copy-selection-and-cancel\",\n\t
        \ .args = { \"CP\", 0, 1, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_copy_selection_and_cancel\n\t},\n\t{ .command = \"cursor-down\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t
        \ .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t  .f = window_copy_cmd_cursor_down\n\t},\n\t{
        .command = \"cursor-down-and-cancel\",\n\t  .args = { \"\", 0, 0, NULL },\n\t
        \ .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_cursor_down_and_cancel\n\t},\n\t{ .command = \"cursor-left\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t
        \ .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t  .f = window_copy_cmd_cursor_left\n\t},\n\t{
        .command = \"cursor-right\",\n\t  .args = { \"\", 0, 0, NULL },\n\t  .flags
        = WINDOW_COPY_CMD_FLAG_READONLY,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t
        \ .f = window_copy_cmd_cursor_right\n\t},\n\t{ .command = \"cursor-up\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t
        \ .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t  .f = window_copy_cmd_cursor_up\n\t},\n\t{
        .command = \"cursor-centre-vertical\",\n\t  .args = { \"\", 0, 0, NULL },\n\t
        \ .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t
        \ .f = window_copy_cmd_centre_vertical,\n\t},\n\t{ .command = \"cursor-centre-horizontal\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t
        \ .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t  .f = window_copy_cmd_centre_horizontal,\n\t},\n\t{
        .command = \"end-of-line\",\n\t  .args = { \"\", 0, 0, NULL },\n\t  .flags
        = WINDOW_COPY_CMD_FLAG_READONLY,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t
        \ .f = window_copy_cmd_end_of_line\n\t},\n\t{ .command = \"goto-line\",\n\t
        \ .args = { \"\", 1, 1, NULL },\n\t  .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t
        \ .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t  .f = window_copy_cmd_goto_line\n\t},\n\t{
        .command = \"halfpage-down\",\n\t  .args = { \"\", 0, 0, NULL },\n\t  .flags
        = WINDOW_COPY_CMD_FLAG_READONLY,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t
        \ .f = window_copy_cmd_halfpage_down\n\t},\n\t{ .command = \"halfpage-down-and-cancel\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t
        \ .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t  .f = window_copy_cmd_halfpage_down_and_cancel\n\t},\n\t{
        .command = \"halfpage-up\",\n\t  .args = { \"\", 0, 0, NULL },\n\t  .flags
        = WINDOW_COPY_CMD_FLAG_READONLY,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t
        \ .f = window_copy_cmd_halfpage_up\n\t},\n\t{ .command = \"history-bottom\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t
        \ .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t  .f = window_copy_cmd_history_bottom\n\t},\n\t{
        .command = \"history-top\",\n\t  .args = { \"\", 0, 0, NULL },\n\t  .flags
        = WINDOW_COPY_CMD_FLAG_READONLY,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t
        \ .f = window_copy_cmd_history_top\n\t},\n\t{ .command = \"jump-again\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t
        \ .f = window_copy_cmd_jump_again\n\t},\n\t{ .command = \"jump-backward\",\n\t
        \ .args = { \"\", 1, 1, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t
        \ .f = window_copy_cmd_jump_backward\n\t},\n\t{ .command = \"jump-forward\",\n\t
        \ .args = { \"\", 1, 1, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t
        \ .f = window_copy_cmd_jump_forward\n\t},\n\t{ .command = \"jump-reverse\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t
        \ .f = window_copy_cmd_jump_reverse\n\t},\n\t{ .command = \"jump-to-backward\",\n\t
        \ .args = { \"\", 1, 1, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t
        \ .f = window_copy_cmd_jump_to_backward\n\t},\n\t{ .command = \"jump-to-forward\",\n\t
        \ .args = { \"\", 1, 1, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t
        \ .f = window_copy_cmd_jump_to_forward\n\t},\n\t{ .command = \"jump-to-mark\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t
        \ .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t  .f = window_copy_cmd_jump_to_mark\n\t},\n\t{
        .command = \"next-prompt\",\n\t  .args = { \"o\", 0, 0, NULL },\n\t  .flags
        = WINDOW_COPY_CMD_FLAG_READONLY,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_next_prompt\n\t},\n\t{ .command = \"previous-prompt\",\n\t
        \ .args = { \"o\", 0, 0, NULL },\n\t  .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t
        \ .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t  .f = window_copy_cmd_previous_prompt\n\t},\n\t{
        .command = \"middle-line\",\n\t  .args = { \"\", 0, 0, NULL },\n\t  .flags
        = WINDOW_COPY_CMD_FLAG_READONLY,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t
        \ .f = window_copy_cmd_middle_line\n\t},\n\t{ .command = \"next-matching-bracket\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t
        \ .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t  .f = window_copy_cmd_next_matching_bracket\n\t},\n\t{
        .command = \"next-paragraph\",\n\t  .args = { \"\", 0, 0, NULL },\n\t  .flags
        = WINDOW_COPY_CMD_FLAG_READONLY,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t
        \ .f = window_copy_cmd_next_paragraph\n\t},\n\t{ .command = \"next-space\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t
        \ .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t  .f = window_copy_cmd_next_space\n\t},\n\t{
        .command = \"next-space-end\",\n\t  .args = { \"\", 0, 0, NULL },\n\t  .flags
        = WINDOW_COPY_CMD_FLAG_READONLY,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t
        \ .f = window_copy_cmd_next_space_end\n\t},\n\t{ .command = \"next-word\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t
        \ .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t  .f = window_copy_cmd_next_word\n\t},\n\t{
        .command = \"next-word-end\",\n\t  .args = { \"\", 0, 0, NULL },\n\t  .flags
        = WINDOW_COPY_CMD_FLAG_READONLY,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t
        \ .f = window_copy_cmd_next_word_end\n\t},\n\t{ .command = \"other-end\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t
        \ .f = window_copy_cmd_other_end\n\t},\n\t{ .command = \"page-down\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t
        \ .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t  .f = window_copy_cmd_page_down\n\t},\n\t{
        .command = \"page-down-and-cancel\",\n\t  .args = { \"\", 0, 0, NULL },\n\t
        \ .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_page_down_and_cancel\n\t},\n\t{ .command = \"page-up\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t
        \ .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t  .f = window_copy_cmd_page_up\n\t},\n\t{
        .command = \"pipe-no-clear\",\n\t  .args = { \"\", 0, 1, NULL },\n\t  .flags
        = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_NEVER,\n\t  .f = window_copy_cmd_pipe_no_clear\n\t},\n\t{
        .command = \"pipe\",\n\t  .args = { \"\", 0, 1, NULL },\n\t  .flags = 0,\n\t
        \ .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t  .f = window_copy_cmd_pipe\n\t},\n\t{
        .command = \"pipe-and-cancel\",\n\t  .args = { \"\", 0, 1, NULL },\n\t  .flags
        = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t  .f = window_copy_cmd_pipe_and_cancel\n\t},\n\t{
        .command = \"previous-matching-bracket\",\n\t  .args = { \"\", 0, 0, NULL
        },\n\t  .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_previous_matching_bracket\n\t},\n\t{ .command = \"previous-paragraph\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t
        \ .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t  .f = window_copy_cmd_previous_paragraph\n\t},\n\t{
        .command = \"previous-space\",\n\t  .args = { \"\", 0, 0, NULL },\n\t  .flags
        = WINDOW_COPY_CMD_FLAG_READONLY,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t
        \ .f = window_copy_cmd_previous_space\n\t},\n\t{ .command = \"previous-word\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t
        \ .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t  .f = window_copy_cmd_previous_word\n\t},\n\t{
        .command = \"recentre-top-bottom\",\n\t  .args = { \"\", 0, 0, NULL },\n\t
        \ .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_recentre_top_bottom\n\t},\n\t{ .command = \"rectangle-on\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_rectangle_on\n\t},\n\t{ .command = \"rectangle-off\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_rectangle_off\n\t},\n\t{ .command = \"rectangle-toggle\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_rectangle_toggle\n\t},\n\t{ .command = \"refresh-from-pane\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t
        \ .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t  .f = window_copy_cmd_refresh_from_pane\n\t},\n\t{
        .command = \"scroll-bottom\",\n\t  .args = { \"\", 0, 0, NULL },\n\t  .flags
        = WINDOW_COPY_CMD_FLAG_READONLY,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_scroll_bottom\n\t},\n\t{ .command = \"scroll-down\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t
        \ .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t  .f = window_copy_cmd_scroll_down\n\t},\n\t{
        .command = \"scroll-down-and-cancel\",\n\t  .args = { \"\", 0, 0, NULL },\n\t
        \ .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_scroll_down_and_cancel\n\t},\n\t{ .command = \"scroll-exit-on\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_scroll_exit_on\n\t},\n\t{ .command = \"scroll-exit-off\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_scroll_exit_off\n\t},\n\t{ .command = \"scroll-exit-toggle\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_scroll_exit_toggle\n\t},\n\t{ .command = \"scroll-middle\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t
        \ .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t  .f = window_copy_cmd_scroll_middle\n\t},\n\t{
        .command = \"scroll-to-mouse\",\n\t  .args = { \"e\", 0, 0, NULL },\n\t  .flags
        = WINDOW_COPY_CMD_FLAG_READONLY,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t
        \ .f = window_copy_cmd_scroll_to_mouse\n\t},\n\t{ .command = \"scroll-top\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t
        \ .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t  .f = window_copy_cmd_scroll_top\n\t},\n\t{
        .command = \"scroll-up\",\n\t  .args = { \"\", 0, 0, NULL },\n\t  .flags =
        WINDOW_COPY_CMD_FLAG_READONLY,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t
        \ .f = window_copy_cmd_scroll_up\n\t},\n\t{ .command = \"search-again\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_search_again\n\t},\n\t{ .command = \"search-backward\",\n\t
        \ .args = { \"\", 0, 1, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_search_backward\n\t},\n\t{ .command = \"search-backward-text\",\n\t
        \ .args = { \"\", 0, 1, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_search_backward_text\n\t},\n\t{ .command = \"search-backward-incremental\",\n\t
        \ .args = { \"\", 1, 1, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_search_backward_incremental\n\t},\n\t{ .command = \"search-forward\",\n\t
        \ .args = { \"\", 0, 1, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_search_forward\n\t},\n\t{ .command = \"search-forward-text\",\n\t
        \ .args = { \"\", 0, 1, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_search_forward_text\n\t},\n\t{ .command = \"search-forward-incremental\",\n\t
        \ .args = { \"\", 1, 1, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_search_forward_incremental\n\t},\n\t{ .command = \"search-reverse\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_search_reverse\n\t},\n\t{ .command = \"select-line\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_select_line\n\t},\n\t{ .command = \"select-word\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_select_word\n\t},\n\t{ .command = \"selection-mode\",\n\t
        \ .args = { \"\", 0, 1, NULL },\n\t  .flags = 0,\n\t  .clear = 0,\n\t  .f
        = window_copy_cmd_selection_mode\n\t},\n\t{ .command = \"set-mark\",\n\t  .args
        = { \"\", 0, 0, NULL },\n\t  .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t  .clear
        = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t  .f = window_copy_cmd_set_mark\n\t},\n\t{
        .command = \"start-of-line\",\n\t  .args = { \"\", 0, 0, NULL },\n\t  .flags
        = WINDOW_COPY_CMD_FLAG_READONLY,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t
        \ .f = window_copy_cmd_start_of_line\n\t},\n\t{ .command = \"stop-selection\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = 0,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_ALWAYS,\n\t
        \ .f = window_copy_cmd_stop_selection\n\t},\n\t{ .command = \"toggle-position\",\n\t
        \ .args = { \"\", 0, 0, NULL },\n\t  .flags = WINDOW_COPY_CMD_FLAG_READONLY,\n\t
        \ .clear = WINDOW_COPY_CMD_CLEAR_NEVER,\n\t  .f = window_copy_cmd_toggle_position\n\t},\n\t{
        .command = \"top-line\",\n\t  .args = { \"\", 0, 0, NULL },\n\t  .flags =
        WINDOW_COPY_CMD_FLAG_READONLY,\n\t  .clear = WINDOW_COPY_CMD_CLEAR_EMACS_ONLY,\n\t
        \ .f = window_copy_cmd_top_line\n\t}\n}"
      pos:
        line_end: 2874
        line_start: 2863
        source_file: /src/tmux/window-copy.c
    - fields:
      - name: '*d'
        type: char
      - name: dlen
        type: size_t
      - name: allocated
        type: int
      item_type: struct
      name: '*cells'
      pos:
        line_end: 3932
        line_start: 3928
        source_file: /src/tmux/window-copy.c
    typedefs: []
    union: []
- function_names:
  - xmalloc
  - xcalloc
  - xrealloc
  - xreallocarray
  - xrecallocarray
  - xstrdup
  - xstrndup
  - xasprintf
  - xvasprintf
  - xsnprintf
  - xvsnprintf
  source_file: /src/tmux/xmalloc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - printflike
  - nitems
  - KEYC_SHIFT_TYPE
  - KEYC_IS_TYPE
  - KEYC_IS_UNICODE
  - KEYC_IS_USER
  - KEYC_IS_SPECIAL
  - KEYC_IS_MOUSE
  - KEYC_IS_PASTE
  - KEYC_MOUSE_KEYS
  - KEYC_MOUSE_KEY
  - KEYC_MAKE_MOUSE_KEY
  - KEYC_MOUSE_STRING
  - COLOUR_DEFAULT
  - screen_size_x
  - screen_size_y
  - screen_hsize
  - screen_hlimit
  - SCREEN_IS_ALTERNATE
  - MOUSE_BUTTONS
  - MOUSE_WHEEL
  - MOUSE_DRAG
  - MOUSE_RELEASE
  - cmdq_get_callback
  source_file: /src/tmux/tmux.h
  types:
    enum:
    - enumerators:
      - name: KEYC_TYPE_UNICODE
      - name: KEYC_TYPE_FUNCTION
      - name: KEYC_TYPE_USER
      - name: KEYC_TYPE_MOUSEMOVE
      - name: KEYC_TYPE_MOUSEDOWN
      - name: KEYC_TYPE_MOUSEUP
      - name: KEYC_TYPE_MOUSEDRAG
      - name: KEYC_TYPE_MOUSEDRAGEND
      - name: KEYC_TYPE_WHEELDOWN
      - name: KEYC_TYPE_WHEELUP
      - name: KEYC_TYPE_DOUBLECLICK
      - name: KEYC_TYPE_TRIPLECLICK
      - name: KEYC_TYPE_NOTYPE
      - name: KEYC_TYPE_SECONDCLICK
      item_type: enum
      name: key_code_type
      pos:
        line_end: 169
        line_start: 154
        source_file: /src/tmux/tmux.h
    - enumerators:
      - name: KEYC_MOUSE_LOCATION_STATUS
      - name: KEYC_MOUSE_LOCATION_BORDER
      - name: KEYC_MOUSE_LOCATION_CONTROL0
      - name: KEYC_MOUSE_LOCATION_CONTROL3
      - name: KEYC_MOUSE_LOCATION_CONTROL7
      - name: KEYC_MOUSE_LOCATION_STATUS_DEFAULT
      - name: KEYC_MOUSE_LOCATION_SCROLLBAR_DOWN
      - name: KEYC_MOUSE_LOCATION_CONTROL6
      - name: KEYC_MOUSE_LOCATION_CONTROL2
      - name: KEYC_MOUSE_LOCATION_NOWHERE
      - name: KEYC_MOUSE_LOCATION_PANE
      - name: KEYC_MOUSE_LOCATION_STATUS_RIGHT
      - name: KEYC_MOUSE_LOCATION_SCROLLBAR_SLIDER
      - name: KEYC_MOUSE_LOCATION_CONTROL9
      - name: KEYC_MOUSE_LOCATION_CONTROL5
      - name: KEYC_MOUSE_LOCATION_STATUS_LEFT
      - name: KEYC_MOUSE_LOCATION_SCROLLBAR_UP
      - name: KEYC_MOUSE_LOCATION_CONTROL8
      - name: KEYC_MOUSE_LOCATION_CONTROL4
      - name: KEYC_MOUSE_LOCATION_CONTROL1
      item_type: enum
      name: key_code_mouse_location
      pos:
        line_end: 192
        line_start: 171
        source_file: /src/tmux/tmux.h
    - enumerators:
      - name: TTYC_AM
      - name: TTYC_CUB
      - name: TTYC_DSEKS
      - name: TTYC_HPA
      - name: TTYC_KDC4
      - name: TTYC_KEND6
      - name: TTYC_KF22
      - name: TTYC_KF35
      - name: TTYC_KF5
      - name: TTYC_KF7
      - name: TTYC_KNXT6
      - name: TTYC_KPRV2
      - name: TTYC_RGB
      - name: TTYC_SETULC1
      - name: TTYC_SMULX
      - name: TTYC_CIVIS
      - name: TTYC_CUU
      - name: TTYC_KDN4
      - name: TTYC_EL1
      - name: TTYC_INDN
      - name: TTYC_KF14
      - name: TTYC_KF29
      - name: TTYC_KF41
      - name: TTYC_KF56
      - name: TTYC_KHOM6
      - name: TTYC_KUP7
      - name: TTYC_SETULC
      - name: TTYC_VPA
      - name: TTYC_RMKX
      - name: TTYC_KNXT5
      - name: TTYC_KLFT2
      - name: TTYC_HLS
      - name: TTYC_CS
      - name: TTYC_DL1
      - name: TTYC_KDC2
      - name: TTYC_KEND4
      - name: TTYC_KF20
      - name: TTYC_KF48
      - name: TTYC_KF62
      - name: TTYC_KIC6
      - name: TTYC_KNXT4
      - name: TTYC_SYNC
      - name: TTYC_KRIT3
      - name: TTYC_NOBR
      - name: TTYC_SMCUP
      - name: TTYC_KDN2
      - name: TTYC_IL
      - name: TTYC_BLINK
      - name: TTYC_CUF1
      - name: TTYC_ED
      - name: TTYC_KF12
      - name: TTYC_KF27
      - name: TTYC_KF4
      - name: TTYC_KF54
      - name: TTYC_KHOM4
      - name: TTYC_RI
      - name: TTYC_KPRV3
      - name: TTYC_KUP2
      - name: TTYC_KMOUS
      - name: TTYC_COLORS
      - name: TTYC_DIM
      - name: TTYC_KEND2
      - name: TTYC_ENMG
      - name: TTYC_KCUF1
      - name: TTYC_KF19
      - name: TTYC_KF33
      - name: TTYC_KF46
      - name: TTYC_KF60
      - name: TTYC_KIC4
      - name: TTYC_KLFT3
      - name: TTYC_MS
      - name: TTYC_SMXX
      - name: TTYC_KRIT4
      - name: TTYC_SE
      - name: TTYC_ACSC
      - name: TTYC_BEL
      - name: TTYC_CUD1
      - name: TTYC_E3
      - name: TTYC_KDC7
      - name: TTYC_KF10
      - name: TTYC_KF25
      - name: TTYC_KF38
      - name: TTYC_KF52
      - name: TTYC_KHOM2
      - name: TTYC_SMKX
      - name: TTYC_TC
      - name: TTYC_KPRV4
      - name: TTYC_OL
      - name: TTYC_KDN7
      - name: TTYC_CMG
      - name: TTYC_DCH
      - name: TTYC_ENEKS
      - name: TTYC_KCUB1
      - name: TTYC_KF17
      - name: TTYC_KF31
      - name: TTYC_KF44
      - name: TTYC_KF59
      - name: TTYC_KIC2
      - name: TTYC_KUP3
      - name: TTYC_SGR0
      - name: TTYC_KNP
      - name: TTYC_ICH
      - name: TTYC_KDC5
      - name: TTYC_AX
      - name: TTYC_CUB1
      - name: TTYC_DSFCS
      - name: TTYC_KEND7
      - name: TTYC_KF23
      - name: TTYC_KF36
      - name: TTYC_KF50
      - name: TTYC_KF8
      - name: TTYC_SETAB
      - name: TTYC_RMCUP
      - name: TTYC_SPB
      - name: TTYC_KRIT5
      - name: TTYC_CLEAR
      - name: TTYC_CUU1
      - name: TTYC_KDN5
      - name: TTYC_ENACS
      - name: TTYC_INVIS
      - name: TTYC_KF15
      - name: TTYC_KF3
      - name: TTYC_KF42
      - name: TTYC_KF57
      - name: TTYC_KHOM7
      - name: TTYC_KICH1
      - name: TTYC_SMOL
      - name: TTYC_OP
      - name: TTYC_SETAL
      - name: TTYC_KPRV5
      - name: TTYC_HOME
      - name: TTYC_KDC3
      - name: TTYC_CSR
      - name: TTYC_DSBP
      - name: TTYC_KEND5
      - name: TTYC_KF21
      - name: TTYC_KF49
      - name: TTYC_KF63
      - name: TTYC_KIC7
      - name: TTYC_KNXT2
      - name: TTYC_SITM
      - name: TTYC_KUP4
      - name: TTYC_RIN
      - name: TTYC_KLFT5
      - name: TTYC_BOLD
      - name: TTYC_CUP
      - name: TTYC_EL
      - name: TTYC_KDN3
      - name: TTYC_IL1
      - name: TTYC_KF13
      - name: TTYC_KF28
      - name: TTYC_KF40
      - name: TTYC_KF55
      - name: TTYC_KHOM5
      - name: TTYC_KRIT6
      - name: TTYC_SXL
      - name: TTYC_SETAF
      - name: TTYC_SMSO
      - name: TTYC_RECT
      - name: TTYC_KNXT7
      - name: TTYC_KEND3
      - name: TTYC_FSL
      - name: TTYC_KCUU1
      - name: TTYC_CR
      - name: TTYC_DL
      - name: TTYC_KF2
      - name: TTYC_KF34
      - name: TTYC_KF47
      - name: TTYC_KF61
      - name: TTYC_KIC5
      - name: TTYC_KPRV6
      - name: TTYC_TSL
      - name: TTYC_KUP5
      - name: TTYC_SETRGBB
      - name: TTYC_BIDI
      - name: TTYC_CUF
      - name: TTYC_ECH
      - name: TTYC_KDCH1
      - name: TTYC_KF11
      - name: TTYC_KF26
      - name: TTYC_KF39
      - name: TTYC_KF53
      - name: TTYC_KHOM3
      - name: TTYC_KLFT4
      - name: TTYC_KNXT3
      - name: TTYC_SWD
      - name: TTYC_RMACS
      - name: TTYC_KLFT6
      - name: TTYC_KEND
      - name: TTYC_CNORM
      - name: TTYC_DCH1
      - name: TTYC_ENFCS
      - name: TTYC_KCUD1
      - name: TTYC_KF18
      - name: TTYC_KF32
      - name: TTYC_KF45
      - name: TTYC_KF6
      - name: TTYC_KIC3
      - name: TTYC_KRI
      - name: TTYC_KRIT7
      - name: TTYC_SMUL
      - name: TTYC_SS
      - name: TTYC_REV
      - name: TTYC_KPP
      - name: TTYC_ICH1
      - name: TTYC_KDC6
      - name: TTYC_BCE
      - name: TTYC_CUD
      - name: TTYC_DSMG
      - name: TTYC_KF1
      - name: TTYC_KF24
      - name: TTYC_KF37
      - name: TTYC_KF51
      - name: TTYC_KF9
      - name: TTYC_KPRV7
      - name: TTYC_SETRGBF
      - name: TTYC_XT
      - name: TTYC_KIND
      - name: TTYC_U8
      - name: TTYC_KUP6
      - name: TTYC_KCBT
      - name: TTYC_ENBP
      - name: TTYC_CLMG
      - name: TTYC_CVVIS
      - name: TTYC_KDN6
      - name: TTYC_KF16
      - name: TTYC_KF30
      - name: TTYC_KF43
      - name: TTYC_KF58
      - name: TTYC_KHOME
      - name: TTYC_KLFT7
      - name: TTYC_KRIT2
      - name: TTYC_SMACS
      item_type: enum
      name: tty_code_code
      pos:
        line_end: 650
        line_start: 416
        source_file: /src/tmux/tmux.h
    - enumerators:
      - name: UTF8_MORE
      - name: UTF8_ERROR
      - name: UTF8_DONE
      item_type: enum
      name: utf8_state
      pos:
        line_end: 715
        line_start: 711
        source_file: /src/tmux/tmux.h
    - enumerators:
      - name: HANGULJAMO_STATE_NOT_HANGULJAMO
      - name: HANGULJAMO_STATE_NOT_COMPOSABLE
      - name: HANGULJAMO_STATE_COMPOSABLE
      - name: HANGULJAMO_STATE_CHOSEONG
      item_type: enum
      name: hanguljamo_state
      pos:
        line_end: 723
        line_start: 718
        source_file: /src/tmux/tmux.h
    - enumerators:
      - name: STYLE_ALIGN_DEFAULT
      - name: STYLE_ALIGN_RIGHT
      - name: STYLE_ALIGN_CENTRE
      - name: STYLE_ALIGN_LEFT
      - name: STYLE_ALIGN_ABSOLUTE_CENTRE
      item_type: enum
      name: style_align
      pos:
        line_end: 889
        line_start: 883
        source_file: /src/tmux/tmux.h
    - enumerators:
      - name: STYLE_LIST_OFF
      - name: STYLE_LIST_ON
      - name: STYLE_LIST_RIGHT_MARKER
      - name: STYLE_LIST_FOCUS
      - name: STYLE_LIST_LEFT_MARKER
      item_type: enum
      name: style_list
      pos:
        line_end: 898
        line_start: 892
        source_file: /src/tmux/tmux.h
    - enumerators:
      - name: STYLE_RANGE_NONE
      - name: STYLE_RANGE_WINDOW
      - name: STYLE_RANGE_PANE
      - name: STYLE_RANGE_RIGHT
      - name: STYLE_RANGE_LEFT
      - name: STYLE_RANGE_SESSION
      - name: STYLE_RANGE_USER
      - name: STYLE_RANGE_CONTROL
      item_type: enum
      name: style_range_type
      pos:
        line_end: 910
        line_start: 901
        source_file: /src/tmux/tmux.h
    - enumerators:
      - name: STYLE_DEFAULT_BASE
      - name: STYLE_DEFAULT_PUSH
      - name: STYLE_DEFAULT_SET
      - name: STYLE_DEFAULT_POP
      item_type: enum
      name: style_default_type
      pos:
        line_end: 939
        line_start: 934
        source_file: /src/tmux/tmux.h
    - enumerators:
      - name: SCREEN_CURSOR_DEFAULT
      - name: SCREEN_CURSOR_UNDERLINE
      - name: SCREEN_CURSOR_BAR
      - name: SCREEN_CURSOR_BLOCK
      item_type: enum
      name: screen_cursor_style
      pos:
        line_end: 987
        line_start: 982
        source_file: /src/tmux/tmux.h
    - enumerators:
      - name: PROGRESS_BAR_HIDDEN
        value: '0'
      - name: PROGRESS_BAR_ERROR
        value: '2'
      - name: PROGRESS_BAR_INDETERMINATE
        value: '3'
      - name: PROGRESS_BAR_NORMAL
        value: '1'
      - name: PROGRESS_BAR_PAUSED
        value: '4'
      item_type: enum
      name: progress_bar_state
      pos:
        line_end: 997
        line_start: 991
        source_file: /src/tmux/tmux.h
    - enumerators:
      - name: BOX_LINES_DEFAULT
        value: '-1'
      - name: BOX_LINES_HEAVY
      - name: BOX_LINES_DOUBLE
      - name: BOX_LINES_SINGLE
      - name: BOX_LINES_SIMPLE
      - name: BOX_LINES_ROUNDED
      - name: BOX_LINES_PADDED
      - name: BOX_LINES_NONE
      item_type: enum
      name: box_lines
      pos:
        line_end: 1078
        line_start: 1069
        source_file: /src/tmux/tmux.h
    - enumerators:
      - name: PANE_LINES_SINGLE
      - name: PANE_LINES_HEAVY
      - name: PANE_LINES_DOUBLE
      - name: PANE_LINES_NUMBER
      - name: PANE_LINES_SIMPLE
      - name: PANE_LINES_SPACES
      item_type: enum
      name: pane_lines
      pos:
        line_end: 1088
        line_start: 1081
        source_file: /src/tmux/tmux.h
    - enumerators:
      - name: INPUT_REQUEST_PALETTE
      - name: INPUT_REQUEST_CLIPBOARD
      - name: INPUT_REQUEST_QUEUE
      item_type: enum
      name: input_request_type
      pos:
        line_end: 1190
        line_start: 1186
        source_file: /src/tmux/tmux.h
    - enumerators:
      - name: THEME_UNKNOWN
      - name: THEME_DARK
      - name: THEME_LIGHT
      item_type: enum
      name: client_theme
      pos:
        line_end: 1233
        line_start: 1229
        source_file: /src/tmux/tmux.h
    - enumerators:
      - name: LAYOUT_LEFTRIGHT
      - name: LAYOUT_WINDOWPANE
      - name: LAYOUT_FLOATING
      - name: LAYOUT_TOPBOTTOM
      item_type: enum
      name: layout_type
      pos:
        line_end: 1467
        line_start: 1462
        source_file: /src/tmux/tmux.h
    - enumerators:
      - name: ARGS_NONE
      - name: ARGS_STRING
      - name: ARGS_COMMANDS
      item_type: enum
      name: args_type
      pos:
        line_end: 1814
        line_start: 1810
        source_file: /src/tmux/tmux.h
    - enumerators:
      - name: ARGS_PARSE_INVALID
      - name: ARGS_PARSE_STRING
      - name: ARGS_PARSE_COMMANDS
      - name: ARGS_PARSE_COMMANDS_OR_STRING
      item_type: enum
      name: args_parse_type
      pos:
        line_end: 1837
        line_start: 1832
        source_file: /src/tmux/tmux.h
    - enumerators:
      - name: CMD_FIND_PANE
      - name: CMD_FIND_SESSION
      - name: CMD_FIND_WINDOW
      item_type: enum
      name: cmd_find_type
      pos:
        line_end: 1853
        line_start: 1849
        source_file: /src/tmux/tmux.h
    - enumerators:
      - name: CMD_RETURN_ERROR
        value: '-1'
      - name: CMD_RETURN_NORMAL
        value: '0'
      - name: CMD_RETURN_WAIT
      - name: CMD_RETURN_STOP
      item_type: enum
      name: cmd_retval
      pos:
        line_end: 1887
        line_start: 1882
        source_file: /src/tmux/tmux.h
    - enumerators:
      - name: CMD_PARSE_ERROR
      - name: CMD_PARSE_SUCCESS
      item_type: enum
      name: cmd_parse_status
      pos:
        line_end: 1893
        line_start: 1890
        source_file: /src/tmux/tmux.h
    - enumerators:
      - name: PROMPT_TYPE_COMMAND
      - name: PROMPT_TYPE_WINDOW_TARGET
      - name: PROMPT_TYPE_TARGET
      - name: PROMPT_TYPE_SEARCH
      - name: PROMPT_TYPE_INVALID
        value: '0xff'
      item_type: enum
      name: prompt_type
      pos:
        line_end: 1973
        line_start: 1967
        source_file: /src/tmux/tmux.h
    - enumerators:
      - name: CONTROL_SUB_SESSION
      - name: CONTROL_SUB_ALL_PANES
      - name: CONTROL_SUB_PANE
      - name: CONTROL_SUB_WINDOW
      - name: CONTROL_SUB_ALL_WINDOWS
      item_type: enum
      name: control_sub_type
      pos:
        line_end: 2226
        line_start: 2220
        source_file: /src/tmux/tmux.h
    - enumerators:
      - name: OPTIONS_TABLE_STRING
      - name: OPTIONS_TABLE_FLAG
      - name: OPTIONS_TABLE_COLOUR
      - name: OPTIONS_TABLE_KEY
      - name: OPTIONS_TABLE_NUMBER
      - name: OPTIONS_TABLE_CHOICE
      - name: OPTIONS_TABLE_COMMAND
      item_type: enum
      name: options_table_type
      pos:
        line_end: 2273
        line_start: 2265
        source_file: /src/tmux/tmux.h
    - enumerators:
      - name: SORT_ACTIVITY
      - name: SORT_MODIFIER
      - name: SORT_INDEX
      - name: SORT_CREATION
      - name: SORT_NAME
      - name: SORT_ORDER
      - name: SORT_SIZE
      - name: SORT_END
      item_type: enum
      name: sort_order
      pos:
        line_end: 2378
        line_start: 2369
        source_file: /src/tmux/tmux.h
    preproc_defs:
    - item_type: preproc_def
      name: TMUX_CONF
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/tmux/tmux.h
      type_or_value: '"/etc/tmux.conf:~/.tmux.conf"'
    - item_type: preproc_def
      name: TMUX_SOCK
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/tmux/tmux.h
      type_or_value: '"$TMUX_TMPDIR:" _PATH_TMP'
    - item_type: preproc_def
      name: TMUX_TERM
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/tmux/tmux.h
      type_or_value: '"screen"'
    - item_type: preproc_def
      name: TMUX_LOCK_CMD
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/tmux/tmux.h
      type_or_value: '"lock -np"'
    - item_type: preproc_def
      name: PANE_MINIMUM
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/tmux/tmux.h
      type_or_value: '1'
    - item_type: preproc_def
      name: WINDOW_MINIMUM
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/tmux/tmux.h
      type_or_value: PANE_MINIMUM
    - item_type: preproc_def
      name: WINDOW_MAXIMUM
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/tmux/tmux.h
      type_or_value: '10000'
    - item_type: preproc_def
      name: NAME_INTERVAL
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/tmux/tmux.h
      type_or_value: '500000'
    - item_type: preproc_def
      name: DEFAULT_XPIXEL
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/tmux/tmux.h
      type_or_value: '16'
    - item_type: preproc_def
      name: DEFAULT_YPIXEL
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/tmux/tmux.h
      type_or_value: '32'
    - item_type: preproc_def
      name: ALERT_NONE
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/tmux/tmux.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ALERT_ANY
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/tmux/tmux.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ALERT_CURRENT
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/tmux/tmux.h
      type_or_value: '2'
    - item_type: preproc_def
      name: ALERT_OTHER
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/tmux/tmux.h
      type_or_value: '3'
    - item_type: preproc_def
      name: VISUAL_OFF
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/tmux/tmux.h
      type_or_value: '0'
    - item_type: preproc_def
      name: VISUAL_ON
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/tmux/tmux.h
      type_or_value: '1'
    - item_type: preproc_def
      name: VISUAL_BOTH
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/tmux/tmux.h
      type_or_value: '2'
    - item_type: preproc_def
      name: KEYC_META
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/tmux/tmux.h
      type_or_value: 0x00100000000000ULL
    - item_type: preproc_def
      name: KEYC_CTRL
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/tmux/tmux.h
      type_or_value: 0x00200000000000ULL
    - item_type: preproc_def
      name: KEYC_SHIFT
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/tmux/tmux.h
      type_or_value: 0x00400000000000ULL
    - item_type: preproc_def
      name: KEYC_LITERAL
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/tmux/tmux.h
      type_or_value: 0x01000000000000ULL
    - item_type: preproc_def
      name: KEYC_KEYPAD
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/tmux/tmux.h
      type_or_value: 0x02000000000000ULL
    - item_type: preproc_def
      name: KEYC_CURSOR
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/tmux/tmux.h
      type_or_value: 0x04000000000000ULL
    - item_type: preproc_def
      name: KEYC_IMPLIED_META
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/tmux/tmux.h
      type_or_value: 0x08000000000000ULL
    - item_type: preproc_def
      name: KEYC_BUILD_MODIFIERS
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/tmux/tmux.h
      type_or_value: 0x10000000000000ULL
    - item_type: preproc_def
      name: KEYC_VI
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/tmux/tmux.h
      type_or_value: 0x20000000000000ULL
    - item_type: preproc_def
      name: KEYC_SENT
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/tmux/tmux.h
      type_or_value: 0x40000000000000ULL
    - item_type: preproc_def
      name: KEYC_MASK_TYPE
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/tmux/tmux.h
      type_or_value: 0x0000ff00000000ULL
    - item_type: preproc_def
      name: KEYC_MASK_MODIFIERS
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/tmux/tmux.h
      type_or_value: 0x00ff0000000000ULL
    - item_type: preproc_def
      name: KEYC_MASK_FLAGS
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/tmux/tmux.h
      type_or_value: 0xff000000000000ULL
    - item_type: preproc_def
      name: KEYC_MASK_KEY
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/tmux/tmux.h
      type_or_value: 0x0000ffffffffffULL
    - item_type: preproc_def
      name: KEYC_NUSER
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/tmux/tmux.h
      type_or_value: '1000'
    - item_type: preproc_def
      name: KEYC_CLICK_TIMEOUT
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/tmux/tmux.h
      type_or_value: '300'
    - item_type: preproc_def
      name: KEYC_MOUSE_LOCATION_SHIFT
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/tmux/tmux.h
      type_or_value: '0'
    - item_type: preproc_def
      name: KEYC_MOUSE_BUTTON_SHIFT
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/tmux/tmux.h
      type_or_value: '8'
    - item_type: preproc_def
      name: WHITESPACE
      pos:
        line_end: 654
        line_start: 653
        source_file: /src/tmux/tmux.h
      type_or_value: '"\t "'
    - item_type: preproc_def
      name: MODEKEY_EMACS
      pos:
        line_end: 657
        line_start: 656
        source_file: /src/tmux/tmux.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MODEKEY_VI
      pos:
        line_end: 658
        line_start: 657
        source_file: /src/tmux/tmux.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MODE_CURSOR
      pos:
        line_end: 661
        line_start: 660
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: MODE_INSERT
      pos:
        line_end: 662
        line_start: 661
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: MODE_KCURSOR
      pos:
        line_end: 663
        line_start: 662
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: MODE_KKEYPAD
      pos:
        line_end: 664
        line_start: 663
        source_file: /src/tmux/tmux.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: MODE_WRAP
      pos:
        line_end: 665
        line_start: 664
        source_file: /src/tmux/tmux.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: MODE_MOUSE_STANDARD
      pos:
        line_end: 666
        line_start: 665
        source_file: /src/tmux/tmux.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: MODE_MOUSE_BUTTON
      pos:
        line_end: 667
        line_start: 666
        source_file: /src/tmux/tmux.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: MODE_CURSOR_BLINKING
      pos:
        line_end: 668
        line_start: 667
        source_file: /src/tmux/tmux.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: MODE_MOUSE_UTF8
      pos:
        line_end: 669
        line_start: 668
        source_file: /src/tmux/tmux.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: MODE_MOUSE_SGR
      pos:
        line_end: 670
        line_start: 669
        source_file: /src/tmux/tmux.h
      type_or_value: '0x200'
    - item_type: preproc_def
      name: MODE_BRACKETPASTE
      pos:
        line_end: 671
        line_start: 670
        source_file: /src/tmux/tmux.h
      type_or_value: '0x400'
    - item_type: preproc_def
      name: MODE_FOCUSON
      pos:
        line_end: 672
        line_start: 671
        source_file: /src/tmux/tmux.h
      type_or_value: '0x800'
    - item_type: preproc_def
      name: MODE_MOUSE_ALL
      pos:
        line_end: 673
        line_start: 672
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: MODE_ORIGIN
      pos:
        line_end: 674
        line_start: 673
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: MODE_CRLF
      pos:
        line_end: 675
        line_start: 674
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: MODE_KEYS_EXTENDED
      pos:
        line_end: 676
        line_start: 675
        source_file: /src/tmux/tmux.h
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: MODE_CURSOR_VERY_VISIBLE
      pos:
        line_end: 677
        line_start: 676
        source_file: /src/tmux/tmux.h
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: MODE_CURSOR_BLINKING_SET
      pos:
        line_end: 678
        line_start: 677
        source_file: /src/tmux/tmux.h
      type_or_value: '0x20000'
    - item_type: preproc_def
      name: MODE_KEYS_EXTENDED_2
      pos:
        line_end: 679
        line_start: 678
        source_file: /src/tmux/tmux.h
      type_or_value: '0x40000'
    - item_type: preproc_def
      name: MODE_THEME_UPDATES
      pos:
        line_end: 680
        line_start: 679
        source_file: /src/tmux/tmux.h
      type_or_value: '0x80000'
    - item_type: preproc_def
      name: MODE_SYNC
      pos:
        line_end: 681
        line_start: 680
        source_file: /src/tmux/tmux.h
      type_or_value: '0x100000'
    - item_type: preproc_def
      name: ALL_MODES
      pos:
        line_end: 683
        line_start: 682
        source_file: /src/tmux/tmux.h
      type_or_value: '0xffffff'
    - item_type: preproc_def
      name: ALL_MOUSE_MODES
      pos:
        line_end: 684
        line_start: 683
        source_file: /src/tmux/tmux.h
      type_or_value: (MODE_MOUSE_STANDARD|MODE_MOUSE_BUTTON|MODE_MOUSE_ALL)
    - item_type: preproc_def
      name: MOTION_MOUSE_MODES
      pos:
        line_end: 685
        line_start: 684
        source_file: /src/tmux/tmux.h
      type_or_value: (MODE_MOUSE_BUTTON|MODE_MOUSE_ALL)
    - item_type: preproc_def
      name: CURSOR_MODES
      pos:
        line_end: 686
        line_start: 685
        source_file: /src/tmux/tmux.h
      type_or_value: (MODE_CURSOR|MODE_CURSOR_BLINKING|MODE_CURSOR_VERY_VISIBLE)
    - item_type: preproc_def
      name: EXTENDED_KEY_MODES
      pos:
        line_end: 687
        line_start: 686
        source_file: /src/tmux/tmux.h
      type_or_value: (MODE_KEYS_EXTENDED|MODE_KEYS_EXTENDED_2)
    - item_type: preproc_def
      name: MOUSE_PARAM_MAX
      pos:
        line_end: 690
        line_start: 689
        source_file: /src/tmux/tmux.h
      type_or_value: '0xff'
    - item_type: preproc_def
      name: MOUSE_PARAM_UTF8_MAX
      pos:
        line_end: 691
        line_start: 690
        source_file: /src/tmux/tmux.h
      type_or_value: '0x7ff'
    - item_type: preproc_def
      name: MOUSE_PARAM_BTN_OFF
      pos:
        line_end: 692
        line_start: 691
        source_file: /src/tmux/tmux.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: MOUSE_PARAM_POS_OFF
      pos:
        line_end: 693
        line_start: 692
        source_file: /src/tmux/tmux.h
      type_or_value: '0x21'
    - item_type: preproc_def
      name: UTF8_SIZE
      pos:
        line_end: 703
        line_start: 702
        source_file: /src/tmux/tmux.h
      type_or_value: '32'
    - item_type: preproc_def
      name: COLOUR_FLAG_256
      pos:
        line_end: 727
        line_start: 726
        source_file: /src/tmux/tmux.h
      type_or_value: '0x01000000'
    - item_type: preproc_def
      name: COLOUR_FLAG_RGB
      pos:
        line_end: 728
        line_start: 727
        source_file: /src/tmux/tmux.h
      type_or_value: '0x02000000'
    - item_type: preproc_def
      name: GRID_ATTR_BRIGHT
      pos:
        line_end: 743
        line_start: 742
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: GRID_ATTR_DIM
      pos:
        line_end: 744
        line_start: 743
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: GRID_ATTR_UNDERSCORE
      pos:
        line_end: 745
        line_start: 744
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: GRID_ATTR_BLINK
      pos:
        line_end: 746
        line_start: 745
        source_file: /src/tmux/tmux.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: GRID_ATTR_REVERSE
      pos:
        line_end: 747
        line_start: 746
        source_file: /src/tmux/tmux.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: GRID_ATTR_HIDDEN
      pos:
        line_end: 748
        line_start: 747
        source_file: /src/tmux/tmux.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: GRID_ATTR_ITALICS
      pos:
        line_end: 749
        line_start: 748
        source_file: /src/tmux/tmux.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: GRID_ATTR_CHARSET
      pos:
        line_end: 750
        line_start: 749
        source_file: /src/tmux/tmux.h
      type_or_value: "0x80\t"
    - item_type: preproc_def
      name: GRID_ATTR_STRIKETHROUGH
      pos:
        line_end: 751
        line_start: 750
        source_file: /src/tmux/tmux.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: GRID_ATTR_UNDERSCORE_2
      pos:
        line_end: 752
        line_start: 751
        source_file: /src/tmux/tmux.h
      type_or_value: '0x200'
    - item_type: preproc_def
      name: GRID_ATTR_UNDERSCORE_3
      pos:
        line_end: 753
        line_start: 752
        source_file: /src/tmux/tmux.h
      type_or_value: '0x400'
    - item_type: preproc_def
      name: GRID_ATTR_UNDERSCORE_4
      pos:
        line_end: 754
        line_start: 753
        source_file: /src/tmux/tmux.h
      type_or_value: '0x800'
    - item_type: preproc_def
      name: GRID_ATTR_UNDERSCORE_5
      pos:
        line_end: 755
        line_start: 754
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: GRID_ATTR_OVERLINE
      pos:
        line_end: 756
        line_start: 755
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: GRID_ATTR_NOATTR
      pos:
        line_end: 757
        line_start: 756
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: GRID_ATTR_ALL_UNDERSCORE
      pos:
        line_end: 765
        line_start: 759
        source_file: /src/tmux/tmux.h
      type_or_value: "(GRID_ATTR_UNDERSCORE|\t \\\n\t GRID_ATTR_UNDERSCORE_2| \\\n\t
        GRID_ATTR_UNDERSCORE_3| \\\n\t GRID_ATTR_UNDERSCORE_4| \\\n\t GRID_ATTR_UNDERSCORE_5)"
    - item_type: preproc_def
      name: GRID_FLAG_FG256
      pos:
        line_end: 768
        line_start: 767
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: GRID_FLAG_BG256
      pos:
        line_end: 769
        line_start: 768
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: GRID_FLAG_PADDING
      pos:
        line_end: 770
        line_start: 769
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: GRID_FLAG_EXTENDED
      pos:
        line_end: 771
        line_start: 770
        source_file: /src/tmux/tmux.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: GRID_FLAG_SELECTED
      pos:
        line_end: 772
        line_start: 771
        source_file: /src/tmux/tmux.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: GRID_FLAG_NOPALETTE
      pos:
        line_end: 773
        line_start: 772
        source_file: /src/tmux/tmux.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: GRID_FLAG_CLEARED
      pos:
        line_end: 774
        line_start: 773
        source_file: /src/tmux/tmux.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: GRID_FLAG_TAB
      pos:
        line_end: 775
        line_start: 774
        source_file: /src/tmux/tmux.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: GRID_LINE_WRAPPED
      pos:
        line_end: 778
        line_start: 777
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: GRID_LINE_EXTENDED
      pos:
        line_end: 779
        line_start: 778
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: GRID_LINE_DEAD
      pos:
        line_end: 780
        line_start: 779
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: GRID_LINE_START_PROMPT
      pos:
        line_end: 781
        line_start: 780
        source_file: /src/tmux/tmux.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: GRID_LINE_START_OUTPUT
      pos:
        line_end: 782
        line_start: 781
        source_file: /src/tmux/tmux.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: GRID_STRING_WITH_SEQUENCES
      pos:
        line_end: 785
        line_start: 784
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: GRID_STRING_ESCAPE_SEQUENCES
      pos:
        line_end: 786
        line_start: 785
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: GRID_STRING_TRIM_SPACES
      pos:
        line_end: 787
        line_start: 786
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: GRID_STRING_USED_ONLY
      pos:
        line_end: 788
        line_start: 787
        source_file: /src/tmux/tmux.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: GRID_STRING_EMPTY_CELLS
      pos:
        line_end: 789
        line_start: 788
        source_file: /src/tmux/tmux.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: CELL_INSIDE
      pos:
        line_end: 792
        line_start: 791
        source_file: /src/tmux/tmux.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CELL_TOPBOTTOM
      pos:
        line_end: 793
        line_start: 792
        source_file: /src/tmux/tmux.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CELL_LEFTRIGHT
      pos:
        line_end: 794
        line_start: 793
        source_file: /src/tmux/tmux.h
      type_or_value: '2'
    - item_type: preproc_def
      name: CELL_TOPLEFT
      pos:
        line_end: 795
        line_start: 794
        source_file: /src/tmux/tmux.h
      type_or_value: '3'
    - item_type: preproc_def
      name: CELL_TOPRIGHT
      pos:
        line_end: 796
        line_start: 795
        source_file: /src/tmux/tmux.h
      type_or_value: '4'
    - item_type: preproc_def
      name: CELL_BOTTOMLEFT
      pos:
        line_end: 797
        line_start: 796
        source_file: /src/tmux/tmux.h
      type_or_value: '5'
    - item_type: preproc_def
      name: CELL_BOTTOMRIGHT
      pos:
        line_end: 798
        line_start: 797
        source_file: /src/tmux/tmux.h
      type_or_value: '6'
    - item_type: preproc_def
      name: CELL_TOPJOIN
      pos:
        line_end: 799
        line_start: 798
        source_file: /src/tmux/tmux.h
      type_or_value: '7'
    - item_type: preproc_def
      name: CELL_BOTTOMJOIN
      pos:
        line_end: 800
        line_start: 799
        source_file: /src/tmux/tmux.h
      type_or_value: '8'
    - item_type: preproc_def
      name: CELL_LEFTJOIN
      pos:
        line_end: 801
        line_start: 800
        source_file: /src/tmux/tmux.h
      type_or_value: '9'
    - item_type: preproc_def
      name: CELL_RIGHTJOIN
      pos:
        line_end: 802
        line_start: 801
        source_file: /src/tmux/tmux.h
      type_or_value: '10'
    - item_type: preproc_def
      name: CELL_JOIN
      pos:
        line_end: 803
        line_start: 802
        source_file: /src/tmux/tmux.h
      type_or_value: '11'
    - item_type: preproc_def
      name: CELL_OUTSIDE
      pos:
        line_end: 804
        line_start: 803
        source_file: /src/tmux/tmux.h
      type_or_value: '12'
    - item_type: preproc_def
      name: CELL_SCROLLBAR
      pos:
        line_end: 805
        line_start: 804
        source_file: /src/tmux/tmux.h
      type_or_value: '13'
    - item_type: preproc_def
      name: CELL_BORDERS
      pos:
        line_end: 808
        line_start: 807
        source_file: /src/tmux/tmux.h
      type_or_value: '" xqlkmjwvtun~"'
    - item_type: preproc_def
      name: SIMPLE_BORDERS
      pos:
        line_end: 809
        line_start: 808
        source_file: /src/tmux/tmux.h
      type_or_value: '" |-+++++++++."'
    - item_type: preproc_def
      name: PADDED_BORDERS
      pos:
        line_end: 810
        line_start: 809
        source_file: /src/tmux/tmux.h
      type_or_value: '"             "'
    - item_type: preproc_def
      name: GRID_HISTORY
      pos:
        line_end: 864
        line_start: 863
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1 '
    - item_type: preproc_def
      name: STYLE_WIDTH_DEFAULT
      pos:
        line_end: 931
        line_start: 930
        source_file: /src/tmux/tmux.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: STYLE_PAD_DEFAULT
      pos:
        line_end: 932
        line_start: 931
        source_file: /src/tmux/tmux.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: SCREEN_WRITE_SYNC
      pos:
        line_end: 1057
        line_start: 1056
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: SCREEN_WRITE_OBSCURED
      pos:
        line_end: 1058
        line_start: 1057
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: SCREEN_WRITE_CHECKED_IF_OBSCURED
      pos:
        line_end: 1059
        line_start: 1058
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: PANE_BORDER_OFF
      pos:
        line_end: 1092
        line_start: 1091
        source_file: /src/tmux/tmux.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PANE_BORDER_COLOUR
      pos:
        line_end: 1093
        line_start: 1092
        source_file: /src/tmux/tmux.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PANE_BORDER_ARROWS
      pos:
        line_end: 1094
        line_start: 1093
        source_file: /src/tmux/tmux.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PANE_BORDER_BOTH
      pos:
        line_end: 1095
        line_start: 1094
        source_file: /src/tmux/tmux.h
      type_or_value: '3'
    - item_type: preproc_def
      name: WINDOW_PANE_NO_MODE
      pos:
        line_end: 1098
        line_start: 1097
        source_file: /src/tmux/tmux.h
      type_or_value: '0'
    - item_type: preproc_def
      name: WINDOW_PANE_COPY_MODE
      pos:
        line_end: 1099
        line_start: 1098
        source_file: /src/tmux/tmux.h
      type_or_value: '1'
    - item_type: preproc_def
      name: WINDOW_PANE_VIEW_MODE
      pos:
        line_end: 1100
        line_start: 1099
        source_file: /src/tmux/tmux.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PANE_REDRAW
      pos:
        line_end: 1267
        line_start: 1266
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: PANE_DROP
      pos:
        line_end: 1268
        line_start: 1267
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: PANE_FOCUSED
      pos:
        line_end: 1269
        line_start: 1268
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: PANE_VISITED
      pos:
        line_end: 1270
        line_start: 1269
        source_file: /src/tmux/tmux.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: PANE_ZOOMED
      pos:
        line_end: 1271
        line_start: 1270
        source_file: /src/tmux/tmux.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: PANE_FLOATING
      pos:
        line_end: 1272
        line_start: 1271
        source_file: /src/tmux/tmux.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: PANE_INPUTOFF
      pos:
        line_end: 1273
        line_start: 1272
        source_file: /src/tmux/tmux.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: PANE_CHANGED
      pos:
        line_end: 1274
        line_start: 1273
        source_file: /src/tmux/tmux.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: PANE_EXITED
      pos:
        line_end: 1275
        line_start: 1274
        source_file: /src/tmux/tmux.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: PANE_STATUSREADY
      pos:
        line_end: 1276
        line_start: 1275
        source_file: /src/tmux/tmux.h
      type_or_value: '0x200'
    - item_type: preproc_def
      name: PANE_STATUSDRAWN
      pos:
        line_end: 1277
        line_start: 1276
        source_file: /src/tmux/tmux.h
      type_or_value: '0x400'
    - item_type: preproc_def
      name: PANE_EMPTY
      pos:
        line_end: 1278
        line_start: 1277
        source_file: /src/tmux/tmux.h
      type_or_value: '0x800'
    - item_type: preproc_def
      name: PANE_STYLECHANGED
      pos:
        line_end: 1279
        line_start: 1278
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: PANE_THEMECHANGED
      pos:
        line_end: 1280
        line_start: 1279
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: PANE_UNSEENCHANGES
      pos:
        line_end: 1281
        line_start: 1280
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: PANE_REDRAWSCROLLBAR
      pos:
        line_end: 1282
        line_start: 1281
        source_file: /src/tmux/tmux.h
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: WINDOW_BELL
      pos:
        line_end: 1394
        line_start: 1393
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: WINDOW_ACTIVITY
      pos:
        line_end: 1395
        line_start: 1394
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: WINDOW_SILENCE
      pos:
        line_end: 1396
        line_start: 1395
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: WINDOW_ZOOMED
      pos:
        line_end: 1397
        line_start: 1396
        source_file: /src/tmux/tmux.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: WINDOW_WASZOOMED
      pos:
        line_end: 1398
        line_start: 1397
        source_file: /src/tmux/tmux.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: WINDOW_RESIZE
      pos:
        line_end: 1399
        line_start: 1398
        source_file: /src/tmux/tmux.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: WINDOW_ALERTFLAGS
      pos:
        line_end: 1400
        line_start: 1399
        source_file: /src/tmux/tmux.h
      type_or_value: (WINDOW_BELL|WINDOW_ACTIVITY|WINDOW_SILENCE)
    - item_type: preproc_def
      name: WINLINK_BELL
      pos:
        line_end: 1421
        line_start: 1420
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: WINLINK_ACTIVITY
      pos:
        line_end: 1422
        line_start: 1421
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: WINLINK_SILENCE
      pos:
        line_end: 1423
        line_start: 1422
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: WINLINK_ALERTFLAGS
      pos:
        line_end: 1424
        line_start: 1423
        source_file: /src/tmux/tmux.h
      type_or_value: (WINLINK_BELL|WINLINK_ACTIVITY|WINLINK_SILENCE)
    - item_type: preproc_def
      name: WINLINK_VISITED
      pos:
        line_end: 1425
        line_start: 1424
        source_file: /src/tmux/tmux.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: WINDOW_SIZE_LARGEST
      pos:
        line_end: 1435
        line_start: 1434
        source_file: /src/tmux/tmux.h
      type_or_value: '0'
    - item_type: preproc_def
      name: WINDOW_SIZE_SMALLEST
      pos:
        line_end: 1436
        line_start: 1435
        source_file: /src/tmux/tmux.h
      type_or_value: '1'
    - item_type: preproc_def
      name: WINDOW_SIZE_MANUAL
      pos:
        line_end: 1437
        line_start: 1436
        source_file: /src/tmux/tmux.h
      type_or_value: '2'
    - item_type: preproc_def
      name: WINDOW_SIZE_LATEST
      pos:
        line_end: 1438
        line_start: 1437
        source_file: /src/tmux/tmux.h
      type_or_value: '3'
    - item_type: preproc_def
      name: PANE_STATUS_OFF
      pos:
        line_end: 1441
        line_start: 1440
        source_file: /src/tmux/tmux.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PANE_STATUS_TOP
      pos:
        line_end: 1442
        line_start: 1441
        source_file: /src/tmux/tmux.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PANE_STATUS_BOTTOM
      pos:
        line_end: 1443
        line_start: 1442
        source_file: /src/tmux/tmux.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PANE_SCROLLBARS_OFF
      pos:
        line_end: 1446
        line_start: 1445
        source_file: /src/tmux/tmux.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PANE_SCROLLBARS_MODAL
      pos:
        line_end: 1447
        line_start: 1446
        source_file: /src/tmux/tmux.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PANE_SCROLLBARS_ALWAYS
      pos:
        line_end: 1448
        line_start: 1447
        source_file: /src/tmux/tmux.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PANE_SCROLLBARS_RIGHT
      pos:
        line_end: 1451
        line_start: 1450
        source_file: /src/tmux/tmux.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PANE_SCROLLBARS_LEFT
      pos:
        line_end: 1452
        line_start: 1451
        source_file: /src/tmux/tmux.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PANE_SCROLLBARS_DEFAULT_PADDING
      pos:
        line_end: 1455
        line_start: 1454
        source_file: /src/tmux/tmux.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PANE_SCROLLBARS_DEFAULT_WIDTH
      pos:
        line_end: 1456
        line_start: 1455
        source_file: /src/tmux/tmux.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PANE_SCROLLBARS_CHARACTER
      pos:
        line_end: 1457
        line_start: 1456
        source_file: /src/tmux/tmux.h
      type_or_value: ''' '''
    - item_type: preproc_def
      name: ENVIRON_HIDDEN
      pos:
        line_end: 1497
        line_start: 1496
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: SESSION_ALERTED
      pos:
        line_end: 1533
        line_start: 1532
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: MOUSE_MASK_BUTTONS
      pos:
        line_end: 1550
        line_start: 1549
        source_file: /src/tmux/tmux.h
      type_or_value: '195'
    - item_type: preproc_def
      name: MOUSE_MASK_SHIFT
      pos:
        line_end: 1551
        line_start: 1550
        source_file: /src/tmux/tmux.h
      type_or_value: '4'
    - item_type: preproc_def
      name: MOUSE_MASK_META
      pos:
        line_end: 1552
        line_start: 1551
        source_file: /src/tmux/tmux.h
      type_or_value: '8'
    - item_type: preproc_def
      name: MOUSE_MASK_CTRL
      pos:
        line_end: 1553
        line_start: 1552
        source_file: /src/tmux/tmux.h
      type_or_value: '16'
    - item_type: preproc_def
      name: MOUSE_MASK_DRAG
      pos:
        line_end: 1554
        line_start: 1553
        source_file: /src/tmux/tmux.h
      type_or_value: '32'
    - item_type: preproc_def
      name: MOUSE_MASK_MODIFIERS
      pos:
        line_end: 1555
        line_start: 1554
        source_file: /src/tmux/tmux.h
      type_or_value: (MOUSE_MASK_SHIFT|MOUSE_MASK_META|MOUSE_MASK_CTRL)
    - item_type: preproc_def
      name: MOUSE_WHEEL_UP
      pos:
        line_end: 1558
        line_start: 1557
        source_file: /src/tmux/tmux.h
      type_or_value: '64'
    - item_type: preproc_def
      name: MOUSE_WHEEL_DOWN
      pos:
        line_end: 1559
        line_start: 1558
        source_file: /src/tmux/tmux.h
      type_or_value: '65'
    - item_type: preproc_def
      name: MOUSE_BUTTON_1
      pos:
        line_end: 1562
        line_start: 1561
        source_file: /src/tmux/tmux.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MOUSE_BUTTON_2
      pos:
        line_end: 1563
        line_start: 1562
        source_file: /src/tmux/tmux.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MOUSE_BUTTON_3
      pos:
        line_end: 1564
        line_start: 1563
        source_file: /src/tmux/tmux.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MOUSE_BUTTON_6
      pos:
        line_end: 1565
        line_start: 1564
        source_file: /src/tmux/tmux.h
      type_or_value: '66'
    - item_type: preproc_def
      name: MOUSE_BUTTON_7
      pos:
        line_end: 1566
        line_start: 1565
        source_file: /src/tmux/tmux.h
      type_or_value: '67'
    - item_type: preproc_def
      name: MOUSE_BUTTON_8
      pos:
        line_end: 1567
        line_start: 1566
        source_file: /src/tmux/tmux.h
      type_or_value: '128'
    - item_type: preproc_def
      name: MOUSE_BUTTON_9
      pos:
        line_end: 1568
        line_start: 1567
        source_file: /src/tmux/tmux.h
      type_or_value: '129'
    - item_type: preproc_def
      name: MOUSE_BUTTON_10
      pos:
        line_end: 1569
        line_start: 1568
        source_file: /src/tmux/tmux.h
      type_or_value: '130'
    - item_type: preproc_def
      name: MOUSE_BUTTON_11
      pos:
        line_end: 1570
        line_start: 1569
        source_file: /src/tmux/tmux.h
      type_or_value: '131'
    - item_type: preproc_def
      name: TERM_256COLOURS
      pos:
        line_end: 1628
        line_start: 1627
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: TERM_NOAM
      pos:
        line_end: 1629
        line_start: 1628
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: TERM_DECSLRM
      pos:
        line_end: 1630
        line_start: 1629
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: TERM_DECFRA
      pos:
        line_end: 1631
        line_start: 1630
        source_file: /src/tmux/tmux.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: TERM_RGBCOLOURS
      pos:
        line_end: 1632
        line_start: 1631
        source_file: /src/tmux/tmux.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: TERM_VT100LIKE
      pos:
        line_end: 1633
        line_start: 1632
        source_file: /src/tmux/tmux.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: TERM_SIXEL
      pos:
        line_end: 1634
        line_start: 1633
        source_file: /src/tmux/tmux.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: TTY_NOCURSOR
      pos:
        line_end: 1690
        line_start: 1689
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: TTY_FREEZE
      pos:
        line_end: 1691
        line_start: 1690
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: TTY_TIMER
      pos:
        line_end: 1692
        line_start: 1691
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: TTY_NOBLOCK
      pos:
        line_end: 1693
        line_start: 1692
        source_file: /src/tmux/tmux.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: TTY_STARTED
      pos:
        line_end: 1694
        line_start: 1693
        source_file: /src/tmux/tmux.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: TTY_OPENED
      pos:
        line_end: 1695
        line_start: 1694
        source_file: /src/tmux/tmux.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: TTY_OSC52QUERY
      pos:
        line_end: 1696
        line_start: 1695
        source_file: /src/tmux/tmux.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: TTY_BLOCK
      pos:
        line_end: 1697
        line_start: 1696
        source_file: /src/tmux/tmux.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: TTY_HAVEDA
      pos:
        line_end: 1698
        line_start: 1697
        source_file: /src/tmux/tmux.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: TTY_HAVEXDA
      pos:
        line_end: 1699
        line_start: 1698
        source_file: /src/tmux/tmux.h
      type_or_value: '0x200'
    - item_type: preproc_def
      name: TTY_SYNCING
      pos:
        line_end: 1700
        line_start: 1699
        source_file: /src/tmux/tmux.h
      type_or_value: '0x400'
    - item_type: preproc_def
      name: TTY_HAVEDA2
      pos:
        line_end: 1701
        line_start: 1700
        source_file: /src/tmux/tmux.h
      type_or_value: '0x800'
    - item_type: preproc_def
      name: TTY_WINSIZEQUERY
      pos:
        line_end: 1702
        line_start: 1701
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: TTY_WAITFG
      pos:
        line_end: 1703
        line_start: 1702
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: TTY_WAITBG
      pos:
        line_end: 1704
        line_start: 1703
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: TTY_BRACKETPASTE
      pos:
        line_end: 1705
        line_start: 1704
        source_file: /src/tmux/tmux.h
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: TTY_ALL_REQUEST_FLAGS
      pos:
        line_end: 1707
        line_start: 1705
        source_file: /src/tmux/tmux.h
      type_or_value: (TTY_HAVEDA|TTY_HAVEDA2|TTY_HAVEXDA)
    - item_type: preproc_def
      name: TTY_CTX_WRAPPED
      pos:
        line_end: 1740
        line_start: 1739
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: TTY_CTX_INVISIBLE_PANES
      pos:
        line_end: 1741
        line_start: 1740
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: TTY_CTX_WINDOW_BIGGER
      pos:
        line_end: 1742
        line_start: 1741
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: TTY_CTX_SYNC
      pos:
        line_end: 1743
        line_start: 1742
        source_file: /src/tmux/tmux.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: TTY_CTX_OVERLAY_SYNC
      pos:
        line_end: 1744
        line_start: 1743
        source_file: /src/tmux/tmux.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: TTY_CTX_CELL_INVALIDATE
      pos:
        line_end: 1745
        line_start: 1744
        source_file: /src/tmux/tmux.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: TTY_CTX_PANE_OBSCURED
      pos:
        line_end: 1746
        line_start: 1745
        source_file: /src/tmux/tmux.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: CMD_FIND_PREFER_UNATTACHED
      pos:
        line_end: 1867
        line_start: 1866
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: CMD_FIND_QUIET
      pos:
        line_end: 1868
        line_start: 1867
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: CMD_FIND_WINDOW_INDEX
      pos:
        line_end: 1869
        line_start: 1868
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: CMD_FIND_DEFAULT_MARKED
      pos:
        line_end: 1870
        line_start: 1869
        source_file: /src/tmux/tmux.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: CMD_FIND_EXACT_SESSION
      pos:
        line_end: 1871
        line_start: 1870
        source_file: /src/tmux/tmux.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: CMD_FIND_EXACT_WINDOW
      pos:
        line_end: 1872
        line_start: 1871
        source_file: /src/tmux/tmux.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: CMD_FIND_CANFAIL
      pos:
        line_end: 1873
        line_start: 1872
        source_file: /src/tmux/tmux.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: CMD_PARSE_QUIET
      pos:
        line_end: 1902
        line_start: 1901
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: CMD_PARSE_PARSEONLY
      pos:
        line_end: 1903
        line_start: 1902
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: CMD_PARSE_NOALIAS
      pos:
        line_end: 1904
        line_start: 1903
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: CMD_PARSE_VERBOSE
      pos:
        line_end: 1905
        line_start: 1904
        source_file: /src/tmux/tmux.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: CMD_PARSE_ONEGROUP
      pos:
        line_end: 1906
        line_start: 1905
        source_file: /src/tmux/tmux.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: CMDQ_STATE_REPEAT
      pos:
        line_end: 1917
        line_start: 1916
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: CMDQ_STATE_CONTROL
      pos:
        line_end: 1918
        line_start: 1917
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: CMDQ_STATE_NOHOOKS
      pos:
        line_end: 1919
        line_start: 1918
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: CMD_STARTSERVER
      pos:
        line_end: 1942
        line_start: 1941
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: CMD_READONLY
      pos:
        line_end: 1943
        line_start: 1942
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: CMD_AFTERHOOK
      pos:
        line_end: 1944
        line_start: 1943
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: CMD_CLIENT_CFLAG
      pos:
        line_end: 1945
        line_start: 1944
        source_file: /src/tmux/tmux.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: CMD_CLIENT_TFLAG
      pos:
        line_end: 1946
        line_start: 1945
        source_file: /src/tmux/tmux.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: CMD_CLIENT_CANFAIL
      pos:
        line_end: 1947
        line_start: 1946
        source_file: /src/tmux/tmux.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: STATUS_LINES_LIMIT
      pos:
        line_end: 1954
        line_start: 1953
        source_file: /src/tmux/tmux.h
      type_or_value: '5'
    - item_type: preproc_def
      name: PROMPT_NTYPES
      pos:
        line_end: 1967
        line_start: 1966
        source_file: /src/tmux/tmux.h
      type_or_value: '4'
    - item_type: preproc_def
      name: CLIENT_PASTE_TIME_LIMIT
      pos:
        line_end: 2014
        line_start: 2013
        source_file: /src/tmux/tmux.h
      type_or_value: '5'
    - item_type: preproc_def
      name: CLIENT_TERMINAL
      pos:
        line_end: 2083
        line_start: 2082
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: CLIENT_LOGIN
      pos:
        line_end: 2084
        line_start: 2083
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: CLIENT_EXIT
      pos:
        line_end: 2085
        line_start: 2084
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: CLIENT_REDRAWWINDOW
      pos:
        line_end: 2086
        line_start: 2085
        source_file: /src/tmux/tmux.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: CLIENT_REDRAWSTATUS
      pos:
        line_end: 2087
        line_start: 2086
        source_file: /src/tmux/tmux.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: CLIENT_REPEAT
      pos:
        line_end: 2088
        line_start: 2087
        source_file: /src/tmux/tmux.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: CLIENT_SUSPENDED
      pos:
        line_end: 2089
        line_start: 2088
        source_file: /src/tmux/tmux.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: CLIENT_ATTACHED
      pos:
        line_end: 2090
        line_start: 2089
        source_file: /src/tmux/tmux.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: CLIENT_EXITED
      pos:
        line_end: 2091
        line_start: 2090
        source_file: /src/tmux/tmux.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: CLIENT_DEAD
      pos:
        line_end: 2092
        line_start: 2091
        source_file: /src/tmux/tmux.h
      type_or_value: '0x200'
    - item_type: preproc_def
      name: CLIENT_REDRAWBORDERS
      pos:
        line_end: 2093
        line_start: 2092
        source_file: /src/tmux/tmux.h
      type_or_value: '0x400'
    - item_type: preproc_def
      name: CLIENT_READONLY
      pos:
        line_end: 2094
        line_start: 2093
        source_file: /src/tmux/tmux.h
      type_or_value: '0x800'
    - item_type: preproc_def
      name: CLIENT_NOSTARTSERVER
      pos:
        line_end: 2095
        line_start: 2094
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: CLIENT_CONTROL
      pos:
        line_end: 2096
        line_start: 2095
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: CLIENT_CONTROLCONTROL
      pos:
        line_end: 2097
        line_start: 2096
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: CLIENT_FOCUSED
      pos:
        line_end: 2098
        line_start: 2097
        source_file: /src/tmux/tmux.h
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: CLIENT_UTF8
      pos:
        line_end: 2099
        line_start: 2098
        source_file: /src/tmux/tmux.h
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: CLIENT_IGNORESIZE
      pos:
        line_end: 2100
        line_start: 2099
        source_file: /src/tmux/tmux.h
      type_or_value: '0x20000'
    - item_type: preproc_def
      name: CLIENT_IDENTIFIED
      pos:
        line_end: 2101
        line_start: 2100
        source_file: /src/tmux/tmux.h
      type_or_value: '0x40000'
    - item_type: preproc_def
      name: CLIENT_STATUSFORCE
      pos:
        line_end: 2102
        line_start: 2101
        source_file: /src/tmux/tmux.h
      type_or_value: '0x80000'
    - item_type: preproc_def
      name: CLIENT_DOUBLECLICK
      pos:
        line_end: 2103
        line_start: 2102
        source_file: /src/tmux/tmux.h
      type_or_value: '0x100000'
    - item_type: preproc_def
      name: CLIENT_TRIPLECLICK
      pos:
        line_end: 2104
        line_start: 2103
        source_file: /src/tmux/tmux.h
      type_or_value: '0x200000'
    - item_type: preproc_def
      name: CLIENT_SIZECHANGED
      pos:
        line_end: 2105
        line_start: 2104
        source_file: /src/tmux/tmux.h
      type_or_value: '0x400000'
    - item_type: preproc_def
      name: CLIENT_STATUSOFF
      pos:
        line_end: 2106
        line_start: 2105
        source_file: /src/tmux/tmux.h
      type_or_value: '0x800000'
    - item_type: preproc_def
      name: CLIENT_REDRAWSTATUSALWAYS
      pos:
        line_end: 2107
        line_start: 2106
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1000000'
    - item_type: preproc_def
      name: CLIENT_REDRAWOVERLAY
      pos:
        line_end: 2108
        line_start: 2107
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2000000'
    - item_type: preproc_def
      name: CLIENT_CONTROL_NOOUTPUT
      pos:
        line_end: 2109
        line_start: 2108
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4000000'
    - item_type: preproc_def
      name: CLIENT_DEFAULTSOCKET
      pos:
        line_end: 2110
        line_start: 2109
        source_file: /src/tmux/tmux.h
      type_or_value: '0x8000000'
    - item_type: preproc_def
      name: CLIENT_STARTSERVER
      pos:
        line_end: 2111
        line_start: 2110
        source_file: /src/tmux/tmux.h
      type_or_value: '0x10000000'
    - item_type: preproc_def
      name: CLIENT_REDRAWPANES
      pos:
        line_end: 2112
        line_start: 2111
        source_file: /src/tmux/tmux.h
      type_or_value: '0x20000000'
    - item_type: preproc_def
      name: CLIENT_NOFORK
      pos:
        line_end: 2113
        line_start: 2112
        source_file: /src/tmux/tmux.h
      type_or_value: '0x40000000'
    - item_type: preproc_def
      name: CLIENT_ACTIVEPANE
      pos:
        line_end: 2114
        line_start: 2113
        source_file: /src/tmux/tmux.h
      type_or_value: 0x80000000ULL
    - item_type: preproc_def
      name: CLIENT_CONTROL_PAUSEAFTER
      pos:
        line_end: 2115
        line_start: 2114
        source_file: /src/tmux/tmux.h
      type_or_value: 0x100000000ULL
    - item_type: preproc_def
      name: CLIENT_CONTROL_WAITEXIT
      pos:
        line_end: 2116
        line_start: 2115
        source_file: /src/tmux/tmux.h
      type_or_value: 0x200000000ULL
    - item_type: preproc_def
      name: CLIENT_WINDOWSIZECHANGED
      pos:
        line_end: 2117
        line_start: 2116
        source_file: /src/tmux/tmux.h
      type_or_value: 0x400000000ULL
    - item_type: preproc_def
      name: CLIENT_BRACKETPASTING
      pos:
        line_end: 2119
        line_start: 2118
        source_file: /src/tmux/tmux.h
      type_or_value: 0x1000000000ULL
    - item_type: preproc_def
      name: CLIENT_ASSUMEPASTING
      pos:
        line_end: 2120
        line_start: 2119
        source_file: /src/tmux/tmux.h
      type_or_value: 0x2000000000ULL
    - item_type: preproc_def
      name: CLIENT_REDRAWSCROLLBARS
      pos:
        line_end: 2121
        line_start: 2120
        source_file: /src/tmux/tmux.h
      type_or_value: 0x4000000000ULL
    - item_type: preproc_def
      name: CLIENT_NO_DETACH_ON_DESTROY
      pos:
        line_end: 2122
        line_start: 2121
        source_file: /src/tmux/tmux.h
      type_or_value: 0x8000000000ULL
    - item_type: preproc_def
      name: CLIENT_ALLREDRAWFLAGS
      pos:
        line_end: 2130
        line_start: 2122
        source_file: /src/tmux/tmux.h
      type_or_value: "(CLIENT_REDRAWWINDOW|\t\t\\\n\t CLIENT_REDRAWSTATUS|\t\t\\\n\t
        CLIENT_REDRAWSTATUSALWAYS|\t\\\n\t CLIENT_REDRAWBORDERS|\t\t\\\n\t CLIENT_REDRAWOVERLAY|\t\t\\\n\t
        CLIENT_REDRAWPANES|\t\t\\\n\t CLIENT_REDRAWSCROLLBARS)"
    - item_type: preproc_def
      name: CLIENT_UNATTACHEDFLAGS
      pos:
        line_end: 2134
        line_start: 2130
        source_file: /src/tmux/tmux.h
      type_or_value: "(CLIENT_DEAD|\t\t\\\n\t CLIENT_SUSPENDED|\t\\\n\t CLIENT_EXIT)"
    - item_type: preproc_def
      name: CLIENT_NODETACHFLAGS
      pos:
        line_end: 2137
        line_start: 2134
        source_file: /src/tmux/tmux.h
      type_or_value: "(CLIENT_DEAD|\t\t\\\n\t CLIENT_EXIT)"
    - item_type: preproc_def
      name: CLIENT_NOSIZEFLAGS
      pos:
        line_end: 2141
        line_start: 2137
        source_file: /src/tmux/tmux.h
      type_or_value: "(CLIENT_DEAD|\t\t\\\n\t CLIENT_SUSPENDED|\t\\\n\t CLIENT_EXIT)"
    - item_type: preproc_def
      name: PROMPT_SINGLE
      pos:
        line_end: 2179
        line_start: 2178
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: PROMPT_NUMERIC
      pos:
        line_end: 2180
        line_start: 2179
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: PROMPT_INCREMENTAL
      pos:
        line_end: 2181
        line_start: 2180
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: PROMPT_NOFORMAT
      pos:
        line_end: 2182
        line_start: 2181
        source_file: /src/tmux/tmux.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: PROMPT_KEY
      pos:
        line_end: 2183
        line_start: 2182
        source_file: /src/tmux/tmux.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: PROMPT_ACCEPT
      pos:
        line_end: 2184
        line_start: 2183
        source_file: /src/tmux/tmux.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: PROMPT_QUOTENEXT
      pos:
        line_end: 2185
        line_start: 2184
        source_file: /src/tmux/tmux.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: PROMPT_BSPACE_EXIT
      pos:
        line_end: 2186
        line_start: 2185
        source_file: /src/tmux/tmux.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: PROMPT_NOFREEZE
      pos:
        line_end: 2187
        line_start: 2186
        source_file: /src/tmux/tmux.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: KEY_BINDING_REPEAT
      pos:
        line_end: 2237
        line_start: 2236
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: OPTIONS_TABLE_NONE
      pos:
        line_end: 2276
        line_start: 2275
        source_file: /src/tmux/tmux.h
      type_or_value: '0'
    - item_type: preproc_def
      name: OPTIONS_TABLE_SERVER
      pos:
        line_end: 2277
        line_start: 2276
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: OPTIONS_TABLE_SESSION
      pos:
        line_end: 2278
        line_start: 2277
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: OPTIONS_TABLE_WINDOW
      pos:
        line_end: 2279
        line_start: 2278
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: OPTIONS_TABLE_PANE
      pos:
        line_end: 2280
        line_start: 2279
        source_file: /src/tmux/tmux.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: OPTIONS_TABLE_IS_ARRAY
      pos:
        line_end: 2282
        line_start: 2281
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: OPTIONS_TABLE_IS_HOOK
      pos:
        line_end: 2283
        line_start: 2282
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: OPTIONS_TABLE_IS_STYLE
      pos:
        line_end: 2284
        line_start: 2283
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: CMD_TARGET_PANE_USAGE
      pos:
        line_end: 2314
        line_start: 2313
        source_file: /src/tmux/tmux.h
      type_or_value: '"[-t target-pane]"'
    - item_type: preproc_def
      name: CMD_TARGET_WINDOW_USAGE
      pos:
        line_end: 2315
        line_start: 2314
        source_file: /src/tmux/tmux.h
      type_or_value: '"[-t target-window]"'
    - item_type: preproc_def
      name: CMD_TARGET_SESSION_USAGE
      pos:
        line_end: 2316
        line_start: 2315
        source_file: /src/tmux/tmux.h
      type_or_value: '"[-t target-session]"'
    - item_type: preproc_def
      name: CMD_TARGET_CLIENT_USAGE
      pos:
        line_end: 2317
        line_start: 2316
        source_file: /src/tmux/tmux.h
      type_or_value: '"[-t target-client]"'
    - item_type: preproc_def
      name: CMD_SRCDST_PANE_USAGE
      pos:
        line_end: 2318
        line_start: 2317
        source_file: /src/tmux/tmux.h
      type_or_value: '"[-s src-pane] [-t dst-pane]"'
    - item_type: preproc_def
      name: CMD_SRCDST_WINDOW_USAGE
      pos:
        line_end: 2319
        line_start: 2318
        source_file: /src/tmux/tmux.h
      type_or_value: '"[-s src-window] [-t dst-window]"'
    - item_type: preproc_def
      name: CMD_SRCDST_SESSION_USAGE
      pos:
        line_end: 2320
        line_start: 2319
        source_file: /src/tmux/tmux.h
      type_or_value: '"[-s src-session] [-t dst-session]"'
    - item_type: preproc_def
      name: CMD_SRCDST_CLIENT_USAGE
      pos:
        line_end: 2321
        line_start: 2320
        source_file: /src/tmux/tmux.h
      type_or_value: '"[-s src-client] [-t dst-client]"'
    - item_type: preproc_def
      name: CMD_BUFFER_USAGE
      pos:
        line_end: 2322
        line_start: 2321
        source_file: /src/tmux/tmux.h
      type_or_value: '"[-b buffer-name]"'
    - item_type: preproc_def
      name: SPAWN_KILL
      pos:
        line_end: 2344
        line_start: 2343
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: SPAWN_DETACHED
      pos:
        line_end: 2345
        line_start: 2344
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: SPAWN_RESPAWN
      pos:
        line_end: 2346
        line_start: 2345
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: SPAWN_BEFORE
      pos:
        line_end: 2347
        line_start: 2346
        source_file: /src/tmux/tmux.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: SPAWN_NONOTIFY
      pos:
        line_end: 2348
        line_start: 2347
        source_file: /src/tmux/tmux.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: SPAWN_FULLSIZE
      pos:
        line_end: 2349
        line_start: 2348
        source_file: /src/tmux/tmux.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: SPAWN_EMPTY
      pos:
        line_end: 2350
        line_start: 2349
        source_file: /src/tmux/tmux.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: SPAWN_ZOOM
      pos:
        line_end: 2351
        line_start: 2350
        source_file: /src/tmux/tmux.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: SPAWN_FLOATING
      pos:
        line_end: 2352
        line_start: 2351
        source_file: /src/tmux/tmux.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: FORMAT_STATUS
      pos:
        line_end: 2480
        line_start: 2479
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: FORMAT_FORCE
      pos:
        line_end: 2481
        line_start: 2480
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: FORMAT_NOJOBS
      pos:
        line_end: 2482
        line_start: 2481
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: FORMAT_VERBOSE
      pos:
        line_end: 2483
        line_start: 2482
        source_file: /src/tmux/tmux.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: FORMAT_LAST
      pos:
        line_end: 2484
        line_start: 2483
        source_file: /src/tmux/tmux.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: FORMAT_NONE
      pos:
        line_end: 2485
        line_start: 2484
        source_file: /src/tmux/tmux.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FORMAT_PANE
      pos:
        line_end: 2486
        line_start: 2485
        source_file: /src/tmux/tmux.h
      type_or_value: 0x80000000U
    - item_type: preproc_def
      name: FORMAT_WINDOW
      pos:
        line_end: 2487
        line_start: 2486
        source_file: /src/tmux/tmux.h
      type_or_value: 0x40000000U
    - item_type: preproc_def
      name: JOB_NOWAIT
      pos:
        line_end: 2621
        line_start: 2620
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: JOB_KEEPWRITE
      pos:
        line_end: 2622
        line_start: 2621
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: JOB_PTY
      pos:
        line_end: 2623
        line_start: 2622
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: JOB_DEFAULTSHELL
      pos:
        line_end: 2624
        line_start: 2623
        source_file: /src/tmux/tmux.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: JOB_SHOWSTDERR
      pos:
        line_end: 2625
        line_start: 2624
        source_file: /src/tmux/tmux.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: CMD_LIST_PRINT_ESCAPED
      pos:
        line_end: 2896
        line_start: 2895
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: CMD_LIST_PRINT_NO_GROUPS
      pos:
        line_end: 2897
        line_start: 2896
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: INPUT_BUF_DEFAULT_SIZE
      pos:
        line_end: 3152
        line_start: 3151
        source_file: /src/tmux/tmux.h
      type_or_value: '1048576'
    - item_type: preproc_def
      name: MENU_NOMOUSE
      pos:
        line_end: 3765
        line_start: 3764
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: MENU_TAB
      pos:
        line_end: 3766
        line_start: 3765
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: MENU_STAYOPEN
      pos:
        line_end: 3767
        line_start: 3766
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: POPUP_CLOSEEXIT
      pos:
        line_end: 3793
        line_start: 3792
        source_file: /src/tmux/tmux.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: POPUP_CLOSEEXITZERO
      pos:
        line_end: 3794
        line_start: 3793
        source_file: /src/tmux/tmux.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: POPUP_INTERNAL
      pos:
        line_end: 3795
        line_start: 3794
        source_file: /src/tmux/tmux.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: POPUP_CLOSEANYKEY
      pos:
        line_end: 3796
        line_start: 3795
        source_file: /src/tmux/tmux.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: POPUP_NOJOB
      pos:
        line_end: 3797
        line_start: 3796
        source_file: /src/tmux/tmux.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: SIXEL_COLOUR_REGISTERS
      pos:
        line_end: 3844
        line_start: 3843
        source_file: /src/tmux/tmux.h
      type_or_value: '1024'
    structs:
    - fields:
      - name: data[UTF8_SIZE]
        type: u_char
      - name: have
        type: u_char
      - name: size
        type: u_char
      - name: width
        type: u_char
      item_type: struct
      name: utf8_data
      pos:
        line_end: 710
        line_start: 703
        source_file: /src/tmux/tmux.h
    - fields:
      - name: fg
        type: int
      - name: bg
        type: int
      - name: '*palette'
        type: int
      - name: '*default_palette'
        type: int
      item_type: struct
      name: colour_palette
      pos:
        line_end: 739
        line_start: 733
        source_file: /src/tmux/tmux.h
    - fields:
      - name: data
        type: struct utf8_data
      - name: attr
        type: u_short
      - name: flags
        type: u_char
      - name: fg
        type: int
      - name: bg
        type: int
      - name: us
        type: int
      - name: link
        type: u_int
      item_type: struct
      name: grid_cell
      pos:
        line_end: 820
        line_start: 812
        source_file: /src/tmux/tmux.h
    - fields:
      - name: data
        type: utf8_char
      - name: attr
        type: u_short
      - name: flags
        type: u_char
      - name: fg
        type: int
      - name: bg
        type: int
      - name: us
        type: int
      - name: link
        type: u_int
      item_type: struct
      name: grid_extd_entry
      pos:
        line_end: 831
        line_start: 823
        source_file: /src/tmux/tmux.h
    - fields:
      - name: flags
        type: u_char
      item_type: struct
      name: grid_cell_entry
      pos:
        line_end: 845
        line_start: 834
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*celldata'
        type: struct grid_cell_entry
      - name: cellused
        type: u_int
      - name: cellsize
        type: u_int
      - name: '*extddata'
        type: struct grid_extd_entry
      - name: extdsize
        type: u_int
      - name: flags
        type: int
      - name: time
        type: time_t
      item_type: struct
      name: grid_line
      pos:
        line_end: 858
        line_start: 848
        source_file: /src/tmux/tmux.h
    - fields:
      - name: flags
        type: int
      - name: sx
        type: u_int
      - name: sy
        type: u_int
      - name: hscrolled
        type: u_int
      - name: hsize
        type: u_int
      - name: hlimit
        type: u_int
      - name: '*linedata'
        type: struct grid_line
      item_type: struct
      name: grid
      pos:
        line_end: 873
        line_start: 861
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*gd'
        type: struct grid
      - name: cx
        type: u_int
      - name: cy
        type: u_int
      item_type: struct
      name: grid_reader
      pos:
        line_end: 880
        line_start: 876
        source_file: /src/tmux/tmux.h
    - fields:
      - name: type
        type: enum style_range_type
      - name: argument
        type: u_int
      - name: string[16]
        type: char
      - name: start
        type: u_int
      - name: end
        type: u_int
      - name: (style_range)
        type: TAILQ_ENTRY
      item_type: struct
      name: style_range
      pos:
        line_end: 920
        line_start: 911
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*expanded'
        type: char
      - name: ranges
        type: struct style_ranges
      item_type: struct
      name: style_line_entry
      pos:
        line_end: 927
        line_start: 924
        source_file: /src/tmux/tmux.h
    - fields:
      - name: gc
        type: struct grid_cell
      - name: ignore
        type: int
      - name: fill
        type: int
      - name: align
        type: enum style_align
      - name: list
        type: enum style_list
      - name: range_type
        type: enum style_range_type
      - name: range_argument
        type: u_int
      - name: range_string[16]
        type: char
      - name: width
        type: int
      - name: width_percentage
        type: int
      - name: pad
        type: int
      - name: default_type
        type: enum style_default_type
      item_type: struct
      name: style
      pos:
        line_end: 959
        line_start: 942
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*s'
        type: struct screen
      - name: '*data'
        type: struct sixel_image
      - name: '*fallback'
        type: char
      - name: px
        type: u_int
      - name: py
        type: u_int
      - name: sx
        type: u_int
      - name: sy
        type: u_int
      - name: '*list'
        type: struct images
      - name: (image)
        type: TAILQ_ENTRY
      - name: all_entry
        type: TAILQ_ENTRY
      item_type: struct
      name: image
      pos:
        line_end: 977
        line_start: 963
        source_file: /src/tmux/tmux.h
    - fields:
      - name: state
        type: enum progress_bar_state
      - name: progress
        type: int
      item_type: struct
      name: progress_bar
      pos:
        line_end: 1001
        line_start: 998
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*title'
        type: char
      - name: '*path'
        type: char
      - name: '*titles'
        type: struct screen_titles
      - name: ntitles
        type: u_int
      - name: '*grid'
        type: struct grid
      - name: cx
        type: u_int
      - name: cy
        type: u_int
      - name: cstyle
        type: enum screen_cursor_style
      - name: default_cstyle
        type: enum screen_cursor_style
      - name: ccolour
        type: int
      - name: default_ccolour
        type: int
      - name: rupper
        type: u_int
      - name: rlower
        type: u_int
      - name: mode
        type: int
      - name: default_mode
        type: int
      - name: saved_cx
        type: u_int
      - name: saved_cy
        type: u_int
      - name: '*saved_grid'
        type: struct grid
      - name: saved_cell
        type: struct grid_cell
      - name: saved_flags
        type: int
      - name: '*tabs'
        type: bitstr_t
      - name: '*sel'
        type: struct screen_sel
      - name: '*write_list'
        type: struct screen_write_cline
      - name: '*hyperlinks'
        type: struct hyperlinks
      - name: progress_bar
        type: struct progress_bar
      item_type: struct
      name: screen
      pos:
        line_end: 1046
        line_start: 1006
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*wp'
        type: struct window_pane
      - name: '*s'
        type: struct screen
      - name: flags
        type: int
      - name: init_ctx_cb
        type: screen_write_init_ctx_cb
      - name: '*arg'
        type: void
      - name: '*item'
        type: struct screen_write_citem
      - name: scrolled
        type: u_int
      - name: bg
        type: u_int
      item_type: struct
      name: screen_write_ctx
      pos:
        line_end: 1066
        line_start: 1051
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*c'
        type: struct client
      - name: statuslines
        type: u_int
      - name: statustop
        type: int
      - name: pane_status
        type: int
      - name: pane_lines
        type: enum pane_lines
      - name: pane_scrollbars
        type: int
      - name: pane_scrollbars_pos
        type: int
      - name: no_pane_gc
        type: struct grid_cell
      - name: no_pane_gc_set
        type: int
      - name: sx
        type: u_int
      - name: sy
        type: u_int
      - name: ox
        type: int
      - name: oy
        type: int
      item_type: struct
      name: screen_redraw_ctx
      pos:
        line_end: 1121
        line_start: 1102
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*name'
        type: char
      - name: key
        type: key_code
      - name: '*command'
        type: char
      item_type: struct
      name: menu_item
      pos:
        line_end: 1134
        line_start: 1130
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*title'
        type: char
      - name: '*items'
        type: struct menu_item
      - name: count
        type: u_int
      - name: width
        type: u_int
      item_type: struct
      name: menu
      pos:
        line_end: 1140
        line_start: 1135
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*name'
        type: char
      - name: '*default_format'
        type: char
      - name: "*(*init)(struct window_mode_entry *,\n\t\t\t     struct cmd_find_state
          *, struct args *)"
        type: struct screen
      - name: (*free)(struct window_mode_entry *)
        type: void
      - name: (*resize)(struct window_mode_entry *, u_int, u_int)
        type: void
      - name: (*update)(struct window_mode_entry *)
        type: void
      - name: (*style_changed)(struct window_mode_entry *)
        type: void
      - name: "(*key)(struct window_mode_entry *, struct client *,\n\t\t\t     struct
          session *, struct winlink *, key_code,\n\t\t\t     struct mouse_event *)"
        type: void
      - name: '*(*key_table)(struct window_mode_entry *)'
        type: char
      - name: "(*command)(struct window_mode_entry *, struct client *,\n\t\t\t     struct
          session *, struct winlink *, struct args *,\n\t\t\t     struct mouse_event
          *)"
        type: void
      - name: "(*formats)(struct window_mode_entry *,\n\t\t\t     struct format_tree
          *)"
        type: void
      - name: '*(*get_screen)(struct window_mode_entry *)'
        type: struct screen
      item_type: struct
      name: window_mode
      pos:
        line_end: 1169
        line_start: 1148
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*wp'
        type: struct window_pane
      - name: '*swp'
        type: struct window_pane
      - name: '*mode'
        type: struct window_mode
      - name: '*data'
        type: void
      - name: '*screen'
        type: struct screen
      - name: prefix
        type: u_int
      - name: (window_mode_entry)
        type: TAILQ_ENTRY
      item_type: struct
      name: window_mode_entry
      pos:
        line_end: 1183
        line_start: 1172
        source_file: /src/tmux/tmux.h
    - fields:
      - name: idx
        type: int
      - name: c
        type: int
      item_type: struct
      name: input_request_palette_data
      pos:
        line_end: 1196
        line_start: 1193
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*buf'
        type: char
      - name: len
        type: size_t
      - name: clip
        type: char
      item_type: struct
      name: input_request_clipboard_data
      pos:
        line_end: 1203
        line_start: 1199
        source_file: /src/tmux/tmux.h
    - fields:
      - name: used
        type: size_t
      item_type: struct
      name: window_pane_offset
      pos:
        line_end: 1211
        line_start: 1209
        source_file: /src/tmux/tmux.h
    - fields:
      - name: sx
        type: u_int
      - name: sy
        type: u_int
      - name: osx
        type: u_int
      - name: osy
        type: u_int
      - name: (window_pane_resize)
        type: TAILQ_ENTRY
      item_type: struct
      name: window_pane_resize
      pos:
        line_end: 1222
        line_start: 1214
        source_file: /src/tmux/tmux.h
    - fields:
      - name: px
        type: u_int
      - name: nx
        type: u_int
      item_type: struct
      name: visible_range
      pos:
        line_end: 1239
        line_start: 1236
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*ranges'
        type: struct visible_range
      - name: used
        type: u_int
      - name: size
        type: u_int
      item_type: struct
      name: visible_ranges
      pos:
        line_end: 1246
        line_start: 1242
        source_file: /src/tmux/tmux.h
    - fields:
      - name: id
        type: u_int
      - name: active_point
        type: u_int
      - name: '*window'
        type: struct window
      - name: '*options'
        type: struct options
      - name: '*layout_cell'
        type: struct layout_cell
      - name: '*saved_layout_cell'
        type: struct layout_cell
      - name: sx
        type: u_int
      - name: sy
        type: u_int
      - name: xoff
        type: int
      - name: yoff
        type: int
      - name: flags
        type: int
      - name: sb_slider_y
        type: u_int
      - name: sb_slider_h
        type: u_int
      - name: argc
        type: int
      - name: '**argv'
        type: char
      - name: '*shell'
        type: char
      - name: '*cwd'
        type: char
      - name: pid
        type: pid_t
      - name: tty[TTY_NAME_MAX]
        type: char
      - name: status
        type: int
      - name: dead_time
        type: struct timeval
      - name: fd
        type: int
      - name: '*event'
        type: struct bufferevent
      - name: offset
        type: struct window_pane_offset
      - name: base_offset
        type: size_t
      - name: resize_queue
        type: struct window_pane_resizes
      - name: resize_timer
        type: struct event
      - name: sync_timer
        type: struct event
      - name: '*ictx'
        type: struct input_ctx
      - name: cached_gc
        type: struct grid_cell
      - name: cached_active_gc
        type: struct grid_cell
      - name: palette
        type: struct colour_palette
      - name: last_theme
        type: enum client_theme
      - name: border_status_line
        type: struct style_line_entry
      - name: pipe_fd
        type: int
      - name: pipe_pid
        type: pid_t
      - name: '*pipe_event'
        type: struct bufferevent
      - name: pipe_offset
        type: struct window_pane_offset
      - name: '*screen'
        type: struct screen
      - name: base
        type: struct screen
      - name: status_screen
        type: struct screen
      - name: status_size
        type: size_t
      - name: (, window_mode_entry)
        type: TAILQ_HEAD
      - name: '*searchstr'
        type: char
      - name: searchregex
        type: int
      - name: border_gc_set
        type: int
      - name: border_gc
        type: struct grid_cell
      - name: active_border_gc_set
        type: int
      - name: active_border_gc
        type: struct grid_cell
      - name: control_bg
        type: int
      - name: control_fg
        type: int
      - name: scrollbar_style
        type: struct style
      - name: r
        type: struct visible_ranges
      - name: (window_pane)
        type: TAILQ_ENTRY
      - name: (window_pane)
        type: TAILQ_ENTRY
      - name: (window_pane)
        type: TAILQ_ENTRY
      - name: (window_pane)
        type: RB_ENTRY
      item_type: struct
      name: window_pane
      pos:
        line_end: 1346
        line_start: 1249
        source_file: /src/tmux/tmux.h
    - fields:
      - name: idx
        type: int
      - name: '*session'
        type: struct session
      - name: '*window'
        type: struct window
      - name: flags
        type: int
      - name: (winlink)
        type: RB_ENTRY
      - name: wentry
        type: TAILQ_ENTRY
      - name: (winlink)
        type: TAILQ_ENTRY
      item_type: struct
      name: winlink
      pos:
        line_end: 1429
        line_start: 1414
        source_file: /src/tmux/tmux.h
    - fields:
      - name: type
        type: enum layout_type
      - name: '*parent'
        type: struct layout_cell
      - name: sx
        type: u_int
      - name: sy
        type: u_int
      - name: xoff
        type: int
      - name: yoff
        type: int
      - name: '*wp'
        type: struct window_pane
      - name: cells
        type: struct layout_cells
      - name: (layout_cell)
        type: TAILQ_ENTRY
      item_type: struct
      name: layout_cell
      pos:
        line_end: 1488
        line_start: 1473
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*name'
        type: char
      - name: '*value'
        type: char
      - name: flags
        type: int
      - name: (environ_entry)
        type: RB_ENTRY
      item_type: struct
      name: environ_entry
      pos:
        line_end: 1499
        line_start: 1491
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*name'
        type: char
      - name: (, session)
        type: TAILQ_HEAD
      - name: (session_group)
        type: RB_ENTRY
      item_type: struct
      name: session_group
      pos:
        line_end: 1507
        line_start: 1502
        source_file: /src/tmux/tmux.h
    - fields:
      - name: id
        type: u_int
      - name: '*name'
        type: char
      - name: '*cwd'
        type: char
      - name: creation_time
        type: struct timeval
      - name: last_attached_time
        type: struct timeval
      - name: activity_time
        type: struct timeval
      - name: last_activity_time
        type: struct timeval
      - name: lock_timer
        type: struct event
      - name: '*curw'
        type: struct winlink
      - name: lastw
        type: struct winlink_stack
      - name: windows
        type: struct winlinks
      - name: statusat
        type: int
      - name: statuslines
        type: u_int
      - name: '*options'
        type: struct options
      - name: flags
        type: int
      - name: attached
        type: u_int
      - name: '*tio'
        type: struct termios
      - name: '*environ'
        type: struct environ
      - name: references
        type: int
      - name: (session)
        type: TAILQ_ENTRY
      - name: entry
        type: RB_ENTRY
      item_type: struct
      name: session
      pos:
        line_end: 1545
        line_start: 1510
        source_file: /src/tmux/tmux.h
    - fields:
      - name: valid
        type: int
      - name: ignore
        type: int
      - name: key
        type: key_code
      - name: statusat
        type: int
      - name: statuslines
        type: u_int
      - name: x
        type: u_int
      - name: y
        type: u_int
      - name: b
        type: u_int
      - name: lx
        type: u_int
      - name: ly
        type: u_int
      - name: lb
        type: u_int
      - name: ox
        type: u_int
      - name: oy
        type: u_int
      - name: s
        type: int
      - name: w
        type: int
      - name: wp
        type: int
      - name: sgr_type
        type: u_int
      - name: sgr_b
        type: u_int
      item_type: struct
      name: mouse_event
      pos:
        line_end: 1606
        line_start: 1580
        source_file: /src/tmux/tmux.h
    - fields:
      - name: key
        type: key_code
      - name: m
        type: struct mouse_event
      - name: '*buf'
        type: char
      - name: len
        type: size_t
      item_type: struct
      name: key_event
      pos:
        line_end: 1615
        line_start: 1609
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*name'
        type: char
      - name: '*tty'
        type: struct tty
      - name: features
        type: int
      - name: acs[UCHAR_MAX + 1][2]
        type: char
      - name: '*codes'
        type: struct tty_code
      - name: flags
        type: int
      - name: (tty_term)
        type: LIST_ENTRY
      item_type: struct
      name: tty_term
      pos:
        line_end: 1637
        line_start: 1618
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*client'
        type: struct client
      - name: start_timer
        type: struct event
      - name: clipboard_timer
        type: struct event
      - name: last_requests
        type: time_t
      - name: sx
        type: u_int
      - name: sy
        type: u_int
      - name: xpixel
        type: u_int
      - name: ypixel
        type: u_int
      - name: cx
        type: u_int
      - name: cy
        type: u_int
      - name: cstyle
        type: enum screen_cursor_style
      - name: ccolour
        type: int
      - name: oflag
        type: int
      - name: oox
        type: u_int
      - name: ooy
        type: u_int
      - name: osx
        type: u_int
      - name: osy
        type: u_int
      - name: mode
        type: int
      - name: fg
        type: int
      - name: bg
        type: int
      - name: rlower
        type: u_int
      - name: rupper
        type: u_int
      - name: rleft
        type: u_int
      - name: rright
        type: u_int
      - name: event_in
        type: struct event
      - name: '*in'
        type: struct evbuffer
      - name: event_out
        type: struct event
      - name: '*out'
        type: struct evbuffer
      - name: timer
        type: struct event
      - name: discarded
        type: size_t
      - name: tio
        type: struct termios
      - name: r
        type: struct visible_ranges
      - name: cell
        type: struct grid_cell
      - name: last_cell
        type: struct grid_cell
      - name: flags
        type: int
      - name: '*term'
        type: struct tty_term
      - name: mouse_last_x
        type: u_int
      - name: mouse_last_y
        type: u_int
      - name: mouse_last_b
        type: u_int
      - name: mouse_drag_flag
        type: int
      - name: mouse_scrolling_flag
        type: int
      - name: mouse_slider_mpos
        type: int
      - name: mouse_last_pane
        type: int
      - name: "(*mouse_drag_update)(struct client *,\n\t\t\t    struct mouse_event
          *)"
        type: void
      - name: "(*mouse_drag_release)(struct client *,\n\t\t\t    struct mouse_event
          *)"
        type: void
      - name: key_timer
        type: struct event
      - name: '*key_tree'
        type: struct tty_key
      item_type: struct
      name: tty
      pos:
        line_end: 1725
        line_start: 1641
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*s'
        type: struct screen
      - name: redraw_cb
        type: tty_ctx_redraw_cb
      - name: set_client_cb
        type: tty_ctx_set_client_cb
      - name: '*arg'
        type: void
      - name: '*cell'
        type: struct grid_cell
      - name: flags
        type: int
      - name: ocx
        type: u_int
      - name: ocy
        type: u_int
      - name: orupper
        type: u_int
      - name: orlower
        type: u_int
      - name: xoff
        type: int
      - name: yoff
        type: int
      - name: rxoff
        type: int
      - name: ryoff
        type: int
      - name: sx
        type: u_int
      - name: sy
        type: u_int
      - name: bg
        type: u_int
      - name: defaults
        type: struct grid_cell
      - name: '*palette'
        type: struct colour_palette
      - name: wox
        type: u_int
      - name: woy
        type: u_int
      - name: wsx
        type: u_int
      - name: wsy
        type: u_int
      item_type: struct
      name: tty_ctx
      pos:
        line_end: 1797
        line_start: 1730
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*msg'
        type: char
      - name: msg_num
        type: u_int
      - name: msg_time
        type: struct timeval
      - name: (message_entry)
        type: TAILQ_ENTRY
      item_type: struct
      name: message_entry
      pos:
        line_end: 1806
        line_start: 1800
        source_file: /src/tmux/tmux.h
    - fields:
      - name: type
        type: enum args_type
      - name: '*cached'
        type: char
      - name: (args_value)
        type: TAILQ_ENTRY
      item_type: struct
      name: args_value
      pos:
        line_end: 1825
        line_start: 1817
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*template'
        type: char
      - name: lower
        type: int
      - name: upper
        type: int
      - name: cb
        type: args_parse_cb
      item_type: struct
      name: args_parse
      pos:
        line_end: 1846
        line_start: 1841
        source_file: /src/tmux/tmux.h
    - fields:
      - name: flags
        type: int
      - name: '*current'
        type: struct cmd_find_state
      - name: '*s'
        type: struct session
      - name: '*wl'
        type: struct winlink
      - name: '*w'
        type: struct window
      - name: '*wp'
        type: struct window_pane
      - name: idx
        type: int
      item_type: struct
      name: cmd_find_state
      pos:
        line_end: 1863
        line_start: 1854
        source_file: /src/tmux/tmux.h
    - fields:
      - name: references
        type: int
      - name: group
        type: u_int
      - name: '*list'
        type: struct cmds
      item_type: struct
      name: cmd_list
      pos:
        line_end: 1879
        line_start: 1875
        source_file: /src/tmux/tmux.h
    - fields:
      - name: status
        type: enum cmd_parse_status
      - name: '*cmdlist'
        type: struct cmd_list
      - name: '*error'
        type: char
      item_type: struct
      name: cmd_parse_result
      pos:
        line_end: 1898
        line_start: 1894
        source_file: /src/tmux/tmux.h
    - fields:
      - name: flags
        type: int
      - name: '*file'
        type: char
      - name: line
        type: u_int
      - name: '*item'
        type: struct cmdq_item
      - name: '*c'
        type: struct client
      - name: fs
        type: struct cmd_find_state
      item_type: struct
      name: cmd_parse_input
      pos:
        line_end: 1913
        line_start: 1899
        source_file: /src/tmux/tmux.h
    - fields:
      - name: flag
        type: char
      - name: type
        type: enum cmd_find_type
      - name: flags
        type: int
      item_type: struct
      name: cmd_entry_flag
      pos:
        line_end: 1928
        line_start: 1924
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*name'
        type: char
      - name: '*alias'
        type: char
      - name: args
        type: struct args_parse
      - name: '*usage'
        type: char
      - name: source
        type: struct cmd_entry_flag
      - name: target
        type: struct cmd_entry_flag
      - name: flags
        type: int
      - name: (*exec)(struct cmd *, struct cmdq_item *)
        type: enum cmd_retval
      item_type: struct
      name: cmd_entry
      pos:
        line_end: 1950
        line_start: 1931
        source_file: /src/tmux/tmux.h
    - fields:
      - name: timer
        type: struct event
      - name: screen
        type: struct screen
      - name: '*active'
        type: struct screen
      - name: references
        type: int
      - name: style
        type: struct grid_cell
      - name: entries[STATUS_LINES_LIMIT]
        type: struct style_line_entry
      item_type: struct
      name: status_line
      pos:
        line_end: 1963
        line_start: 1954
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*c'
        type: struct client
      - name: '*peer'
        type: struct tmuxpeer
      - name: '*tree'
        type: struct client_files
      - name: references
        type: int
      - name: stream
        type: int
      - name: '*path'
        type: char
      - name: '*buffer'
        type: struct evbuffer
      - name: '*event'
        type: struct bufferevent
      - name: fd
        type: int
      - name: error
        type: int
      - name: closed
        type: int
      - name: cb
        type: client_file_cb
      - name: '*data'
        type: void
      - name: (client_file)
        type: RB_ENTRY
      item_type: struct
      name: client_file
      pos:
        line_end: 1997
        line_start: 1978
        source_file: /src/tmux/tmux.h
    - fields:
      - name: window
        type: u_int
      - name: '*pane'
        type: struct window_pane
      - name: sx
        type: u_int
      - name: sy
        type: u_int
      - name: (client_window)
        type: RB_ENTRY
      item_type: struct
      name: client_window
      pos:
        line_end: 2009
        line_start: 2001
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*name'
        type: char
      - name: '*peer'
        type: struct tmuxpeer
      - name: '*user'
        type: char
      - name: '*queue'
        type: struct cmdq_list
      - name: windows
        type: struct client_windows
      - name: '*control_state'
        type: struct control_state
      - name: pause_age
        type: u_int
      - name: pid
        type: pid_t
      - name: fd
        type: int
      - name: out_fd
        type: int
      - name: event
        type: struct event
      - name: retval
        type: int
      - name: creation_time
        type: struct timeval
      - name: activity_time
        type: struct timeval
      - name: last_activity_time
        type: struct timeval
      - name: '*environ'
        type: struct environ
      - name: '*jobs'
        type: struct format_job_tree
      - name: '*title'
        type: char
      - name: '*path'
        type: char
      - name: '*cwd'
        type: char
      - name: progress_bar
        type: struct progress_bar
      - name: '*term_name'
        type: char
      - name: term_features
        type: int
      - name: '*term_type'
        type: char
      - name: '**term_caps'
        type: char
      - name: term_ncaps
        type: u_int
      - name: '*ttyname'
        type: char
      - name: tty
        type: struct tty
      - name: written
        type: size_t
      - name: discarded
        type: size_t
      - name: redraw
        type: size_t
      - name: repeat_timer
        type: struct event
      - name: click_timer
        type: struct event
      - name: click_loc
        type: int
      - name: click_wp
        type: int
      - name: click_button
        type: u_int
      - name: click_event
        type: struct mouse_event
      - name: status
        type: struct status_line
      - name: theme
        type: enum client_theme
      - name: input_requests
        type: struct input_requests
      - name: flags
        type: uint64_t
      - name: exit_type
        type: "enum {\n\t\tCLIENT_EXIT_RETURN,\n\t\tCLIENT_EXIT_SHUTDOWN,\n\t\tCLIENT_EXIT_DETACH\n\t}"
      - name: exit_msgtype
        type: enum msgtype
      - name: '*exit_session'
        type: char
      - name: '*exit_message'
        type: char
      - name: '*keytable'
        type: struct key_table
      - name: last_key
        type: key_code
      - name: paste_time
        type: time_t
      - name: redraw_panes
        type: uint64_t
      - name: redraw_scrollbars
        type: uint64_t
      - name: message_ignore_keys
        type: int
      - name: message_ignore_styles
        type: int
      - name: '*message_string'
        type: char
      - name: message_timer
        type: struct event
      - name: '*prompt_string'
        type: char
      - name: '*prompt_buffer'
        type: struct utf8_data
      - name: prompt_state
        type: struct cmd_find_state
      - name: '*prompt_last'
        type: char
      - name: prompt_index
        type: size_t
      - name: prompt_inputcb
        type: prompt_input_cb
      - name: prompt_freecb
        type: prompt_free_cb
      - name: '*prompt_data'
        type: void
      - name: prompt_hindex[PROMPT_NTYPES]
        type: u_int
      - name: prompt_mode
        type: "enum {\n\t\tPROMPT_ENTRY,\n\t\tPROMPT_COMMAND\n\t}"
      - name: '*prompt_saved'
        type: struct utf8_data
      - name: prompt_flags
        type: int
      - name: prompt_type
        type: enum prompt_type
      - name: prompt_cursor
        type: int
      - name: '*session'
        type: struct session
      - name: '*last_session'
        type: struct session
      - name: references
        type: int
      - name: '*pan_window'
        type: void
      - name: pan_ox
        type: u_int
      - name: pan_oy
        type: u_int
      - name: overlay_check
        type: overlay_check_cb
      - name: overlay_mode
        type: overlay_mode_cb
      - name: overlay_draw
        type: overlay_draw_cb
      - name: overlay_key
        type: overlay_key_cb
      - name: overlay_free
        type: overlay_free_cb
      - name: overlay_resize
        type: overlay_resize_cb
      - name: '*overlay_data'
        type: void
      - name: overlay_timer
        type: struct event
      - name: files
        type: struct client_files
      - name: source_file_depth
        type: u_int
      - name: '*clipboard_panes'
        type: u_int
      - name: clipboard_npanes
        type: u_int
      - name: (client)
        type: TAILQ_ENTRY
      item_type: struct
      name: client
      pos:
        line_end: 2216
        line_start: 2027
        source_file: /src/tmux/tmux.h
    - fields:
      - name: key
        type: key_code
      - name: '*cmdlist'
        type: struct cmd_list
      - name: '*note'
        type: char
      - name: '*tablename'
        type: char
      - name: flags
        type: int
      - name: (key_binding)
        type: RB_ENTRY
      item_type: struct
      name: key_binding
      pos:
        line_end: 2239
        line_start: 2229
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*name'
        type: char
      - name: activity_time
        type: struct timeval
      - name: key_bindings
        type: struct key_bindings
      - name: default_key_bindings
        type: struct key_bindings
      - name: references
        type: u_int
      - name: (key_table)
        type: RB_ENTRY
      item_type: struct
      name: key_table
      pos:
        line_end: 2251
        line_start: 2242
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*name'
        type: char
      - name: '*alternative_name'
        type: char
      - name: type
        type: enum options_table_type
      - name: scope
        type: int
      - name: flags
        type: int
      - name: minimum
        type: u_int
      - name: maximum
        type: u_int
      - name: '**choices'
        type: char
      - name: '*default_str'
        type: char
      - name: default_num
        type: long long
      - name: '**default_arr'
        type: char
      - name: '*separator'
        type: char
      - name: '*pattern'
        type: char
      - name: '*text'
        type: char
      - name: '*unit'
        type: char
      item_type: struct
      name: options_table_entry
      pos:
        line_end: 2305
        line_start: 2285
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*from'
        type: char
      - name: '*to'
        type: char
      item_type: struct
      name: options_name_map
      pos:
        line_end: 2310
        line_start: 2307
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*item'
        type: struct cmdq_item
      - name: '*s'
        type: struct session
      - name: '*wl'
        type: struct winlink
      - name: '*tc'
        type: struct client
      - name: '*wp0'
        type: struct window_pane
      - name: '*lc'
        type: struct layout_cell
      - name: '*name'
        type: char
      - name: '**argv'
        type: char
      - name: argc
        type: int
      - name: '*environ'
        type: struct environ
      - name: idx
        type: int
      - name: '*cwd'
        type: char
      - name: flags
        type: int
      item_type: struct
      name: spawn_context
      pos:
        line_end: 2352
        line_start: 2324
        source_file: /src/tmux/tmux.h
    - fields:
      - name: '*data'
        type: char
      - name: size
        type: size_t
      - name: '*name'
        type: char
      - name: created
        type: time_t
      - name: automatic
        type: int
      - name: order
        type: u_int
      - name: (paste_buffer)
        type: RB_ENTRY
      - name: (paste_buffer)
        type: RB_ENTRY
      item_type: struct
      name: paste_buffer
      pos:
        line_end: 2366
        line_start: 2355
        source_file: /src/tmux/tmux.h
    - fields:
      - name: order
        type: enum sort_order
      - name: reversed
        type: int
      - name: '*order_seq'
        type: enum sort_order
      item_type: struct
      name: sort_criteria
      pos:
        line_end: 2385
        line_start: 2381
        source_file: /src/tmux/tmux.h
    typedefs:
    - item_type: typedef
      name: key_code
      pos:
        line_end: 287
        line_start: 287
        source_file: /src/tmux/tmux.h
      type: unsigned long long
    - item_type: typedef
      name: utf8_char
      pos:
        line_end: 695
        line_start: 695
        source_file: /src/tmux/tmux.h
      type: u_int
    - item_type: typedef
      name: "(*screen_write_init_ctx_cb)(struct screen_write_ctx *,\n    struct tty_ctx
        *)"
      pos:
        line_end: 1050
        line_start: 1049
        source_file: /src/tmux/tmux.h
      type: void
    - item_type: typedef
      name: (*menu_choice_cb)(struct menu *, u_int, key_code, void *)
      pos:
        line_end: 1141
        line_start: 1141
        source_file: /src/tmux/tmux.h
      type: void
    - item_type: typedef
      name: (*tty_ctx_redraw_cb)(const struct tty_ctx *)
      pos:
        line_end: 1728
        line_start: 1728
        source_file: /src/tmux/tmux.h
      type: void
    - item_type: typedef
      name: (*tty_ctx_set_client_cb)(struct tty_ctx *, struct client *)
      pos:
        line_end: 1729
        line_start: 1729
        source_file: /src/tmux/tmux.h
      type: int
    - item_type: typedef
      name: (*args_parse_cb)(struct args *, u_int, char **)
      pos:
        line_end: 1840
        line_start: 1840
        source_file: /src/tmux/tmux.h
      type: args_parse_type
    - item_type: typedef
      name: (*cmdq_cb) (struct cmdq_item *, void *)
      pos:
        line_end: 1921
        line_start: 1921
        source_file: /src/tmux/tmux.h
      type: cmd_retval
    - item_type: typedef
      name: "(*client_file_cb) (struct client *, const char *, int, int,\n    struct
        evbuffer *, void *)"
      pos:
        line_end: 1977
        line_start: 1976
        source_file: /src/tmux/tmux.h
      type: void
    - item_type: typedef
      name: (*prompt_input_cb)(struct client *, void *, const char *, int)
      pos:
        line_end: 2016
        line_start: 2016
        source_file: /src/tmux/tmux.h
      type: int
    - item_type: typedef
      name: (*prompt_free_cb)(void *)
      pos:
        line_end: 2017
        line_start: 2017
        source_file: /src/tmux/tmux.h
      type: void
    - item_type: typedef
      name: "*(*overlay_check_cb)(struct client*, void *,\n    u_int, u_int, u_int)"
      pos:
        line_end: 2019
        line_start: 2018
        source_file: /src/tmux/tmux.h
      type: visible_ranges
    - item_type: typedef
      name: "*(*overlay_mode_cb)(struct client *, void *, u_int *,\n    u_int *)"
      pos:
        line_end: 2021
        line_start: 2020
        source_file: /src/tmux/tmux.h
      type: screen
    - item_type: typedef
      name: "(*overlay_draw_cb)(struct client *, void *,\n    struct screen_redraw_ctx
        *)"
      pos:
        line_end: 2023
        line_start: 2022
        source_file: /src/tmux/tmux.h
      type: void
    - item_type: typedef
      name: (*overlay_key_cb)(struct client *, void *, struct key_event *)
      pos:
        line_end: 2024
        line_start: 2024
        source_file: /src/tmux/tmux.h
      type: int
    - item_type: typedef
      name: (*overlay_free_cb)(struct client *, void *)
      pos:
        line_end: 2025
        line_start: 2025
        source_file: /src/tmux/tmux.h
      type: void
    - item_type: typedef
      name: (*overlay_resize_cb)(struct client *, void *)
      pos:
        line_end: 2026
        line_start: 2026
        source_file: /src/tmux/tmux.h
      type: void
    - item_type: typedef
      name: '*(*format_cb)(struct format_tree *)'
      pos:
        line_end: 2489
        line_start: 2489
        source_file: /src/tmux/tmux.h
      type: void
    - item_type: typedef
      name: (*job_update_cb) (struct job *)
      pos:
        line_end: 2617
        line_start: 2617
        source_file: /src/tmux/tmux.h
      type: void
    - item_type: typedef
      name: (*job_complete_cb) (struct job *)
      pos:
        line_end: 2618
        line_start: 2618
        source_file: /src/tmux/tmux.h
      type: void
    - item_type: typedef
      name: (*job_free_cb) (void *)
      pos:
        line_end: 2619
        line_start: 2619
        source_file: /src/tmux/tmux.h
      type: void
    - item_type: typedef
      name: "(*mode_tree_build_cb)(void *, struct sort_criteria *,\n\t\t\t\t   uint64_t
        *, const char *)"
      pos:
        line_end: 3552
        line_start: 3551
        source_file: /src/tmux/tmux.h
      type: void
    - item_type: typedef
      name: "(*mode_tree_draw_cb)(void *, void *, struct screen_write_ctx *,\n\t     u_int,
        u_int)"
      pos:
        line_end: 3554
        line_start: 3553
        source_file: /src/tmux/tmux.h
      type: void
    - item_type: typedef
      name: (*mode_tree_search_cb)(void *, void *, const char *, int)
      pos:
        line_end: 3555
        line_start: 3555
        source_file: /src/tmux/tmux.h
      type: int
    - item_type: typedef
      name: (*mode_tree_menu_cb)(void *, struct client *, key_code)
      pos:
        line_end: 3556
        line_start: 3556
        source_file: /src/tmux/tmux.h
      type: void
    - item_type: typedef
      name: (*mode_tree_height_cb)(void *, u_int)
      pos:
        line_end: 3557
        line_start: 3557
        source_file: /src/tmux/tmux.h
      type: u_int
    - item_type: typedef
      name: (*mode_tree_key_cb)(void *, void *, u_int)
      pos:
        line_end: 3558
        line_start: 3558
        source_file: /src/tmux/tmux.h
      type: key_code
    - item_type: typedef
      name: (*mode_tree_swap_cb)(void *, void *, struct sort_criteria *)
      pos:
        line_end: 3559
        line_start: 3559
        source_file: /src/tmux/tmux.h
      type: int
    - item_type: typedef
      name: (*mode_tree_sort_cb)(struct sort_criteria *)
      pos:
        line_end: 3560
        line_start: 3560
        source_file: /src/tmux/tmux.h
      type: void
    - item_type: typedef
      name: (*mode_tree_each_cb)(void *, void *, struct client *, key_code)
      pos:
        line_end: 3561
        line_start: 3561
        source_file: /src/tmux/tmux.h
      type: void
    - item_type: typedef
      name: '** (*mode_tree_help_cb)(u_int *, const char**)'
      pos:
        line_end: 3562
        line_start: 3562
        source_file: /src/tmux/tmux.h
      type: char
    - item_type: typedef
      name: (*popup_close_cb)(int, void *)
      pos:
        line_end: 3797
        line_start: 3797
        source_file: /src/tmux/tmux.h
      type: void
    - item_type: typedef
      name: (*popup_finish_edit_cb)(char *, size_t, void *)
      pos:
        line_end: 3798
        line_start: 3798
        source_file: /src/tmux/tmux.h
      type: void
    union:
    - fields:
      - name: '*string'
        type: char
      - name: number
        type: long long
      - name: style
        type: struct style
      - name: array
        type: struct options_array
      - name: '*cmdlist'
        type: struct cmd_list
      item_type: union
      name: options_value
      pos:
        line_end: 2262
        line_start: 2256
        source_file: /src/tmux/tmux.h
- function_names:
  - regsub_copy
  - regsub_expand
  - regsub
  source_file: /src/tmux/regsub.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - window_customize_get_tag
  - window_customize_get_tree
  - window_customize_check_item
  - window_customize_get_key
  - window_customize_scope_text
  - window_customize_add_item
  - window_customize_free_item
  - window_customize_build_array
  - window_customize_build_option
  - window_customize_find_user_options
  - window_customize_build_options
  - window_customize_build_keys
  - window_customize_build
  - window_customize_draw_key
  - window_customize_draw_option
  - window_customize_draw
  - window_customize_menu
  - window_customize_height
  - window_customize_help
  - window_customize_init
  - window_customize_destroy
  - window_customize_free
  - window_customize_resize
  - window_customize_free_callback
  - window_customize_free_item_callback
  - window_customize_set_option_callback
  - window_customize_set_option
  - window_customize_unset_option
  - window_customize_reset_option
  - window_customize_set_command_callback
  - window_customize_set_note_callback
  - window_customize_set_key
  - window_customize_unset_key
  - window_customize_reset_key
  - window_customize_change_each
  - window_customize_change_current_callback
  - window_customize_change_tagged_callback
  - window_customize_key
  source_file: /src/tmux/window-customize.c
  types:
    enum:
    - enumerators:
      - name: WINDOW_CUSTOMIZE_NONE
      - name: WINDOW_CUSTOMIZE_KEY
      - name: WINDOW_CUSTOMIZE_GLOBAL_SESSION
      - name: WINDOW_CUSTOMIZE_SERVER
      - name: WINDOW_CUSTOMIZE_SESSION
      - name: WINDOW_CUSTOMIZE_GLOBAL_WINDOW
      - name: WINDOW_CUSTOMIZE_WINDOW
      - name: WINDOW_CUSTOMIZE_PANE
      item_type: enum
      name: window_customize_scope
      pos:
        line_end: 76
        line_start: 67
        source_file: /src/tmux/window-customize.c
    - enumerators:
      - name: WINDOW_CUSTOMIZE_UNSET
      - name: WINDOW_CUSTOMIZE_RESET
      item_type: enum
      name: window_customize_change
      pos:
        line_end: 81
        line_start: 78
        source_file: /src/tmux/window-customize.c
    preproc_defs:
    - item_type: preproc_def
      name: WINDOW_CUSTOMIZE_DEFAULT_FORMAT
      pos:
        line_end: 43
        line_start: 35
        source_file: /src/tmux/window-customize.c
      type_or_value: "\"#{?is_option,\" \\\n\t\t\"#{?option_is_global,,#[reverse](#{option_scope})#[default]
        }\" \\\n\t\t\"#[ignore]\" \\\n\t\t\"#{option_value}#{?option_unit, #{option_unit},}\"
        \\\n\t\",\" \\\n\t\t\"#{key}\" \\\n\t\"}\""
    structs:
    - fields:
      - name: '*data'
        type: struct window_customize_modedata
      - name: scope
        type: enum window_customize_scope
      - name: '*table'
        type: char
      - name: key
        type: key_code
      - name: '*oo'
        type: struct options
      - name: '*name'
        type: char
      - name: idx
        type: int
      item_type: struct
      name: window_customize_itemdata
      pos:
        line_end: 93
        line_start: 83
        source_file: /src/tmux/window-customize.c
    - fields:
      - name: '*wp'
        type: struct window_pane
      - name: dead
        type: int
      - name: references
        type: int
      - name: '*data'
        type: struct mode_tree_data
      - name: '*format'
        type: char
      - name: hide_global
        type: int
      - name: prompt_flags
        type: int
      - name: '**item_list'
        type: struct window_customize_itemdata
      - name: item_size
        type: u_int
      - name: fs
        type: struct cmd_find_state
      - name: change
        type: enum window_customize_change
      item_type: struct
      name: window_customize_modedata
      pos:
        line_end: 110
        line_start: 95
        source_file: /src/tmux/window-customize.c
    typedefs: []
    union: []
- function_names:
  - args_cmp
  - args_find
  - args_copy_value
  - args_type_to_string
  - args_value_as_string
  - args_create
  - args_parse_flag_argument
  - args_set
  - args_parse
  - args_copy_copy_value
  - args_copy
  - args_free_value
  - args_free_values
  - args_free
  - args_to_vector
  - args_from_vector
  - args_print_add
  - args_print_add_value
  - args_print
  - args_escape
  - args_has
  - args_set
  - args_get
  - args_first
  - args_next
  - args_count
  - args_values
  - args_value
  - args_string
  - args_make_commands_now
  - args_make_commands_prepare
  - args_make_commands
  - args_make_commands_free
  - args_make_commands_get_command
  - args_first_value
  - args_next_value
  - args_strtonum
  - args_strtonum_and_expand
  - args_percentage
  - args_string_percentage
  - args_percentage_and_expand
  - args_string_percentage_and_expand
  source_file: /src/tmux/arguments.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ARGS_ENTRY_OPTIONAL_VALUE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/tmux/arguments.c
      type_or_value: '0x1'
    structs:
    - fields:
      - name: flag
        type: u_char
      - name: values
        type: struct args_values
      - name: count
        type: u_int
      - name: flags
        type: int
      - name: (args_entry)
        type: RB_ENTRY
      item_type: struct
      name: args_entry
      pos:
        line_end: 44
        line_start: 35
        source_file: /src/tmux/arguments.c
    - fields:
      - name: tree
        type: struct args_tree
      - name: count
        type: u_int
      - name: '*values'
        type: struct args_value
      item_type: struct
      name: args
      pos:
        line_end: 51
        line_start: 47
        source_file: /src/tmux/arguments.c
    - fields:
      - name: '*cmdlist'
        type: struct cmd_list
      - name: '*cmd'
        type: char
      - name: pi
        type: struct cmd_parse_input
      item_type: struct
      name: args_command_state
      pos:
        line_end: 58
        line_start: 54
        source_file: /src/tmux/arguments.c
    typedefs: []
    union: []
- function_names:
  - cmd_pipe_pane_exec
  - cmd_pipe_pane_read_callback
  - cmd_pipe_pane_write_callback
  - cmd_pipe_pane_error_callback
  source_file: /src/tmux/cmd-pipe-pane.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - osdep_get_name
  - osdep_get_cwd
  - osdep_event_init
  source_file: /src/tmux/osdep-aix.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_show_prompt_history_exec
  source_file: /src/tmux/cmd-show-prompt-history.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_bind_key_args_parse
  - cmd_bind_key_exec
  source_file: /src/tmux/cmd-bind-key.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - log_event_cb
  - log_add_level
  - log_get_level
  - log_open
  - log_toggle
  - log_close
  - log_vwrite
  - log_debug
  - fatal
  - fatalx
  source_file: /src/tmux/log.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - grid_view_x
  - grid_view_y
  - grid_view_get_cell
  - grid_view_set_cell
  - grid_view_set_padding
  - grid_view_set_cells
  - grid_view_clear_history
  - grid_view_clear
  - grid_view_scroll_region_up
  - grid_view_scroll_region_down
  - grid_view_insert_lines
  - grid_view_insert_lines_region
  - grid_view_delete_lines
  - grid_view_delete_lines_region
  - grid_view_insert_cells
  - grid_view_delete_cells
  - grid_view_string_cells
  source_file: /src/tmux/grid-view.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_rename_session_exec
  source_file: /src/tmux/cmd-rename-session.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - name_time_callback
  - name_time_expired
  - check_window_name
  - default_window_name
  - format_window_name
  - parse_window_name
  source_file: /src/tmux/names.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - environ_cmp
  - environ_create
  - environ_free
  - RB_FOREACH_SAFE
  - environ_first
  - environ_next
  - environ_copy
  - RB_FOREACH
  - environ_find
  - environ_set
  - environ_clear
  - environ_put
  - environ_unset
  - environ_update
  - RB_FOREACH_SAFE
  - environ_push
  - RB_FOREACH
  - environ_log
  - RB_FOREACH
  - environ_for_session
  source_file: /src/tmux/environ.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_list_windows_exec
  source_file: /src/tmux/cmd-list-windows.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIST_WINDOWS_TEMPLATE
      pos:
        line_end: 35
        line_start: 29
        source_file: /src/tmux/cmd-list-windows.c
      type_or_value: "\"#{window_index}: #{window_name}#{window_raw_flags} \"\t\\\n\t\"(#{window_panes}
        panes) \"\t\t\t\t\\\n\t\"[#{window_width}x#{window_height}] \"\t\t\t\\\n\t\"[layout
        #{window_layout}] #{window_id}\"\t\t\\\n\t\"#{?window_active, (active),}\";"
    - item_type: preproc_def
      name: LIST_WINDOWS_WITH_SESSION_TEMPLATE
      pos:
        line_end: 40
        line_start: 35
        source_file: /src/tmux/cmd-list-windows.c
      type_or_value: "\"#{session_name}:\"\t\t\t\t\t\\\n\t\"#{window_index}: #{window_name}#{window_raw_flags}
        \"\t\\\n\t\"(#{window_panes} panes) \"\t\t\t\t\\\n\t\"[#{window_width}x#{window_height}]
        \""
    structs: []
    typedefs: []
    union: []
- function_names:
  - attributes_tostring
  - attributes_fromstring
  source_file: /src/tmux/attributes.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: attr
        type: int
      item_type: struct
      name: "table[] = {\n\t\t{ \"acs\", GRID_ATTR_CHARSET },\n\t\t{ \"bright\", GRID_ATTR_BRIGHT
        },\n\t\t{ \"bold\", GRID_ATTR_BRIGHT },\n\t\t{ \"dim\", GRID_ATTR_DIM },\n\t\t{
        \"underscore\", GRID_ATTR_UNDERSCORE },\n\t\t{ \"blink\", GRID_ATTR_BLINK
        },\n\t\t{ \"reverse\", GRID_ATTR_REVERSE },\n\t\t{ \"hidden\", GRID_ATTR_HIDDEN
        },\n\t\t{ \"italics\", GRID_ATTR_ITALICS },\n\t\t{ \"strikethrough\", GRID_ATTR_STRIKETHROUGH
        },\n\t\t{ \"double-underscore\", GRID_ATTR_UNDERSCORE_2 },\n\t\t{ \"curly-underscore\",
        GRID_ATTR_UNDERSCORE_3 },\n\t\t{ \"dotted-underscore\", GRID_ATTR_UNDERSCORE_4
        },\n\t\t{ \"dashed-underscore\", GRID_ATTR_UNDERSCORE_5 },\n\t\t{ \"overline\",
        GRID_ATTR_OVERLINE }\n\t}"
      pos:
        line_end: 65
        line_start: 62
        source_file: /src/tmux/attributes.c
    typedefs: []
    union: []
- function_names:
  - options_array_cmp
  - OPTIONS_IS_STRING
  - OPTIONS_IS_NUMBER
  - OPTIONS_IS_COMMAND
  - OPTIONS_IS_ARRAY
  - options_cmp
  - options_map_name
  - options_parent_table_entry
  - options_value_free
  - options_value_to_string
  - options_create
  - options_free
  - options_get_parent
  - options_set_parent
  - options_first
  - options_next
  - options_get_only
  - options_get
  - options_empty
  - options_default
  - options_default_to_string
  - options_add
  - options_remove
  - options_name
  - options_owner
  - options_table_entry
  - options_array_item
  - options_array_new
  - options_array_free
  - options_array_clear
  - options_array_get
  - options_array_set
  - options_array_assign
  - options_array_first
  - options_array_next
  - options_array_item_index
  - options_array_item_value
  - options_is_array
  - options_is_string
  - options_to_string
  - options_parse
  - options_parse_get
  - options_match
  - options_match_get
  - options_get_string
  - options_get_number
  - options_get_command
  - options_set_string
  - options_set_number
  - options_set_command
  - options_scope_from_name
  - options_scope_from_flags
  - options_string_to_style
  - options_from_string_check
  - options_from_string_flag
  - options_find_choice
  - options_from_string_choice
  - options_from_string
  - options_push_changes
  - options_remove_or_default
  source_file: /src/tmux/options.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: index
        type: u_int
      - name: value
        type: union options_value
      - name: (options_array_item)
        type: RB_ENTRY
      item_type: struct
      name: options_array_item
      pos:
        line_end: 37
        line_start: 33
        source_file: /src/tmux/options.c
    - fields:
      - name: '*owner'
        type: struct options
      - name: '*name'
        type: char
      - name: '*tableentry'
        type: struct options_table_entry
      - name: value
        type: union options_value
      - name: cached
        type: int
      - name: style
        type: struct style
      - name: (options_entry)
        type: RB_ENTRY
      item_type: struct
      name: options_entry
      pos:
        line_end: 60
        line_start: 49
        source_file: /src/tmux/options.c
    - fields:
      - name: '*parent'
        type: struct options
      item_type: struct
      name: options
      pos:
        line_end: 65
        line_start: 62
        source_file: /src/tmux/options.c
    typedefs: []
    union: []
- function_names:
  - cmd_refresh_client_update_subscription
  - cmd_refresh_client_control_client_size
  - cmd_refresh_client_update_offset
  - cmd_refresh_report
  - cmd_refresh_client_exec
  source_file: /src/tmux/cmd-refresh-client.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_send_keys_inject_key
  - cmd_send_keys_inject_string
  - cmd_send_keys_exec
  source_file: /src/tmux/cmd-send-keys.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_move_window_exec
  source_file: /src/tmux/cmd-move-window.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - layout_find_bottomright
  - layout_checksum
  - layout_dump
  - layout_append
  - layout_check
  - layout_parse
  - layout_assign
  - layout_construct_cell
  - layout_construct
  source_file: /src/tmux/layout-custom.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_attach_session
  - cmd_attach_session_exec
  source_file: /src/tmux/cmd-attach-session.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - window_buffer_add_item
  - window_buffer_free_item
  - window_buffer_build
  - window_buffer_draw
  - window_buffer_find
  - window_buffer_search
  - window_buffer_menu
  - window_buffer_get_key
  - window_buffer_sort
  - window_buffer_help
  - window_buffer_init
  - window_buffer_free
  - window_buffer_resize
  - window_buffer_update
  - window_buffer_do_delete
  - window_buffer_do_paste
  - window_buffer_finish_edit
  - window_buffer_edit_close_cb
  - window_buffer_start_edit
  - window_buffer_key
  source_file: /src/tmux/window-buffer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WINDOW_BUFFER_DEFAULT_COMMAND
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/tmux/window-buffer.c
      type_or_value: '"paste-buffer -p -b ''%%''"'
    - item_type: preproc_def
      name: WINDOW_BUFFER_DEFAULT_FORMAT
      pos:
        line_end: 43
        line_start: 41
        source_file: /src/tmux/window-buffer.c
      type_or_value: '"#{t/p:buffer_created}: #{buffer_sample}"'
    - item_type: preproc_def
      name: WINDOW_BUFFER_DEFAULT_KEY_FORMAT
      pos:
        line_end: 50
        line_start: 44
        source_file: /src/tmux/window-buffer.c
      type_or_value: "\"#{?#{e|<:#{line},10},\" \\\n\t\t\"#{line}\" \\\n\t\",#{e|<:#{line},36},\"\t\\\n\t\t\"M-#{a:#{e|+:97,#{e|-:#{line},10}}}\"
        \\\n\t\"}\""
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: order
        type: u_int
      - name: size
        type: size_t
      item_type: struct
      name: window_buffer_itemdata
      pos:
        line_end: 82
        line_start: 78
        source_file: /src/tmux/window-buffer.c
    - fields:
      - name: '*wp'
        type: struct window_pane
      - name: fs
        type: struct cmd_find_state
      - name: '*data'
        type: struct mode_tree_data
      - name: '*command'
        type: char
      - name: '*format'
        type: char
      - name: '*key_format'
        type: char
      - name: '**item_list'
        type: struct window_buffer_itemdata
      - name: item_size
        type: u_int
      item_type: struct
      name: window_buffer_modedata
      pos:
        line_end: 95
        line_start: 84
        source_file: /src/tmux/window-buffer.c
    - fields:
      - name: wp_id
        type: u_int
      - name: '*name'
        type: char
      - name: '*pb'
        type: struct paste_buffer
      item_type: struct
      name: window_buffer_editdata
      pos:
        line_end: 101
        line_start: 97
        source_file: /src/tmux/window-buffer.c
    typedefs: []
    union: []
- function_names:
  - cmd_swap_pane_exec
  source_file: /src/tmux/cmd-swap-pane.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - control_pane_cmp
  - control_sub_cmp
  - control_sub_pane_cmp
  - control_sub_window_cmp
  - control_free_sub
  - control_free_block
  - control_get_pane
  - control_add_pane
  - control_discard_pane
  - control_window_pane
  - control_reset_offsets
  - control_pane_offset
  - control_set_pane_on
  - control_set_pane_off
  - control_continue_pane
  - control_pause_pane
  - control_vwrite
  - control_write
  - control_check_age
  - control_write_output
  - control_error
  - control_error_callback
  - control_read_callback
  - control_all_done
  - control_flush_all_blocks
  - control_append_data
  - control_write_data
  - control_write_pending
  - control_write_callback
  - control_start
  - control_ready
  - control_discard
  - control_stop
  - control_check_subs_session
  - control_check_subs_pane
  - control_check_subs_all_panes_one
  - control_check_subs_window
  - control_check_subs_all_windows_one
  - control_check_subs_timer
  - control_add_sub
  - control_remove_sub
  source_file: /src/tmux/control.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CONTROL_PANE_OFF
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/tmux/control.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: CONTROL_PANE_PAUSED
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/tmux/control.c
      type_or_value: '0x2'
    - item_type: preproc_def
      name: CONTROL_BUFFER_LOW
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/tmux/control.c
      type_or_value: '512'
    - item_type: preproc_def
      name: CONTROL_BUFFER_HIGH
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/tmux/control.c
      type_or_value: '8192'
    - item_type: preproc_def
      name: CONTROL_WRITE_MINIMUM
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/tmux/control.c
      type_or_value: '32'
    - item_type: preproc_def
      name: CONTROL_MAXIMUM_AGE
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/tmux/control.c
      type_or_value: '300000'
    - item_type: preproc_def
      name: CONTROL_IGNORE_FLAGS
      pos:
        line_end: 143
        line_start: 140
        source_file: /src/tmux/control.c
      type_or_value: "(CLIENT_CONTROL_NOOUTPUT| \\\n\t CLIENT_UNATTACHEDFLAGS)"
    structs:
    - fields:
      - name: size
        type: size_t
      - name: '*line'
        type: char
      - name: t
        type: uint64_t
      - name: (control_block)
        type: TAILQ_ENTRY
      - name: (control_block)
        type: TAILQ_ENTRY
      item_type: struct
      name: control_block
      pos:
        line_end: 50
        line_start: 43
        source_file: /src/tmux/control.c
    - fields:
      - name: pane
        type: u_int
      - name: idx
        type: u_int
      - name: '*last'
        type: char
      - name: (control_sub_pane)
        type: RB_ENTRY
      item_type: struct
      name: control_sub_pane
      pos:
        line_end: 84
        line_start: 78
        source_file: /src/tmux/control.c
    - fields:
      - name: window
        type: u_int
      - name: idx
        type: u_int
      - name: '*last'
        type: char
      - name: (control_sub_window)
        type: RB_ENTRY
      item_type: struct
      name: control_sub_window
      pos:
        line_end: 94
        line_start: 88
        source_file: /src/tmux/control.c
    - fields:
      - name: '*name'
        type: char
      - name: '*format'
        type: char
      - name: type
        type: enum control_sub_type
      - name: id
        type: u_int
      - name: '*last'
        type: char
      - name: panes
        type: struct control_sub_panes
      - name: windows
        type: struct control_sub_windows
      - name: (control_sub)
        type: RB_ENTRY
      item_type: struct
      name: control_sub
      pos:
        line_end: 110
        line_start: 98
        source_file: /src/tmux/control.c
    typedefs: []
    union: []
- function_names:
  - cmd_list_buffers_exec
  source_file: /src/tmux/cmd-list-buffers.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIST_BUFFERS_TEMPLATE
      pos:
        line_end: 31
        line_start: 29
        source_file: /src/tmux/cmd-list-buffers.c
      type_or_value: '"#{buffer_name}: #{buffer_size} bytes: \"#{buffer_sample}\""'
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_display_message_each
  - cmd_display_message_exec
  source_file: /src/tmux/cmd-display-message.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DISPLAY_MESSAGE_TEMPLATE
      pos:
        line_end: 33
        line_start: 29
        source_file: /src/tmux/cmd-display-message.c
      type_or_value: "\"[#{session_name}] #{window_index}:\"\t\t\\\n\t\"#{window_name},
        current pane #{pane_index} \"\t\\\n\t\"- (%H:%M %d-%b-%y)\""
    structs: []
    typedefs: []
    union: []
- function_names:
  - mode_tree_is_lowercase
  - mode_tree_find_item
  - TAILQ_FOREACH
  - mode_tree_free_item
  - mode_tree_free_items
  - TAILQ_FOREACH_SAFE
  - mode_tree_check_selected
  - mode_tree_clear_lines
  - mode_tree_build_lines
  - TAILQ_FOREACH
  - TAILQ_FOREACH
  - mode_tree_clear_tagged
  - TAILQ_FOREACH
  - mode_tree_up
  - mode_tree_down
  - mode_tree_swap
  - mode_tree_get_current
  - mode_tree_get_current_name
  - mode_tree_expand_current
  - mode_tree_collapse_current
  - mode_tree_get_tag
  - mode_tree_expand
  - mode_tree_set_current
  - mode_tree_count_tagged
  - mode_tree_each_tagged
  - mode_tree_start
  - mode_tree_zoom
  - mode_tree_set_height
  - mode_tree_build
  - mode_tree_remove_ref
  - mode_tree_free
  - mode_tree_resize
  - mode_tree_add
  - mode_tree_draw_as_parent
  - mode_tree_no_tag
  - mode_tree_align
  - mode_tree_remove
  - mode_tree_draw
  - mode_tree_search_backward
  - mode_tree_search_forward
  - mode_tree_search_set
  - mode_tree_search_callback
  - mode_tree_search_free
  - mode_tree_filter_callback
  - mode_tree_filter_free
  - mode_tree_menu_callback
  - mode_tree_display_menu
  - mode_tree_display_help
  - mode_tree_key
  - mode_tree_run_command
  source_file: /src/tmux/mode-tree.c
  types:
    enum:
    - enumerators:
      - name: MODE_TREE_SEARCH_FORWARD
      - name: MODE_TREE_SEARCH_BACKWARD
      item_type: enum
      name: mode_tree_search_dir
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/tmux/mode-tree.c
    - enumerators:
      - name: MODE_TREE_PREVIEW_OFF
      - name: MODE_TREE_PREVIEW_NORMAL
      - name: MODE_TREE_PREVIEW_BIG
      item_type: enum
      name: mode_tree_preview
      pos:
        line_end: 36
        line_start: 32
        source_file: /src/tmux/mode-tree.c
    preproc_defs:
    - item_type: preproc_def
      name: MODE_TREE_HELP_DEFAULT_WIDTH
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/tmux/mode-tree.c
      type_or_value: '39'
    structs:
    - fields:
      - name: dead
        type: int
      - name: references
        type: u_int
      - name: zoomed
        type: int
      - name: '*wp'
        type: struct window_pane
      - name: '*modedata'
        type: void
      - name: '*menu'
        type: struct menu_item
      - name: sort_crit
        type: struct sort_criteria
      - name: buildcb
        type: mode_tree_build_cb
      - name: drawcb
        type: mode_tree_draw_cb
      - name: searchcb
        type: mode_tree_search_cb
      - name: menucb
        type: mode_tree_menu_cb
      - name: heightcb
        type: mode_tree_height_cb
      - name: keycb
        type: mode_tree_key_cb
      - name: swapcb
        type: mode_tree_swap_cb
      - name: sortcb
        type: mode_tree_sort_cb
      - name: helpcb
        type: mode_tree_help_cb
      - name: children
        type: struct mode_tree_list
      - name: saved
        type: struct mode_tree_list
      - name: '*line_list'
        type: struct mode_tree_line
      - name: line_size
        type: u_int
      - name: depth
        type: u_int
      - name: maxdepth
        type: u_int
      - name: width
        type: u_int
      - name: height
        type: u_int
      - name: offset
        type: u_int
      - name: current
        type: u_int
      - name: screen
        type: struct screen
      - name: preview
        type: int
      - name: '*search'
        type: char
      - name: '*filter'
        type: char
      - name: no_matches
        type: int
      - name: search_dir
        type: enum mode_tree_search_dir
      - name: search_icase
        type: int
      item_type: struct
      name: mode_tree_data
      pos:
        line_end: 85
        line_start: 41
        source_file: /src/tmux/mode-tree.c
    - fields:
      - name: '*parent'
        type: struct mode_tree_item
      - name: '*itemdata'
        type: void
      - name: line
        type: u_int
      - name: key
        type: key_code
      - name: '*keystr'
        type: char
      - name: keylen
        type: size_t
      - name: tag
        type: uint64_t
      - name: '*name'
        type: char
      - name: '*text'
        type: char
      - name: expanded
        type: int
      - name: tagged
        type: int
      - name: draw_as_parent
        type: int
      - name: no_tag
        type: int
      - name: align
        type: int
      - name: children
        type: struct mode_tree_list
      - name: (mode_tree_item)
        type: TAILQ_ENTRY
      item_type: struct
      name: mode_tree_item
      pos:
        line_end: 109
        line_start: 87
        source_file: /src/tmux/mode-tree.c
    - fields:
      - name: '*item'
        type: struct mode_tree_item
      - name: depth
        type: u_int
      - name: last
        type: int
      - name: flat
        type: int
      item_type: struct
      name: mode_tree_line
      pos:
        line_end: 116
        line_start: 111
        source_file: /src/tmux/mode-tree.c
    - fields:
      - name: '*data'
        type: struct mode_tree_data
      - name: '*c'
        type: struct client
      - name: line
        type: u_int
      item_type: struct
      name: mode_tree_menu
      pos:
        line_end: 122
        line_start: 118
        source_file: /src/tmux/mode-tree.c
    typedefs: []
    union: []
- function_names:
  - screen_free_titles
  - screen_init
  - screen_reinit
  - screen_reset_hyperlinks
  - screen_free
  - screen_reset_tabs
  - screen_set_default_cursor
  - screen_set_cursor_style
  - screen_set_cursor_colour
  - screen_set_title
  - screen_set_path
  - screen_push_title
  - screen_pop_title
  - screen_set_progress_bar
  - screen_resize_cursor
  - screen_resize
  - screen_resize_y
  - screen_set_selection
  - screen_clear_selection
  - screen_hide_selection
  - screen_check_selection
  - screen_select_cell
  - screen_reflow
  - screen_alternate_on
  - screen_alternate_off
  - screen_mode_to_string
  - screen_print
  source_file: /src/tmux/screen.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: hidden
        type: int
      - name: rectangle
        type: int
      - name: modekeys
        type: int
      - name: sx
        type: u_int
      - name: sy
        type: u_int
      - name: ex
        type: u_int
      - name: ey
        type: u_int
      - name: clipx
        type: u_int
      - name: cell
        type: struct grid_cell
      item_type: struct
      name: screen_sel
      pos:
        line_end: 41
        line_start: 27
        source_file: /src/tmux/screen.c
    - fields:
      - name: '*text'
        type: char
      - name: (screen_title_entry)
        type: TAILQ_ENTRY
      item_type: struct
      name: screen_title_entry
      pos:
        line_end: 48
        line_start: 44
        source_file: /src/tmux/screen.c
    typedefs: []
    union: []
- function_names:
  - cmd_confirm_before_args_parse
  - cmd_confirm_before_exec
  - cmd_confirm_before_callback
  - cmd_confirm_before_free
  source_file: /src/tmux/cmd-confirm-before.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*item'
        type: struct cmdq_item
      - name: '*cmdlist'
        type: struct cmd_list
      - name: confirm_key
        type: u_char
      - name: default_yes
        type: int
      item_type: struct
      name: cmd_confirm_before_data
      pos:
        line_end: 56
        line_start: 51
        source_file: /src/tmux/cmd-confirm-before.c
    typedefs: []
    union: []
- function_names:
  - window_client_add_item
  - window_client_free_item
  - window_client_build
  - window_client_draw
  - window_client_menu
  - window_client_get_key
  - window_client_sort
  - window_client_help
  - window_client_init
  - window_client_free
  - window_client_resize
  - window_client_update
  - window_client_do_detach
  - window_client_key
  source_file: /src/tmux/window-client.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WINDOW_CLIENT_DEFAULT_COMMAND
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/tmux/window-client.c
      type_or_value: '"detach-client -t ''%%''"'
    - item_type: preproc_def
      name: WINDOW_CLIENT_DEFAULT_FORMAT
      pos:
        line_end: 41
        line_start: 39
        source_file: /src/tmux/window-client.c
      type_or_value: '"#{t/p:client_activity}: session #{session_name}"'
    - item_type: preproc_def
      name: WINDOW_CLIENT_DEFAULT_KEY_FORMAT
      pos:
        line_end: 48
        line_start: 42
        source_file: /src/tmux/window-client.c
      type_or_value: "\"#{?#{e|<:#{line},10},\" \\\n\t\t\"#{line}\" \\\n\t\",#{e|<:#{line},36},\"\t\\\n\t\t\"M-#{a:#{e|+:97,#{e|-:#{line},10}}}\"
        \\\n\t\"}\""
    structs:
    - fields:
      - name: '*c'
        type: struct client
      item_type: struct
      name: window_client_itemdata
      pos:
        line_end: 75
        line_start: 73
        source_file: /src/tmux/window-client.c
    - fields:
      - name: '*wp'
        type: struct window_pane
      - name: '*data'
        type: struct mode_tree_data
      - name: '*format'
        type: char
      - name: '*key_format'
        type: char
      - name: '*command'
        type: char
      - name: '**item_list'
        type: struct window_client_itemdata
      - name: item_size
        type: u_int
      item_type: struct
      name: window_client_modedata
      pos:
        line_end: 87
        line_start: 77
        source_file: /src/tmux/window-client.c
    typedefs: []
    union: []
- function_names:
  - paste_cmp_names
  - paste_cmp_times
  - paste_buffer_name
  - paste_buffer_order
  - paste_buffer_created
  - paste_buffer_data
  - paste_walk
  - paste_is_empty
  - paste_get_top
  - paste_get_name
  - paste_free
  - paste_add
  - paste_rename
  - paste_set
  - paste_replace
  - paste_make_sample
  source_file: /src/tmux/paste.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tty_keys_add
  - tty_keys_add1
  - tty_keys_build
  - tty_keys_free
  - tty_keys_free1
  - tty_keys_find
  - tty_keys_find1
  - tty_keys_partial_paste_end
  - tty_keys_next1
  - tty_keys_winsz
  - tty_keys_next
  - tty_keys_callback
  - tty_keys_extended_key
  - tty_keys_mouse
  - tty_keys_clipboard
  - tty_keys_device_attributes
  - tty_keys_device_attributes2
  - tty_keys_extended_device_attributes
  - tty_keys_colours
  - tty_keys_palette
  source_file: /src/tmux/tty-keys.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ch
        type: char
      - name: key
        type: key_code
      - name: '*left'
        type: struct tty_key
      - name: '*right'
        type: struct tty_key
      - name: '*next'
        type: struct tty_key
      item_type: struct
      name: tty_key
      pos:
        line_end: 72
        line_start: 64
        source_file: /src/tmux/tty-keys.c
    - fields:
      - name: '*string'
        type: char
      - name: key
        type: key_code
      item_type: struct
      name: tty_default_key_raw
      pos:
        line_end: 78
        line_start: 75
        source_file: /src/tmux/tty-keys.c
    - fields:
      - name: '*template'
        type: char
      - name: key
        type: key_code
      item_type: struct
      name: tty_default_key_xterm
      pos:
        line_end: 226
        line_start: 223
        source_file: /src/tmux/tty-keys.c
    - fields:
      - name: code
        type: enum tty_code_code
      - name: key
        type: key_code
      item_type: struct
      name: tty_default_key_code
      pos:
        line_end: 280
        line_start: 277
        source_file: /src/tmux/tty-keys.c
    typedefs: []
    union: []
- function_names:
  - cmd_show_environment_escape
  - cmd_show_environment_print
  - cmd_show_environment_exec
  source_file: /src/tmux/cmd-show-environment.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cfg_client_done
  - cfg_done
  - start_cfg
  - load_cfg
  - load_cfg_from_buffer
  - cfg_add_cause
  - cfg_print_causes
  - cfg_show_causes
  source_file: /src/tmux/cfg.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - style_set_range_string
  - style_parse
  - style_tostring
  - style_add
  - style_apply
  - style_set
  - style_copy
  - style_set_scrollbar_style_from_option
  - style_ranges_init
  - style_ranges_free
  - TAILQ_FOREACH_SAFE
  - style_ranges_get_range
  - TAILQ_FOREACH
  source_file: /src/tmux/style.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STYLE_ATTR_MASK
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/tmux/style.c
      type_or_value: (~0)
    structs: []
    typedefs: []
    union: []
- function_names:
  - nitems
  - is_runnable
  - is_stopped
  - cmp_procs
  - osdep_get_name
  - osdep_get_cwd
  - osdep_event_init
  source_file: /src/tmux/osdep-dragonfly.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_unbind_key_exec
  source_file: /src/tmux/cmd-unbind-key.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - osdep_get_name
  - osdep_get_cwd
  - osdep_event_init
  source_file: /src/tmux/osdep-cygwin.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - osdep_get_name
  - osdep_get_cwd
  - osdep_event_init
  source_file: /src/tmux/osdep-darwin.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_kill_window_exec
  source_file: /src/tmux/cmd-kill-window.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_list_sessions_exec
  source_file: /src/tmux/cmd-list-sessions.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIST_SESSIONS_TEMPLATE
      pos:
        line_end: 36
        line_start: 30
        source_file: /src/tmux/cmd-list-sessions.c
      type_or_value: "\"#{session_name}: #{session_windows} windows \"\t\\\n\t\"(created
        #{t:session_created})\"\t\t\\\n\t\"#{?session_grouped, (group ,}\"\t\t\t\\\n\t\"#{session_group}#{?session_grouped,),}\"\t\\\n\t\"#{?session_attached,
        (attached),}\""
    structs: []
    typedefs: []
    union: []
- function_names:
  - tty_draw_line_clear
  - tty_draw_line
  source_file: /src/tmux/tty-draw.c
  types:
    enum:
    - enumerators:
      - name: TTY_DRAW_LINE_FIRST
      - name: TTY_DRAW_LINE_NEW2
      - name: TTY_DRAW_LINE_FLUSH
      - name: TTY_DRAW_LINE_EMPTY
      - name: TTY_DRAW_LINE_NEW1
      - name: TTY_DRAW_LINE_SAME
      - name: TTY_DRAW_LINE_DONE
      item_type: enum
      name: tty_draw_line_state
      pos:
        line_end: 32
        line_start: 24
        source_file: /src/tmux/tty-draw.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_set_buffer_exec
  source_file: /src/tmux/cmd-set-buffer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_display_panes_args_parse
  - cmd_display_panes_draw_pane
  - cmd_display_panes_draw
  - cmd_display_panes_free
  - cmd_display_panes_key
  - cmd_display_panes_exec
  source_file: /src/tmux/cmd-display-panes.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*item'
        type: struct cmdq_item
      - name: '*state'
        type: struct args_command_state
      item_type: struct
      name: cmd_display_panes_data
      pos:
        line_end: 48
        line_start: 45
        source_file: /src/tmux/cmd-display-panes.c
    typedefs: []
    union: []
- function_names:
  - cmd_new_session_exec
  source_file: /src/tmux/cmd-new-session.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NEW_SESSION_TEMPLATE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/tmux/cmd-new-session.c
      type_or_value: '"#{session_name}:"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_respawn_window_exec
  source_file: /src/tmux/cmd-respawn-window.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - status_prompt_find_history_file
  - status_prompt_add_typed_history
  - status_prompt_load_history
  - status_prompt_save_history
  - status_timer_callback
  - status_timer_start
  - status_timer_start_all
  - status_update_cache
  - status_at_line
  - status_line_size
  - status_prompt_line_at
  - status_get_range
  - status_push_screen
  - status_pop_screen
  - status_init
  - status_free
  - status_redraw
  - status_message_set
  - status_message_clear
  - status_message_callback
  - status_prompt_area
  - status_prompt_escape
  - status_message_redraw
  - status_prompt_accept
  - status_prompt_set
  - status_prompt_clear
  - status_prompt_update
  - status_prompt_redraw_character
  - status_prompt_redraw_quote
  - status_prompt_redraw
  - status_prompt_in_list
  - status_prompt_space
  - status_prompt_keypad_key
  - status_prompt_translate_key
  - status_prompt_paste
  - status_prompt_replace_complete
  - status_prompt_forward_word
  - status_prompt_end_word
  - status_prompt_backward_word
  - status_prompt_key
  - status_prompt_up_history
  - status_prompt_down_history
  - status_prompt_add_history
  - status_prompt_add_list
  - status_prompt_complete_list
  - status_prompt_complete_prefix
  - status_prompt_menu_callback
  - status_prompt_complete_list_menu
  - status_prompt_complete_window_menu
  - status_prompt_complete_sort
  - status_prompt_complete_session
  - status_prompt_complete
  - status_prompt_type
  - status_prompt_type_string
  source_file: /src/tmux/status.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*c'
        type: struct client
      - name: start
        type: u_int
      - name: size
        type: u_int
      - name: '**list'
        type: char
      - name: flag
        type: char
      item_type: struct
      name: status_prompt_menu
      pos:
        line_end: 49
        line_start: 43
        source_file: /src/tmux/status.c
    typedefs: []
    union: []
- function_names:
  - screen_redraw_border_set
  - screen_redraw_two_panes
  - screen_redraw_pane_border
  - screen_redraw_cell_border
  - screen_redraw_type_of_cell
  - screen_redraw_check_cell
  - screen_redraw_check_is
  - screen_redraw_make_pane_status
  - screen_redraw_draw_pane_status
  - screen_redraw_update
  - screen_redraw_set_context
  - screen_redraw_screen
  - screen_redraw_pane
  - screen_redraw_draw_borders_style
  - screen_redraw_draw_border_arrows
  - screen_redraw_draw_borders_cell
  - screen_redraw_draw_borders
  - screen_redraw_draw_panes
  - screen_redraw_draw_status
  - screen_redraw_is_visible
  - screen_redraw_get_visible_ranges
  - screen_redraw_draw_pane
  - screen_redraw_draw_pane_scrollbars
  - screen_redraw_draw_pane_scrollbar
  - screen_redraw_draw_scrollbar
  source_file: /src/tmux/screen-redraw.c
  types:
    enum:
    - enumerators:
      - name: SCREEN_REDRAW_OUTSIDE
      - name: SCREEN_REDRAW_BORDER_LEFT
      - name: SCREEN_REDRAW_BORDER_RIGHT
      - name: SCREEN_REDRAW_BORDER_TOP
      - name: SCREEN_REDRAW_INSIDE
      - name: SCREEN_REDRAW_BORDER_BOTTOM
      item_type: enum
      name: screen_redraw_border_type
      pos:
        line_end: 49
        line_start: 42
        source_file: /src/tmux/screen-redraw.c
    preproc_defs:
    - item_type: preproc_def
      name: START_ISOLATE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/tmux/screen-redraw.c
      type_or_value: '"\342\201\246"'
    - item_type: preproc_def
      name: END_ISOLATE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/tmux/screen-redraw.c
      type_or_value: '"\342\201\251"'
    - item_type: preproc_def
      name: BORDER_MARKERS
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/tmux/screen-redraw.c
      type_or_value: '"  +,.-"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - server_client_window_cmp
  - server_client_how_many
  - server_client_overlay_timer
  - server_client_set_overlay
  - server_client_clear_overlay
  - server_client_ranges_is_empty
  - server_client_ensure_ranges
  - server_client_overlay_range
  - server_client_check_nested
  - server_client_set_key_table
  - server_client_key_table_activity_diff
  - server_client_get_key_table
  - server_client_is_default_key_table
  - server_client_create
  - server_client_open
  - server_client_attached_lost
  - server_client_set_session
  - server_client_lost
  - server_client_unref
  - server_client_free
  - server_client_suspend
  - server_client_detach
  - server_client_exec
  - server_client_check_mouse_in_pane
  - server_client_check_mouse
  - server_client_is_bracket_paste
  - server_client_is_assume_paste
  - server_client_update_latest
  - server_client_repeat_time
  - server_client_key_callback
  - server_client_handle_key
  - server_client_loop
  - server_client_check_window_resize
  - server_client_resize_timer
  - server_client_check_pane_resize
  - server_client_check_pane_buffer
  - server_client_reset_state
  - server_client_repeat_timer
  - server_client_click_timer
  - server_client_check_exit
  - server_client_redraw_timer
  - server_client_check_modes
  - server_client_check_redraw
  - server_client_set_title
  - server_client_set_path
  - server_client_set_progress_bar
  - server_client_dispatch
  - server_client_read_only
  - server_client_default_command
  - server_client_command_done
  - server_client_dispatch_command
  - server_client_dispatch_identify
  - server_client_dispatch_shell
  - server_client_get_cwd
  - server_client_control_flags
  - server_client_set_flags
  - server_client_get_flags
  - server_client_get_client_window
  - server_client_add_client_window
  - server_client_get_pane
  - server_client_set_pane
  - server_client_remove_pane
  - server_client_print
  - server_client_report_theme
  source_file: /src/tmux/server-client.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_list_clients_exec
  source_file: /src/tmux/cmd-list-clients.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIST_CLIENTS_TEMPLATE
      pos:
        line_end: 36
        line_start: 30
        source_file: /src/tmux/cmd-list-clients.c
      type_or_value: "\"#{client_name}: #{session_name} \"\t\t\t\t\\\n\t\"[#{client_width}x#{client_height}
        #{client_termname}] \"\t\\\n\t\"#{?#{!=:#{client_uid},#{uid}},\"\t\t\t\t\\\n\t\"[user
        #{?client_user,#{client_user},#{client_uid},}] ,}\"\t\\\n\t\"#{?client_flags,(,}#{client_flags}#{?client_flags,),}\""
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_display_menu_args_parse
  - cmd_display_menu_get_pos
  - TAILQ_FOREACH
  - cmd_display_menu_exec
  - cmd_display_popup_exec
  source_file: /src/tmux/cmd-display-menu.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_paste_buffer_paste
  - cmd_paste_buffer_exec
  source_file: /src/tmux/cmd-paste-buffer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - utf8_width_cache_cmp
  - utf8_data_cmp
  - utf8_index_cmp
  - UTF8_GET_SIZE
  - UTF8_GET_WIDTH
  - UTF8_SET_SIZE
  - UTF8_SET_WIDTH
  - utf8_item_by_data
  - utf8_item_by_index
  - utf8_find_in_width_cache
  - utf8_insert_width_cache
  - utf8_update_width_cache
  - utf8_put_item
  - utf8_from_data
  - utf8_to_data
  - utf8_build_one
  - utf8_set
  - utf8_copy
  - utf8_width
  - utf8_fromwc
  - utf8_open
  - utf8_append
  - utf8_strvis
  - utf8_stravis
  - utf8_stravisx
  - utf8_isvalid
  - utf8_sanitize
  - utf8_strlen
  - utf8_strwidth
  - utf8_fromcstr
  - utf8_tocstr
  - utf8_cstrwidth
  - utf8_padcstr
  - utf8_rpadcstr
  - utf8_cstrhas
  source_file: /src/tmux/utf8.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: wc
        type: wchar_t
      - name: width
        type: u_int
      - name: allocated
        type: int
      - name: (utf8_width_item)
        type: RB_ENTRY
      item_type: struct
      name: utf8_width_item
      pos:
        line_end: 35
        line_start: 29
        source_file: /src/tmux/utf8.c
    - fields:
      - name: (utf8_item)
        type: RB_ENTRY
      - name: index
        type: u_int
      - name: (utf8_item)
        type: RB_ENTRY
      - name: data[UTF8_SIZE]
        type: char
      - name: size
        type: u_char
      item_type: struct
      name: utf8_item
      pos:
        line_end: 224
        line_start: 217
        source_file: /src/tmux/utf8.c
    typedefs: []
    union: []
- function_names:
  - cmd_resize_window_exec
  source_file: /src/tmux/cmd-resize-window.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - notify_insert_one_hook
  - notify_insert_hook
  - notify_callback
  - notify_add
  - notify_hook
  - notify_client
  - notify_session
  - notify_winlink
  - notify_session_window
  - notify_window
  - notify_pane
  - notify_paste_buffer
  source_file: /src/tmux/notify.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: fs
        type: struct cmd_find_state
      - name: '*formats'
        type: struct format_tree
      - name: '*client'
        type: struct client
      - name: '*session'
        type: struct session
      - name: '*window'
        type: struct window
      - name: pane
        type: int
      - name: '*pbname'
        type: char
      item_type: struct
      name: notify_entry
      pos:
        line_end: 35
        line_start: 25
        source_file: /src/tmux/notify.c
    typedefs: []
    union: []
- function_names:
  - format_job_cmp
  - format_entry_cmp
  - format_logging
  - format_log1
  - format_log
  - format_copy_state
  - format_job_update
  - format_job_complete
  - format_job_get
  - format_job_tidy
  - RB_FOREACH_SAFE
  - format_strftime
  - format_tidy_jobs
  - format_lost_client
  - format_printf
  - format_cb_host
  - format_cb_host_short
  - format_cb_pid
  - format_cb_session_attached_list
  - format_cb_session_alert
  - format_cb_session_alerts
  - format_cb_session_stack
  - format_cb_window_stack_index
  - format_cb_window_linked_sessions_list
  - format_cb_window_active_sessions
  - format_cb_window_active_sessions_list
  - format_cb_window_active_clients
  - format_cb_window_active_clients_list
  - format_cb_window_layout
  - format_cb_window_visible_layout
  - format_cb_start_command
  - format_cb_start_path
  - format_cb_current_command
  - format_cb_current_path
  - format_cb_history_bytes
  - format_cb_history_all_bytes
  - format_cb_pane_tabs
  - format_cb_pane_fg
  - format_cb_pane_flags
  - format_cb_pane_floating_flag
  - format_cb_pane_bg
  - format_cb_session_group_list
  - format_cb_session_group_attached_list
  - format_cb_pane_in_mode
  - format_cb_pane_at_top
  - format_cb_pane_at_bottom
  - format_cb_cursor_character
  - format_cb_cursor_colour
  - format_cb_mouse_word
  - format_cb_mouse_hyperlink
  - format_cb_mouse_line
  - format_cb_mouse_status_line
  - format_cb_mouse_status_range
  - format_cb_alternate_on
  - format_cb_alternate_saved_x
  - format_cb_alternate_saved_y
  - format_cb_bracket_paste_flag
  - format_cb_buffer_name
  - format_cb_buffer_sample
  - format_cb_buffer_full
  - format_cb_buffer_size
  - format_cb_client_cell_height
  - format_cb_client_cell_width
  - format_cb_client_control_mode
  - format_cb_client_discarded
  - format_cb_client_flags
  - format_cb_client_height
  - format_cb_client_key_table
  - format_cb_client_last_session
  - format_cb_client_name
  - format_cb_client_pid
  - format_cb_client_prefix
  - format_cb_client_readonly
  - format_cb_client_session
  - format_cb_client_termfeatures
  - format_cb_client_termname
  - format_cb_client_termtype
  - format_cb_client_tty
  - format_cb_client_uid
  - format_cb_client_user
  - format_cb_client_utf8
  - format_cb_client_width
  - format_cb_client_written
  - format_cb_client_theme
  - format_cb_config_files
  - format_cb_cursor_flag
  - format_cb_cursor_shape
  - format_cb_cursor_very_visible
  - format_cb_cursor_x
  - format_cb_cursor_y
  - format_cb_cursor_blinking
  - format_cb_history_limit
  - format_cb_history_size
  - format_cb_insert_flag
  - format_cb_keypad_cursor_flag
  - format_cb_keypad_flag
  - format_cb_loop_last_flag
  - format_cb_mouse_all_flag
  - format_cb_mouse_any_flag
  - format_cb_mouse_button_flag
  - format_cb_mouse_pane
  - format_cb_mouse_sgr_flag
  - format_cb_mouse_standard_flag
  - format_cb_mouse_utf8_flag
  - format_cb_mouse_x
  - format_cb_mouse_y
  - format_cb_next_session_id
  - format_cb_origin_flag
  - format_cb_synchronized_output_flag
  - format_cb_pane_active
  - format_cb_pane_at_left
  - format_cb_pane_at_right
  - format_cb_pane_bottom
  - format_cb_pane_dead
  - format_cb_pane_dead_signal
  - format_cb_pane_dead_status
  - format_cb_pane_dead_time
  - format_cb_pane_format
  - format_cb_pane_height
  - format_cb_pane_id
  - format_cb_pane_index
  - format_cb_pane_input_off
  - format_cb_pane_unseen_changes
  - format_cb_pane_key_mode
  - format_cb_pane_last
  - format_cb_pane_left
  - format_cb_pane_marked
  - format_cb_pane_marked_set
  - format_cb_pane_mode
  - format_cb_pane_path
  - format_cb_pane_pid
  - format_cb_pane_pipe
  - format_cb_pane_pipe_pid
  - format_cb_pane_pb_progress
  - format_cb_pane_pb_state
  - format_cb_pane_right
  - format_cb_pane_search_string
  - format_cb_pane_synchronized
  - format_cb_pane_title
  - format_cb_pane_top
  - format_cb_pane_tty
  - format_cb_pane_width
  - format_cb_pane_zoomed_flag
  - format_cb_scroll_region_lower
  - format_cb_scroll_region_upper
  - format_cb_server_sessions
  - format_cb_session_active
  - format_cb_session_activity_flag
  - format_cb_session_bell_flag
  - format_cb_session_silence_flag
  - format_cb_session_attached
  - format_cb_session_format
  - format_cb_session_group
  - format_cb_session_group_attached
  - format_cb_session_group_many_attached
  - format_cb_session_group_size
  - format_cb_session_grouped
  - format_cb_session_id
  - format_cb_session_many_attached
  - format_cb_session_marked
  - format_cb_session_name
  - format_cb_session_path
  - format_cb_session_windows
  - format_cb_socket_path
  - format_cb_version
  - format_cb_sixel_support
  - format_cb_active_window_index
  - format_cb_last_window_index
  - format_cb_window_active
  - format_cb_window_activity_flag
  - format_cb_window_bell_flag
  - format_cb_window_bigger
  - format_cb_window_cell_height
  - format_cb_window_cell_width
  - format_cb_window_end_flag
  - format_cb_window_flags
  - format_cb_window_format
  - format_cb_window_height
  - format_cb_window_id
  - format_cb_window_index
  - format_cb_window_last_flag
  - format_cb_window_linked
  - format_cb_window_linked_sessions
  - format_cb_window_marked_flag
  - format_cb_window_name
  - format_cb_window_offset_x
  - format_cb_window_offset_y
  - format_cb_window_panes
  - format_cb_window_raw_flags
  - format_cb_window_silence_flag
  - format_cb_window_start_flag
  - format_cb_window_width
  - format_cb_window_zoomed_flag
  - format_cb_wrap_flag
  - format_cb_buffer_created
  - format_cb_client_activity
  - format_cb_client_created
  - format_cb_session_activity
  - format_cb_session_created
  - format_cb_session_last_attached
  - format_cb_start_time
  - format_cb_window_activity
  - format_cb_buffer_mode_format
  - format_cb_client_mode_format
  - format_cb_tree_mode_format
  - format_cb_uid
  - format_cb_user
  - format_table_compare
  - format_table_get
  - format_merge
  - format_get_pane
  - format_create_add_item
  - format_create
  - format_free
  - format_log_debug_cb
  - format_log_debug
  - format_each
  - format_add
  - format_add_tv
  - format_add_cb
  - format_quote_shell
  - format_quote_style
  - format_pretty_time
  - format_find
  - format_check_time
  - format_unescape
  - format_strip
  - format_skip1
  - format_skip
  - format_choose
  - format_true
  - format_is_end
  - format_add_modifier
  - format_free_modifiers
  - format_build_modifiers
  - format_match
  - format_sub
  - format_search
  - format_bool_op_1
  - format_bool_op_n
  - format_session_name
  - format_loop_sessions
  - format_window_name
  - format_add_window_neighbor
  - format_loop_windows
  - format_loop_panes
  - format_loop_clients
  - format_replace_expression
  - format_replace
  - format_expand1
  - format_expand_time
  - format_expand
  - format_single
  - format_single_from_state
  - format_single_from_target
  - format_create_defaults
  - format_create_from_state
  - format_create_from_target
  - format_defaults
  - format_defaults_session
  - format_defaults_client
  - format_defaults_window
  - format_defaults_winlink
  - format_defaults_pane
  - format_defaults_paste_buffer
  - format_is_word_separator
  - format_grid_word
  - format_grid_line
  - format_grid_hyperlink
  source_file: /src/tmux/format.c
  types:
    enum:
    - enumerators:
      - name: FORMAT_TYPE_UNKNOWN
      - name: FORMAT_TYPE_WINDOW
      - name: FORMAT_TYPE_PANE
      - name: FORMAT_TYPE_SESSION
      item_type: enum
      name: format_type
      pos:
        line_end: 144
        line_start: 139
        source_file: /src/tmux/format.c
    - enumerators:
      - name: FORMAT_TABLE_STRING
      - name: FORMAT_TABLE_TIME
      item_type: enum
      name: format_table_type
      pos:
        line_end: 3133
        line_start: 3130
        source_file: /src/tmux/format.c
    preproc_defs:
    - item_type: preproc_def
      name: FORMAT_MAX_WIDTH
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/tmux/format.c
      type_or_value: '10000'
    - item_type: preproc_def
      name: FORMAT_MAX_REPEAT
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/tmux/format.c
      type_or_value: '10000'
    - item_type: preproc_def
      name: FORMAT_MAX_PRECISION
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/tmux/format.c
      type_or_value: '100'
    - item_type: preproc_def
      name: FORMAT_TIMESTRING
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/tmux/format.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: FORMAT_BASENAME
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/tmux/format.c
      type_or_value: '0x2'
    - item_type: preproc_def
      name: FORMAT_DIRNAME
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/tmux/format.c
      type_or_value: '0x4'
    - item_type: preproc_def
      name: FORMAT_QUOTE_SHELL
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/tmux/format.c
      type_or_value: '0x8'
    - item_type: preproc_def
      name: FORMAT_LITERAL
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/tmux/format.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: FORMAT_EXPAND
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/tmux/format.c
      type_or_value: '0x20'
    - item_type: preproc_def
      name: FORMAT_EXPANDTIME
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/tmux/format.c
      type_or_value: '0x40'
    - item_type: preproc_def
      name: FORMAT_SESSIONS
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/tmux/format.c
      type_or_value: '0x80'
    - item_type: preproc_def
      name: FORMAT_WINDOWS
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/tmux/format.c
      type_or_value: '0x100'
    - item_type: preproc_def
      name: FORMAT_PANES
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/tmux/format.c
      type_or_value: '0x200'
    - item_type: preproc_def
      name: FORMAT_PRETTY
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/tmux/format.c
      type_or_value: '0x400'
    - item_type: preproc_def
      name: FORMAT_LENGTH
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/tmux/format.c
      type_or_value: '0x800'
    - item_type: preproc_def
      name: FORMAT_WIDTH
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/tmux/format.c
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: FORMAT_QUOTE_STYLE
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/tmux/format.c
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: FORMAT_WINDOW_NAME
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/tmux/format.c
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: FORMAT_SESSION_NAME
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/tmux/format.c
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: FORMAT_CHARACTER
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/tmux/format.c
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: FORMAT_COLOUR
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/tmux/format.c
      type_or_value: '0x20000'
    - item_type: preproc_def
      name: FORMAT_CLIENTS
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/tmux/format.c
      type_or_value: '0x40000'
    - item_type: preproc_def
      name: FORMAT_NOT
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/tmux/format.c
      type_or_value: '0x80000'
    - item_type: preproc_def
      name: FORMAT_NOT_NOT
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/tmux/format.c
      type_or_value: '0x100000'
    - item_type: preproc_def
      name: FORMAT_REPEAT
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/tmux/format.c
      type_or_value: '0x200000'
    - item_type: preproc_def
      name: FORMAT_LOOP_LIMIT
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/tmux/format.c
      type_or_value: '100'
    - item_type: preproc_def
      name: FORMAT_TIME_LIMIT
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/tmux/format.c
      type_or_value: '100'
    - item_type: preproc_def
      name: FORMAT_EXPAND_TIME
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/tmux/format.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: FORMAT_EXPAND_NOJOBS
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/tmux/format.c
      type_or_value: '0x2'
    structs:
    - fields:
      - name: '*client'
        type: struct client
      - name: tag
        type: u_int
      - name: '*cmd'
        type: char
      - name: '*expanded'
        type: char
      - name: last
        type: time_t
      - name: '*out'
        type: char
      - name: updated
        type: int
      - name: '*job'
        type: struct job
      - name: status
        type: int
      - name: (format_job)
        type: RB_ENTRY
      item_type: struct
      name: format_job
      pos:
        line_end: 68
        line_start: 54
        source_file: /src/tmux/format.c
    - fields:
      - name: '*key'
        type: char
      - name: '*value'
        type: char
      - name: time
        type: time_t
      - name: cb
        type: format_cb
      - name: (format_entry)
        type: RB_ENTRY
      item_type: struct
      name: format_entry
      pos:
        line_end: 136
        line_start: 130
        source_file: /src/tmux/format.c
    - fields:
      - name: type
        type: enum format_type
      - name: '*c'
        type: struct client
      - name: '*s'
        type: struct session
      - name: '*wl'
        type: struct winlink
      - name: '*w'
        type: struct window
      - name: '*wp'
        type: struct window_pane
      - name: '*pb'
        type: struct paste_buffer
      - name: '*item'
        type: struct cmdq_item
      - name: '*client'
        type: struct client
      - name: flags
        type: int
      - name: tag
        type: u_int
      - name: m
        type: struct mouse_event
      item_type: struct
      name: format_tree
      pos:
        line_end: 166
        line_start: 148
        source_file: /src/tmux/format.c
    - fields:
      - name: '*ft'
        type: struct format_tree
      - name: loop
        type: u_int
      - name: start_time
        type: uint64_t
      - name: flags
        type: int
      - name: time
        type: time_t
      - name: tm
        type: struct tm
      item_type: struct
      name: format_expand_state
      pos:
        line_end: 179
        line_start: 171
        source_file: /src/tmux/format.c
    - fields:
      - name: modifier[3]
        type: char
      - name: size
        type: u_int
      - name: '**argv'
        type: char
      - name: argc
        type: int
      item_type: struct
      name: format_modifier
      pos:
        line_end: 188
        line_start: 182
        source_file: /src/tmux/format.c
    - fields:
      - name: '*key'
        type: char
      - name: type
        type: enum format_table_type
      - name: cb
        type: format_cb
      item_type: struct
      name: format_table_entry
      pos:
        line_end: 3140
        line_start: 3136
        source_file: /src/tmux/format.c
    typedefs: []
    union: []
- function_names:
  - nitems
  - is_runnable
  - is_stopped
  - cmp_procs
  - osdep_get_name
  - osdep_get_cwd
  - osdep_event_init
  source_file: /src/tmux/osdep-openbsd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_load_buffer_done
  - cmd_load_buffer_exec
  source_file: /src/tmux/cmd-load-buffer.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*client'
        type: struct client
      - name: '*item'
        type: struct cmdq_item
      - name: '*name'
        type: char
      item_type: struct
      name: cmd_load_buffer_data
      pos:
        line_end: 50
        line_start: 46
        source_file: /src/tmux/cmd-load-buffer.c
    typedefs: []
    union: []
- function_names:
  - cmd_select_layout_exec
  source_file: /src/tmux/cmd-select-layout.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/tmux/tmux-protocol.h
  types:
    enum:
    - enumerators:
      - name: MSG_IDENTIFY_TTYNAME
      - name: MSG_IDENTIFY_TERM
      - name: MSG_IDENTIFY_CWD
      - name: MSG_IDENTIFY_TERMINFO
      - name: MSG_EXIT
      - name: MSG_READY
      - name: MSG_OLDSTDERR
      - name: MSG_WAKEUP
      - name: MSG_READ
      - name: MSG_WRITE_READY
      - name: MSG_VERSION
        value: '12'
      - name: MSG_IDENTIFY_ENVIRON
      - name: MSG_COMMAND
        value: '200'
      - name: MSG_EXITED
      - name: MSG_IDENTIFY_FEATURES
      - name: MSG_RESIZE
      - name: MSG_OLDSTDIN
      - name: MSG_SUSPEND
      - name: MSG_EXEC
      - name: MSG_READ_DONE
      - name: MSG_WRITE
      - name: MSG_READ_CANCEL
      - name: MSG_IDENTIFY_OLDCWD
      - name: MSG_IDENTIFY_DONE
      - name: MSG_IDENTIFY_STDOUT
      - name: MSG_DETACH
      - name: MSG_EXITING
      - name: MSG_SHELL
      - name: MSG_FLAGS
      - name: MSG_WRITE_OPEN
      - name: MSG_WRITE_CLOSE
      - name: MSG_IDENTIFY_FLAGS
        value: '100'
      - name: MSG_IDENTIFY_STDIN
      - name: MSG_IDENTIFY_CLIENTPID
      - name: MSG_IDENTIFY_LONGFLAGS
      - name: MSG_DETACHKILL
      - name: MSG_LOCK
      - name: MSG_SHUTDOWN
      - name: MSG_OLDSTDOUT
      - name: MSG_UNLOCK
      - name: MSG_READ_OPEN
        value: '300'
      item_type: enum
      name: msgtype
      pos:
        line_end: 70
        line_start: 25
        source_file: /src/tmux/tmux-protocol.h
    preproc_defs:
    - item_type: preproc_def
      name: PROTOCOL_VERSION
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/tmux/tmux-protocol.h
      type_or_value: '8'
    structs:
    - fields:
      - name: argc
        type: int
      item_type: struct
      name: msg_command
      pos:
        line_end: 79
        line_start: 77
        source_file: /src/tmux/tmux-protocol.h
    - fields:
      - name: stream
        type: int
      - name: fd
        type: int
      item_type: struct
      name: msg_read_open
      pos:
        line_end: 84
        line_start: 81
        source_file: /src/tmux/tmux-protocol.h
    - fields:
      - name: stream
        type: int
      item_type: struct
      name: msg_read_data
      pos:
        line_end: 88
        line_start: 86
        source_file: /src/tmux/tmux-protocol.h
    - fields:
      - name: stream
        type: int
      - name: error
        type: int
      item_type: struct
      name: msg_read_done
      pos:
        line_end: 93
        line_start: 90
        source_file: /src/tmux/tmux-protocol.h
    - fields:
      - name: stream
        type: int
      item_type: struct
      name: msg_read_cancel
      pos:
        line_end: 97
        line_start: 95
        source_file: /src/tmux/tmux-protocol.h
    - fields:
      - name: stream
        type: int
      - name: fd
        type: int
      - name: flags
        type: int
      item_type: struct
      name: msg_write_open
      pos:
        line_end: 103
        line_start: 99
        source_file: /src/tmux/tmux-protocol.h
    - fields:
      - name: stream
        type: int
      item_type: struct
      name: msg_write_data
      pos:
        line_end: 107
        line_start: 105
        source_file: /src/tmux/tmux-protocol.h
    - fields:
      - name: stream
        type: int
      - name: error
        type: int
      item_type: struct
      name: msg_write_ready
      pos:
        line_end: 112
        line_start: 109
        source_file: /src/tmux/tmux-protocol.h
    - fields:
      - name: stream
        type: int
      item_type: struct
      name: msg_write_close
      pos:
        line_end: 116
        line_start: 114
        source_file: /src/tmux/tmux-protocol.h
    typedefs: []
    union: []
- function_names:
  - colour_dist_sq
  - colour_to_6cube
  - colour_find_rgb
  - colour_join_rgb
  - colour_split_rgb
  - colour_force_rgb
  - colour_tostring
  - colour_totheme
  - colour_fromstring
  - colour_256toRGB
  - colour_256to16
  - colour_byname
  - colour_parseX11
  - colour_palette_init
  - colour_palette_clear
  - colour_palette_free
  - colour_palette_get
  - colour_palette_set
  - colour_palette_from_option
  source_file: /src/tmux/colour.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: c
        type: int
      item_type: struct
      name: "colours[] = {\n\t\t{ \"AliceBlue\", 0xf0f8ff },\n\t\t{ \"AntiqueWhite\",
        0xfaebd7 },\n\t\t{ \"AntiqueWhite1\", 0xffefdb },\n\t\t{ \"AntiqueWhite2\",
        0xeedfcc },\n\t\t{ \"AntiqueWhite3\", 0xcdc0b0 },\n\t\t{ \"AntiqueWhite4\",
        0x8b8378 },\n\t\t{ \"BlanchedAlmond\", 0xffebcd },\n\t\t{ \"BlueViolet\",
        0x8a2be2 },\n\t\t{ \"CadetBlue\", 0x5f9ea0 },\n\t\t{ \"CadetBlue1\", 0x98f5ff
        },\n\t\t{ \"CadetBlue2\", 0x8ee5ee },\n\t\t{ \"CadetBlue3\", 0x7ac5cd },\n\t\t{
        \"CadetBlue4\", 0x53868b },\n\t\t{ \"CornflowerBlue\", 0x6495ed },\n\t\t{
        \"DarkBlue\", 0x00008b },\n\t\t{ \"DarkCyan\", 0x008b8b },\n\t\t{ \"DarkGoldenrod\",
        0xb8860b },\n\t\t{ \"DarkGoldenrod1\", 0xffb90f },\n\t\t{ \"DarkGoldenrod2\",
        0xeead0e },\n\t\t{ \"DarkGoldenrod3\", 0xcd950c },\n\t\t{ \"DarkGoldenrod4\",
        0x8b6508 },\n\t\t{ \"DarkGray\", 0xa9a9a9 },\n\t\t{ \"DarkGreen\", 0x006400
        },\n\t\t{ \"DarkGrey\", 0xa9a9a9 },\n\t\t{ \"DarkKhaki\", 0xbdb76b },\n\t\t{
        \"DarkMagenta\", 0x8b008b },\n\t\t{ \"DarkOliveGreen\", 0x556b2f },\n\t\t{
        \"DarkOliveGreen1\", 0xcaff70 },\n\t\t{ \"DarkOliveGreen2\", 0xbcee68 },\n\t\t{
        \"DarkOliveGreen3\", 0xa2cd5a },\n\t\t{ \"DarkOliveGreen4\", 0x6e8b3d },\n\t\t{
        \"DarkOrange\", 0xff8c00 },\n\t\t{ \"DarkOrange1\", 0xff7f00 },\n\t\t{ \"DarkOrange2\",
        0xee7600 },\n\t\t{ \"DarkOrange3\", 0xcd6600 },\n\t\t{ \"DarkOrange4\", 0x8b4500
        },\n\t\t{ \"DarkOrchid\", 0x9932cc },\n\t\t{ \"DarkOrchid1\", 0xbf3eff },\n\t\t{
        \"DarkOrchid2\", 0xb23aee },\n\t\t{ \"DarkOrchid3\", 0x9a32cd },\n\t\t{ \"DarkOrchid4\",
        0x68228b },\n\t\t{ \"DarkRed\", 0x8b0000 },\n\t\t{ \"DarkSalmon\", 0xe9967a
        },\n\t\t{ \"DarkSeaGreen\", 0x8fbc8f },\n\t\t{ \"DarkSeaGreen1\", 0xc1ffc1
        },\n\t\t{ \"DarkSeaGreen2\", 0xb4eeb4 },\n\t\t{ \"DarkSeaGreen3\", 0x9bcd9b
        },\n\t\t{ \"DarkSeaGreen4\", 0x698b69 },\n\t\t{ \"DarkSlateBlue\", 0x483d8b
        },\n\t\t{ \"DarkSlateGray\", 0x2f4f4f },\n\t\t{ \"DarkSlateGray1\", 0x97ffff
        },\n\t\t{ \"DarkSlateGray2\", 0x8deeee },\n\t\t{ \"DarkSlateGray3\", 0x79cdcd
        },\n\t\t{ \"DarkSlateGray4\", 0x528b8b },\n\t\t{ \"DarkSlateGrey\", 0x2f4f4f
        },\n\t\t{ \"DarkTurquoise\", 0x00ced1 },\n\t\t{ \"DarkViolet\", 0x9400d3 },\n\t\t{
        \"DeepPink\", 0xff1493 },\n\t\t{ \"DeepPink1\", 0xff1493 },\n\t\t{ \"DeepPink2\",
        0xee1289 },\n\t\t{ \"DeepPink3\", 0xcd1076 },\n\t\t{ \"DeepPink4\", 0x8b0a50
        },\n\t\t{ \"DeepSkyBlue\", 0x00bfff },\n\t\t{ \"DeepSkyBlue1\", 0x00bfff },\n\t\t{
        \"DeepSkyBlue2\", 0x00b2ee },\n\t\t{ \"DeepSkyBlue3\", 0x009acd },\n\t\t{
        \"DeepSkyBlue4\", 0x00688b },\n\t\t{ \"DimGray\", 0x696969 },\n\t\t{ \"DimGrey\",
        0x696969 },\n\t\t{ \"DodgerBlue\", 0x1e90ff },\n\t\t{ \"DodgerBlue1\", 0x1e90ff
        },\n\t\t{ \"DodgerBlue2\", 0x1c86ee },\n\t\t{ \"DodgerBlue3\", 0x1874cd },\n\t\t{
        \"DodgerBlue4\", 0x104e8b },\n\t\t{ \"FloralWhite\", 0xfffaf0 },\n\t\t{ \"ForestGreen\",
        0x228b22 },\n\t\t{ \"GhostWhite\", 0xf8f8ff },\n\t\t{ \"GreenYellow\", 0xadff2f
        },\n\t\t{ \"HotPink\", 0xff69b4 },\n\t\t{ \"HotPink1\", 0xff6eb4 },\n\t\t{
        \"HotPink2\", 0xee6aa7 },\n\t\t{ \"HotPink3\", 0xcd6090 },\n\t\t{ \"HotPink4\",
        0x8b3a62 },\n\t\t{ \"IndianRed\", 0xcd5c5c },\n\t\t{ \"IndianRed1\", 0xff6a6a
        },\n\t\t{ \"IndianRed2\", 0xee6363 },\n\t\t{ \"IndianRed3\", 0xcd5555 },\n\t\t{
        \"IndianRed4\", 0x8b3a3a },\n\t\t{ \"LavenderBlush\", 0xfff0f5 },\n\t\t{ \"LavenderBlush1\",
        0xfff0f5 },\n\t\t{ \"LavenderBlush2\", 0xeee0e5 },\n\t\t{ \"LavenderBlush3\",
        0xcdc1c5 },\n\t\t{ \"LavenderBlush4\", 0x8b8386 },\n\t\t{ \"LawnGreen\", 0x7cfc00
        },\n\t\t{ \"LemonChiffon\", 0xfffacd },\n\t\t{ \"LemonChiffon1\", 0xfffacd
        },\n\t\t{ \"LemonChiffon2\", 0xeee9bf },\n\t\t{ \"LemonChiffon3\", 0xcdc9a5
        },\n\t\t{ \"LemonChiffon4\", 0x8b8970 },\n\t\t{ \"LightBlue\", 0xadd8e6 },\n\t\t{
        \"LightBlue1\", 0xbfefff },\n\t\t{ \"LightBlue2\", 0xb2dfee },\n\t\t{ \"LightBlue3\",
        0x9ac0cd },\n\t\t{ \"LightBlue4\", 0x68838b },\n\t\t{ \"LightCoral\", 0xf08080
        },\n\t\t{ \"LightCyan\", 0xe0ffff },\n\t\t{ \"LightCyan1\", 0xe0ffff },\n\t\t{
        \"LightCyan2\", 0xd1eeee },\n\t\t{ \"LightCyan3\", 0xb4cdcd },\n\t\t{ \"LightCyan4\",
        0x7a8b8b },\n\t\t{ \"LightGoldenrod\", 0xeedd82 },\n\t\t{ \"LightGoldenrod1\",
        0xffec8b },\n\t\t{ \"LightGoldenrod2\", 0xeedc82 },\n\t\t{ \"LightGoldenrod3\",
        0xcdbe70 },\n\t\t{ \"LightGoldenrod4\", 0x8b814c },\n\t\t{ \"LightGoldenrodYellow\",
        0xfafad2 },\n\t\t{ \"LightGray\", 0xd3d3d3 },\n\t\t{ \"LightGreen\", 0x90ee90
        },\n\t\t{ \"LightGrey\", 0xd3d3d3 },\n\t\t{ \"LightPink\", 0xffb6c1 },\n\t\t{
        \"LightPink1\", 0xffaeb9 },\n\t\t{ \"LightPink2\", 0xeea2ad },\n\t\t{ \"LightPink3\",
        0xcd8c95 },\n\t\t{ \"LightPink4\", 0x8b5f65 },\n\t\t{ \"LightSalmon\", 0xffa07a
        },\n\t\t{ \"LightSalmon1\", 0xffa07a },\n\t\t{ \"LightSalmon2\", 0xee9572
        },\n\t\t{ \"LightSalmon3\", 0xcd8162 },\n\t\t{ \"LightSalmon4\", 0x8b5742
        },\n\t\t{ \"LightSeaGreen\", 0x20b2aa },\n\t\t{ \"LightSkyBlue\", 0x87cefa
        },\n\t\t{ \"LightSkyBlue1\", 0xb0e2ff },\n\t\t{ \"LightSkyBlue2\", 0xa4d3ee
        },\n\t\t{ \"LightSkyBlue3\", 0x8db6cd },\n\t\t{ \"LightSkyBlue4\", 0x607b8b
        },\n\t\t{ \"LightSlateBlue\", 0x8470ff },\n\t\t{ \"LightSlateGray\", 0x778899
        },\n\t\t{ \"LightSlateGrey\", 0x778899 },\n\t\t{ \"LightSteelBlue\", 0xb0c4de
        },\n\t\t{ \"LightSteelBlue1\", 0xcae1ff },\n\t\t{ \"LightSteelBlue2\", 0xbcd2ee
        },\n\t\t{ \"LightSteelBlue3\", 0xa2b5cd },\n\t\t{ \"LightSteelBlue4\", 0x6e7b8b
        },\n\t\t{ \"LightYellow\", 0xffffe0 },\n\t\t{ \"LightYellow1\", 0xffffe0 },\n\t\t{
        \"LightYellow2\", 0xeeeed1 },\n\t\t{ \"LightYellow3\", 0xcdcdb4 },\n\t\t{
        \"LightYellow4\", 0x8b8b7a },\n\t\t{ \"LimeGreen\", 0x32cd32 },\n\t\t{ \"MediumAquamarine\",
        0x66cdaa },\n\t\t{ \"MediumBlue\", 0x0000cd },\n\t\t{ \"MediumOrchid\", 0xba55d3
        },\n\t\t{ \"MediumOrchid1\", 0xe066ff },\n\t\t{ \"MediumOrchid2\", 0xd15fee
        },\n\t\t{ \"MediumOrchid3\", 0xb452cd },\n\t\t{ \"MediumOrchid4\", 0x7a378b
        },\n\t\t{ \"MediumPurple\", 0x9370db },\n\t\t{ \"MediumPurple1\", 0xab82ff
        },\n\t\t{ \"MediumPurple2\", 0x9f79ee },\n\t\t{ \"MediumPurple3\", 0x8968cd
        },\n\t\t{ \"MediumPurple4\", 0x5d478b },\n\t\t{ \"MediumSeaGreen\", 0x3cb371
        },\n\t\t{ \"MediumSlateBlue\", 0x7b68ee },\n\t\t{ \"MediumSpringGreen\", 0x00fa9a
        },\n\t\t{ \"MediumTurquoise\", 0x48d1cc },\n\t\t{ \"MediumVioletRed\", 0xc71585
        },\n\t\t{ \"MidnightBlue\", 0x191970 },\n\t\t{ \"MintCream\", 0xf5fffa },\n\t\t{
        \"MistyRose\", 0xffe4e1 },\n\t\t{ \"MistyRose1\", 0xffe4e1 },\n\t\t{ \"MistyRose2\",
        0xeed5d2 },\n\t\t{ \"MistyRose3\", 0xcdb7b5 },\n\t\t{ \"MistyRose4\", 0x8b7d7b
        },\n\t\t{ \"NavajoWhite\", 0xffdead },\n\t\t{ \"NavajoWhite1\", 0xffdead },\n\t\t{
        \"NavajoWhite2\", 0xeecfa1 },\n\t\t{ \"NavajoWhite3\", 0xcdb38b },\n\t\t{
        \"NavajoWhite4\", 0x8b795e },\n\t\t{ \"NavyBlue\", 0x000080 },\n\t\t{ \"OldLace\",
        0xfdf5e6 },\n\t\t{ \"OliveDrab\", 0x6b8e23 },\n\t\t{ \"OliveDrab1\", 0xc0ff3e
        },\n\t\t{ \"OliveDrab2\", 0xb3ee3a },\n\t\t{ \"OliveDrab3\", 0x9acd32 },\n\t\t{
        \"OliveDrab4\", 0x698b22 },\n\t\t{ \"OrangeRed\", 0xff4500 },\n\t\t{ \"OrangeRed1\",
        0xff4500 },\n\t\t{ \"OrangeRed2\", 0xee4000 },\n\t\t{ \"OrangeRed3\", 0xcd3700
        },\n\t\t{ \"OrangeRed4\", 0x8b2500 },\n\t\t{ \"PaleGoldenrod\", 0xeee8aa },\n\t\t{
        \"PaleGreen\", 0x98fb98 },\n\t\t{ \"PaleGreen1\", 0x9aff9a },\n\t\t{ \"PaleGreen2\",
        0x90ee90 },\n\t\t{ \"PaleGreen3\", 0x7ccd7c },\n\t\t{ \"PaleGreen4\", 0x548b54
        },\n\t\t{ \"PaleTurquoise\", 0xafeeee },\n\t\t{ \"PaleTurquoise1\", 0xbbffff
        },\n\t\t{ \"PaleTurquoise2\", 0xaeeeee },\n\t\t{ \"PaleTurquoise3\", 0x96cdcd
        },\n\t\t{ \"PaleTurquoise4\", 0x668b8b },\n\t\t{ \"PaleVioletRed\", 0xdb7093
        },\n\t\t{ \"PaleVioletRed1\", 0xff82ab },\n\t\t{ \"PaleVioletRed2\", 0xee799f
        },\n\t\t{ \"PaleVioletRed3\", 0xcd6889 },\n\t\t{ \"PaleVioletRed4\", 0x8b475d
        },\n\t\t{ \"PapayaWhip\", 0xffefd5 },\n\t\t{ \"PeachPuff\", 0xffdab9 },\n\t\t{
        \"PeachPuff1\", 0xffdab9 },\n\t\t{ \"PeachPuff2\", 0xeecbad },\n\t\t{ \"PeachPuff3\",
        0xcdaf95 },\n\t\t{ \"PeachPuff4\", 0x8b7765 },\n\t\t{ \"PowderBlue\", 0xb0e0e6
        },\n\t\t{ \"RebeccaPurple\", 0x663399 },\n\t\t{ \"RosyBrown\", 0xbc8f8f },\n\t\t{
        \"RosyBrown1\", 0xffc1c1 },\n\t\t{ \"RosyBrown2\", 0xeeb4b4 },\n\t\t{ \"RosyBrown3\",
        0xcd9b9b },\n\t\t{ \"RosyBrown4\", 0x8b6969 },\n\t\t{ \"RoyalBlue\", 0x4169e1
        },\n\t\t{ \"RoyalBlue1\", 0x4876ff },\n\t\t{ \"RoyalBlue2\", 0x436eee },\n\t\t{
        \"RoyalBlue3\", 0x3a5fcd },\n\t\t{ \"RoyalBlue4\", 0x27408b },\n\t\t{ \"SaddleBrown\",
        0x8b4513 },\n\t\t{ \"SandyBrown\", 0xf4a460 },\n\t\t{ \"SeaGreen\", 0x2e8b57
        },\n\t\t{ \"SeaGreen1\", 0x54ff9f },\n\t\t{ \"SeaGreen2\", 0x4eee94 },\n\t\t{
        \"SeaGreen3\", 0x43cd80 },\n\t\t{ \"SeaGreen4\", 0x2e8b57 },\n\t\t{ \"SkyBlue\",
        0x87ceeb },\n\t\t{ \"SkyBlue1\", 0x87ceff },\n\t\t{ \"SkyBlue2\", 0x7ec0ee
        },\n\t\t{ \"SkyBlue3\", 0x6ca6cd },\n\t\t{ \"SkyBlue4\", 0x4a708b },\n\t\t{
        \"SlateBlue\", 0x6a5acd },\n\t\t{ \"SlateBlue1\", 0x836fff },\n\t\t{ \"SlateBlue2\",
        0x7a67ee },\n\t\t{ \"SlateBlue3\", 0x6959cd },\n\t\t{ \"SlateBlue4\", 0x473c8b
        },\n\t\t{ \"SlateGray\", 0x708090 },\n\t\t{ \"SlateGray1\", 0xc6e2ff },\n\t\t{
        \"SlateGray2\", 0xb9d3ee },\n\t\t{ \"SlateGray3\", 0x9fb6cd },\n\t\t{ \"SlateGray4\",
        0x6c7b8b },\n\t\t{ \"SlateGrey\", 0x708090 },\n\t\t{ \"SpringGreen\", 0x00ff7f
        },\n\t\t{ \"SpringGreen1\", 0x00ff7f },\n\t\t{ \"SpringGreen2\", 0x00ee76
        },\n\t\t{ \"SpringGreen3\", 0x00cd66 },\n\t\t{ \"SpringGreen4\", 0x008b45
        },\n\t\t{ \"SteelBlue\", 0x4682b4 },\n\t\t{ \"SteelBlue1\", 0x63b8ff },\n\t\t{
        \"SteelBlue2\", 0x5cacee },\n\t\t{ \"SteelBlue3\", 0x4f94cd },\n\t\t{ \"SteelBlue4\",
        0x36648b },\n\t\t{ \"VioletRed\", 0xd02090 },\n\t\t{ \"VioletRed1\", 0xff3e96
        },\n\t\t{ \"VioletRed2\", 0xee3a8c },\n\t\t{ \"VioletRed3\", 0xcd3278 },\n\t\t{
        \"VioletRed4\", 0x8b2252 },\n\t\t{ \"WebGray\", 0x808080 },\n\t\t{ \"WebGreen\",
        0x008000 },\n\t\t{ \"WebGrey\", 0x808080 },\n\t\t{ \"WebMaroon\", 0x800000
        },\n\t\t{ \"WebPurple\", 0x800080 },\n\t\t{ \"WhiteSmoke\", 0xf5f5f5 },\n\t\t{
        \"X11Gray\", 0xbebebe },\n\t\t{ \"X11Green\", 0x00ff00 },\n\t\t{ \"X11Grey\",
        0xbebebe },\n\t\t{ \"X11Maroon\", 0xb03060 },\n\t\t{ \"X11Purple\", 0xa020f0
        },\n\t\t{ \"YellowGreen\", 0x9acd32 },\n\t\t{ \"alice blue\", 0xf0f8ff },\n\t\t{
        \"antique white\", 0xfaebd7 },\n\t\t{ \"aqua\", 0x00ffff },\n\t\t{ \"aquamarine\",
        0x7fffd4 },\n\t\t{ \"aquamarine1\", 0x7fffd4 },\n\t\t{ \"aquamarine2\", 0x76eec6
        },\n\t\t{ \"aquamarine3\", 0x66cdaa },\n\t\t{ \"aquamarine4\", 0x458b74 },\n\t\t{
        \"azure\", 0xf0ffff },\n\t\t{ \"azure1\", 0xf0ffff },\n\t\t{ \"azure2\", 0xe0eeee
        },\n\t\t{ \"azure3\", 0xc1cdcd },\n\t\t{ \"azure4\", 0x838b8b },\n\t\t{ \"beige\",
        0xf5f5dc },\n\t\t{ \"bisque\", 0xffe4c4 },\n\t\t{ \"bisque1\", 0xffe4c4 },\n\t\t{
        \"bisque2\", 0xeed5b7 },\n\t\t{ \"bisque3\", 0xcdb79e },\n\t\t{ \"bisque4\",
        0x8b7d6b },\n\t\t{ \"black\", 0x000000 },\n\t\t{ \"blanched almond\", 0xffebcd
        },\n\t\t{ \"blue violet\", 0x8a2be2 },\n\t\t{ \"blue\", 0x0000ff },\n\t\t{
        \"blue1\", 0x0000ff },\n\t\t{ \"blue2\", 0x0000ee },\n\t\t{ \"blue3\", 0x0000cd
        },\n\t\t{ \"blue4\", 0x00008b },\n\t\t{ \"brown\", 0xa52a2a },\n\t\t{ \"brown1\",
        0xff4040 },\n\t\t{ \"brown2\", 0xee3b3b },\n\t\t{ \"brown3\", 0xcd3333 },\n\t\t{
        \"brown4\", 0x8b2323 },\n\t\t{ \"burlywood\", 0xdeb887 },\n\t\t{ \"burlywood1\",
        0xffd39b },\n\t\t{ \"burlywood2\", 0xeec591 },\n\t\t{ \"burlywood3\", 0xcdaa7d
        },\n\t\t{ \"burlywood4\", 0x8b7355 },\n\t\t{ \"cadet blue\", 0x5f9ea0 },\n\t\t{
        \"chartreuse\", 0x7fff00 },\n\t\t{ \"chartreuse1\", 0x7fff00 },\n\t\t{ \"chartreuse2\",
        0x76ee00 },\n\t\t{ \"chartreuse3\", 0x66cd00 },\n\t\t{ \"chartreuse4\", 0x458b00
        },\n\t\t{ \"chocolate\", 0xd2691e },\n\t\t{ \"chocolate1\", 0xff7f24 },\n\t\t{
        \"chocolate2\", 0xee7621 },\n\t\t{ \"chocolate3\", 0xcd661d },\n\t\t{ \"chocolate4\",
        0x8b4513 },\n\t\t{ \"coral\", 0xff7f50 },\n\t\t{ \"coral1\", 0xff7256 },\n\t\t{
        \"coral2\", 0xee6a50 },\n\t\t{ \"coral3\", 0xcd5b45 },\n\t\t{ \"coral4\",
        0x8b3e2f },\n\t\t{ \"cornflower blue\", 0x6495ed },\n\t\t{ \"cornsilk\", 0xfff8dc
        },\n\t\t{ \"cornsilk1\", 0xfff8dc },\n\t\t{ \"cornsilk2\", 0xeee8cd },\n\t\t{
        \"cornsilk3\", 0xcdc8b1 },\n\t\t{ \"cornsilk4\", 0x8b8878 },\n\t\t{ \"crimson\",
        0xdc143c },\n\t\t{ \"cyan\", 0x00ffff },\n\t\t{ \"cyan1\", 0x00ffff },\n\t\t{
        \"cyan2\", 0x00eeee },\n\t\t{ \"cyan3\", 0x00cdcd },\n\t\t{ \"cyan4\", 0x008b8b
        },\n\t\t{ \"dark blue\", 0x00008b },\n\t\t{ \"dark cyan\", 0x008b8b },\n\t\t{
        \"dark goldenrod\", 0xb8860b },\n\t\t{ \"dark gray\", 0xa9a9a9 },\n\t\t{ \"dark
        green\", 0x006400 },\n\t\t{ \"dark grey\", 0xa9a9a9 },\n\t\t{ \"dark khaki\",
        0xbdb76b },\n\t\t{ \"dark magenta\", 0x8b008b },\n\t\t{ \"dark olive green\",
        0x556b2f },\n\t\t{ \"dark orange\", 0xff8c00 },\n\t\t{ \"dark orchid\", 0x9932cc
        },\n\t\t{ \"dark red\", 0x8b0000 },\n\t\t{ \"dark salmon\", 0xe9967a },\n\t\t{
        \"dark sea green\", 0x8fbc8f },\n\t\t{ \"dark slate blue\", 0x483d8b },\n\t\t{
        \"dark slate gray\", 0x2f4f4f },\n\t\t{ \"dark slate grey\", 0x2f4f4f },\n\t\t{
        \"dark turquoise\", 0x00ced1 },\n\t\t{ \"dark violet\", 0x9400d3 },\n\t\t{
        \"deep pink\", 0xff1493 },\n\t\t{ \"deep sky blue\", 0x00bfff },\n\t\t{ \"dim
        gray\", 0x696969 },\n\t\t{ \"dim grey\", 0x696969 },\n\t\t{ \"dodger blue\",
        0x1e90ff },\n\t\t{ \"firebrick\", 0xb22222 },\n\t\t{ \"firebrick1\", 0xff3030
        },\n\t\t{ \"firebrick2\", 0xee2c2c },\n\t\t{ \"firebrick3\", 0xcd2626 },\n\t\t{
        \"firebrick4\", 0x8b1a1a },\n\t\t{ \"floral white\", 0xfffaf0 },\n\t\t{ \"forest
        green\", 0x228b22 },\n\t\t{ \"fuchsia\", 0xff00ff },\n\t\t{ \"gainsboro\",
        0xdcdcdc },\n\t\t{ \"ghost white\", 0xf8f8ff },\n\t\t{ \"gold\", 0xffd700
        },\n\t\t{ \"gold1\", 0xffd700 },\n\t\t{ \"gold2\", 0xeec900 },\n\t\t{ \"gold3\",
        0xcdad00 },\n\t\t{ \"gold4\", 0x8b7500 },\n\t\t{ \"goldenrod\", 0xdaa520 },\n\t\t{
        \"goldenrod1\", 0xffc125 },\n\t\t{ \"goldenrod2\", 0xeeb422 },\n\t\t{ \"goldenrod3\",
        0xcd9b1d },\n\t\t{ \"goldenrod4\", 0x8b6914 },\n\t\t{ \"green yellow\", 0xadff2f
        },\n\t\t{ \"green\", 0x00ff00 },\n\t\t{ \"green1\", 0x00ff00 },\n\t\t{ \"green2\",
        0x00ee00 },\n\t\t{ \"green3\", 0x00cd00 },\n\t\t{ \"green4\", 0x008b00 },\n\t\t{
        \"honeydew\", 0xf0fff0 },\n\t\t{ \"honeydew1\", 0xf0fff0 },\n\t\t{ \"honeydew2\",
        0xe0eee0 },\n\t\t{ \"honeydew3\", 0xc1cdc1 },\n\t\t{ \"honeydew4\", 0x838b83
        },\n\t\t{ \"hot pink\", 0xff69b4 },\n\t\t{ \"indian red\", 0xcd5c5c },\n\t\t{
        \"indigo\", 0x4b0082 },\n\t\t{ \"ivory\", 0xfffff0 },\n\t\t{ \"ivory1\", 0xfffff0
        },\n\t\t{ \"ivory2\", 0xeeeee0 },\n\t\t{ \"ivory3\", 0xcdcdc1 },\n\t\t{ \"ivory4\",
        0x8b8b83 },\n\t\t{ \"khaki\", 0xf0e68c },\n\t\t{ \"khaki1\", 0xfff68f },\n\t\t{
        \"khaki2\", 0xeee685 },\n\t\t{ \"khaki3\", 0xcdc673 },\n\t\t{ \"khaki4\",
        0x8b864e },\n\t\t{ \"lavender blush\", 0xfff0f5 },\n\t\t{ \"lavender\", 0xe6e6fa
        },\n\t\t{ \"lawn green\", 0x7cfc00 },\n\t\t{ \"lemon chiffon\", 0xfffacd },\n\t\t{
        \"light blue\", 0xadd8e6 },\n\t\t{ \"light coral\", 0xf08080 },\n\t\t{ \"light
        cyan\", 0xe0ffff },\n\t\t{ \"light goldenrod yellow\", 0xfafad2 },\n\t\t{
        \"light goldenrod\", 0xeedd82 },\n\t\t{ \"light gray\", 0xd3d3d3 },\n\t\t{
        \"light green\", 0x90ee90 },\n\t\t{ \"light grey\", 0xd3d3d3 },\n\t\t{ \"light
        pink\", 0xffb6c1 },\n\t\t{ \"light salmon\", 0xffa07a },\n\t\t{ \"light sea
        green\", 0x20b2aa },\n\t\t{ \"light sky blue\", 0x87cefa },\n\t\t{ \"light
        slate blue\", 0x8470ff },\n\t\t{ \"light slate gray\", 0x778899 },\n\t\t{
        \"light slate grey\", 0x778899 },\n\t\t{ \"light steel blue\", 0xb0c4de },\n\t\t{
        \"light yellow\", 0xffffe0 },\n\t\t{ \"lime green\", 0x32cd32 },\n\t\t{ \"lime\",
        0x00ff00 },\n\t\t{ \"linen\", 0xfaf0e6 },\n\t\t{ \"magenta\", 0xff00ff },\n\t\t{
        \"magenta1\", 0xff00ff },\n\t\t{ \"magenta2\", 0xee00ee },\n\t\t{ \"magenta3\",
        0xcd00cd },\n\t\t{ \"magenta4\", 0x8b008b },\n\t\t{ \"maroon\", 0xb03060 },\n\t\t{
        \"maroon1\", 0xff34b3 },\n\t\t{ \"maroon2\", 0xee30a7 },\n\t\t{ \"maroon3\",
        0xcd2990 },\n\t\t{ \"maroon4\", 0x8b1c62 },\n\t\t{ \"medium aquamarine\",
        0x66cdaa },\n\t\t{ \"medium blue\", 0x0000cd },\n\t\t{ \"medium orchid\",
        0xba55d3 },\n\t\t{ \"medium purple\", 0x9370db },\n\t\t{ \"medium sea green\",
        0x3cb371 },\n\t\t{ \"medium slate blue\", 0x7b68ee },\n\t\t{ \"medium spring
        green\", 0x00fa9a },\n\t\t{ \"medium turquoise\", 0x48d1cc },\n\t\t{ \"medium
        violet red\", 0xc71585 },\n\t\t{ \"midnight blue\", 0x191970 },\n\t\t{ \"mint
        cream\", 0xf5fffa },\n\t\t{ \"misty rose\", 0xffe4e1 },\n\t\t{ \"moccasin\",
        0xffe4b5 },\n\t\t{ \"navajo white\", 0xffdead },\n\t\t{ \"navy blue\", 0x000080
        },\n\t\t{ \"navy\", 0x000080 },\n\t\t{ \"old lace\", 0xfdf5e6 },\n\t\t{ \"olive
        drab\", 0x6b8e23 },\n\t\t{ \"olive\", 0x808000 },\n\t\t{ \"orange red\", 0xff4500
        },\n\t\t{ \"orange\", 0xffa500 },\n\t\t{ \"orange1\", 0xffa500 },\n\t\t{ \"orange2\",
        0xee9a00 },\n\t\t{ \"orange3\", 0xcd8500 },\n\t\t{ \"orange4\", 0x8b5a00 },\n\t\t{
        \"orchid\", 0xda70d6 },\n\t\t{ \"orchid1\", 0xff83fa },\n\t\t{ \"orchid2\",
        0xee7ae9 },\n\t\t{ \"orchid3\", 0xcd69c9 },\n\t\t{ \"orchid4\", 0x8b4789 },\n\t\t{
        \"pale goldenrod\", 0xeee8aa },\n\t\t{ \"pale green\", 0x98fb98 },\n\t\t{
        \"pale turquoise\", 0xafeeee },\n\t\t{ \"pale violet red\", 0xdb7093 },\n\t\t{
        \"papaya whip\", 0xffefd5 },\n\t\t{ \"peach puff\", 0xffdab9 },\n\t\t{ \"peru\",
        0xcd853f },\n\t\t{ \"pink\", 0xffc0cb },\n\t\t{ \"pink1\", 0xffb5c5 },\n\t\t{
        \"pink2\", 0xeea9b8 },\n\t\t{ \"pink3\", 0xcd919e },\n\t\t{ \"pink4\", 0x8b636c
        },\n\t\t{ \"plum\", 0xdda0dd },\n\t\t{ \"plum1\", 0xffbbff },\n\t\t{ \"plum2\",
        0xeeaeee },\n\t\t{ \"plum3\", 0xcd96cd },\n\t\t{ \"plum4\", 0x8b668b },\n\t\t{
        \"powder blue\", 0xb0e0e6 },\n\t\t{ \"purple\", 0xa020f0 },\n\t\t{ \"purple1\",
        0x9b30ff },\n\t\t{ \"purple2\", 0x912cee },\n\t\t{ \"purple3\", 0x7d26cd },\n\t\t{
        \"purple4\", 0x551a8b },\n\t\t{ \"rebecca purple\", 0x663399 },\n\t\t{ \"red\",
        0xff0000 },\n\t\t{ \"red1\", 0xff0000 },\n\t\t{ \"red2\", 0xee0000 },\n\t\t{
        \"red3\", 0xcd0000 },\n\t\t{ \"red4\", 0x8b0000 },\n\t\t{ \"rosy brown\",
        0xbc8f8f },\n\t\t{ \"royal blue\", 0x4169e1 },\n\t\t{ \"saddle brown\", 0x8b4513
        },\n\t\t{ \"salmon\", 0xfa8072 },\n\t\t{ \"salmon1\", 0xff8c69 },\n\t\t{ \"salmon2\",
        0xee8262 },\n\t\t{ \"salmon3\", 0xcd7054 },\n\t\t{ \"salmon4\", 0x8b4c39 },\n\t\t{
        \"sandy brown\", 0xf4a460 },\n\t\t{ \"sea green\", 0x2e8b57 },\n\t\t{ \"seashell\",
        0xfff5ee },\n\t\t{ \"seashell1\", 0xfff5ee },\n\t\t{ \"seashell2\", 0xeee5de
        },\n\t\t{ \"seashell3\", 0xcdc5bf },\n\t\t{ \"seashell4\", 0x8b8682 },\n\t\t{
        \"sienna\", 0xa0522d },\n\t\t{ \"sienna1\", 0xff8247 },\n\t\t{ \"sienna2\",
        0xee7942 },\n\t\t{ \"sienna3\", 0xcd6839 },\n\t\t{ \"sienna4\", 0x8b4726 },\n\t\t{
        \"silver\", 0xc0c0c0 },\n\t\t{ \"sky blue\", 0x87ceeb },\n\t\t{ \"slate blue\",
        0x6a5acd },\n\t\t{ \"slate gray\", 0x708090 },\n\t\t{ \"slate grey\", 0x708090
        },\n\t\t{ \"snow\", 0xfffafa },\n\t\t{ \"snow1\", 0xfffafa },\n\t\t{ \"snow2\",
        0xeee9e9 },\n\t\t{ \"snow3\", 0xcdc9c9 },\n\t\t{ \"snow4\", 0x8b8989 },\n\t\t{
        \"spring green\", 0x00ff7f },\n\t\t{ \"steel blue\", 0x4682b4 },\n\t\t{ \"tan\",
        0xd2b48c },\n\t\t{ \"tan1\", 0xffa54f },\n\t\t{ \"tan2\", 0xee9a49 },\n\t\t{
        \"tan3\", 0xcd853f },\n\t\t{ \"tan4\", 0x8b5a2b },\n\t\t{ \"teal\", 0x008080
        },\n\t\t{ \"thistle\", 0xd8bfd8 },\n\t\t{ \"thistle1\", 0xffe1ff },\n\t\t{
        \"thistle2\", 0xeed2ee },\n\t\t{ \"thistle3\", 0xcdb5cd },\n\t\t{ \"thistle4\",
        0x8b7b8b },\n\t\t{ \"tomato\", 0xff6347 },\n\t\t{ \"tomato1\", 0xff6347 },\n\t\t{
        \"tomato2\", 0xee5c42 },\n\t\t{ \"tomato3\", 0xcd4f39 },\n\t\t{ \"tomato4\",
        0x8b3626 },\n\t\t{ \"turquoise\", 0x40e0d0 },\n\t\t{ \"turquoise1\", 0x00f5ff
        },\n\t\t{ \"turquoise2\", 0x00e5ee },\n\t\t{ \"turquoise3\", 0x00c5cd },\n\t\t{
        \"turquoise4\", 0x00868b },\n\t\t{ \"violet red\", 0xd02090 },\n\t\t{ \"violet\",
        0xee82ee },\n\t\t{ \"web gray\", 0x808080 },\n\t\t{ \"web green\", 0x008000
        },\n\t\t{ \"web grey\", 0x808080 },\n\t\t{ \"web maroon\", 0x800000 },\n\t\t{
        \"web purple\", 0x800080 },\n\t\t{ \"wheat\", 0xf5deb3 },\n\t\t{ \"wheat1\",
        0xffe7ba },\n\t\t{ \"wheat2\", 0xeed8ae },\n\t\t{ \"wheat3\", 0xcdba96 },\n\t\t{
        \"wheat4\", 0x8b7e66 },\n\t\t{ \"white smoke\", 0xf5f5f5 },\n\t\t{ \"white\",
        0xffffff },\n\t\t{ \"x11 gray\", 0xbebebe },\n\t\t{ \"x11 green\", 0x00ff00
        },\n\t\t{ \"x11 grey\", 0xbebebe },\n\t\t{ \"x11 maroon\", 0xb03060 },\n\t\t{
        \"x11 purple\", 0xa020f0 },\n\t\t{ \"yellow green\", 0x9acd32 },\n\t\t{ \"yellow\",
        0xffff00 },\n\t\t{ \"yellow1\", 0xffff00 },\n\t\t{ \"yellow2\", 0xeeee00 },\n\t\t{
        \"yellow3\", 0xcdcd00 },\n\t\t{ \"yellow4\", 0x8b8b00 }\n\t}"
      pos:
        line_end: 404
        line_start: 401
        source_file: /src/tmux/colour.c
    typedefs: []
    union: []
- function_names:
  - screen_write_get_citem
  - screen_write_free_citem
  - screen_write_offset_timer
  - screen_write_set_cursor
  - screen_write_redraw_cb
  - screen_write_set_client_cb
  - screen_write_pane_is_obscured
  - screen_write_initctx
  - screen_write_make_list
  - screen_write_free_list
  - screen_write_init
  - screen_write_start_pane
  - screen_write_start_callback
  - screen_write_start
  - screen_write_stop
  - screen_write_reset
  - screen_write_putc
  - screen_write_strlen
  - screen_write_text
  - screen_write_puts
  - screen_write_nputs
  - screen_write_vnputs
  - screen_write_fast_copy
  - screen_write_box_border_set
  - screen_write_hline
  - screen_write_vline
  - screen_write_menu
  - screen_write_box
  - screen_write_preview
  - screen_write_mode_set
  - screen_write_mode_clear
  - screen_write_sync_callback
  - screen_write_start_sync
  - screen_write_stop_sync
  - screen_write_cursorup
  - screen_write_cursordown
  - screen_write_cursorright
  - screen_write_cursorleft
  - screen_write_backspace
  - screen_write_redraw_line
  - screen_write_redraw_pane
  - screen_write_alignmenttest
  - screen_write_insertcharacter
  - screen_write_deletecharacter
  - screen_write_clearcharacter
  - screen_write_insertline
  - screen_write_deleteline
  - screen_write_clearline
  - screen_write_clearendofline
  - screen_write_clearstartofline
  - screen_write_cursormove
  - screen_write_reverseindex
  - screen_write_scrollregion
  - screen_write_linefeed
  - screen_write_scrollup
  - screen_write_scrolldown
  - screen_write_carriagereturn
  - screen_write_clearendofscreen
  - screen_write_clearstartofscreen
  - screen_write_clearscreen
  - screen_write_clearhistory
  - screen_write_fullredraw
  - screen_write_collect_trim
  - screen_write_collect_clear
  - screen_write_collect_scroll
  - screen_write_collect_flush_scrolled
  - screen_write_collect_flush_line
  - screen_write_collect_flush
  - screen_write_collect_insert
  - screen_write_collect_insert_clear
  - screen_write_collect_end
  - screen_write_collect_add
  - screen_write_cell
  - screen_write_combine
  - screen_write_overwrite
  - screen_write_setselection
  - screen_write_rawstring
  - screen_write_sixelimage
  - screen_write_alternateon
  - screen_write_alternateoff
  source_file: /src/tmux/screen-write.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: x
        type: u_int
      - name: wrapped
        type: int
      - name: type
        type: enum { TEXT, CLEAR }
      - name: used
        type: u_int
      - name: bg
        type: u_int
      - name: gc
        type: struct grid_cell
      - name: (screen_write_citem)
        type: TAILQ_ENTRY
      item_type: struct
      name: screen_write_citem
      pos:
        line_end: 52
        line_start: 41
        source_file: /src/tmux/screen-write.c
    typedefs: []
    union: []
- function_names:
  - cmd_kill_server_exec
  source_file: /src/tmux/cmd-kill-server.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_find_window_exec
  source_file: /src/tmux/cmd-find-window.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_respawn_pane_exec
  source_file: /src/tmux/cmd-respawn-pane.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - format_is_type
  - format_free_range
  - format_update_ranges
  - TAILQ_FOREACH_SAFE
  - format_draw_put
  - format_draw_put_list
  - format_draw_none
  - format_draw_left
  - format_draw_centre
  - format_draw_right
  - format_draw_absolute_centre
  - format_leading_hashes
  - format_draw_many
  - format_draw
  - format_width
  - format_trim_left
  - format_trim_right
  source_file: /src/tmux/format-draw.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: index
        type: u_int
      - name: '*s'
        type: struct screen
      - name: start
        type: u_int
      - name: end
        type: u_int
      - name: type
        type: enum style_range_type
      - name: argument
        type: u_int
      - name: string[16]
        type: char
      - name: (format_range)
        type: TAILQ_ENTRY
      item_type: struct
      name: format_range
      pos:
        line_end: 38
        line_start: 26
        source_file: /src/tmux/format-draw.c
    typedefs: []
    union: []
- function_names:
  - window_tree_pull_item
  - window_tree_add_item
  - window_tree_free_item
  - window_tree_build_pane
  - window_tree_filter_pane
  - window_tree_build_window
  - window_tree_build_session
  - window_tree_build
  - window_tree_draw_label
  - window_tree_draw_session
  - window_tree_draw_window
  - window_tree_draw
  - window_tree_search
  - window_tree_menu
  - window_tree_get_key
  - window_tree_swap
  - window_tree_sort
  - window_tree_help
  - window_tree_init
  - window_tree_destroy
  - window_tree_free
  - window_tree_resize
  - window_tree_update
  - window_tree_get_target
  - window_tree_command_each
  - window_tree_command_done
  - window_tree_command_callback
  - window_tree_command_free
  - window_tree_kill_each
  - window_tree_kill_current_callback
  - window_tree_kill_tagged_callback
  - window_tree_mouse
  - window_tree_key
  source_file: /src/tmux/window-tree.c
  types:
    enum:
    - enumerators:
      - name: WINDOW_TREE_NONE
      - name: WINDOW_TREE_PANE
      - name: WINDOW_TREE_WINDOW
      - name: WINDOW_TREE_SESSION
      item_type: enum
      name: window_tree_type
      pos:
        line_end: 96
        line_start: 91
        source_file: /src/tmux/window-tree.c
    preproc_defs:
    - item_type: preproc_def
      name: WINDOW_TREE_DEFAULT_COMMAND
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/tmux/window-tree.c
      type_or_value: '"switch-client -Zt ''%%''"'
    - item_type: preproc_def
      name: WINDOW_TREE_DEFAULT_FORMAT
      pos:
        line_end: 55
        line_start: 38
        source_file: /src/tmux/window-tree.c
      type_or_value: "\"#{?pane_format,\" \\\n\t\t\"#{?pane_marked,#[reverse],}\"
        \\\n\t\t\"#{pane_current_command}#{?pane_active,*,}#{?pane_marked,M,}\" \\\n\t\t\"#{?#{&&:#{pane_title},#{!=:#{pane_title},#{host_short}}},:
        \\\"#{pane_title}\\\",}\" \\\n\t\",window_format,\" \\\n\t\t\"#{?window_marked_flag,#[reverse],}\"
        \\\n\t\t\"#{window_name}#{window_flags}\" \\\n\t\t\"#{?#{&&:#{==:#{window_panes},1},#{&&:#{pane_title},#{!=:#{pane_title},#{host_short}}}},:
        \\\"#{pane_title}\\\",}\" \\\n\t\",\" \\\n\t\t\"#{session_windows} windows\"
        \\\n\t\t\"#{?session_grouped, \" \\\n\t\t\t\"(group #{session_group}: \" \\\n\t\t\t\"#{session_group_list}),\"
        \\\n\t\t\"}\" \\\n\t\t\"#{?session_attached, (attached),}\" \\\n\t\"}\""
    - item_type: preproc_def
      name: WINDOW_TREE_DEFAULT_KEY_FORMAT
      pos:
        line_end: 62
        line_start: 56
        source_file: /src/tmux/window-tree.c
      type_or_value: "\"#{?#{e|<:#{line},10},\" \\\n\t\t\"#{line}\" \\\n\t\",#{e|<:#{line},36},\"\t\\\n\t
        \       \"M-#{a:#{e|+:97,#{e|-:#{line},10}}}\" \\\n\t\"}\""
    structs:
    - fields:
      - name: type
        type: enum window_tree_type
      - name: session
        type: int
      - name: winlink
        type: int
      - name: pane
        type: int
      item_type: struct
      name: window_tree_itemdata
      pos:
        line_end: 103
        line_start: 98
        source_file: /src/tmux/window-tree.c
    - fields:
      - name: '*wp'
        type: struct window_pane
      - name: dead
        type: int
      - name: references
        type: int
      - name: '*data'
        type: struct mode_tree_data
      - name: '*format'
        type: char
      - name: '*key_format'
        type: char
      - name: '*command'
        type: char
      - name: squash_groups
        type: int
      - name: prompt_flags
        type: int
      - name: '**item_list'
        type: struct window_tree_itemdata
      - name: item_size
        type: u_int
      - name: '*entered'
        type: char
      - name: fs
        type: struct cmd_find_state
      - name: type
        type: enum window_tree_type
      - name: offset
        type: int
      - name: left
        type: int
      - name: right
        type: int
      - name: start
        type: u_int
      - name: end
        type: u_int
      - name: each
        type: u_int
      item_type: struct
      name: window_tree_modedata
      pos:
        line_end: 132
        line_start: 105
        source_file: /src/tmux/window-tree.c
    typedefs: []
    union: []
- function_names:
  - cmd_kill_pane_exec
  source_file: /src/tmux/cmd-kill-pane.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_resize_pane_exec
  - cmd_resize_pane_mouse_update
  - cmd_resize_pane_mouse_update_floating
  - cmd_resize_pane_mouse_update_tiled
  source_file: /src/tmux/cmd-resize-pane.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - OPTIONS_TABLE_HOOK
  - OPTIONS_TABLE_PANE_HOOK
  - OPTIONS_TABLE_WINDOW_HOOK
  source_file: /src/tmux/options-table.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OPTIONS_TABLE_STATUS_FORMAT1
      pos:
        line_end: 180
        line_start: 115
        source_file: /src/tmux/options-table.c
      type_or_value: "\"#[align=left range=left #{E:status-left-style}]\" \\\n\t\"#[push-default]\"
        \\\n\t\"#{T;=/#{status-left-length}:status-left}\" \\\n\t\"#[pop-default]\"
        \\\n\t\"#[norange default]\" \\\n\t\"#[list=on align=#{status-justify}]\"
        \\\n\t\"#[list=left-marker]<#[list=right-marker]>#[list=on]\" \\\n\t\"#{W:\"
        \\\n\t\t\"#[range=window|#{window_index} \" \\\n\t\t\t\"#{E:window-status-style}\"
        \\\n\t\t\t\"#{?#{&&:#{window_last_flag},\" \\\n\t\t\t\t\"#{!=:#{E:window-status-last-style},default}},
        \" \\\n\t\t\t\t\"#{E:window-status-last-style},\" \\\n\t\t\t\"}\" \\\n\t\t\t\"#{?#{&&:#{window_bell_flag},\"
        \\\n\t\t\t\t\"#{!=:#{E:window-status-bell-style},default}}, \" \\\n\t\t\t\t\"#{E:window-status-bell-style},\"
        \\\n\t\t\t\t\"#{?#{&&:#{||:#{window_activity_flag},\" \\\n\t\t\t\t\t     \"#{window_silence_flag}},\"
        \\\n\t\t\t\t\t\"#{!=:\" \\\n\t\t\t\t\t\"#{E:window-status-activity-style},\"
        \\\n\t\t\t\t\t\"default}}, \" \\\n\t\t\t\t\t\"#{E:window-status-activity-style},\"
        \\\n\t\t\t\t\"}\" \\\n\t\t\t\"}\" \\\n\t\t\"]\" \\\n\t\t\"#[push-default]\"
        \\\n\t\t\"#{T:window-status-format}\" \\\n\t\t\"#[pop-default]\" \\\n\t\t\"#[norange
        default]\" \\\n\t\t\"#{?loop_last_flag,,#{E:window-status-separator}}\" \\\n\t\",\"
        \\\n\t\t\"#[range=window|#{window_index} list=focus \" \\\n\t\t\t\"#{?#{!=:#{E:window-status-current-style},default},\"
        \\\n\t\t\t\t\"#{E:window-status-current-style},\" \\\n\t\t\t\t\"#{E:window-status-style}\"
        \\\n\t\t\t\"}\" \\\n\t\t\t\"#{?#{&&:#{window_last_flag},\" \\\n\t\t\t\t\"#{!=:#{E:window-status-last-style},default}},
        \" \\\n\t\t\t\t\"#{E:window-status-last-style},\" \\\n\t\t\t\"}\" \\\n\t\t\t\"#{?#{&&:#{window_bell_flag},\"
        \\\n\t\t\t\t\"#{!=:#{E:window-status-bell-style},default}}, \" \\\n\t\t\t\t\"#{E:window-status-bell-style},\"
        \\\n\t\t\t\t\"#{?#{&&:#{||:#{window_activity_flag},\" \\\n\t\t\t\t\t     \"#{window_silence_flag}},\"
        \\\n\t\t\t\t\t\"#{!=:\" \\\n\t\t\t\t\t\"#{E:window-status-activity-style},\"
        \\\n\t\t\t\t\t\"default}}, \" \\\n\t\t\t\t\t\"#{E:window-status-activity-style},\"
        \\\n\t\t\t\t\"}\" \\\n\t\t\t\"}\" \\\n\t\t\"]\" \\\n\t\t\"#[push-default]\"
        \\\n\t\t\"#{T:window-status-current-format}\" \\\n\t\t\"#[pop-default]\" \\\n\t\t\"#[norange
        list=on default]\" \\\n\t\t\"#{?loop_last_flag,,#{E:window-status-separator}}\"
        \\\n\t\"}\" \\\n\t\"#[nolist align=right range=right #{E:status-right-style}]\"
        \\\n\t\"#[push-default]\" \\\n\t\"#{T;=/#{status-right-length}:status-right}\"
        \\\n\t\"#[pop-default]\" \\\n\t\"#[norange default]\""
    - item_type: preproc_def
      name: OPTIONS_TABLE_STATUS_FORMAT2
      pos:
        line_end: 205
        line_start: 180
        source_file: /src/tmux/options-table.c
      type_or_value: "\"#[align=left]#{R: ,#{n:#{session_name}}}P: \" \\\n\t\"#[norange
        default]\" \\\n\t\"#[list=on align=#{status-justify}]\" \\\n\t\"#[list=left-marker]<#[list=right-marker]>#[list=on]\"
        \\\n\t\"#{P:\" \\\n\t\t\"#[range=pane|#{pane_id} \" \\\n\t\t\t\"#{E:pane-status-style}\"
        \\\n\t\t\"]\" \\\n\t\t\"#[push-default]\" \\\n\t\t\"#{T:window-pane-status-format}\"
        \\\n\t\t\"#[pop-default]\" \\\n\t\t\"#[norange list=on default]  \" \\\n\t\",\"
        \\\n\t\t\"#[range=pane|#{pane_id} list=focus \" \\\n\t\t\t\"#{?#{!=:#{E:pane-status-current-style},default},\"
        \\\n\t\t\t\t\"#{E:pane-status-current-style},\" \\\n\t\t\t\t\"#{E:pane-status-style}\"
        \\\n\t\t\t\"}\" \\\n\t\t\"]\" \\\n\t\t\"#[push-default]\" \\\n\t\t\"#{T:window-pane-current-status-format}\"
        \\\n\t\t\"#[pop-default]\" \\\n\t\t\"#[norange list=on default] \" \\\n\t\"}\""
    - item_type: preproc_def
      name: OPTIONS_TABLE_STATUS_FORMAT3
      pos:
        line_end: 230
        line_start: 205
        source_file: /src/tmux/options-table.c
      type_or_value: "\"#[align=left]#{R: ,#{n:#{session_name}}}S: \" \\\n\t\"#[norange
        default]\" \\\n\t\"#[list=on align=#{status-justify}]\" \\\n\t\"#[list=left-marker]<#[list=right-marker]>#[list=on]\"
        \\\n\t\"#{S:\" \\\n\t\t\"#[range=session|#{session_id} \" \\\n\t\t\t\"#{E:session-status-style}\"
        \\\n\t\t\"]\" \\\n\t\t\"#[push-default]\" \\\n\t\t\"#S#{session_alert}\" \\\n\t\t\"#[pop-default]\"
        \\\n\t\t\"#[norange list=on default]  \" \\\n\t\",\" \\\n\t\t\"#[range=session|#{session_id}
        list=focus \" \\\n\t\t\t\"#{?#{!=:#{E:session-status-current-style},default},\"
        \\\n\t\t\t\t\t\"#{E:session-status-current-style},\" \\\n\t\t\t\t\t\"#{E:session-status-style}\"
        \\\n\t\t\t\"}\" \\\n\t\t\"]\" \\\n\t\t\"#[push-default]\" \\\n\t\t\"#S*#{session_alert}\"
        \\\n\t\t\"#[pop-default]\" \\\n\t\t\"#[norange list=on default] \" \\\n\t\"}\""
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_command_prompt_args_parse
  - cmd_command_prompt_exec
  - cmd_command_prompt_callback
  - cmd_command_prompt_free
  source_file: /src/tmux/cmd-command-prompt.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*input'
        type: char
      - name: '*prompt'
        type: char
      item_type: struct
      name: cmd_command_prompt_prompt
      pos:
        line_end: 55
        line_start: 52
        source_file: /src/tmux/cmd-command-prompt.c
    - fields:
      - name: '*item'
        type: struct cmdq_item
      - name: '*state'
        type: struct args_command_state
      - name: flags
        type: int
      - name: prompt_type
        type: enum prompt_type
      - name: '*prompts'
        type: struct cmd_command_prompt_prompt
      - name: count
        type: u_int
      - name: current
        type: u_int
      - name: argc
        type: int
      - name: '**argv'
        type: char
      item_type: struct
      name: cmd_command_prompt_cdata
      pos:
        line_end: 70
        line_start: 57
        source_file: /src/tmux/cmd-command-prompt.c
    typedefs: []
    union: []
- function_names:
  - cmd_detach_client_exec
  source_file: /src/tmux/cmd-detach-client.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tty_acs_double_borders
  - tty_acs_heavy_borders
  - tty_acs_rounded_borders
  - tty_acs_cmp
  - tty_acs_reverse_cmp
  - tty_acs_needed
  - tty_acs_get
  - tty_acs_reverse_get
  source_file: /src/tmux/tty-acs.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: key
        type: u_char
      - name: '*string'
        type: char
      item_type: struct
      name: tty_acs_entry
      pos:
        line_end: 29
        line_start: 26
        source_file: /src/tmux/tty-acs.c
    - fields:
      - name: '*string'
        type: char
      - name: key
        type: u_char
      item_type: struct
      name: tty_acs_reverse_entry
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/tmux/tty-acs.c
    typedefs: []
    union: []
- function_names:
  - cmd_list_single_command
  - cmd_list_commands
  source_file: /src/tmux/cmd-list-commands.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIST_COMMANDS_TEMPLATE
      pos:
        line_end: 33
        line_start: 29
        source_file: /src/tmux/cmd-list-commands.c
      type_or_value: "\"#{command_list_name}\"\t\t\t\t\t\\\n\t\"#{?command_list_alias,
        (#{command_list_alias}),} \"\t\\\n\t\"#{command_list_usage}\""
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmd_source_file_complete_cb
  - cmd_source_file_complete
  - cmd_source_file_done
  - cmd_source_file_add
  - cmd_source_file_quote_for_glob
  - cmd_source_file_exec
  source_file: /src/tmux/cmd-source-file.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CMD_SOURCE_FILE_DEPTH_LIMIT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/tmux/cmd-source-file.c
      type_or_value: '50'
    structs:
    - fields:
      - name: '*item'
        type: struct cmdq_item
      - name: flags
        type: int
      - name: '*after'
        type: struct cmdq_item
      - name: retval
        type: enum cmd_retval
      - name: current
        type: u_int
      - name: '**files'
        type: char
      - name: nfiles
        type: u_int
      item_type: struct
      name: cmd_source_file_data
      pos:
        line_end: 60
        line_start: 50
        source_file: /src/tmux/cmd-source-file.c
    typedefs: []
    union: []
- function_names:
  - cmdq_name
  - cmdq_get
  - cmdq_new
  - cmdq_free
  - cmdq_get_name
  - cmdq_get_client
  - cmdq_get_target_client
  - cmdq_get_state
  - cmdq_get_target
  - cmdq_get_source
  - cmdq_get_event
  - cmdq_get_current
  - cmdq_get_flags
  - cmdq_new_state
  - cmdq_link_state
  - cmdq_copy_state
  - cmdq_free_state
  - cmdq_add_format
  - cmdq_add_formats
  - cmdq_merge_formats
  - cmdq_append
  - cmdq_insert_after
  - cmdq_insert_hook
  - cmdq_continue
  - cmdq_remove
  - cmdq_remove_group
  - cmdq_empty_command
  - cmdq_get_command
  - cmdq_find_flag
  - cmdq_add_message
  - cmdq_fire_command
  - cmdq_get_callback1
  - cmdq_error_callback
  - cmdq_get_error
  - cmdq_fire_callback
  - cmdq_next
  - cmdq_running
  - cmdq_guard
  - cmdq_print_data
  - cmdq_print
  - cmdq_error
  source_file: /src/tmux/cmd-queue.c
  types:
    enum:
    - enumerators:
      - name: CMDQ_COMMAND
      - name: CMDQ_CALLBACK
      item_type: enum
      name: cmdq_type
      pos:
        line_end: 37
        line_start: 34
        source_file: /src/tmux/cmd-queue.c
    preproc_defs:
    - item_type: preproc_def
      name: CMDQ_FIRED
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/tmux/cmd-queue.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: CMDQ_WAITING
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/tmux/cmd-queue.c
      type_or_value: '0x2'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*queue'
        type: struct cmdq_list
      - name: '*next'
        type: struct cmdq_item
      - name: '*client'
        type: struct client
      - name: '*target_client'
        type: struct client
      - name: type
        type: enum cmdq_type
      - name: group
        type: u_int
      - name: number
        type: u_int
      - name: time
        type: time_t
      - name: flags
        type: int
      - name: '*state'
        type: struct cmdq_state
      - name: source
        type: struct cmd_find_state
      - name: target
        type: struct cmd_find_state
      - name: '*cmdlist'
        type: struct cmd_list
      - name: '*cmd'
        type: struct cmd
      - name: cb
        type: cmdq_cb
      - name: '*data'
        type: void
      - name: (cmdq_item)
        type: TAILQ_ENTRY
      item_type: struct
      name: cmdq_item
      pos:
        line_end: 67
        line_start: 40
        source_file: /src/tmux/cmd-queue.c
    - fields:
      - name: references
        type: int
      - name: flags
        type: int
      - name: '*formats'
        type: struct format_tree
      - name: event
        type: struct key_event
      - name: current
        type: struct cmd_find_state
      item_type: struct
      name: cmdq_state
      pos:
        line_end: 85
        line_start: 77
        source_file: /src/tmux/cmd-queue.c
    - fields:
      - name: '*item'
        type: struct cmdq_item
      - name: list
        type: struct cmdq_item_list
      item_type: struct
      name: cmdq_list
      pos:
        line_end: 91
        line_start: 88
        source_file: /src/tmux/cmd-queue.c
    typedefs: []
    union: []
- function_names:
  - cmd_if_shell_args_parse
  - cmd_if_shell_exec
  - cmd_if_shell_callback
  - cmd_if_shell_free
  source_file: /src/tmux/cmd-if-shell.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*cmd_if'
        type: struct args_command_state
      - name: '*cmd_else'
        type: struct args_command_state
      - name: '*client'
        type: struct client
      - name: '*item'
        type: struct cmdq_item
      item_type: struct
      name: cmd_if_shell_data
      pos:
        line_end: 60
        line_start: 54
        source_file: /src/tmux/cmd-if-shell.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/tmux/xmalloc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ibuf_open
  - ibuf_dynamic
  - ibuf_reserve
  - ibuf_add
  - ibuf_add_ibuf
  - ibuf_add_n8
  - ibuf_add_n16
  - ibuf_add_n32
  - ibuf_add_n64
  - ibuf_add_h16
  - ibuf_add_h32
  - ibuf_add_h64
  - ibuf_add_zero
  - ibuf_add_strbuf
  - ibuf_seek
  - ibuf_set
  - ibuf_set_n8
  - ibuf_set_n16
  - ibuf_set_n32
  - ibuf_set_n64
  - ibuf_set_h16
  - ibuf_set_h32
  - ibuf_set_h64
  - ibuf_set_maxsize
  - ibuf_data
  - ibuf_size
  - ibuf_left
  - ibuf_truncate
  - ibuf_rewind
  - ibuf_close
  - ibuf_from_buffer
  - ibuf_from_ibuf
  - ibuf_get
  - ibuf_get_ibuf
  - ibuf_get_h16
  - ibuf_get_h32
  - ibuf_get_h64
  - ibuf_get_n8
  - ibuf_get_n16
  - ibuf_get_n32
  - ibuf_get_n64
  - ibuf_get_string
  - ibuf_get_strbuf
  - ibuf_skip
  - ibuf_free
  - ibuf_fd_avail
  - ibuf_fd_get
  - ibuf_fd_set
  - msgbuf_new
  - msgbuf_new_reader
  - msgbuf_free
  - msgbuf_queuelen
  - msgbuf_clear
  - msgbuf_get
  - msgbuf_concat
  - ibuf_write
  - msgbuf_write
  - ibuf_read_process
  - ibuf_read
  - msgbuf_read
  - msgbuf_drain
  - ibufq_init
  - ibufq_new
  - ibufq_free
  - ibufq_pop
  - ibufq_push
  - ibufq_queuelen
  - ibufq_concat
  - ibufq_flush
  source_file: /src/tmux/compat/imsg-buffer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: htobe16
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/tmux/compat/imsg-buffer.c
      type_or_value: htons
    - item_type: preproc_def
      name: htobe32
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/tmux/compat/imsg-buffer.c
      type_or_value: htonl
    - item_type: preproc_def
      name: htobe64
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/tmux/compat/imsg-buffer.c
      type_or_value: htonll
    - item_type: preproc_def
      name: be16toh
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/tmux/compat/imsg-buffer.c
      type_or_value: ntohs
    - item_type: preproc_def
      name: be32toh
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/tmux/compat/imsg-buffer.c
      type_or_value: ntohl
    - item_type: preproc_def
      name: be64toh
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/tmux/compat/imsg-buffer.c
      type_or_value: ntohll
    - item_type: preproc_def
      name: IBUF_FD_MARK_ON_STACK
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/tmux/compat/imsg-buffer.c
      type_or_value: '-2'
    structs:
    - fields:
      - name: (, ibuf)
        type: TAILQ_HEAD
      - name: queued
        type: uint32_t
      item_type: struct
      name: ibufqueue
      pos:
        line_end: 50
        line_start: 47
        source_file: /src/tmux/compat/imsg-buffer.c
    - fields:
      - name: bufs
        type: struct ibufqueue
      - name: rbufs
        type: struct ibufqueue
      - name: '*rbuf'
        type: char
      - name: '*rpmsg'
        type: struct ibuf
      - name: '*(*readhdr)(struct ibuf *, void *, int *)'
        type: struct ibuf
      - name: '*rarg'
        type: void
      - name: roff
        type: size_t
      - name: hdrsize
        type: size_t
      item_type: struct
      name: msgbuf
      pos:
        line_end: 61
        line_start: 52
        source_file: /src/tmux/compat/imsg-buffer.c
    typedefs: []
    union:
    - fields:
      - name: hdr
        type: struct cmsghdr
      - name: buf[CMSG_SPACE(sizeof(int))]
        type: char
      item_type: union
      name: cmsgbuf
      pos:
        line_end: 768
        line_start: 765
        source_file: /src/tmux/compat/imsg-buffer.c
    - fields:
      - name: hdr
        type: struct cmsghdr
      - name: buf[CMSG_SPACE(sizeof(int) * 1)]
        type: char
      item_type: union
      name: cmsgbuf
      pos:
        line_end: 915
        line_start: 912
        source_file: /src/tmux/compat/imsg-buffer.c
- function_names:
  - recallocarray
  source_file: /src/tmux/compat/recallocarray.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MUL_NO_OVERFLOW
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/tmux/compat/recallocarray.c
      type_or_value: ((size_t)1 << (sizeof(size_t) * 4))
    structs: []
    typedefs: []
    union: []
- function_names:
  - getptmfd
  - fdforkpty
  source_file: /src/tmux/compat/fdforkpty.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ntohll
  source_file: /src/tmux/compat/ntohll.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - reallocarray
  source_file: /src/tmux/compat/reallocarray.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MUL_NO_OVERFLOW
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/tmux/compat/reallocarray.c
      type_or_value: ((size_t)1 << (sizeof(size_t) * 4))
    structs: []
    typedefs: []
    union: []
- function_names:
  - forkpty
  source_file: /src/tmux/compat/forkpty-haiku.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - strlcpy
  source_file: /src/tmux/compat/strlcpy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NAMLEN
  - NAMLEN
  - closefrom_fallback
  - closefrom
  - closefrom
  - closefrom
  - closefrom
  source_file: /src/tmux/compat/closefrom.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: dirent
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/tmux/compat/closefrom.c
      type_or_value: direct
    - item_type: preproc_def
      name: OPEN_MAX
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/tmux/compat/closefrom.c
      type_or_value: '256'
    structs: []
    typedefs: []
    union: []
- function_names:
  - strcasestr
  source_file: /src/tmux/compat/strcasestr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - strsep
  source_file: /src/tmux/compat/strsep.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TIMEVAL_TO_TIMESPEC
  - clock_gettime
  source_file: /src/tmux/compat/clock_gettime.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - freezero
  source_file: /src/tmux/compat/freezero.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - forkpty
  source_file: /src/tmux/compat/forkpty-hpux.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - htonll
  source_file: /src/tmux/compat/htonll.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - imsgbuf_init
  - imsgbuf_allow_fdpass
  - imsgbuf_set_maxsize
  - imsgbuf_read
  - imsgbuf_write
  - imsgbuf_flush
  - imsgbuf_clear
  - imsgbuf_queuelen
  - imsgbuf_get
  - imsg_get
  - imsg_ibufq_pop
  - imsg_ibufq_push
  - imsg_get_ibuf
  - imsg_get_data
  - imsg_get_buf
  - imsg_get_strbuf
  - imsg_get_fd
  - imsg_get_id
  - imsg_get_len
  - imsg_get_pid
  - imsg_get_type
  - imsg_compose
  - imsg_composev
  - imsg_compose_ibuf
  - imsg_forward
  - imsg_create
  - imsg_add
  - imsg_close
  - imsg_free
  - imsg_set_maxsize
  - imsg_parse_hdr
  source_file: /src/tmux/compat/imsg.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IMSG_ALLOW_FDPASS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/tmux/compat/imsg.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: IMSG_FD_MARK
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/tmux/compat/imsg.c
      type_or_value: 0x80000000U
    structs: []
    typedefs: []
    union: []
- function_names:
  - daemon_darwin
  - daemon_darwin
  source_file: /src/tmux/compat/daemon-darwin.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - strtonum
  source_file: /src/tmux/compat/strtonum.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INVALID
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/tmux/compat/strtonum.c
      type_or_value: '1'
    - item_type: preproc_def
      name: TOOSMALL
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/tmux/compat/strtonum.c
      type_or_value: '2'
    - item_type: preproc_def
      name: TOOLARGE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/tmux/compat/strtonum.c
      type_or_value: '3'
    structs:
    - fields:
      - name: '*errstr'
        type: char
      - name: err
        type: int
      item_type: struct
      name: errval
      pos:
        line_end: 39
        line_start: 36
        source_file: /src/tmux/compat/strtonum.c
    typedefs: []
    union: []
- function_names:
  - fgetln
  source_file: /src/tmux/compat/fgetln.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - err
  - errx
  - warn
  - warnx
  source_file: /src/tmux/compat/err.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/tmux/compat/imsg.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IBUF_READ_SIZE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/tmux/compat/imsg.h
      type_or_value: '65535'
    - item_type: preproc_def
      name: IMSG_HEADER_SIZE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/tmux/compat/imsg.h
      type_or_value: sizeof(struct imsg_hdr)
    - item_type: preproc_def
      name: MAX_IMSGSIZE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/tmux/compat/imsg.h
      type_or_value: '16384'
    structs:
    - fields:
      - name: (ibuf)
        type: TAILQ_ENTRY
      - name: '*buf'
        type: unsigned char
      - name: size
        type: size_t
      - name: max
        type: size_t
      - name: wpos
        type: size_t
      - name: rpos
        type: size_t
      - name: fd
        type: int
      item_type: struct
      name: ibuf
      pos:
        line_end: 39
        line_start: 31
        source_file: /src/tmux/compat/imsg.h
    - fields:
      - name: '*w'
        type: struct msgbuf
      - name: pid
        type: pid_t
      - name: maxsize
        type: uint32_t
      - name: fd
        type: int
      - name: flags
        type: int
      item_type: struct
      name: imsgbuf
      pos:
        line_end: 50
        line_start: 44
        source_file: /src/tmux/compat/imsg.h
    - fields:
      - name: type
        type: uint32_t
      - name: len
        type: uint32_t
      - name: peerid
        type: uint32_t
      - name: pid
        type: uint32_t
      item_type: struct
      name: imsg_hdr
      pos:
        line_end: 57
        line_start: 52
        source_file: /src/tmux/compat/imsg.h
    - fields:
      - name: hdr
        type: struct imsg_hdr
      - name: '*data'
        type: void
      - name: '*buf'
        type: struct ibuf
      item_type: struct
      name: imsg
      pos:
        line_end: 63
        line_start: 59
        source_file: /src/tmux/compat/imsg.h
    typedefs: []
    union: []
- function_names:
  - systemd_activated
  - systemd_create_socket
  - job_removed_handler
  - systemd_move_to_new_cgroup
  source_file: /src/tmux/compat/systemd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SD_ID128_UUID_FORMAT_STR
      pos:
        line_end: 35
        line_start: 33
        source_file: /src/tmux/compat/systemd.c
      type_or_value: '"%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x"'
    structs:
    - fields:
      - name: '*path'
        type: char
      - name: done
        type: int
      item_type: struct
      name: systemd_job_watch
      pos:
        line_end: 80
        line_start: 77
        source_file: /src/tmux/compat/systemd.c
    typedefs: []
    union: []
- function_names:
  - isoctal
  - isvisible
  - vis
  - strvis
  - strnvis
  - stravis
  - strvisx
  source_file: /src/tmux/compat/vis.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - b64_ntop
  - b64_pton
  source_file: /src/tmux/compat/base64.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - strlcat
  source_file: /src/tmux/compat/strlcat.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - asprintf
  - vasprintf
  source_file: /src/tmux/compat/asprintf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - isoctal
  - unvis
  - strunvis
  - strnunvis
  source_file: /src/tmux/compat/unvis.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: S_GROUND
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/tmux/compat/unvis.c
      type_or_value: "0\t"
    - item_type: preproc_def
      name: S_START
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/tmux/compat/unvis.c
      type_or_value: "1\t"
    - item_type: preproc_def
      name: S_META
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/tmux/compat/unvis.c
      type_or_value: "2\t"
    - item_type: preproc_def
      name: S_META1
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/tmux/compat/unvis.c
      type_or_value: "3\t"
    - item_type: preproc_def
      name: S_CTRL
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/tmux/compat/unvis.c
      type_or_value: "4\t"
    - item_type: preproc_def
      name: S_OCTAL2
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/tmux/compat/unvis.c
      type_or_value: "5\t"
    - item_type: preproc_def
      name: S_OCTAL3
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/tmux/compat/unvis.c
      type_or_value: "6\t"
    structs: []
    typedefs: []
    union: []
- function_names:
  - strnlen
  source_file: /src/tmux/compat/strnlen.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - explicit_bzero
  source_file: /src/tmux/compat/explicit_bzero.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getprogname
  - getprogname
  - getprogname
  source_file: /src/tmux/compat/getprogname.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - forkpty
  source_file: /src/tmux/compat/forkpty-sunos.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gcd
  - permute_args
  - parse_long_options
  - getopt_internal
  - getopt
  - getopt_long
  - getopt_long_only
  source_file: /src/tmux/compat/getopt_long.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: no_argument
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/tmux/compat/getopt_long.c
      type_or_value: '0'
    - item_type: preproc_def
      name: required_argument
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/tmux/compat/getopt_long.c
      type_or_value: '1'
    - item_type: preproc_def
      name: optional_argument
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/tmux/compat/getopt_long.c
      type_or_value: '2'
    - item_type: preproc_def
      name: PRINT_ERROR
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/tmux/compat/getopt_long.c
      type_or_value: ((opterr) && (*options != ':'))
    - item_type: preproc_def
      name: FLAG_PERMUTE
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/tmux/compat/getopt_long.c
      type_or_value: "0x01\t"
    - item_type: preproc_def
      name: FLAG_ALLARGS
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/tmux/compat/getopt_long.c
      type_or_value: "0x02\t"
    - item_type: preproc_def
      name: FLAG_LONGONLY
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/tmux/compat/getopt_long.c
      type_or_value: "0x04\t"
    - item_type: preproc_def
      name: BADCH
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/tmux/compat/getopt_long.c
      type_or_value: (int)'?'
    - item_type: preproc_def
      name: BADARG
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/tmux/compat/getopt_long.c
      type_or_value: '((*options == '':'') ? (int)'':'' : (int)''?'')'
    - item_type: preproc_def
      name: INORDER
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/tmux/compat/getopt_long.c
      type_or_value: (int)1
    - item_type: preproc_def
      name: EMSG
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/tmux/compat/getopt_long.c
      type_or_value: (char *)""
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: has_arg
        type: int
      - name: '*flag'
        type: int
      - name: val
        type: int
      item_type: struct
      name: option
      pos:
        line_end: 117
        line_start: 105
        source_file: /src/tmux/compat/getopt_long.c
    typedefs: []
    union: []
- function_names:
  - _Q_INVALIDATE
  - SLIST_HEAD_INITIALIZER
  - SLIST_FIRST
  - SLIST_END
  - SLIST_EMPTY
  - SLIST_NEXT
  - SLIST_FOREACH
  - SLIST_FOREACH_SAFE
  - SLIST_INIT
  - SLIST_INSERT_AFTER
  - SLIST_INSERT_HEAD
  - SLIST_REMOVE_AFTER
  - SLIST_REMOVE_HEAD
  - SLIST_REMOVE
  - LIST_HEAD_INITIALIZER
  - LIST_ENTRY
  - LIST_FIRST
  - LIST_END
  - LIST_EMPTY
  - LIST_NEXT
  - LIST_FOREACH
  - LIST_FOREACH_SAFE
  - LIST_INIT
  - LIST_INSERT_AFTER
  - LIST_INSERT_BEFORE
  - LIST_INSERT_HEAD
  - LIST_REMOVE
  - LIST_REPLACE
  - SIMPLEQ_HEAD
  - SIMPLEQ_HEAD_INITIALIZER
  - SIMPLEQ_FIRST
  - SIMPLEQ_END
  - SIMPLEQ_EMPTY
  - SIMPLEQ_NEXT
  - SIMPLEQ_FOREACH
  - SIMPLEQ_FOREACH_SAFE
  - SIMPLEQ_INIT
  - SIMPLEQ_INSERT_HEAD
  - SIMPLEQ_INSERT_TAIL
  - SIMPLEQ_INSERT_AFTER
  - SIMPLEQ_REMOVE_HEAD
  - SIMPLEQ_REMOVE_AFTER
  - SIMPLEQ_CONCAT
  - XSIMPLEQ_HEAD
  - XSIMPLEQ_XOR
  - XSIMPLEQ_FIRST
  - XSIMPLEQ_END
  - XSIMPLEQ_EMPTY
  - XSIMPLEQ_NEXT
  - XSIMPLEQ_FOREACH
  - XSIMPLEQ_FOREACH_SAFE
  - XSIMPLEQ_INIT
  - XSIMPLEQ_INSERT_HEAD
  - XSIMPLEQ_INSERT_TAIL
  - XSIMPLEQ_INSERT_AFTER
  - XSIMPLEQ_REMOVE_HEAD
  - XSIMPLEQ_REMOVE_AFTER
  - TAILQ_HEAD
  - TAILQ_HEAD_INITIALIZER
  - TAILQ_ENTRY
  - TAILQ_FIRST
  - TAILQ_END
  - TAILQ_NEXT
  - TAILQ_LAST
  - TAILQ_PREV
  - TAILQ_EMPTY
  - TAILQ_FOREACH
  - TAILQ_FOREACH_SAFE
  - TAILQ_FOREACH_REVERSE
  - TAILQ_FOREACH_REVERSE_SAFE
  - TAILQ_INIT
  - TAILQ_INSERT_HEAD
  - TAILQ_INSERT_TAIL
  - TAILQ_INSERT_AFTER
  - TAILQ_INSERT_BEFORE
  - TAILQ_REMOVE
  - TAILQ_REPLACE
  - TAILQ_CONCAT
  source_file: /src/tmux/compat/queue.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - utf8proc_wcwidth
  - utf8proc_mbtowc
  - utf8proc_wctomb
  source_file: /src/tmux/compat/utf8proc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - strndup
  source_file: /src/tmux/compat/strndup.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - setenv
  - unsetenv
  source_file: /src/tmux/compat/setenv.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cfmakeraw
  source_file: /src/tmux/compat/cfmakeraw.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getpeereid
  source_file: /src/tmux/compat/getpeereid.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - forkpty
  source_file: /src/tmux/compat/forkpty-aix.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getdtablecount
  - getdtablecount
  - getdtablecount
  source_file: /src/tmux/compat/getdtablecount.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getdelim
  - getline
  source_file: /src/tmux/compat/getline.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SPLAY_INITIALIZER
  - SPLAY_INIT
  - SPLAY_ENTRY
  - SPLAY_LEFT
  - SPLAY_RIGHT
  - SPLAY_ROOT
  - SPLAY_EMPTY
  - SPLAY_ROTATE_RIGHT
  - SPLAY_ROTATE_LEFT
  - SPLAY_LINKLEFT
  - SPLAY_LINKRIGHT
  - SPLAY_ASSEMBLE
  - SPLAY_PROTOTYPE
  - _SPLAY_FIND
  - _SPLAY_NEXT
  - _SPLAY_MIN_MAX
  - SPLAY_GENERATE
  - _SPLAY_MINMAX
  - SPLAY_INSERT
  - SPLAY_REMOVE
  - SPLAY_FIND
  - SPLAY_NEXT
  - SPLAY_MIN
  - SPLAY_MAX
  - SPLAY_FOREACH
  - RB_INITIALIZER
  - RB_INIT
  - RB_ENTRY
  - RB_LEFT
  - RB_RIGHT
  - RB_PARENT
  - RB_COLOR
  - RB_ROOT
  - RB_EMPTY
  - RB_SET
  - RB_SET_BLACKRED
  - RB_AUGMENT
  - RB_ROTATE_LEFT
  - RB_ROTATE_RIGHT
  - RB_PROTOTYPE
  - RB_PROTOTYPE_STATIC
  - RB_PROTOTYPE_INTERNAL
  - RB_GENERATE
  - RB_GENERATE_STATIC
  - RB_GENERATE_INTERNAL
  - _RB_INSERT
  - _RB_FIND
  - _RB_NFIND
  - _RB_NEXT
  - _RB_PREV
  - _RB_MINMAX
  - RB_INSERT
  - RB_REMOVE
  - RB_FIND
  - RB_NFIND
  - RB_NEXT
  - RB_PREV
  - RB_MIN
  - RB_MAX
  - RB_FOREACH
  - RB_FOREACH_SAFE
  - RB_FOREACH_REVERSE
  - RB_FOREACH_REVERSE_SAFE
  source_file: /src/tmux/compat/tree.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPLAY_NEGINF
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/tmux/compat/tree.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: SPLAY_INF
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/tmux/compat/tree.h
      type_or_value: '1'
    - item_type: preproc_def
      name: RB_BLACK
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/tmux/compat/tree.h
      type_or_value: '0'
    - item_type: preproc_def
      name: RB_RED
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/tmux/compat/tree.h
      type_or_value: '1'
    - item_type: preproc_def
      name: RB_NEGINF
      pos:
        line_end: 716
        line_start: 715
        source_file: /src/tmux/compat/tree.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: RB_INF
      pos:
        line_end: 717
        line_start: 716
        source_file: /src/tmux/compat/tree.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - getdtablesize
  source_file: /src/tmux/compat/getdtablesize.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - memmem
  source_file: /src/tmux/compat/memmem.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/tmux/compat/vis.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VIS_OCTAL
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/tmux/compat/vis.h
      type_or_value: "0x01\t"
    - item_type: preproc_def
      name: VIS_CSTYLE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/tmux/compat/vis.h
      type_or_value: "0x02\t"
    - item_type: preproc_def
      name: VIS_SP
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/tmux/compat/vis.h
      type_or_value: "0x04\t"
    - item_type: preproc_def
      name: VIS_TAB
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/tmux/compat/vis.h
      type_or_value: "0x08\t"
    - item_type: preproc_def
      name: VIS_NL
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/tmux/compat/vis.h
      type_or_value: "0x10\t"
    - item_type: preproc_def
      name: VIS_WHITE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/tmux/compat/vis.h
      type_or_value: (VIS_SP | VIS_TAB | VIS_NL)
    - item_type: preproc_def
      name: VIS_SAFE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/tmux/compat/vis.h
      type_or_value: "0x20\t"
    - item_type: preproc_def
      name: VIS_DQ
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/tmux/compat/vis.h
      type_or_value: "0x200\t"
    - item_type: preproc_def
      name: VIS_ALL
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/tmux/compat/vis.h
      type_or_value: "0x400\t"
    - item_type: preproc_def
      name: VIS_NOSLASH
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/tmux/compat/vis.h
      type_or_value: "0x40\t"
    - item_type: preproc_def
      name: VIS_GLOB
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/tmux/compat/vis.h
      type_or_value: "0x100\t"
    - item_type: preproc_def
      name: UNVIS_VALID
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/tmux/compat/vis.h
      type_or_value: "1\t"
    - item_type: preproc_def
      name: UNVIS_VALIDPUSH
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/tmux/compat/vis.h
      type_or_value: "2\t"
    - item_type: preproc_def
      name: UNVIS_NOCHAR
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/tmux/compat/vis.h
      type_or_value: "3\t"
    - item_type: preproc_def
      name: UNVIS_SYNBAD
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/tmux/compat/vis.h
      type_or_value: "-1\t"
    - item_type: preproc_def
      name: UNVIS_ERROR
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/tmux/compat/vis.h
      type_or_value: "-2\t"
    - item_type: preproc_def
      name: UNVIS_END
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/tmux/compat/vis.h
      type_or_value: "1\t"
    structs: []
    typedefs: []
    union: []
- function_names:
  - daemon
  source_file: /src/tmux/compat/daemon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _bit_byte
  - _bit_mask
  - bitstr_size
  - bit_alloc
  - bit_decl
  - bit_test
  - bit_set
  - bit_clear
  - bit_nclear
  - bit_nset
  - bit_ffc
  - bit_ffs
  source_file: /src/tmux/compat/bitstring.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: bitstr_t
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/tmux/compat/bitstring.h
      type: unsigned char
    union: []
- function_names:
  - setproctitle
  - setproctitle
  source_file: /src/tmux/compat/setproctitle.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  - LLVMFuzzerInitialize
  source_file: /src/tmux/fuzz/style-fuzzer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  - LLVMFuzzerInitialize
  source_file: /src/tmux/fuzz/input-fuzzer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FUZZER_MAXLEN
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/tmux/fuzz/input-fuzzer.c
      type_or_value: '512'
    - item_type: preproc_def
      name: PANE_WIDTH
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/tmux/fuzz/input-fuzzer.c
      type_or_value: '80'
    - item_type: preproc_def
      name: PANE_HEIGHT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/tmux/fuzz/input-fuzzer.c
      type_or_value: '25'
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  - LLVMFuzzerInitialize
  source_file: /src/tmux/fuzz/format-fuzzer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  - LLVMFuzzerInitialize
  source_file: /src/tmux/fuzz/cmd-parse-fuzzer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EVENT_DEBUG_MODE_IS_ON
  - EVENT_DEBUG_MODE_IS_ON
  - LIST_END
  - TAILQ_FIRST
  - TAILQ_END
  - TAILQ_NEXT
  - TAILQ_FOREACH
  - TAILQ_INSERT_BEFORE
  - N_ACTIVE_CALLBACKS
  source_file: /src/libevent/event-internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ev_signal_next
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/libevent/event-internal.h
      type_or_value: ev_.ev_signal.ev_signal_next
    - item_type: preproc_def
      name: ev_io_next
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/libevent/event-internal.h
      type_or_value: ev_.ev_io.ev_io_next
    - item_type: preproc_def
      name: ev_io_timeout
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/libevent/event-internal.h
      type_or_value: ev_.ev_io.ev_timeout
    - item_type: preproc_def
      name: ev_ncalls
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/libevent/event-internal.h
      type_or_value: ev_.ev_signal.ev_ncalls
    - item_type: preproc_def
      name: ev_pncalls
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/libevent/event-internal.h
      type_or_value: ev_.ev_signal.ev_pncalls
    - item_type: preproc_def
      name: ev_pri
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/libevent/event-internal.h
      type_or_value: ev_evcallback.evcb_pri
    - item_type: preproc_def
      name: ev_flags
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/libevent/event-internal.h
      type_or_value: ev_evcallback.evcb_flags
    - item_type: preproc_def
      name: ev_closure
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/libevent/event-internal.h
      type_or_value: ev_evcallback.evcb_closure
    - item_type: preproc_def
      name: ev_callback
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/libevent/event-internal.h
      type_or_value: ev_evcallback.evcb_cb_union.evcb_callback
    - item_type: preproc_def
      name: ev_arg
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/libevent/event-internal.h
      type_or_value: ev_evcallback.evcb_arg
    - item_type: preproc_def
      name: EV_CLOSURE_EVENT
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libevent/event-internal.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EV_CLOSURE_EVENT_SIGNAL
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/libevent/event-internal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EV_CLOSURE_EVENT_PERSIST
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libevent/event-internal.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EV_CLOSURE_CB_SELF
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libevent/event-internal.h
      type_or_value: '3'
    - item_type: preproc_def
      name: EV_CLOSURE_CB_FINALIZE
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libevent/event-internal.h
      type_or_value: '4'
    - item_type: preproc_def
      name: EV_CLOSURE_EVENT_FINALIZE
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libevent/event-internal.h
      type_or_value: '5'
    - item_type: preproc_def
      name: EV_CLOSURE_EVENT_FINALIZE_FREE
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libevent/event-internal.h
      type_or_value: '6'
    - item_type: preproc_def
      name: event_io_map
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/libevent/event-internal.h
      type_or_value: event_signal_map
    - item_type: preproc_def
      name: COMMON_TIMEOUT_MICROSECONDS_MASK
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/libevent/event-internal.h
      type_or_value: '0x000fffff'
    - item_type: preproc_def
      name: EVWATCH_PREPARE
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/libevent/event-internal.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EVWATCH_CHECK
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/libevent/event-internal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVWATCH_MAX
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/libevent/event-internal.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EVENT_DEL_NOBLOCK
      pos:
        line_end: 461
        line_start: 460
        source_file: /src/libevent/event-internal.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EVENT_DEL_BLOCK
      pos:
        line_end: 465
        line_start: 464
        source_file: /src/libevent/event-internal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVENT_DEL_AUTOBLOCK
      pos:
        line_end: 469
        line_start: 468
        source_file: /src/libevent/event-internal.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EVENT_DEL_EVEN_IF_FINALIZING
      pos:
        line_end: 472
        line_start: 471
        source_file: /src/libevent/event-internal.h
      type_or_value: '3'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*(*init)(struct event_base *)'
        type: void
      - name: (*add)(struct event_base *, evutil_socket_t fd, short old, short events,
          void *fdinfo)
        type: int
      - name: (*del)(struct event_base *, evutil_socket_t fd, short old, short events,
          void *fdinfo)
        type: int
      - name: (*dispatch)(struct event_base *, struct timeval *)
        type: int
      - name: (*dealloc)(struct event_base *)
        type: void
      - name: need_reinit
        type: int
      - name: features
        type: enum event_method_feature
      - name: fdinfo_len
        type: size_t
      item_type: struct
      name: eventop
      pos:
        line_end: 126
        line_start: 86
        source_file: /src/libevent/event-internal.h
    - fields:
      - name: '**entries'
        type: void
      - name: nentries
        type: int
      item_type: struct
      name: event_signal_map
      pos:
        line_end: 157
        line_start: 151
        source_file: /src/libevent/event-internal.h
    - fields:
      - name: events
        type: struct event_list
      - name: duration
        type: struct timeval
      - name: timeout_event
        type: struct event
      - name: '*base'
        type: struct event_base
      item_type: struct
      name: common_timeout_list
      pos:
        line_end: 174
        line_start: 163
        source_file: /src/libevent/event-internal.h
    - fields:
      - name: '*changes'
        type: struct event_change
      - name: n_changes
        type: int
      - name: changes_size
        type: int
      item_type: struct
      name: event_changelist
      pos:
        line_end: 187
        line_start: 183
        source_file: /src/libevent/event-internal.h
    - fields:
      - name: (event_once)
        type: LIST_ENTRY
      - name: ev
        type: struct event
      - name: (*cb)(evutil_socket_t, short, void *)
        type: void
      - name: '*arg'
        type: void
      item_type: struct
      name: event_once
      pos:
        line_end: 206
        line_start: 200
        source_file: /src/libevent/event-internal.h
    - fields:
      - name: '*timeout'
        type: struct timeval
      item_type: struct
      name: evwatch_prepare_cb_info
      pos:
        line_end: 215
        line_start: 211
        source_file: /src/libevent/event-internal.h
    - fields:
      - name: '*unused'
        type: void
      item_type: struct
      name: evwatch_check_cb_info
      pos:
        line_end: 223
        line_start: 220
        source_file: /src/libevent/event-internal.h
    - fields:
      - name: next
        type: TAILQ_ENTRY
      - name: '*base'
        type: struct event_base
      - name: type
        type: unsigned
      - name: callback
        type: union evwatch_cb
      - name: '*arg'
        type: void
      item_type: struct
      name: evwatch
      pos:
        line_end: 251
        line_start: 235
        source_file: /src/libevent/event-internal.h
    - fields:
      - name: '*evsel'
        type: struct eventop
      - name: '*evbase'
        type: void
      - name: changelist
        type: struct event_changelist
      - name: '*evsigsel'
        type: struct eventop
      - name: sig
        type: struct evsig_info
      - name: virtual_event_count
        type: int
      - name: virtual_event_count_max
        type: int
      - name: event_count
        type: int
      - name: event_count_max
        type: int
      - name: event_count_active
        type: int
      - name: event_count_active_max
        type: int
      - name: event_gotterm
        type: int
      - name: event_break
        type: int
      - name: event_continue
        type: int
      - name: event_running_priority
        type: int
      - name: running_loop
        type: int
      - name: n_deferreds_queued
        type: int
      - name: '*activequeues'
        type: struct evcallback_list
      - name: nactivequeues
        type: int
      - name: active_later_queue
        type: struct evcallback_list
      - name: '**common_timeout_queues'
        type: struct common_timeout_list
      - name: n_common_timeouts
        type: int
      - name: n_common_timeouts_allocated
        type: int
      - name: io
        type: struct event_io_map
      - name: sigmap
        type: struct event_signal_map
      - name: timeheap
        type: struct min_heap
      - name: tv_cache
        type: struct timeval
      - name: monotonic_timer
        type: struct evutil_monotonic_timer
      - name: tv_clock_diff
        type: struct timeval
      - name: last_updated_clock_diff
        type: time_t
      - name: '*current_event'
        type: struct event_callback
      - name: flags
        type: enum event_base_config_flag
      - name: max_dispatch_time
        type: struct timeval
      - name: max_dispatch_callbacks
        type: int
      - name: limit_callbacks_after_prio
        type: int
      - name: is_notify_pending
        type: int
      - name: th_notify_fd[2]
        type: evutil_socket_t
      - name: th_notify
        type: struct event
      - name: (*th_notify_fn)(struct event_base *base)
        type: int
      - name: weakrand_seed
        type: struct evutil_weakrand_state
      - name: watchers[EVWATCH_MAX]
        type: struct evwatch_list
      item_type: struct
      name: event_base
      pos:
        line_end: 397
        line_start: 254
        source_file: /src/libevent/event-internal.h
    - fields:
      - name: (event_config_entry)
        type: TAILQ_ENTRY
      - name: '*avoid_method'
        type: char
      item_type: struct
      name: event_config_entry
      pos:
        line_end: 403
        line_start: 399
        source_file: /src/libevent/event-internal.h
    - fields:
      - name: n_cpus_hint
        type: int
      - name: max_dispatch_interval
        type: struct timeval
      - name: max_dispatch_callbacks
        type: int
      - name: limit_callbacks_after_prio
        type: int
      - name: require_features
        type: enum event_method_feature
      - name: flags
        type: enum event_base_config_flag
      item_type: struct
      name: event_config
      pos:
        line_end: 416
        line_start: 407
        source_file: /src/libevent/event-internal.h
    typedefs: []
    union:
    - fields:
      - name: prepare
        type: evwatch_prepare_cb
      - name: check
        type: evwatch_check_cb
      item_type: union
      name: evwatch_cb
      pos:
        line_end: 234
        line_start: 231
        source_file: /src/libevent/event-internal.h
- function_names:
  - evwatch_new
  - evwatch_prepare_new
  - evwatch_check_new
  - evwatch_base
  - evwatch_free
  - evwatch_prepare_get_timeout
  source_file: /src/libevent/watch.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mm_malloc
  - mm_calloc
  - mm_strdup
  - mm_realloc
  - mm_free
  - mm_malloc
  - mm_calloc
  - mm_strdup
  - mm_realloc
  - mm_free
  source_file: /src/libevent/mm-internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - member_size
  - fake_getnameinfo
  - REQ_VERSION_BEFORE
  - REQ_VERSION_ATLEAST
  - MIN
  - strsep
  - html_replace
  - evhttp_htmlescape
  - evhttp_method_
  - evhttp_response_needs_body
  - evhttp_write_buffer
  - evhttp_send_continue_done
  - evhttp_send_continue
  - evhttp_connected
  - evhttp_make_header_request
  - evhttp_is_connection_close
  - evhttp_is_request_connection_close
  - evhttp_is_connection_keepalive
  - evhttp_maybe_add_date_header
  - evhttp_maybe_add_content_length_header
  - evhttp_make_header_response
  - evhttp_have_expect
  - evhttp_make_header
  - evhttp_connection_set_max_headers_size
  - evhttp_connection_set_max_body_size
  - evhttp_connection_incoming_fail
  - evhttp_request_free_auto
  - evhttp_request_free_
  - evhttp_set_timeout_tv_
  - evhttp_set_timeout_
  - evhttp_connection_fail_
  - evhttp_write_cb
  - evhttp_connection_done
  - evhttp_handle_chunked_read
  - evhttp_read_trailer
  - evhttp_lingering_close
  - evhttp_lingering_fail
  - evhttp_read_body
  - get_deferred_queue
  - evhttp_read_cb
  - evhttp_deferred_read_cb
  - evhttp_write_connectioncb
  - evhttp_connection_free
  - evhttp_connection_free_on_completion
  - evhttp_connection_set_local_address
  - evhttp_connection_set_local_port
  - evhttp_request_dispatch
  - evhttp_connection_reset_hard_
  - evhttp_connection_reset_
  - evhttp_connection_start_detectclose
  - evhttp_connection_stop_detectclose
  - evhttp_connection_retry
  - evhttp_connection_cb_cleanup
  - evhttp_connection_read_on_write_error
  - evhttp_error_cb
  - evhttp_connection_cb
  - evhttp_valid_response_code
  - evhttp_parse_http_version
  - evhttp_parse_response_line
  - evhttp_parse_request_line
  - evhttp_find_header
  - TAILQ_FOREACH
  - evhttp_clear_headers
  - evhttp_remove_header
  - TAILQ_FOREACH
  - evhttp_header_is_valid_value
  - evhttp_add_header
  - evhttp_add_header_internal
  - evhttp_parse_firstline_
  - evhttp_append_to_last_header
  - evhttp_parse_headers_
  - evhttp_get_body_length
  - evhttp_method_may_have_body_
  - evhttp_get_body
  - evhttp_read_firstline
  - evhttp_read_header
  - evhttp_connection_new
  - evhttp_connection_set_existing_
  - evhttp_connection_new_
  - evhttp_connection_base_bufferevent_reuse_new
  - evhttp_connection_base_bufferevent_unix_new
  - evhttp_connection_base_bufferevent_new
  - evhttp_connection_get_bufferevent
  - evhttp_connection_get_server
  - evhttp_connection_base_new
  - evhttp_connection_set_family
  - evhttp_connection_set_flags
  - evhttp_connection_set_ext_method_cmp
  - evhttp_connection_set_base
  - evhttp_connection_set_timeout
  - evhttp_connection_set_timeout_tv
  - evhttp_connection_set_connect_timeout_tv
  - evhttp_connection_set_read_timeout_tv
  - evhttp_connection_set_write_timeout_tv
  - evhttp_connection_set_initial_retry_tv
  - evhttp_connection_set_retries
  - evhttp_connection_set_closecb
  - evhttp_connection_get_peer
  - evhttp_connection_get_addr
  - evhttp_connection_connect_
  - evhttp_make_request
  - evhttp_cancel_request
  - evhttp_start_read_
  - evhttp_start_write_
  - evhttp_send_done
  - evhttp_send_error
  - evhttp_send_notfound
  - evhttp_send
  - evhttp_send_reply
  - evhttp_send_reply_start
  - evhttp_send_reply_chunk_with_cb
  - evhttp_start_ws_
  - evhttp_send_reply_chunk
  - evhttp_send_reply_end
  - MEMBERSOF
  - evhttp_response_phrase_internal
  - evhttp_response_code_
  - evhttp_send_page_
  - CHAR_IS_UNRESERVED
  - evhttp_uriencode
  - evhttp_encode_uri
  - evhttp_decode_uri_internal
  - evhttp_decode_uri
  - evhttp_uridecode
  - evhttp_parse_query_impl
  - evhttp_parse_query
  - evhttp_parse_query_str
  - evhttp_parse_query_str_flags
  - evhttp_dispatch_callback
  - TAILQ_FOREACH
  - prefix_suffix_match
  - evhttp_find_alias
  - evhttp_find_vhost
  - evhttp_handle_request
  - accept_socket_cb
  - evhttp_bind_socket
  - evhttp_bind_socket_with_handle
  - evhttp_accept_socket
  - evhttp_foreach_bound_socket
  - evhttp_accept_socket_with_handle
  - evhttp_bind_listener
  - evhttp_bound_socket_get_fd
  - evhttp_bound_socket_get_listener
  - evhttp_bound_set_bevcb
  - evhttp_del_accept_socket
  - evhttp_new_object
  - evhttp_new
  - evhttp_start
  - evhttp_free
  - evhttp_add_virtual_host
  - evhttp_remove_virtual_host
  - evhttp_add_server_alias
  - evhttp_remove_server_alias
  - evhttp_set_timeout
  - evhttp_set_timeout_tv
  - evhttp_set_read_timeout_tv
  - evhttp_set_write_timeout_tv
  - evhttp_set_flags
  - evhttp_set_max_headers_size
  - evhttp_set_max_body_size
  - evhttp_set_max_connections
  - evhttp_get_connection_count
  - evhttp_set_default_content_type
  - evhttp_set_allowed_methods
  - evhttp_set_ext_method_cmp
  - evhttp_set_cb
  - evhttp_del_cb
  - evhttp_set_gencb
  - evhttp_set_bevcb
  - evhttp_set_newreqcb
  - evhttp_set_errorcb
  - evhttp_request_new
  - evhttp_request_free
  - evhttp_request_own
  - evhttp_request_is_owned
  - evhttp_request_get_connection
  - evhttp_connection_get_base
  - evhttp_request_set_chunked_cb
  - evhttp_request_set_header_cb
  - evhttp_request_set_error_cb
  - evhttp_request_set_on_complete_cb
  - evhttp_request_get_uri
  - evhttp_request_get_evhttp_uri
  - evhttp_request_get_host
  - evhttp_request_get_command
  - evhttp_request_get_response_code
  - evhttp_request_get_response_code_line
  - evhttp_request_get_input_headers
  - evhttp_request_get_output_headers
  - evhttp_request_get_input_buffer
  - evhttp_request_get_output_buffer
  - evhttp_get_request_connection
  - evhttp_associate_new_request_with_connection
  - evhttp_get_request
  - name_from_addr
  - create_bind_socket_nonblock
  - make_addrinfo
  - bind_socket
  - evhttp_uri_new
  - evhttp_uri_set_flags
  - scheme_ok
  - userinfo_ok
  - regname_ok
  - parse_port
  - bracket_addr_ok
  - parse_authority
  - end_of_authority
  - end_of_path
  - path_matches_noscheme
  - evhttp_uri_parse
  - evhttp_uri_parse_with_flags
  - evhttp_uri_parse_authority
  - evhttp_uri_free
  - URI_FREE_STR_
  - evhttp_uri_join
  - URI_ADD_
  - evhttp_uri_get_scheme
  - evhttp_uri_get_userinfo
  - evhttp_uri_get_host
  - evhttp_uri_get_unixsocket
  - evhttp_uri_get_port
  - evhttp_uri_get_path
  - evhttp_uri_get_query
  - evhttp_uri_get_fragment
  - URI_SET_STR_
  - evhttp_uri_set_scheme
  - evhttp_uri_set_userinfo
  - evhttp_uri_set_host
  - evhttp_uri_set_unixsocket
  - evhttp_uri_set_port
  - end_of_cpath
  - evhttp_uri_set_path
  - evhttp_uri_set_query
  - evhttp_uri_set_fragment
  source_file: /src/libevent/http.c
  types:
    enum:
    - enumerators:
      - name: 'NO'
      - name: CONTINUE
      - name: OTHER
      item_type: enum
      name: expect
      pos:
        line_end: 653
        line_start: 653
        source_file: /src/libevent/http.c
    - enumerators:
      - name: PART_PATH
      - name: PART_FRAGMENT
      - name: PART_QUERY
      item_type: enum
      name: uri_part
      pos:
        line_end: 5173
        line_start: 5169
        source_file: /src/libevent/http.c
    preproc_defs:
    - item_type: preproc_def
      name: NI_MAXSERV
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/libevent/http.c
      type_or_value: '32'
    - item_type: preproc_def
      name: NI_MAXHOST
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/libevent/http.c
      type_or_value: '1025'
    - item_type: preproc_def
      name: NI_NUMERICHOST
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/libevent/http.c
      type_or_value: '1'
    - item_type: preproc_def
      name: NI_NUMERICSERV
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/libevent/http.c
      type_or_value: '2'
    - item_type: preproc_def
      name: EVHTTP_REQ_OWN_CONNECTION
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/libevent/http.c
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: EVHTTP_USER_OWNED
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/libevent/http.c
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: EVHTTP_REQ_DEFER_FREE
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/libevent/http.c
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: EVHTTP_REQ_NEEDS_FREE
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/libevent/http.c
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: ERR_FORMAT
      pos:
        line_end: 3097
        line_start: 3092
        source_file: /src/libevent/http.c
      type_or_value: "\"<html><head>\" \\\n\t\"<title>%d %s</title>\" \\\n\t\"</head><body>\"
        \\\n\t\"<h1>%d %s</h1>%s\" \\\n\t\"</body></html>\""
    - item_type: preproc_def
      name: REASON_FORMAT
      pos:
        line_end: 3130
        line_start: 3129
        source_file: /src/libevent/http.c
      type_or_value: '"<p>The requested URL %s was not found on this server.</p>"'
    - item_type: preproc_def
      name: SUBDELIMS
      pos:
        line_end: 4971
        line_start: 4970
        source_file: /src/libevent/http.c
      type_or_value: '"!$&''()*+,;="'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: num_responses
        type: size_t
      - name: '**responses'
        type: char
      item_type: struct
      name: response_class
      pos:
        line_end: 3365
        line_start: 3361
        source_file: /src/libevent/http.c
    - fields:
      - name: flags
        type: unsigned
      - name: '*scheme'
        type: char
      - name: '*userinfo'
        type: char
      - name: '*host'
        type: char
      - name: port
        type: int
      - name: '*path'
        type: char
      - name: '*query'
        type: char
      - name: '*fragment'
        type: char
      item_type: struct
      name: evhttp_uri
      pos:
        line_end: 4933
        line_start: 4921
        source_file: /src/libevent/http.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/wepoll.h
  types:
    enum:
    - enumerators:
      - name: EPOLLIN
        value: (int) (1U <<  0)
      - name: EPOLLPRI
        value: (int) (1U <<  1)
      - name: EPOLLERR
        value: (int) (1U <<  3)
      - name: EPOLLOUT
        value: (int) (1U <<  2)
      - name: EPOLLHUP
        value: (int) (1U <<  4)
      - name: EPOLLRDNORM
        value: (int) (1U <<  6)
      - name: EPOLLRDBAND
        value: (int) (1U <<  7)
      - name: EPOLLWRNORM
        value: (int) (1U <<  8)
      - name: EPOLLWRBAND
        value: (int) (1U <<  9)
      - name: EPOLLMSG
        value: (int) (1U << 10)
      - name: EPOLLRDHUP
        value: (int) (1U << 13)
      - name: EPOLLONESHOT
        value: (int) (1U << 30)
      item_type: enum
      name: EPOLL_EVENTS
      pos:
        line_end: 51
        line_start: 38
        source_file: /src/libevent/wepoll.h
    preproc_defs:
    - item_type: preproc_def
      name: EPOLLIN
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/libevent/wepoll.h
      type_or_value: (1U <<  0)
    - item_type: preproc_def
      name: EPOLLPRI
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/libevent/wepoll.h
      type_or_value: (1U <<  1)
    - item_type: preproc_def
      name: EPOLLOUT
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/libevent/wepoll.h
      type_or_value: (1U <<  2)
    - item_type: preproc_def
      name: EPOLLERR
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/libevent/wepoll.h
      type_or_value: (1U <<  3)
    - item_type: preproc_def
      name: EPOLLHUP
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/libevent/wepoll.h
      type_or_value: (1U <<  4)
    - item_type: preproc_def
      name: EPOLLRDNORM
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/libevent/wepoll.h
      type_or_value: (1U <<  6)
    - item_type: preproc_def
      name: EPOLLRDBAND
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/libevent/wepoll.h
      type_or_value: (1U <<  7)
    - item_type: preproc_def
      name: EPOLLWRNORM
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/libevent/wepoll.h
      type_or_value: (1U <<  8)
    - item_type: preproc_def
      name: EPOLLWRBAND
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/libevent/wepoll.h
      type_or_value: (1U <<  9)
    - item_type: preproc_def
      name: EPOLLMSG
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/libevent/wepoll.h
      type_or_value: (1U << 10)
    - item_type: preproc_def
      name: EPOLLRDHUP
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/libevent/wepoll.h
      type_or_value: (1U << 13)
    - item_type: preproc_def
      name: EPOLLONESHOT
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/libevent/wepoll.h
      type_or_value: (1U << 30)
    - item_type: preproc_def
      name: EPOLL_CTL_ADD
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/libevent/wepoll.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EPOLL_CTL_MOD
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/libevent/wepoll.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EPOLL_CTL_DEL
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/libevent/wepoll.h
      type_or_value: '3'
    structs:
    - fields:
      - name: events
        type: uint32_t
      - name: data
        type: epoll_data_t
      item_type: struct
      name: epoll_event
      pos:
        line_end: 85
        line_start: 82
        source_file: /src/libevent/wepoll.h
    typedefs:
    - item_type: typedef
      name: '* HANDLE'
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/libevent/wepoll.h
      type: void
    - item_type: typedef
      name: SOCKET
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/libevent/wepoll.h
      type: uintptr_t
    union:
    - fields:
      - name: '* ptr'
        type: void
      - name: fd
        type: int
      - name: u32
        type: uint32_t
      - name: u64
        type: uint64_t
      - name: sock
        type: SOCKET
      - name: hnd
        type: HANDLE
      item_type: union
      name: epoll_data
      pos:
        line_end: 80
        line_start: 73
        source_file: /src/libevent/wepoll.h
- function_names:
  - evutil_open_closeonexec_
  - evutil_fd_filesize
  - evutil_read_file_
  - N_TO_READ
  - N_TO_READ
  - create_tmpfile
  - evutil_check_working_afunix_
  - evutil_win_socketpair_afunix
  - ERR
  - evutil_win_socketpair
  - evutil_make_socket_nonblocking
  - evutil_fast_socket_nonblocking
  - evutil_make_listen_socket_reuseable
  - evutil_make_listen_socket_reuseable_port
  - evutil_make_listen_socket_ipv6only
  - evutil_make_listen_socket_not_ipv6only
  - evutil_make_tcp_listen_socket_deferred
  - evutil_make_socket_closeonexec
  - evutil_fast_socket_closeonexec
  - evutil_closesocket
  - evutil_strtoll
  - evutil_socket_geterror
  - evutil_socket_connect_
  - evutil_socket_finished_connecting_
  - evutil_v4addr_is_localhost
  - evutil_v4addr_is_linklocal
  - evutil_v4addr_is_classd
  - evutil_v4addr_is_local_
  - evutil_v6addr_is_local_
  - evutil_found_ifaddr
  - evutil_check_ifaddrs
  - evutil_check_interfaces
  - evutil_new_addrinfo_
  - evutil_addrinfo_append_
  - parse_numeric_servname
  - evutil_parse_servname
  - evutil_unparse_protoname
  - evutil_getaddrinfo_infer_protocols
  - evutil_getaddrinfo_common_
  - addrinfo_from_hostent
  - evutil_adjust_hints_for_addrconfig_
  - ai_find_protocol
  - need_numeric_port_hack
  - need_socktype_protocol_hack
  - apply_numeric_port_hack
  - apply_socktype_protocol_hack
  - evutil_getaddrinfo
  - evutil_freeaddrinfo
  - evutil_dup_addrinfo_
  - evutil_set_evdns_getaddrinfo_fn_
  - evutil_set_evdns_getaddrinfo_cancel_fn_
  - evutil_set_resolvconf_filename_
  - evutil_resolvconf_filename_
  - evutil_getaddrinfo_async_
  - evutil_getaddrinfo_cancel_async_
  - evutil_gai_strerror
  - chomp
  - hash_cached_sock_errs
  - eq_cached_sock_errs
  - evutil_socket_error_to_string
  - evutil_global_setup_locks_
  - evutil_free_sock_err_globals
  - evutil_global_setup_locks_
  - evutil_free_sock_err_globals
  - evutil_snprintf
  - evutil_vsnprintf
  - evutil_inet_ntop
  - evutil_inet_pton_scope
  - evutil_inet_pton
  - evutil_parse_sockaddr_port
  - evutil_format_sockaddr_port_
  - evutil_sockaddr_cmp
  - IMPL_CTYPE_FN
  - EVUTIL_TOLOWER_
  - EVUTIL_TOUPPER_
  - evutil_ascii_strcasecmp
  - evutil_ascii_strncasecmp
  - evutil_ascii_strcasestr
  - evutil_rtrim_lws_
  - evutil_issetugid
  - evutil_getenv_
  - evutil_weakrand_seed_
  - evutil_weakrand_
  - evutil_weakrand_range_
  - evutil_memclear_
  - evutil_sockaddr_is_loopback_
  - evutil_hex_char_to_int_
  - evutil_load_windows_system_library_
  - evutil_socket_
  - evutil_socketpair
  - evutil_ersatz_socketpair_
  - ERR
  - ERR
  - evutil_accept4_
  - evutil_make_internal_pipe_
  - evutil_eventfd_
  - evutil_free_globals_
  - EVENT_KEEPALIVE_FACTOR
  - evutil_strsignal
  source_file: /src/libevent/evutil.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _WIN32_WINNT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/libevent/evutil.c
      type_or_value: '0x0600'
    - item_type: preproc_def
      name: open
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/libevent/evutil.c
      type_or_value: _open
    - item_type: preproc_def
      name: read
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/libevent/evutil.c
      type_or_value: _read
    - item_type: preproc_def
      name: close
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/libevent/evutil.c
      type_or_value: _close
    - item_type: preproc_def
      name: fstat
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/libevent/evutil.c
      type_or_value: _fstati64
    - item_type: preproc_def
      name: stat
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/libevent/evutil.c
      type_or_value: _stati64
    - item_type: preproc_def
      name: mode_t
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/libevent/evutil.c
      type_or_value: int
    - item_type: preproc_def
      name: SIO_KEEPALIVE_VALS
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/libevent/evutil.c
      type_or_value: _WSAIOW(IOC_VENDOR,4)
    - item_type: preproc_def
      name: O_RDONLY
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/libevent/evutil.c
      type_or_value: _O_RDONLY
    - item_type: preproc_def
      name: FLAGS
      pos:
        line_end: 869
        line_start: 866
        source_file: /src/libevent/evutil.c
      type_or_value: "(GAA_FLAG_SKIP_ANYCAST | \\\n               GAA_FLAG_SKIP_MULTICAST
        | \\\n               GAA_FLAG_SKIP_DNS_SERVER)"
    - item_type: preproc_def
      name: EVUTIL_AI_LIBEVENT_ALLOCATED
      pos:
        line_end: 984
        line_start: 983
        source_file: /src/libevent/evutil.c
      type_or_value: '0x80000000'
    - item_type: preproc_def
      name: SOCKET_TYPE_MASK
      pos:
        line_end: 2861
        line_start: 2860
        source_file: /src/libevent/evutil.c
      type_or_value: (~(EVUTIL_SOCK_NONBLOCK|EVUTIL_SOCK_CLOEXEC))
    - item_type: preproc_def
      name: LOCAL_SOCKETPAIR_AF
      pos:
        line_end: 3131
        line_start: 3130
        source_file: /src/libevent/evutil.c
      type_or_value: AF_INET
    - item_type: preproc_def
      name: LOCAL_SOCKETPAIR_AF
      pos:
        line_end: 3133
        line_start: 3132
        source_file: /src/libevent/evutil.c
      type_or_value: AF_UNIX
    structs:
    - fields:
      - name: onoff
        type: u_long
      - name: keepalivetime
        type: u_long
      - name: keepaliveinterval
        type: u_long
      item_type: struct
      name: tcp_keepalive
      pos:
        line_end: 130
        line_start: 126
        source_file: /src/libevent/evutil.c
    - fields:
      - name: (cached_sock_errs_entry)
        type: HT_ENTRY
      - name: code
        type: DWORD
      - name: '*msg'
        type: char
      item_type: struct
      name: cached_sock_errs_entry
      pos:
        line_end: 1940
        line_start: 1936
        source_file: /src/libevent/evutil.c
    typedefs:
    - item_type: typedef
      name: "(WINAPI *GetAdaptersAddresses_fn_t)(\n              ULONG, ULONG, PVOID,
        PIP_ADAPTER_ADDRESSES, PULONG)"
      pos:
        line_end: 831
        line_start: 830
        source_file: /src/libevent/evutil.c
      type: ULONG
    union: []
- function_names:
  - event_strlcpy_
  source_file: /src/libevent/strlcpy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hashsocket
  - eqsocket
  - GET_IO_SLOT
  - GET_IO_SLOT_AND_CTOR
  - evmap_io_initmap_
  - evmap_io_clear_
  - GET_SIGNAL_SLOT
  - GET_SIGNAL_SLOT_AND_CTOR
  - GET_IO_SLOT
  - GET_IO_SLOT_AND_CTOR
  - evmap_io_initmap_
  - evmap_io_clear_
  - evmap_make_space
  - evmap_signal_initmap_
  - evmap_signal_clear_
  - evmap_io_init
  - evmap_io_add_
  - evmap_io_del_
  - evmap_io_active_
  - evmap_signal_init
  - evmap_signal_add_
  - evmap_signal_del_
  - evmap_signal_active_
  - evmap_io_get_fdinfo_
  - HT_FOREACH
  - evmap_signal_foreach_signal
  - evmap_io_reinit_iter_fn
  - evmap_signal_reinit_iter_fn
  - evmap_reinit_
  - delete_all_in_dlist
  - evmap_io_delete_all_iter_fn
  - evmap_signal_delete_all_iter_fn
  - evmap_delete_all_
  - event_changelist_init_
  - event_change_get_fdinfo
  - event_changelist_assert_ok_foreach_iter_fn
  - event_changelist_assert_ok
  - event_changelist_check
  - event_changelist_check
  - event_changelist_remove_all_
  - event_changelist_freemem_
  - event_changelist_grow
  - event_changelist_get_or_construct
  - event_changelist_add_
  - event_changelist_del_
  - evmap_io_check_integrity_fn
  - evmap_signal_check_integrity_fn
  - evmap_check_integrity_
  - evmap_io_foreach_event_fn
  - evmap_signal_foreach_event_fn
  - evmap_foreach_event_
  source_file: /src/libevent/evmap.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FDINFO_OFFSET
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/libevent/evmap.c
      type_or_value: sizeof(struct evmap_io)
    structs:
    - fields:
      - name: events
        type: struct event_dlist
      - name: nread
        type: ev_uint16_t
      - name: nwrite
        type: ev_uint16_t
      - name: nclose
        type: ev_uint16_t
      item_type: struct
      name: evmap_io
      pos:
        line_end: 63
        line_start: 58
        source_file: /src/libevent/evmap.c
    - fields:
      - name: events
        type: struct event_dlist
      item_type: struct
      name: evmap_signal
      pos:
        line_end: 69
        line_start: 67
        source_file: /src/libevent/evmap.c
    - fields:
      - name: (event_map_entry)
        type: HT_ENTRY
      - name: fd
        type: evutil_socket_t
      - name: ent
        type: "union { /* This is a union in case we need to make more things that
          can\n\t\t\t   be in the hashtable. */\n\t\tstruct evmap_io evmap_io;\n\t}"
      item_type: struct
      name: event_map_entry
      pos:
        line_end: 86
        line_start: 79
        source_file: /src/libevent/evmap.c
    - fields:
      - name: idxplus1
        type: int
      item_type: struct
      name: event_changelist_fdinfo
      pos:
        line_end: 705
        line_start: 702
        source_file: /src/libevent/evmap.c
    - fields:
      - name: fn
        type: event_base_foreach_event_cb
      - name: '*arg'
        type: void
      item_type: struct
      name: evmap_foreach_event_helper
      pos:
        line_end: 1016
        line_start: 1013
        source_file: /src/libevent/evmap.c
    typedefs:
    - item_type: typedef
      name: "(*evmap_io_foreach_fd_cb)(\n\tstruct event_base *, evutil_socket_t, struct
        evmap_io *, void *)"
      pos:
        line_end: 529
        line_start: 528
        source_file: /src/libevent/evmap.c
      type: int
    - item_type: typedef
      name: "(*evmap_signal_foreach_signal_cb)(\n\tstruct event_base *, int, struct
        evmap_signal *, void *)"
      pos:
        line_end: 571
        line_start: 570
        source_file: /src/libevent/evmap.c
      type: int
    union: []
- function_names:
  - sigfd_init_
  source_file: /src/libevent/evsignal-internal.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ev_signal
        type: struct event
      - name: ev_signal_pair[2]
        type: evutil_socket_t
      - name: ev_signal_added
        type: int
      - name: ev_n_signals_added
        type: int
      - name: sh_old_max
        type: int
      item_type: struct
      name: evsig_info
      pos:
        line_end: 61
        line_start: 38
        source_file: /src/libevent/evsignal-internal.h
    typedefs:
    - item_type: typedef
      name: (*ev_sighandler_t)(int)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/libevent/evsignal-internal.h
      type: void
    union: []
- function_names:
  - EV_CHECK_FMT
  - event_debug_get_logging_mask_
  - event_debug_get_logging_mask_
  - event_debug
  - event_debug
  source_file: /src/libevent/log-internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EV_NORETURN
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/libevent/log-internal.h
      type_or_value: __attribute__((noreturn))
    - item_type: preproc_def
      name: EVENT_ERR_ABORT_
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/libevent/log-internal.h
      type_or_value: ((int)0xdeaddead)
    structs: []
    typedefs: []
    union: []
- function_names:
  - evws_connection_free
  - Base64encode
  - ws_gen_accept_key
  - close_after_write_cb
  - close_event_cb
  - evws_close
  - evws_force_disconnect_
  - get_ws_frame
  - ws_evhttp_read_cb
  - ws_evhttp_error_cb
  - evws_new_session
  - make_ws_frame
  - evws_send
  - evws_send_text
  - evws_send_binary
  - evws_connection_set_closecb
  - evws_connection_get_bufferevent
  source_file: /src/libevent/ws.c
  types:
    enum:
    - enumerators:
      - name: ERROR_FRAME
        value: '0xFF'
      - name: TEXT_FRAME
        value: '0x1'
      - name: CLOSING_FRAME
        value: '0x8'
      - name: INCOMPLETE_DATA
        value: '0xFE'
      - name: INCOMPLETE_FRAME
        value: '0x81'
      - name: BINARY_FRAME
        value: '0x2'
      - name: PING_FRAME
        value: '0x9'
      - name: PONG_FRAME
        value: '0xA'
      item_type: enum
      name: WebSocketFrameType
      pos:
        line_end: 77
        line_start: 64
        source_file: /src/libevent/ws.c
    preproc_defs:
    - item_type: preproc_def
      name: WS_UUID
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/libevent/ws.c
      type_or_value: '"258EAFA5-E914-47DA-95CA-C5AB0DC85B11"'
    structs:
    - fields:
      - name: (evws_connection)
        type: TAILQ_ENTRY
      - name: '*bufev'
        type: struct bufferevent
      - name: cb
        type: ws_on_msg_cb
      - name: '*cb_arg'
        type: void
      - name: cbclose
        type: ws_on_close_cb
      - name: '*cbclose_arg'
        type: void
      - name: '*http_server'
        type: struct evhttp
      - name: '*incomplete_frames'
        type: struct evbuffer
      - name: closed
        type: bool
      item_type: struct
      name: evws_connection
      pos:
        line_end: 62
        line_start: 46
        source_file: /src/libevent/ws.c
    typedefs: []
    union: []
- function_names:
  - LOCK
  - UNLOCK
  - listener_incref_and_lock
  - listener_decref_and_unlock
  - evconnlistener_new
  - evconnlistener_new_bind
  - evconnlistener_free
  - event_listener_destroy
  - evconnlistener_enable
  - evconnlistener_disable
  - event_listener_enable
  - event_listener_disable
  - evconnlistener_get_fd
  - event_listener_getfd
  - evconnlistener_get_base
  - event_listener_getbase
  - evconnlistener_set_cb
  - evconnlistener_set_error_cb
  - listener_read_cb
  - iocp_listener_event_add
  - iocp_listener_event_del
  - new_accepting_socket
  - free_and_unlock_accepting_socket
  - start_accepting
  - stop_accepting
  - accepted_socket_invoke_user_cb
  - accepted_socket_cb
  - iocp_listener_enable
  - iocp_listener_disable_impl
  - iocp_listener_disable
  - iocp_listener_destroy
  - iocp_listener_getfd
  - iocp_listener_getbase
  - evconnlistener_new_async
  source_file: /src/libevent/listener.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _WIN32_WINNT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/libevent/listener.c
      type_or_value: '0x0403'
    - item_type: preproc_def
      name: N_SOCKETS_PER_LISTENER
      pos:
        line_end: 852
        line_start: 851
        source_file: /src/libevent/listener.c
      type_or_value: '4'
    structs:
    - fields:
      - name: (*enable)(struct evconnlistener *)
        type: int
      - name: (*disable)(struct evconnlistener *)
        type: int
      - name: (*destroy)(struct evconnlistener *)
        type: void
      - name: (*shutdown)(struct evconnlistener *)
        type: void
      - name: (*getfd)(struct evconnlistener *)
        type: evutil_socket_t
      - name: '*(*getbase)(struct evconnlistener *)'
        type: struct event_base
      item_type: struct
      name: evconnlistener_ops
      pos:
        line_end: 79
        line_start: 72
        source_file: /src/libevent/listener.c
    - fields:
      - name: '*ops'
        type: struct evconnlistener_ops
      - name: '*lock'
        type: void
      - name: cb
        type: evconnlistener_cb
      - name: errorcb
        type: evconnlistener_errorcb
      - name: '*user_data'
        type: void
      - name: flags
        type: unsigned
      - name: refcnt
        type: short
      - name: accept4_flags
        type: int
      - name: enabled
        type: unsigned
      item_type: struct
      name: evconnlistener
      pos:
        line_end: 91
        line_start: 81
        source_file: /src/libevent/listener.c
    - fields:
      - name: base
        type: struct evconnlistener
      - name: listener
        type: struct event
      item_type: struct
      name: evconnlistener_event
      pos:
        line_end: 96
        line_start: 93
        source_file: /src/libevent/listener.c
    - fields:
      - name: base
        type: struct evconnlistener
      - name: fd
        type: evutil_socket_t
      - name: '*event_base'
        type: struct event_base
      - name: '*port'
        type: struct event_iocp_port
      - name: n_accepting
        type: short
      - name: shutting_down
        type: unsigned
      - name: event_added
        type: unsigned
      - name: '**accepting'
        type: struct accepting_socket
      item_type: struct
      name: evconnlistener_iocp
      pos:
        line_end: 108
        line_start: 99
        source_file: /src/libevent/listener.c
    - fields:
      - name: lock
        type: CRITICAL_SECTION
      - name: overlapped
        type: struct event_overlapped
      - name: s
        type: SOCKET
      - name: error
        type: int
      - name: deferred
        type: struct event_callback
      - name: '*lev'
        type: struct evconnlistener_iocp
      - name: buflen
        type: ev_uint8_t
      - name: family
        type: ev_uint8_t
      - name: free_on_cb
        type: unsigned
      - name: addrbuf[1]
        type: char
      item_type: struct
      name: accepting_socket
      pos:
        line_end: 507
        line_start: 496
        source_file: /src/libevent/listener.c
    typedefs: []
    union: []
- function_names:
  - MIN
  - MAX
  - ASSERT_VALID_REQUEST
  - EDNS_ENABLED
  - evdns_get_global_base
  - TO_SERVER_REQUEST
  - REQ_HEAD
  - EVDNS_LOCK
  - EVDNS_UNLOCK
  - ASSERT_LOCKED
  - EVDNS_LOCK
  - EVDNS_UNLOCK
  - ASSERT_LOCKED
  - evdns_set_log_fn
  - evdns_log_
  - init_tcp_connection
  - evdns_tcp_disconnect
  - evdns_add_tcp_client
  - evdns_remove_tcp_client
  - evdns_remove_all_tcp_clients
  - new_tcp_connection
  - disconnect_and_free_connection
  - request_find_from_trans_id
  - nameserver_prod_callback
  - nameserver_probe_failed
  - request_swap_ns
  - nameserver_failed
  - nameserver_up
  - request_trans_id_set
  - request_finished
  - request_reissue
  - evdns_requests_pump_waiting_queue
  - reply_run_callback
  - reply_schedule_callback
  - client_retransmit_through_tcp
  - reply_handle
  - name_parse
  - GET32
  - GET16
  - GET8
  - reply_parse
  - request_parse
  - transaction_id_pick
  - nameserver_pick
  - nameserver_read
  - server_udp_port_read
  - server_send_response
  - server_port_flush
  - nameserver_write_waiting
  - nameserver_ready_callback
  - server_port_ready_callback
  - dnslabel_table_init
  - dnslabel_clear
  - dnslabel_table_get_pos
  - dnslabel_table_add
  - dnsname_to_labels
  - APPEND16
  - APPEND32
  - evdns_request_len
  - evdns_request_data_build
  - evdns_add_server_port_with_base
  - evdns_add_server_port_with_listener
  - tcp_read_message
  - server_tcp_read_packet_cb
  - server_tcp_event_cb
  - incoming_conn_cb
  - evdns_add_server_port
  - evdns_close_server_port
  - evdns_server_request_add_reply
  - evdns_server_request_add_a_reply
  - evdns_server_request_add_aaaa_reply
  - evdns_server_request_add_ptr_reply
  - evdns_server_request_add_cname_reply
  - evdns_server_request_set_flags
  - evdns_server_request_format_response
  - evdns_server_request_respond
  - server_request_free_answers
  - server_request_free
  - server_port_free
  - evdns_server_request_drop
  - evdns_server_request_get_requesting_addr
  - retransmit_all_tcp_requests_for
  - evdns_request_timeout_callback
  - evdns_request_transmit_to
  - evdns_tcp_connect_if_disconnected
  - client_tcp_read_packet_cb
  - client_tcp_event_cb
  - evdns_request_transmit_through_tcp
  - evdns_request_transmit
  - nameserver_probe_callback
  - nameserver_send_probe
  - evdns_transmit
  - evdns_base_count_nameservers
  - evdns_count_nameservers
  - evdns_base_clear_nameservers_and_suspend
  - evdns_clear_nameservers_and_suspend
  - evdns_base_resume
  - evdns_resume
  - evdns_nameserver_add_impl_
  - evdns_base_nameserver_add
  - evdns_nameserver_add
  - sockaddr_setport
  - sockaddr_getport
  - evdns_base_nameserver_ip_add
  - evdns_nameserver_ip_add
  - evdns_base_nameserver_sockaddr_add
  - evdns_base_get_nameserver_addr
  - evdns_base_get_nameserver_fd
  - evdns_request_remove
  - evdns_request_insert
  - string_num_dots
  - request_new
  - request_clone
  - request_submit
  - evdns_cancel_request
  - evdns_base_resolve_ipv4
  - evdns_resolve_ipv4
  - evdns_base_resolve_ipv6
  - evdns_resolve_ipv6
  - evdns_base_resolve_reverse
  - evdns_resolve_reverse
  - evdns_base_resolve_reverse_ipv6
  - evdns_resolve_reverse_ipv6
  - search_state_decref
  - search_state_new
  - search_postfix_clear
  - evdns_base_search_clear
  - evdns_search_clear
  - search_postfix_add
  - search_reverse
  - evdns_base_search_add
  - evdns_search_add
  - evdns_base_search_ndots_set
  - evdns_search_ndots_set
  - search_set_from_hostname
  - search_make_new
  - search_request_new
  - search_try_next
  - search_request_finished
  - evdns_resolv_set_defaults
  - strtok_r
  - strtoint
  - evdns_strtotimeval
  - strtoint_clipped
  - evdns_base_set_max_requests_inflight
  - evdns_base_set_option
  - str_matches_option
  - evdns_server_port_set_option
  - evdns_base_set_option_impl
  - evdns_set_option
  - resolv_conf_parse_line
  - evdns_base_resolv_conf_parse
  - evdns_get_default_hosts_filename
  - evdns_base_resolv_conf_parse_impl
  - evdns_resolv_conf_parse
  - evdns_nameserver_ip_add_line
  - load_nameservers_with_getadaptersaddresses_unlocked
  - load_nameservers_with_getadaptersaddresses
  - config_nameserver_from_reg_key
  - load_nameservers_from_registry
  - TRY
  - evdns_base_config_windows_nameservers
  - evdns_config_windows_nameservers
  - evdns_base_new
  - evdns_init
  - evdns_err_to_string
  - evdns_nameserver_free
  - evdns_cache_compare
  - evdns_cache_free
  - evdns_base_free_and_unlock
  - evdns_base_free
  - evdns_base_clear_host_addresses
  - evdns_shutdown
  - evdns_base_parse_hosts_line
  - evdns_base_load_hosts_impl
  - evdns_base_load_hosts
  - evdns_err_to_getaddrinfo_err
  - getaddrinfo_merge_err
  - free_getaddrinfo_request
  - add_cname_to_reply
  - evdns_getaddrinfo_timeout_cb
  - evdns_getaddrinfo_set_timeout
  - evdns_result_is_answer
  - evdns_ttl_expired
  - evdns_cache_write
  - evdns_cache_lookup
  - evdns_getaddrinfo_gotresolve
  - find_hosts_entry
  - evdns_getaddrinfo_fromhosts
  - evdns_getaddrinfo
  - evdns_getaddrinfo_cancel
  source_file: /src/libevent/evdns.c
  types:
    enum:
    - enumerators:
      - name: TS_DISCONNECTED
      - name: TS_CONNECTED
      - name: TS_CONNECTING
      item_type: enum
      name: tcp_state
      pos:
        line_end: 250
        line_start: 246
        source_file: /src/libevent/evdns.c
    preproc_defs:
    - item_type: preproc_def
      name: _FORTIFY_SOURCE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/libevent/evdns.c
      type_or_value: '3'
    - item_type: preproc_def
      name: _WIN32_IE
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libevent/evdns.c
      type_or_value: '0x400'
    - item_type: preproc_def
      name: strcasecmp
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libevent/evdns.c
      type_or_value: strcmpi
    - item_type: preproc_def
      name: EVDNS_LOG_DEBUG
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/libevent/evdns.c
      type_or_value: EVENT_LOG_DEBUG
    - item_type: preproc_def
      name: EVDNS_LOG_WARN
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/libevent/evdns.c
      type_or_value: EVENT_LOG_WARN
    - item_type: preproc_def
      name: EVDNS_LOG_MSG
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/libevent/evdns.c
      type_or_value: EVENT_LOG_MSG
    - item_type: preproc_def
      name: EVDNS_NAME_MAX
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/libevent/evdns.c
      type_or_value: '255'
    - item_type: preproc_def
      name: u64
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/libevent/evdns.c
      type_or_value: ev_uint64_t
    - item_type: preproc_def
      name: u32
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/libevent/evdns.c
      type_or_value: ev_uint32_t
    - item_type: preproc_def
      name: u16
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/libevent/evdns.c
      type_or_value: ev_uint16_t
    - item_type: preproc_def
      name: u8
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/libevent/evdns.c
      type_or_value: ev_uint8_t
    - item_type: preproc_def
      name: MAX_V4_ADDRS
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/libevent/evdns.c
      type_or_value: '32'
    - item_type: preproc_def
      name: MAX_V6_ADDRS
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/libevent/evdns.c
      type_or_value: '32'
    - item_type: preproc_def
      name: DNS_MAX_UDP_SIZE
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/libevent/evdns.c
      type_or_value: '512'
    - item_type: preproc_def
      name: EDNS_MAX_UDP_SIZE
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/libevent/evdns.c
      type_or_value: '65535'
    - item_type: preproc_def
      name: TYPE_A
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/libevent/evdns.c
      type_or_value: EVDNS_TYPE_A
    - item_type: preproc_def
      name: TYPE_CNAME
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/libevent/evdns.c
      type_or_value: '5'
    - item_type: preproc_def
      name: TYPE_PTR
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/libevent/evdns.c
      type_or_value: EVDNS_TYPE_PTR
    - item_type: preproc_def
      name: TYPE_SOA
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/libevent/evdns.c
      type_or_value: EVDNS_TYPE_SOA
    - item_type: preproc_def
      name: TYPE_AAAA
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/libevent/evdns.c
      type_or_value: EVDNS_TYPE_AAAA
    - item_type: preproc_def
      name: TYPE_OPT
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/libevent/evdns.c
      type_or_value: '41'
    - item_type: preproc_def
      name: CLASS_INET
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/libevent/evdns.c
      type_or_value: EVDNS_CLASS_INET
    - item_type: preproc_def
      name: SERVER_IDLE_CONN_TIMEOUT
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/libevent/evdns.c
      type_or_value: '10'
    - item_type: preproc_def
      name: CLIENT_IDLE_CONN_TIMEOUT
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/libevent/evdns.c
      type_or_value: '5'
    - item_type: preproc_def
      name: MAX_CLIENT_CONNECTIONS
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/libevent/evdns.c
      type_or_value: '10'
    - item_type: preproc_def
      name: EVDNS_LOG_CHECK
      pos:
        line_end: 533
        line_start: 532
        source_file: /src/libevent/evdns.c
      type_or_value: __attribute__ ((format(printf, 2, 3)))
    - item_type: preproc_def
      name: log
      pos:
        line_end: 555
        line_start: 554
        source_file: /src/libevent/evdns.c
      type_or_value: evdns_log_
    - item_type: preproc_def
      name: _QR_MASK
      pos:
        line_end: 1094
        line_start: 1093
        source_file: /src/libevent/evdns.c
      type_or_value: 0x8000U
    - item_type: preproc_def
      name: _OP_MASK
      pos:
        line_end: 1095
        line_start: 1094
        source_file: /src/libevent/evdns.c
      type_or_value: 0x7800U
    - item_type: preproc_def
      name: _AA_MASK
      pos:
        line_end: 1096
        line_start: 1095
        source_file: /src/libevent/evdns.c
      type_or_value: 0x0400U
    - item_type: preproc_def
      name: _TC_MASK
      pos:
        line_end: 1097
        line_start: 1096
        source_file: /src/libevent/evdns.c
      type_or_value: 0x0200U
    - item_type: preproc_def
      name: _RD_MASK
      pos:
        line_end: 1098
        line_start: 1097
        source_file: /src/libevent/evdns.c
      type_or_value: 0x0100U
    - item_type: preproc_def
      name: _RA_MASK
      pos:
        line_end: 1099
        line_start: 1098
        source_file: /src/libevent/evdns.c
      type_or_value: 0x0080U
    - item_type: preproc_def
      name: _Z_MASK
      pos:
        line_end: 1100
        line_start: 1099
        source_file: /src/libevent/evdns.c
      type_or_value: 0x0040U
    - item_type: preproc_def
      name: _AD_MASK
      pos:
        line_end: 1101
        line_start: 1100
        source_file: /src/libevent/evdns.c
      type_or_value: 0x0020U
    - item_type: preproc_def
      name: _CD_MASK
      pos:
        line_end: 1102
        line_start: 1101
        source_file: /src/libevent/evdns.c
      type_or_value: 0x0010U
    - item_type: preproc_def
      name: _RCODE_MASK
      pos:
        line_end: 1103
        line_start: 1102
        source_file: /src/libevent/evdns.c
      type_or_value: 0x000fU
    - item_type: preproc_def
      name: _Z_MASK_DEPRECATED
      pos:
        line_end: 1104
        line_start: 1103
        source_file: /src/libevent/evdns.c
      type_or_value: 0x0070U
    - item_type: preproc_def
      name: SKIP_NAME
      pos:
        line_end: 1313
        line_start: 1307
        source_file: /src/libevent/evdns.c
      type_or_value: "do { tmp_name[0] = '\\0';\t\t\t\t\\\n\t\tif (name_parse(packet,
        length, &j, tmp_name,\t\\\n\t\t\tsizeof(tmp_name))<0)\t\t\t\\\n\t\t\tgoto
        err;\t\t\t\t\\\n\t} while (0)"
    - item_type: preproc_def
      name: SKIP_RR
      pos:
        line_end: 1539
        line_start: 1536
        source_file: /src/libevent/evdns.c
      type_or_value: "do { \\\n\t\tSKIP_NAME; \\\n\t\tj += 2 "
    - item_type: preproc_def
      name: MAX_LABELS
      pos:
        line_end: 1859
        line_start: 1858
        source_file: /src/libevent/evdns.c
      type_or_value: '128'
    - item_type: preproc_def
      name: NEXT_TOKEN
      pos:
        line_end: 4456
        line_start: 4455
        source_file: /src/libevent/evdns.c
      type_or_value: strtok_r(NULL, delims, &strtok_state)
    - item_type: preproc_def
      name: SERVICES_KEY
      pos:
        line_end: 4757
        line_start: 4756
        source_file: /src/libevent/evdns.c
      type_or_value: TEXT("System\\CurrentControlSet\\Services\\")
    - item_type: preproc_def
      name: WIN_NS_9X_KEY
      pos:
        line_end: 4758
        line_start: 4757
        source_file: /src/libevent/evdns.c
      type_or_value: SERVICES_KEY TEXT("VxD\\MSTCP")
    - item_type: preproc_def
      name: WIN_NS_NT_KEY
      pos:
        line_end: 4759
        line_start: 4758
        source_file: /src/libevent/evdns.c
      type_or_value: SERVICES_KEY TEXT("Tcpip\\Parameters")
    - item_type: preproc_def
      name: EVDNS_BASE_ALL_FLAGS
      pos:
        line_end: 4915
        line_start: 4909
        source_file: /src/libevent/evdns.c
      type_or_value: "( \\\n\tEVDNS_BASE_INITIALIZE_NAMESERVERS | \\\n\tEVDNS_BASE_DISABLE_WHEN_INACTIVE
        \ | \\\n\tEVDNS_BASE_NAMESERVERS_NO_DEFAULT | \\\n\tEVDNS_BASE_NO_CACHE               |
        \\\n\t0)"
    - item_type: preproc_def
      name: NEXT_TOKEN
      pos:
        line_end: 5129
        line_start: 5128
        source_file: /src/libevent/evdns.c
      type_or_value: strtok_r(NULL, delims, &strtok_state)
    structs:
    - fields:
      - name: type
        type: unsigned int
      - name: have_answer
        type: unsigned int
      - name: rr_count
        type: u32
      - name: data
        type: "union {\n\t\tu32 *a;\n\t\tstruct in6_addr *aaaa;\n\t\tchar *ptr_name;\n\t\tvoid
          *raw;\n\t}"
      - name: '*cname'
        type: char
      item_type: struct
      name: reply
      pos:
        line_end: 186
        line_start: 175
        source_file: /src/libevent/evdns.c
    - fields:
      - name: '*current_req'
        type: struct request
      - name: '*base'
        type: struct evdns_base
      - name: pending_cb
        type: int
      - name: deferred
        type: struct event_callback
      - name: user_callback
        type: evdns_callback_type
      - name: '*user_pointer'
        type: void
      - name: request_type
        type: u8
      - name: have_reply
        type: u8
      - name: ttl
        type: u32
      - name: err
        type: u32
      - name: reply
        type: struct reply
      - name: search_index
        type: int
      - name: '*search_state'
        type: struct search_state
      - name: '*search_origname'
        type: char
      - name: search_flags
        type: int
      - name: tcp_flags
        type: u16
      item_type: struct
      name: evdns_request
      pos:
        line_end: 216
        line_start: 193
        source_file: /src/libevent/evdns.c
    - fields:
      - name: '*request'
        type: u8
      - name: request_size
        type: u16
      - name: request_type
        type: u8
      - name: request_len
        type: unsigned int
      - name: reissue_count
        type: int
      - name: tx_count
        type: int
      - name: '*ns'
        type: struct nameserver
      - name: '*next'
        type: struct request
      - name: timeout_event
        type: struct event
      - name: trans_id
        type: u16
      - name: request_appended
        type: unsigned
      - name: transmit_me
        type: unsigned
      - name: need_cname
        type: unsigned
      - name: '**put_cname_in_ptr'
        type: char
      - name: '*base'
        type: struct evdns_base
      - name: '*handle'
        type: struct evdns_request
      item_type: struct
      name: request
      pos:
        line_end: 244
        line_start: 218
        source_file: /src/libevent/evdns.c
    - fields:
      - name: '*bev'
        type: struct bufferevent
      - name: state
        type: enum tcp_state
      - name: awaiting_packet_size
        type: u16
      item_type: struct
      name: tcp_connection
      pos:
        line_end: 256
        line_start: 252
        source_file: /src/libevent/evdns.c
    - fields:
      - name: (client_tcp_connection)
        type: LIST_ENTRY
      - name: connection
        type: struct tcp_connection
      - name: '*port'
        type: struct evdns_server_port
      item_type: struct
      name: client_tcp_connection
      pos:
        line_end: 264
        line_start: 260
        source_file: /src/libevent/evdns.c
    - fields:
      - name: socket
        type: evutil_socket_t
      - name: '*connection'
        type: struct tcp_connection
      - name: address
        type: struct sockaddr_storage
      - name: addrlen
        type: ev_socklen_t
      - name: failed_times
        type: int
      - name: timedout
        type: int
      - name: event
        type: struct event
      - name: '*next'
        type: struct nameserver
      - name: timeout_event
        type: struct event
      - name: '*probe_request'
        type: struct evdns_request
      - name: state
        type: char
      - name: choked
        type: char
      - name: write_waiting
        type: char
      - name: '*base'
        type: struct evdns_base
      - name: requests_inflight
        type: int
      item_type: struct
      name: nameserver
      pos:
        line_end: 289
        line_start: 266
        source_file: /src/libevent/evdns.c
    - fields:
      - name: socket
        type: evutil_socket_t
      - name: refcnt
        type: int
      - name: choked
        type: char
      - name: closing
        type: char
      - name: user_callback
        type: evdns_request_callback_fn_type
      - name: '*user_data'
        type: void
      - name: event
        type: struct event
      - name: '*pending_replies'
        type: struct server_request
      - name: '*event_base'
        type: struct event_base
      - name: '*listener'
        type: struct evconnlistener
      - name: client_connections_count
        type: unsigned
      - name: max_client_connections
        type: unsigned
      - name: tcp_idle_timeout
        type: struct timeval
      item_type: struct
      name: evdns_server_port
      pos:
        line_end: 315
        line_start: 293
        source_file: /src/libevent/evdns.c
    - fields:
      - name: '*next'
        type: struct server_reply_item
      - name: '*name'
        type: char
      - name: type
        type: u16
      - name: class
        type: u16
      - name: ttl
        type: u32
      - name: is_name
        type: char
      - name: datalen
        type: u16
      - name: '*data'
        type: void
      item_type: struct
      name: server_reply_item
      pos:
        line_end: 327
        line_start: 318
        source_file: /src/libevent/evdns.c
    - fields:
      - name: '*next_pending'
        type: struct server_request
      - name: '*prev_pending'
        type: struct server_request
      - name: trans_id
        type: u16
      - name: '*port'
        type: struct evdns_server_port
      - name: '*client'
        type: struct client_tcp_connection
      - name: addr
        type: struct sockaddr_storage
      - name: addrlen
        type: ev_socklen_t
      - name: max_udp_reply_size
        type: u16
      - name: n_answer
        type: int
      - name: n_authority
        type: int
      - name: n_additional
        type: int
      - name: '*answer'
        type: struct server_reply_item
      - name: '*authority'
        type: struct server_reply_item
      - name: '*additional'
        type: struct server_reply_item
      - name: '*response'
        type: char
      - name: response_len
        type: size_t
      - name: base
        type: struct evdns_server_request
      item_type: struct
      name: server_request
      pos:
        line_end: 360
        line_start: 331
        source_file: /src/libevent/evdns.c
    - fields:
      - name: '**req_heads'
        type: struct request
      - name: '*req_waiting_head'
        type: struct request
      - name: '*server_head'
        type: struct nameserver
      - name: n_req_heads
        type: int
      - name: '*event_base'
        type: struct event_base
      - name: global_good_nameservers
        type: int
      - name: global_requests_inflight
        type: int
      - name: global_requests_waiting
        type: int
      - name: global_max_requests_inflight
        type: int
      - name: global_timeout
        type: struct timeval
      - name: global_max_reissues
        type: int
      - name: global_max_retransmits
        type: int
      - name: global_max_nameserver_timeout
        type: int
      - name: global_randomize_case
        type: int
      - name: global_max_udp_size
        type: u16
      - name: global_nameserver_probe_initial_timeout
        type: struct timeval
      - name: global_tcp_flags
        type: u16
      - name: global_tcp_idle_timeout
        type: struct timeval
      - name: global_outgoing_address
        type: struct sockaddr_storage
      - name: global_outgoing_addrlen
        type: ev_socklen_t
      - name: global_getaddrinfo_allow_skew
        type: struct timeval
      - name: so_rcvbuf
        type: int
      - name: so_sndbuf
        type: int
      - name: getaddrinfo_ipv4_timeouts
        type: int
      - name: getaddrinfo_ipv6_timeouts
        type: int
      - name: getaddrinfo_ipv4_answered
        type: int
      - name: getaddrinfo_ipv6_answered
        type: int
      - name: '*global_search_state'
        type: struct search_state
      - name: disable_when_inactive
        type: int
      - name: disable_cache
        type: int
      - name: ns_max_probe_timeout
        type: int
      - name: ns_timeout_backoff_factor
        type: int
      item_type: struct
      name: evdns_base
      pos:
        line_end: 442
        line_start: 362
        source_file: /src/libevent/evdns.c
    - fields:
      - name: (hosts_entry)
        type: TAILQ_ENTRY
      - name: addr
        type: "union {\n\t\tstruct sockaddr sa;\n\t\tstruct sockaddr_in sin;\n\t\tstruct
          sockaddr_in6 sin6;\n\t}"
      - name: addrlen
        type: int
      - name: hostname[1]
        type: char
      item_type: struct
      name: hosts_entry
      pos:
        line_end: 453
        line_start: 444
        source_file: /src/libevent/evdns.c
    - fields:
      - name: (evdns_cache)
        type: SPLAY_ENTRY
      - name: '*name'
        type: char
      - name: '*ai'
        type: struct evutil_addrinfo
      - name: ev_timeout
        type: struct event
      - name: '*base'
        type: struct evdns_base
      item_type: struct
      name: evdns_cache
      pos:
        line_end: 461
        line_start: 455
        source_file: /src/libevent/evdns.c
    - fields:
      - name: '*v'
        type: char
      - name: pos
        type: off_t
      item_type: struct
      name: dnslabel_entry
      pos:
        line_end: 1860
        line_start: 1860
        source_file: /src/libevent/evdns.c
    - fields:
      - name: n_labels
        type: int
      - name: labels[MAX_LABELS]
        type: struct dnslabel_entry
      item_type: struct
      name: dnslabel_table
      pos:
        line_end: 1865
        line_start: 1861
        source_file: /src/libevent/evdns.c
    - fields:
      - name: len
        type: int
      - name: '*next'
        type: struct search_domain
      item_type: struct
      name: search_domain
      pos:
        line_end: 3869
        line_start: 3865
        source_file: /src/libevent/evdns.c
    - fields:
      - name: refcount
        type: int
      - name: ndots
        type: int
      - name: num_domains
        type: int
      - name: '*head'
        type: struct search_domain
      item_type: struct
      name: search_state
      pos:
        line_end: 3876
        line_start: 3871
        source_file: /src/libevent/evdns.c
    - fields:
      - name: '*r'
        type: struct evdns_request
      - name: type
        type: ev_uint32_t
      item_type: struct
      name: getaddrinfo_subrequest
      pos:
        line_end: 5226
        line_start: 5223
        source_file: /src/libevent/evdns.c
    - fields:
      - name: '*evdns_base'
        type: struct evdns_base
      - name: hints
        type: struct evutil_addrinfo
      - name: '*nodename'
        type: char
      - name: user_cb
        type: evdns_getaddrinfo_cb
      - name: '*user_data'
        type: void
      - name: port
        type: ev_uint16_t
      - name: ipv4_request
        type: struct getaddrinfo_subrequest
      - name: ipv6_request
        type: struct getaddrinfo_subrequest
      - name: '*cname_result'
        type: char
      - name: '*pending_result'
        type: struct evutil_addrinfo
      - name: pending_result_ttl
        type: int
      - name: timeout
        type: struct event
      - name: pending_error
        type: int
      - name: user_canceled
        type: unsigned
      - name: request_done
        type: unsigned
      item_type: struct
      name: evdns_getaddrinfo_request
      pos:
        line_end: 5265
        line_start: 5229
        source_file: /src/libevent/evdns.c
    typedefs:
    - item_type: typedef
      name: (WINAPI *GetAdaptersAddresses_fn_t)(ULONG, ULONG, PVOID, PIP_ADAPTER_ADDRESSES,
        PULONG)
      pos:
        line_end: 4630
        line_start: 4630
        source_file: /src/libevent/evdns.c
      type: DWORD
    union: []
- function_names:
  - BIO_meth_new
  - BIO_meth_set_write
  - BIO_meth_set_read
  - BIO_meth_set_puts
  - BIO_meth_set_ctrl
  - BIO_meth_set_create
  - BIO_meth_set_destroy
  - BIO_set_init
  - BIO_set_data
  - BIO_set_shutdown
  - BIO_get_init
  - BIO_get_data
  - BIO_get_shutdown
  - BIO_get_init
  source_file: /src/libevent/openssl-compat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TLS_method
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/libevent/openssl-compat.h
      type_or_value: SSLv23_method
    - item_type: preproc_def
      name: X509_getm_notBefore
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/libevent/openssl-compat.h
      type_or_value: X509_get_notBefore
    - item_type: preproc_def
      name: X509_getm_notAfter
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/libevent/openssl-compat.h
      type_or_value: X509_get_notAfter
    structs: []
    typedefs: []
    union: []
- function_names:
  - min_heap_elem_greater
  - min_heap_ctor_
  - min_heap_dtor_
  - min_heap_elem_init_
  - min_heap_empty_
  - min_heap_size_
  - min_heap_top_
  - min_heap_push_
  - min_heap_pop_
  - min_heap_elt_is_top_
  - min_heap_erase_
  - min_heap_adjust_
  - min_heap_reserve_
  - min_heap_shift_up_unconditional_
  - min_heap_shift_up_
  - min_heap_shift_down_
  source_file: /src/libevent/minheap-internal.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '** p'
        type: struct event
      - name: n
        type: size_t
      item_type: struct
      name: min_heap
      pos:
        line_end: 42
        line_start: 38
        source_file: /src/libevent/minheap-internal.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/http-internal.h
  types:
    enum:
    - enumerators:
      - name: ALL_DATA_READ
        value: '1'
      - name: MORE_DATA_EXPECTED
        value: '0'
      - name: DATA_CORRUPTED
        value: '-1'
      - name: REQUEST_CANCELED
        value: '-2'
      - name: DATA_TOO_LONG
        value: '-3'
      item_type: enum
      name: message_read_status
      pos:
        line_end: 27
        line_start: 21
        source_file: /src/libevent/http-internal.h
    - enumerators:
      - name: EVCON_DISCONNECTED
      - name: EVCON_READING_HEADERS
      - name: EVCON_READING_FIRSTLINE
      - name: EVCON_CONNECTING
      - name: EVCON_IDLE
      - name: EVCON_READING_BODY
      - name: EVCON_READING_TRAILER
      - name: EVCON_WRITING
      item_type: enum
      name: evhttp_connection_state
      pos:
        line_end: 43
        line_start: 33
        source_file: /src/libevent/http-internal.h
    preproc_defs:
    - item_type: preproc_def
      name: HTTP_CONNECT_TIMEOUT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/libevent/http-internal.h
      type_or_value: '45'
    - item_type: preproc_def
      name: HTTP_WRITE_TIMEOUT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/libevent/http-internal.h
      type_or_value: '50'
    - item_type: preproc_def
      name: HTTP_READ_TIMEOUT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/libevent/http-internal.h
      type_or_value: '50'
    - item_type: preproc_def
      name: HTTP_INITIAL_RETRY_TIMEOUT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/libevent/http-internal.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EVHTTP_CON_INCOMING
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/libevent/http-internal.h
      type_or_value: '0x0001       '
    - item_type: preproc_def
      name: EVHTTP_CON_OUTGOING
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/libevent/http-internal.h
      type_or_value: '0x0002       '
    - item_type: preproc_def
      name: EVHTTP_CON_CLOSEDETECT
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/libevent/http-internal.h
      type_or_value: '0x0004   '
    - item_type: preproc_def
      name: EVHTTP_CON_AUTOFREE
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/libevent/http-internal.h
      type_or_value: EVHTTP_CON_PUBLIC_FLAGS_END
    - item_type: preproc_def
      name: EVHTTP_CON_READING_ERROR
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libevent/http-internal.h
      type_or_value: (EVHTTP_CON_AUTOFREE << 1)
    - item_type: preproc_def
      name: EVHTTP_CON_TIMEOUT_ADJUSTED
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libevent/http-internal.h
      type_or_value: (EVHTTP_CON_READING_ERROR << 1)
    - item_type: preproc_def
      name: _EVHTTP_URI_HOST_HAS_BRACKETS
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/libevent/http-internal.h
      type_or_value: '0x02'
    structs:
    - fields:
      - name: (evhttp_connection)
        type: TAILQ_ENTRY
      - name: '*bufev'
        type: struct bufferevent
      - name: retry_ev
        type: struct event
      - name: '*bind_address'
        type: char
      - name: bind_port
        type: ev_uint16_t
      - name: '*address'
        type: char
      - name: port
        type: ev_uint16_t
      - name: max_headers_size
        type: size_t
      - name: max_body_size
        type: ev_uint64_t
      - name: flags
        type: int
      - name: timeout_connect
        type: struct timeval
      - name: timeout_read
        type: struct timeval
      - name: timeout_write
        type: struct timeval
      - name: retry_cnt
        type: int
      - name: retry_max
        type: int
      - name: initial_retry_timeout
        type: struct timeval
      - name: state
        type: enum evhttp_connection_state
      - name: '*http_server'
        type: struct evhttp
      - name: (*cb)(struct evhttp_connection *, void *)
        type: void
      - name: '*cb_arg'
        type: void
      - name: (*closecb)(struct evhttp_connection *, void *)
        type: void
      - name: '*closecb_arg'
        type: void
      - name: read_more_deferred_cb
        type: struct event_callback
      - name: '*base'
        type: struct event_base
      - name: '*dns_base'
        type: struct evdns_base
      - name: ai_family
        type: int
      - name: ext_method_cmp
        type: evhttp_ext_method_cb
      item_type: struct
      name: evhttp_connection
      pos:
        line_end: 111
        line_start: 48
        source_file: /src/libevent/http-internal.h
    - fields:
      - name: (evhttp_cb)
        type: TAILQ_ENTRY
      - name: '*what'
        type: char
      - name: (*cb)(struct evhttp_request *req, void *)
        type: void
      - name: '*cbarg'
        type: void
      item_type: struct
      name: evhttp_cb
      pos:
        line_end: 121
        line_start: 114
        source_file: /src/libevent/http-internal.h
    - fields:
      - name: (evhttp_bound_socket)
        type: TAILQ_ENTRY
      - name: '*http'
        type: struct evhttp
      - name: '* (*bevcb)(struct event_base *, void *)'
        type: struct bufferevent
      - name: '*bevcbarg'
        type: void
      - name: '*listener'
        type: struct evconnlistener
      item_type: struct
      name: evhttp_bound_socket
      pos:
        line_end: 138
        line_start: 130
        source_file: /src/libevent/http-internal.h
    - fields:
      - name: (evhttp_server_alias)
        type: TAILQ_ENTRY
      - name: '*alias'
        type: char
      item_type: struct
      name: evhttp_server_alias
      pos:
        line_end: 145
        line_start: 141
        source_file: /src/libevent/http-internal.h
    - fields:
      - name: next_vhost
        type: TAILQ_ENTRY
      - name: connections
        type: struct evconq
      - name: ws_sessions
        type: struct evwsq
      - name: connection_max
        type: int
      - name: connection_cnt
        type: int
      - name: '*vhost_pattern'
        type: char
      - name: timeout_read
        type: struct timeval
      - name: timeout_write
        type: struct timeval
      - name: default_max_headers_size
        type: size_t
      - name: default_max_body_size
        type: ev_uint64_t
      - name: flags
        type: int
      - name: '*default_content_type'
        type: char
      - name: allowed_methods
        type: ev_uint32_t
      - name: (*gencb)(struct evhttp_request *req, void *)
        type: void
      - name: '*gencbarg'
        type: void
      - name: '* (*bevcb)(struct event_base *, void *)'
        type: struct bufferevent
      - name: '*bevcbarg'
        type: void
      - name: (*newreqcb)(struct evhttp_request *req, void *)
        type: int
      - name: '*newreqcbarg'
        type: void
      - name: (*errorcb)(struct evhttp_request *, struct evbuffer *, int, const char
          *, void *)
        type: int
      - name: '*errorcbarg'
        type: void
      - name: '*base'
        type: struct event_base
      - name: ext_method_cmp
        type: evhttp_ext_method_cb
      item_type: struct
      name: evhttp
      pos:
        line_end: 198
        line_start: 147
        source_file: /src/libevent/http-internal.h
    typedefs: []
    union: []
- function_names:
  - XFREE
  - FD_SET_ALLOC_SIZE
  - grow_fd_sets
  - do_fd_set
  - do_fd_clear
  - win32_init
  - win32_add
  - win32_del
  - fd_set_copy
  - win32_dispatch
  - win32_dealloc
  source_file: /src/libevent/win32select.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NEVENT
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/libevent/win32select.c
      type_or_value: '32'
    structs:
    - fields:
      - name: fd_count
        type: unsigned int
      - name: fd_array[1]
        type: SOCKET
      item_type: struct
      name: win_fd_set
      pos:
        line_end: 61
        line_start: 58
        source_file: /src/libevent/win32select.c
    - fields:
      - name: read_pos_plus1
        type: int
      - name: write_pos_plus1
        type: int
      item_type: struct
      name: idx_info
      pos:
        line_end: 69
        line_start: 66
        source_file: /src/libevent/win32select.c
    - fields:
      - name: num_fds_in_fd_sets
        type: unsigned
      - name: resize_out_sets
        type: int
      - name: '*readset_in'
        type: struct win_fd_set
      - name: '*writeset_in'
        type: struct win_fd_set
      - name: '*readset_out'
        type: struct win_fd_set
      - name: '*writeset_out'
        type: struct win_fd_set
      - name: '*exset_out'
        type: struct win_fd_set
      - name: signals_are_broken
        type: unsigned
      item_type: struct
      name: win32op
      pos:
        line_end: 80
        line_start: 71
        source_file: /src/libevent/win32select.c
    typedefs: []
    union: []
- function_names:
  - EVTHREAD_GET_ID
  - EVBASE_IN_THREAD
  - EVBASE_NEED_NOTIFY
  - EVTHREAD_ALLOC_LOCK
  - EVTHREAD_FREE_LOCK
  - EVLOCK_LOCK
  - EVLOCK_UNLOCK
  - EVLOCK_SORTLOCKS_
  - EVBASE_ACQUIRE_LOCK
  - EVBASE_RELEASE_LOCK
  - EVLOCK_ASSERT_LOCKED
  - EVLOCK_TRY_LOCK_
  - EVTHREAD_ALLOC_COND
  - EVTHREAD_FREE_COND
  - EVTHREAD_COND_SIGNAL
  - EVTHREAD_COND_BROADCAST
  - EVTHREAD_COND_WAIT
  - EVTHREAD_COND_WAIT_TIMED
  - EVTHREAD_LOCKING_ENABLED
  - EVTHREAD_GET_ID
  - EVBASE_IN_THREAD
  - EVBASE_NEED_NOTIFY
  - EVTHREAD_ALLOC_LOCK
  - EVTHREAD_FREE_LOCK
  - EVLOCK_LOCK
  - EVLOCK_UNLOCK
  - EVBASE_ACQUIRE_LOCK
  - EVBASE_RELEASE_LOCK
  - EVLOCK_ASSERT_LOCKED
  - EVLOCK_TRY_LOCK_
  - EVTHREAD_ALLOC_COND
  - EVTHREAD_FREE_COND
  - EVTHREAD_COND_SIGNAL
  - EVTHREAD_COND_BROADCAST
  - EVTHREAD_COND_WAIT
  - EVTHREAD_COND_WAIT_TIMED
  - EVTHREAD_LOCKING_ENABLED
  - EVTHREAD_GET_ID
  - EVTHREAD_ALLOC_LOCK
  - EVTHREAD_FREE_LOCK
  - EVLOCK_LOCK
  - EVLOCK_UNLOCK
  - EVLOCK_LOCK2
  - EVLOCK_UNLOCK2
  - EVBASE_IN_THREAD
  - EVBASE_NEED_NOTIFY
  - EVBASE_ACQUIRE_LOCK
  - EVBASE_RELEASE_LOCK
  - EVLOCK_ASSERT_LOCKED
  - EVLOCK_TRY_LOCK_
  - EVTHREAD_ALLOC_COND
  - EVTHREAD_FREE_COND
  - EVTHREAD_COND_SIGNAL
  - EVTHREAD_COND_BROADCAST
  - EVTHREAD_COND_WAIT
  - EVTHREAD_COND_WAIT_TIMED
  - EVTHREAD_LOCKING_ENABLED
  - EVLOCK_SORTLOCKS_
  - EVLOCK_LOCK2
  - EVLOCK_UNLOCK2
  - EVTHREAD_SETUP_GLOBAL_LOCK
  source_file: /src/libevent/evthread-internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - upcast
  - downcast
  - incref_and_lock
  - decref_and_unlock
  - bufferevent_pair_elt_new
  - bufferevent_pair_new
  - be_pair_transfer
  - be_pair_wants_to_talk
  - be_pair_outbuf_cb
  - be_pair_enable
  - be_pair_disable
  - be_pair_unlink
  - be_pair_destruct
  - be_pair_flush
  - bufferevent_pair_get_partner
  source_file: /src/libevent/bufferevent_pair.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: bev
        type: struct bufferevent_private
      - name: '*partner'
        type: struct bufferevent_pair
      - name: '*unlinked_partner'
        type: struct bufferevent_pair
      item_type: struct
      name: bufferevent_pair
      pos:
        line_end: 49
        line_start: 44
        source_file: /src/libevent/bufferevent_pair.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/evmap-internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PTR_TO_UDATA
  - INT_TO_UDATA
  - PTR_TO_UDATA
  - INT_TO_UDATA
  - PTR_TO_UDATA
  - INT_TO_UDATA
  - kq_init
  - kq_setup_kevent
  - kq_grow_events
  - kq_build_changes_list
  - kq_dispatch
  - kqop_free
  - kq_dealloc
  - kq_sig_add
  - kq_sig_del
  - event_kq_add_notify_event_
  - event_kq_notify_base_
  source_file: /src/libevent/kqueue.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NEVENT
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/libevent/kqueue.c
      type_or_value: '64'
    - item_type: preproc_def
      name: ADD_UDATA
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/libevent/kqueue.c
      type_or_value: '0x30303'
    - item_type: preproc_def
      name: NOTIFY_IDENT
      pos:
        line_end: 487
        line_start: 486
        source_file: /src/libevent/kqueue.c
      type_or_value: '0'
    structs:
    - fields:
      - name: '*events'
        type: struct kevent
      - name: events_size
        type: int
      - name: kq
        type: int
      - name: notify_event_added
        type: int
      - name: pid
        type: pid_t
      item_type: struct
      name: kqop
      pos:
        line_end: 82
        line_start: 76
        source_file: /src/libevent/kqueue.c
    typedefs: []
    union: []
- function_names:
  - upcast_evbuffer
  - pin_release
  - evbuffer_commit_read_
  - evbuffer_commit_write_
  - evbuffer_overlapped_new_
  - evbuffer_launch_write_
  - evbuffer_launch_read_
  - evbuffer_overlapped_get_fd_
  - evbuffer_overlapped_set_fd_
  source_file: /src/libevent/buffer_iocp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_WSABUFS
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/libevent/buffer_iocp.c
      type_or_value: '16'
    structs:
    - fields:
      - name: buffer
        type: struct evbuffer
      - name: fd
        type: evutil_socket_t
      - name: read_in_progress
        type: unsigned
      - name: write_in_progress
        type: unsigned
      - name: '*first_pinned'
        type: struct evbuffer_chain
      - name: n_buffers
        type: int
      - name: buffers[MAX_WSABUFS]
        type: WSABUF
      item_type: struct
      name: evbuffer_overlapped
      pos:
        line_end: 69
        line_start: 53
        source_file: /src/libevent/buffer_iocp.c
    typedefs: []
    union: []
- function_names:
  - NT_SUCCESS
  - RTL_CONSTANT_STRING
  - RTL_CONSTANT_OBJECT_ATTRIBUTES
  - NT_NTDLL_IMPORT_LIST
  - X
  - return_map_error
  - return_set_error
  - afd_create_helper_handle
  - afd_poll
  - afd_cancel_poll
  - epoll_global_init
  - epoll__create
  - epoll_create
  - epoll_create1
  - epoll_close
  - epoll_ctl
  - epoll_wait
  - ERR__ERRNO_MAPPINGS
  - err__map_win_error_to_errno
  - X
  - err_map_win_error
  - err_set_win_error
  - err_check_handle
  - array_count
  - container_of
  - unused_var
  - init__once_callback
  - init
  - X
  - nt_global_init
  - X
  - poll_group__new
  - poll_group_delete
  - poll_group_from_queue_node
  - poll_group_get_afd_helper_handle
  - poll_group_acquire
  - poll_group_release
  - port__alloc
  - port__free
  - port__create_iocp
  - port_new
  - port__close_iocp
  - port_close
  - port_delete
  - port__update_events
  - port__update_events_if_polling
  - port__feed_events
  - port__poll
  - port_wait
  - port__ctl_add
  - port__ctl_mod
  - port__ctl_del
  - port__ctl_op
  - port_ctl
  - port_register_socket_handle
  - port_unregister_socket_handle
  - port_find_socket
  - port_request_socket_update
  - port_cancel_socket_update
  - port_add_deleted_socket
  - port_remove_deleted_socket
  - port_get_iocp_handle
  - port_get_poll_group_queue
  - port_state_from_handle_tree_node
  - port_state_to_handle_tree_node
  - queue_init
  - queue_node_init
  - queue__detach_node
  - queue_first
  - queue_last
  - queue_prepend
  - queue_append
  - queue_move_first
  - queue_move_last
  - queue_remove
  - queue_empty
  - queue_enqueued
  - reflock_global_init
  - reflock_init
  - reflock__signal_event
  - reflock__await_event
  - reflock_ref
  - reflock_unref
  - reflock_unref_and_destroy
  - sock__alloc
  - sock__free
  - sock__cancel_poll
  - sock_new
  - sock__delete
  - sock_delete
  - sock_force_delete
  - sock_set_event
  - sock__epoll_events_to_afd_events
  - sock__afd_events_to_epoll_events
  - sock_update
  - sock_feed_event
  - sock_state_from_queue_node
  - sock_state_to_queue_node
  - sock_state_from_tree_node
  - sock_state_to_tree_node
  - ts_tree_init
  - ts_tree_node_init
  - ts_tree_add
  - ts_tree__find_node
  - ts_tree_del_and_ref
  - ts_tree_find_and_ref
  - ts_tree_node_unref
  - ts_tree_node_unref_and_destroy
  - tree_init
  - tree_node_init
  - TREE__ROTATE
  - TREE__INSERT_OR_DESCEND
  - TREE__REBALANCE_AFTER_INSERT
  - tree_add
  - TREE__REBALANCE_AFTER_REMOVE
  - tree_del
  - tree_find
  - tree_root
  - ws_global_init
  - ws_get_base_socket
  source_file: /src/libevent/wepoll.c
  types:
    enum:
    - enumerators:
      - name: EPOLLIN
        value: (int) (1U <<  0)
      - name: EPOLLOUT
        value: (int) (1U <<  2)
      - name: EPOLLHUP
        value: (int) (1U <<  4)
      - name: EPOLLPRI
        value: (int) (1U <<  1)
      - name: EPOLLERR
        value: (int) (1U <<  3)
      - name: EPOLLRDNORM
        value: (int) (1U <<  6)
      - name: EPOLLRDBAND
        value: (int) (1U <<  7)
      - name: EPOLLWRNORM
        value: (int) (1U <<  8)
      - name: EPOLLWRBAND
        value: (int) (1U <<  9)
      - name: EPOLLMSG
        value: (int) (1U << 10)
      - name: EPOLLRDHUP
        value: (int) (1U << 13)
      - name: EPOLLONESHOT
        value: (int) (1U << 31)
      item_type: enum
      name: EPOLL_EVENTS
      pos:
        line_end: 55
        line_start: 42
        source_file: /src/libevent/wepoll.c
    - enumerators:
      - name: SOCK__POLL_IDLE
        value: '0'
      - name: SOCK__POLL_CANCELLED
      - name: SOCK__POLL_PENDING
      item_type: enum
      name: sock__poll_status
      pos:
        line_end: 1596
        line_start: 1592
        source_file: /src/libevent/wepoll.c
    preproc_defs:
    - item_type: preproc_def
      name: _WIN32_WINNT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/libevent/wepoll.c
      type_or_value: '0x0600'
    - item_type: preproc_def
      name: EPOLLIN
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/libevent/wepoll.c
      type_or_value: (1U <<  0)
    - item_type: preproc_def
      name: EPOLLPRI
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/libevent/wepoll.c
      type_or_value: (1U <<  1)
    - item_type: preproc_def
      name: EPOLLOUT
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/libevent/wepoll.c
      type_or_value: (1U <<  2)
    - item_type: preproc_def
      name: EPOLLERR
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/libevent/wepoll.c
      type_or_value: (1U <<  3)
    - item_type: preproc_def
      name: EPOLLHUP
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/libevent/wepoll.c
      type_or_value: (1U <<  4)
    - item_type: preproc_def
      name: EPOLLRDNORM
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/libevent/wepoll.c
      type_or_value: (1U <<  6)
    - item_type: preproc_def
      name: EPOLLRDBAND
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/libevent/wepoll.c
      type_or_value: (1U <<  7)
    - item_type: preproc_def
      name: EPOLLWRNORM
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/libevent/wepoll.c
      type_or_value: (1U <<  8)
    - item_type: preproc_def
      name: EPOLLWRBAND
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/libevent/wepoll.c
      type_or_value: (1U <<  9)
    - item_type: preproc_def
      name: EPOLLMSG
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/libevent/wepoll.c
      type_or_value: (1U << 10)
    - item_type: preproc_def
      name: EPOLLRDHUP
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/libevent/wepoll.c
      type_or_value: (1U << 13)
    - item_type: preproc_def
      name: EPOLLONESHOT
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/libevent/wepoll.c
      type_or_value: (1U << 31)
    - item_type: preproc_def
      name: EPOLL_CTL_ADD
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/libevent/wepoll.c
      type_or_value: '1'
    - item_type: preproc_def
      name: EPOLL_CTL_MOD
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/libevent/wepoll.c
      type_or_value: '2'
    - item_type: preproc_def
      name: EPOLL_CTL_DEL
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/libevent/wepoll.c
      type_or_value: '3'
    - item_type: preproc_def
      name: WEPOLL_INTERNAL
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/libevent/wepoll.c
      type_or_value: static
    - item_type: preproc_def
      name: WEPOLL_INTERNAL_VAR
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/libevent/wepoll.c
      type_or_value: static
    - item_type: preproc_def
      name: STATUS_SUCCESS
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/libevent/wepoll.c
      type_or_value: ((NTSTATUS) 0x00000000L)
    - item_type: preproc_def
      name: STATUS_PENDING
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/libevent/wepoll.c
      type_or_value: ((NTSTATUS) 0x00000103L)
    - item_type: preproc_def
      name: STATUS_CANCELLED
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/libevent/wepoll.c
      type_or_value: ((NTSTATUS) 0xC0000120L)
    - item_type: preproc_def
      name: STATUS_NOT_FOUND
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/libevent/wepoll.c
      type_or_value: ((NTSTATUS) 0xC0000225L)
    - item_type: preproc_def
      name: FILE_OPEN
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/libevent/wepoll.c
      type_or_value: 0x00000001UL
    - item_type: preproc_def
      name: KEYEDEVENT_WAIT
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/libevent/wepoll.c
      type_or_value: 0x00000001UL
    - item_type: preproc_def
      name: KEYEDEVENT_WAKE
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/libevent/wepoll.c
      type_or_value: 0x00000002UL
    - item_type: preproc_def
      name: KEYEDEVENT_ALL_ACCESS
      pos:
        line_end: 205
        line_start: 203
        source_file: /src/libevent/wepoll.c
      type_or_value: (STANDARD_RIGHTS_REQUIRED | KEYEDEVENT_WAIT | KEYEDEVENT_WAKE)
    - item_type: preproc_def
      name: AFD_POLL_RECEIVE
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/libevent/wepoll.c
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: AFD_POLL_RECEIVE_EXPEDITED
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/libevent/wepoll.c
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: AFD_POLL_SEND
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/libevent/wepoll.c
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: AFD_POLL_DISCONNECT
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/libevent/wepoll.c
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: AFD_POLL_ABORT
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/libevent/wepoll.c
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: AFD_POLL_LOCAL_CLOSE
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/libevent/wepoll.c
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: AFD_POLL_ACCEPT
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/libevent/wepoll.c
      type_or_value: '0x0080'
    - item_type: preproc_def
      name: AFD_POLL_CONNECT_FAIL
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/libevent/wepoll.c
      type_or_value: '0x0100'
    - item_type: preproc_def
      name: IOCTL_AFD_POLL
      pos:
        line_end: 322
        line_start: 321
        source_file: /src/libevent/wepoll.c
      type_or_value: '0x00012024'
    - item_type: preproc_def
      name: inline
      pos:
        line_end: 835
        line_start: 834
        source_file: /src/libevent/wepoll.c
      type_or_value: __inline
    - item_type: preproc_def
      name: PORT__MAX_ON_STACK_COMPLETIONS
      pos:
        line_end: 1053
        line_start: 1052
        source_file: /src/libevent/wepoll.c
      type_or_value: '256'
    - item_type: preproc_def
      name: SIO_BASE_HANDLE
      pos:
        line_end: 2188
        line_start: 2187
        source_file: /src/libevent/wepoll.c
      type_or_value: '0x48000022'
    structs:
    - fields:
      - name: events
        type: uint32_t
      - name: data
        type: epoll_data_t
      item_type: struct
      name: epoll_event
      pos:
        line_end: 89
        line_start: 86
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: Status
        type: NTSTATUS
      - name: Information
        type: ULONG_PTR
      item_type: struct
      name: _IO_STATUS_BLOCK
      pos:
        line_end: 170
        line_start: 167
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: Length
        type: USHORT
      - name: MaximumLength
        type: USHORT
      - name: Buffer
        type: PWSTR
      item_type: struct
      name: _UNICODE_STRING
      pos:
        line_end: 180
        line_start: 176
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: Length
        type: ULONG
      - name: RootDirectory
        type: HANDLE
      - name: ObjectName
        type: PUNICODE_STRING
      - name: Attributes
        type: ULONG
      - name: SecurityDescriptor
        type: PVOID
      - name: SecurityQualityOfService
        type: PVOID
      item_type: struct
      name: _OBJECT_ATTRIBUTES
      pos:
        line_end: 192
        line_start: 185
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: Handle
        type: HANDLE
      - name: Events
        type: ULONG
      - name: Status
        type: NTSTATUS
      item_type: struct
      name: _AFD_POLL_HANDLE_INFO
      pos:
        line_end: 287
        line_start: 283
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: Timeout
        type: LARGE_INTEGER
      - name: NumberOfHandles
        type: ULONG
      - name: Exclusive
        type: ULONG
      - name: Handles[1]
        type: AFD_POLL_HANDLE_INFO
      item_type: struct
      name: _AFD_POLL_INFO
      pos:
        line_end: 294
        line_start: 289
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: state
        type: long
      item_type: struct
      name: reflock
      pos:
        line_end: 485
        line_start: 483
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: '* root'
        type: tree_node_t
      item_type: struct
      name: tree
      pos:
        line_end: 505
        line_start: 503
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: '* left'
        type: tree_node_t
      - name: '* right'
        type: tree_node_t
      - name: '* parent'
        type: tree_node_t
      - name: key
        type: uintptr_t
      - name: red
        type: bool
      item_type: struct
      name: tree_node
      pos:
        line_end: 513
        line_start: 507
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: tree
        type: tree_t
      - name: lock
        type: SRWLOCK
      item_type: struct
      name: ts_tree
      pos:
        line_end: 527
        line_start: 524
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: tree_node
        type: tree_node_t
      - name: reflock
        type: reflock_t
      item_type: struct
      name: ts_tree_node
      pos:
        line_end: 532
        line_start: 529
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: '* prev'
        type: queue_node_t
      - name: '* next'
        type: queue_node_t
      item_type: struct
      name: queue_node
      pos:
        line_end: 926
        line_start: 923
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: head
        type: queue_node_t
      item_type: struct
      name: queue
      pos:
        line_end: 930
        line_start: 928
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: '* port_state'
        type: port_state_t
      - name: queue_node
        type: queue_node_t
      - name: afd_helper_handle
        type: HANDLE
      - name: group_size
        type: size_t
      item_type: struct
      name: poll_group
      pos:
        line_end: 954
        line_start: 949
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: iocp_handle
        type: HANDLE
      - name: sock_tree
        type: tree_t
      - name: sock_update_queue
        type: queue_t
      - name: sock_deleted_queue
        type: queue_t
      - name: poll_group_queue
        type: queue_t
      - name: handle_tree_node
        type: ts_tree_node_t
      - name: lock
        type: CRITICAL_SECTION
      - name: active_poll_count
        type: size_t
      item_type: struct
      name: port_state
      pos:
        line_end: 1063
        line_start: 1054
        source_file: /src/libevent/wepoll.c
    - fields:
      - name: io_status_block
        type: IO_STATUS_BLOCK
      - name: poll_info
        type: AFD_POLL_INFO
      - name: queue_node
        type: queue_node_t
      - name: tree_node
        type: tree_node_t
      - name: '* poll_group'
        type: poll_group_t
      - name: base_socket
        type: SOCKET
      - name: user_data
        type: epoll_data_t
      - name: user_events
        type: uint32_t
      - name: pending_events
        type: uint32_t
      - name: poll_status
        type: sock__poll_status_t
      - name: delete_pending
        type: bool
      item_type: struct
      name: sock_state
      pos:
        line_end: 1610
        line_start: 1598
        source_file: /src/libevent/wepoll.c
    typedefs:
    - item_type: typedef
      name: '* HANDLE'
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/libevent/wepoll.c
      type: void
    - item_type: typedef
      name: SOCKET
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/libevent/wepoll.c
      type: uintptr_t
    - item_type: typedef
      name: NTSTATUS
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/libevent/wepoll.c
      type: LONG
    - item_type: typedef
      name: '* PNTSTATUS'
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/libevent/wepoll.c
      type: NTSTATUS
    - item_type: typedef
      name: "(NTAPI* PIO_APC_ROUTINE)(PVOID ApcContext,\n                                     PIO_STATUS_BLOCK
        IoStatusBlock,\n                                     ULONG Reserved)"
      pos:
        line_end: 174
        line_start: 172
        source_file: /src/libevent/wepoll.c
      type: VOID
    - item_type: typedef
      name: port_state_t
      pos:
        line_end: 420
        line_start: 420
        source_file: /src/libevent/wepoll.c
      type: port_state
    - item_type: typedef
      name: queue_t
      pos:
        line_end: 421
        line_start: 421
        source_file: /src/libevent/wepoll.c
      type: queue
    - item_type: typedef
      name: sock_state_t
      pos:
        line_end: 422
        line_start: 422
        source_file: /src/libevent/wepoll.c
      type: sock_state
    - item_type: typedef
      name: ts_tree_node_t
      pos:
        line_end: 423
        line_start: 423
        source_file: /src/libevent/wepoll.c
      type: ts_tree_node
    - item_type: typedef
      name: tree_t
      pos:
        line_end: 500
        line_start: 500
        source_file: /src/libevent/wepoll.c
      type: tree
    - item_type: typedef
      name: tree_node_t
      pos:
        line_end: 501
        line_start: 501
        source_file: /src/libevent/wepoll.c
      type: tree_node
    - item_type: typedef
      name: '* nt__fn_ptr_cast_t'
      pos:
        line_end: 878
        line_start: 878
        source_file: /src/libevent/wepoll.c
      type: void
    - item_type: typedef
      name: nt__fn_ptr_cast_t
      pos:
        line_end: 880
        line_start: 880
        source_file: /src/libevent/wepoll.c
      type: FARPROC
    - item_type: typedef
      name: poll_group_t
      pos:
        line_end: 909
        line_start: 909
        source_file: /src/libevent/wepoll.c
      type: poll_group
    - item_type: typedef
      name: queue_node_t
      pos:
        line_end: 911
        line_start: 911
        source_file: /src/libevent/wepoll.c
      type: queue_node
    union:
    - fields:
      - name: '* ptr'
        type: void
      - name: fd
        type: int
      - name: u32
        type: uint32_t
      - name: u64
        type: uint64_t
      - name: sock
        type: SOCKET
      - name: hnd
        type: HANDLE
      item_type: union
      name: epoll_data
      pos:
        line_end: 84
        line_start: 77
        source_file: /src/libevent/wepoll.c
- function_names:
  - BEV_IS_SOCKET
  - BEV_IS_FILTER
  - BEV_IS_PAIR
  - BEV_IS_SSL
  - BEV_IS_SSL
  - BEV_IS_ASYNC
  - BEV_IS_ASYNC
  - bufferevent_wm_suspend_read
  - bufferevent_wm_unsuspend_read
  - bufferevent_incref_
  - bufferevent_decref_
  - bufferevent_trigger_nolock_
  - BEV_RESET_GENERIC_READ_TIMEOUT
  - BEV_RESET_GENERIC_WRITE_TIMEOUT
  - BEV_DEL_GENERIC_READ_TIMEOUT
  - BEV_DEL_GENERIC_WRITE_TIMEOUT
  - BEV_UPCAST
  - BEV_LOCK
  - BEV_UNLOCK
  - BEV_LOCK
  - BEV_UNLOCK
  source_file: /src/libevent/bufferevent-internal.h
  types:
    enum:
    - enumerators:
      - name: BEV_CTRL_SET_FD
      - name: BEV_CTRL_CANCEL_ALL
      - name: BEV_CTRL_GET_FD
      - name: BEV_CTRL_GET_UNDERLYING
      item_type: enum
      name: bufferevent_ctrl_op
      pos:
        line_end: 241
        line_start: 236
        source_file: /src/libevent/bufferevent-internal.h
    preproc_defs:
    - item_type: preproc_def
      name: BEV_SUSPEND_WM
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/libevent/bufferevent-internal.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: BEV_SUSPEND_BW
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/libevent/bufferevent-internal.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: BEV_SUSPEND_BW_GROUP
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libevent/bufferevent-internal.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: BEV_SUSPEND_LOOKUP
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/libevent/bufferevent-internal.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: BEV_SUSPEND_FILT_READ
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libevent/bufferevent-internal.h
      type_or_value: '0x10'
    structs:
    - fields:
      - name: rate_limit
        type: struct ev_token_bucket
      - name: rate_limit_cfg
        type: struct ev_token_bucket_cfg
      - name: read_suspended
        type: unsigned
      - name: write_suspended
        type: unsigned
      - name: pending_unsuspend_read
        type: unsigned
      - name: pending_unsuspend_write
        type: unsigned
      - name: total_read
        type: ev_uint64_t
      - name: total_written
        type: ev_uint64_t
      - name: n_members
        type: int
      - name: min_share
        type: ev_ssize_t
      - name: configured_min_share
        type: ev_ssize_t
      - name: master_refill_event
        type: struct event
      - name: weakrand_seed
        type: struct evutil_weakrand_state
      - name: '*lock'
        type: void
      item_type: struct
      name: bufferevent_rate_limit_group
      pos:
        line_end: 127
        line_start: 79
        source_file: /src/libevent/bufferevent-internal.h
    - fields:
      - name: (bufferevent_private)
        type: LIST_ENTRY
      - name: '*group'
        type: struct bufferevent_rate_limit_group
      - name: limit
        type: struct ev_token_bucket
      - name: '*cfg'
        type: struct ev_token_bucket_cfg
      - name: refill_bucket_event
        type: struct event
      item_type: struct
      name: bufferevent_rate_limit
      pos:
        line_end: 150
        line_start: 130
        source_file: /src/libevent/bufferevent-internal.h
    - fields:
      - name: bev
        type: struct bufferevent
      - name: '*read_watermarks_cb'
        type: struct evbuffer_cb_entry
      - name: own_lock
        type: unsigned
      - name: readcb_pending
        type: unsigned
      - name: writecb_pending
        type: unsigned
      - name: connecting
        type: unsigned
      - name: connection_refused
        type: unsigned
      - name: eventcb_pending
        type: short
      - name: read_suspended
        type: bufferevent_suspend_flags
      - name: write_suspended
        type: bufferevent_suspend_flags
      - name: errno_pending
        type: int
      - name: dns_error
        type: int
      - name: deferred
        type: struct event_callback
      - name: options
        type: enum bufferevent_options
      - name: refcnt
        type: int
      - name: '*lock'
        type: void
      - name: max_single_read
        type: ev_ssize_t
      - name: max_single_write
        type: ev_ssize_t
      - name: '*rate_limiting'
        type: struct bufferevent_rate_limit
      - name: conn_address
        type: "union {\n\t\tstruct sockaddr_in6 in6;\n\t\tstruct sockaddr_in in;\n\t}"
      - name: '*dns_request'
        type: struct evdns_getaddrinfo_request
      item_type: struct
      name: bufferevent_private
      pos:
        line_end: 233
        line_start: 154
        source_file: /src/libevent/bufferevent-internal.h
    - fields:
      - name: '*type'
        type: char
      - name: mem_offset
        type: off_t
      - name: (*enable)(struct bufferevent *, short)
        type: int
      - name: (*disable)(struct bufferevent *, short)
        type: int
      - name: (*unlink)(struct bufferevent *)
        type: void
      - name: (*destruct)(struct bufferevent *)
        type: void
      - name: (*adj_timeouts)(struct bufferevent *)
        type: int
      - name: (*flush)(struct bufferevent *, short, enum bufferevent_flush_mode)
        type: int
      - name: (*ctrl)(struct bufferevent *, enum bufferevent_ctrl_op, union bufferevent_ctrl_data
          *)
        type: int
      item_type: struct
      name: bufferevent_ops
      pos:
        line_end: 299
        line_start: 253
        source_file: /src/libevent/bufferevent-internal.h
    typedefs:
    - item_type: typedef
      name: bufferevent_suspend_flags
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/libevent/bufferevent-internal.h
      type: ev_uint16_t
    union:
    - fields:
      - name: '*ptr'
        type: void
      - name: fd
        type: evutil_socket_t
      item_type: union
      name: bufferevent_ctrl_data
      pos:
        line_end: 247
        line_start: 244
        source_file: /src/libevent/bufferevent-internal.h
- function_names:
  - FDI_HAS_READ
  - FDI_HAS_WRITE
  - FDI_HAS_EVENTS
  - FDI_TO_SYSEVENTS
  - evport_init
  - grow
  - check_evportop
  - check_event
  - reassociate
  - evport_dispatch
  - evport_add
  - evport_del
  - evport_dealloc
  source_file: /src/libevent/evport.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INITIAL_EVENTS_PER_GETN
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libevent/evport.c
      type_or_value: '8'
    - item_type: preproc_def
      name: MAX_EVENTS_PER_GETN
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libevent/evport.c
      type_or_value: '4096'
    structs:
    - fields:
      - name: fdi_what
        type: short
      - name: pending_idx_plus_1
        type: int
      item_type: struct
      name: fd_info
      pos:
        line_end: 95
        line_start: 88
        source_file: /src/libevent/evport.c
    - fields:
      - name: ed_port
        type: int
      - name: ed_npending
        type: int
      - name: ed_maxevents
        type: int
      - name: '*ed_pending'
        type: int
      - name: '*ed_pevtlist'
        type: port_event_t
      item_type: struct
      name: evport_data
      pos:
        line_end: 114
        line_start: 103
        source_file: /src/libevent/evport.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/iocp-internal.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: overlapped
        type: OVERLAPPED
      - name: cb
        type: iocp_callback
      item_type: struct
      name: event_overlapped
      pos:
        line_end: 53
        line_start: 50
        source_file: /src/libevent/iocp-internal.h
    - fields:
      - name: AcceptEx
        type: AcceptExPtr
      - name: ConnectEx
        type: ConnectExPtr
      - name: GetAcceptExSockaddrs
        type: GetAcceptExSockaddrsPtr
      item_type: struct
      name: win32_extension_fns
      pos:
        line_end: 68
        line_start: 64
        source_file: /src/libevent/iocp-internal.h
    - fields:
      - name: port
        type: HANDLE
      - name: lock
        type: CRITICAL_SECTION
      - name: n_threads
        type: short
      - name: shutdown
        type: short
      - name: ms
        type: long
      - name: '*threads'
        type: HANDLE
      - name: n_live_threads
        type: short
      - name: '*shutdownSemaphore'
        type: HANDLE
      item_type: struct
      name: event_iocp_port
      pos:
        line_end: 92
        line_start: 74
        source_file: /src/libevent/iocp-internal.h
    - fields:
      - name: cb
        type: iocp_callback
      item_type: struct
      name: event_overlapped
      pos:
        line_end: 100
        line_start: 98
        source_file: /src/libevent/iocp-internal.h
    typedefs:
    - item_type: typedef
      name: (*iocp_callback)(struct event_overlapped *, ev_uintptr_t, ev_ssize_t,
        int success)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/libevent/iocp-internal.h
      type: void
    - item_type: typedef
      name: (WINAPI *AcceptExPtr)(SOCKET, SOCKET, PVOID, DWORD, DWORD, DWORD, LPDWORD,
        LPOVERLAPPED)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/libevent/iocp-internal.h
      type: BOOL
    - item_type: typedef
      name: (WINAPI *ConnectExPtr)(SOCKET, const struct sockaddr *, int, PVOID, DWORD,
        LPDWORD, LPOVERLAPPED)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/libevent/iocp-internal.h
      type: BOOL
    - item_type: typedef
      name: (WINAPI *GetAcceptExSockaddrsPtr)(PVOID, DWORD, DWORD, DWORD, LPSOCKADDR
        *, LPINT, LPSOCKADDR *, LPINT)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/libevent/iocp-internal.h
      type: void
    union: []
- function_names:
  - evthread_set_id_callback
  - evthread_get_lock_callbacks
  - evthread_get_condition_callbacks
  - evthreadimpl_disable_lock_debugging_
  - evthread_set_lock_callbacks
  - evthread_set_condition_callbacks
  - debug_lock_alloc
  - debug_lock_free
  - evthread_debug_lock_mark_locked
  - debug_lock_lock
  - evthread_debug_lock_mark_unlocked
  - debug_lock_unlock
  - debug_cond_wait
  - evthread_enable_lock_debuging
  - evthread_enable_lock_debugging
  - evthread_is_debug_lock_held_
  - evthread_debug_get_real_lock_
  - evthread_setup_global_lock_
  - evthreadimpl_get_id_
  - evthreadimpl_lock_alloc_
  - evthreadimpl_lock_free_
  - evthreadimpl_lock_lock_
  - evthreadimpl_lock_unlock_
  - evthreadimpl_cond_alloc_
  - evthreadimpl_cond_free_
  - evthreadimpl_cond_signal_
  - evthreadimpl_cond_wait_
  - evthreadimpl_is_lock_debugging_enabled_
  - evthreadimpl_locking_enabled_
  source_file: /src/libevent/evthread.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GLOBAL
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/libevent/evthread.c
      type_or_value: static
    - item_type: preproc_def
      name: DEBUG_LOCK_SIG
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/libevent/evthread.c
      type_or_value: '0xdeb0b10c'
    structs:
    - fields:
      - name: signature
        type: unsigned
      - name: locktype
        type: unsigned
      - name: held_by
        type: unsigned long
      - name: count
        type: int
      - name: '*lock'
        type: void
      item_type: struct
      name: debug_lock
      pos:
        line_end: 191
        line_start: 183
        source_file: /src/libevent/evthread.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/ipv6-internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AF_INET6
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/libevent/ipv6-internal.h
      type_or_value: '3333'
    - item_type: preproc_def
      name: PF_INET6
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libevent/ipv6-internal.h
      type_or_value: AF_INET6
    structs:
    - fields:
      - name: s6_addr[16]
        type: ev_uint8_t
      item_type: struct
      name: in6_addr
      pos:
        line_end: 54
        line_start: 52
        source_file: /src/libevent/ipv6-internal.h
    - fields:
      - name: sin6_family
        type: sa_family_t
      - name: sin6_port
        type: ev_uint16_t
      - name: sin6_addr
        type: struct in6_addr
      item_type: struct
      name: sockaddr_in6
      pos:
        line_end: 68
        line_start: 62
        source_file: /src/libevent/ipv6-internal.h
    typedefs:
    - item_type: typedef
      name: sa_family_t
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/libevent/ipv6-internal.h
      type: int
    union: []
- function_names: []
  source_file: /src/libevent/changelist-internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EV_CHANGE_ADD
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/libevent/changelist-internal.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: EV_CHANGE_DEL
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/libevent/changelist-internal.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: EV_CHANGE_SIGNAL
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/libevent/changelist-internal.h
      type_or_value: EV_SIGNAL
    - item_type: preproc_def
      name: EV_CHANGE_PERSIST
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libevent/changelist-internal.h
      type_or_value: EV_PERSIST
    - item_type: preproc_def
      name: EV_CHANGE_ET
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libevent/changelist-internal.h
      type_or_value: EV_ET
    - item_type: preproc_def
      name: EVENT_CHANGELIST_FDINFO_SIZE
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libevent/changelist-internal.h
      type_or_value: sizeof(int)
    structs:
    - fields:
      - name: fd
        type: evutil_socket_t
      - name: old_events
        type: short
      - name: read_change
        type: ev_uint8_t
      - name: write_change
        type: ev_uint8_t
      - name: close_change
        type: ev_uint8_t
      item_type: struct
      name: event_change
      pos:
        line_end: 65
        line_start: 52
        source_file: /src/libevent/changelist-internal.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/sha1.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mbedtls_context_init
  - mbedtls_context_free
  - mbedtls_context_renegotiate
  - mbedtls_context_write
  - mbedtls_context_read
  - mbedtls_context_pending
  - mbedtls_context_handshake
  - mbedtls_get_error
  - mbedtls_clear_error
  - mbedtls_clear
  - mbedtls_set_ssl_noops
  - mbedtls_handshake_is_ok
  - mbedtls_is_want_read
  - mbedtls_is_want_write
  - be_mbedtls_get_fd
  - print_err
  - print_err
  - bio_bufferevent_read
  - bio_bufferevent_write
  - conn_closed
  - be_mbedtls_bio_set_fd
  - bufferevent_mbedtls_get_allow_dirty_shutdown
  - bufferevent_mbedtls_set_allow_dirty_shutdown
  - bufferevent_mbedtls_get_ssl
  - bufferevent_mbedtls_renegotiate
  - bufferevent_get_mbedtls_error
  - bufferevent_mbedtls_filter_new
  - bufferevent_mbedtls_socket_new
  - bufferevent_mbedtls_dyncontext_new
  - bufferevent_mbedtls_dyncontext_free
  source_file: /src/libevent/bufferevent_mbedtls.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ssl'
        type: mbedtls_dyncontext
      - name: net
        type: mbedtls_net_context
      item_type: struct
      name: mbedtls_context
      pos:
        line_end: 51
        line_start: 48
        source_file: /src/libevent/bufferevent_mbedtls.c
    typedefs: []
    union: []
- function_names:
  - event_overlapped_init_
  - handle_entry
  - loop
  - event_iocp_port_associate_
  - get_extension_function
  - init_extension_functions
  - event_get_win32_extension_fns_
  - event_iocp_port_launch_
  - event_iocp_port_unlock_and_free_
  - event_iocp_notify_all
  - event_iocp_shutdown_
  - event_iocp_activate_overlapped_
  - event_base_get_iocp_
  source_file: /src/libevent/event_iocp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _WIN32_WINNT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/libevent/event_iocp.c
      type_or_value: '0x0403'
    - item_type: preproc_def
      name: NOTIFICATION_KEY
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/libevent/event_iocp.c
      type_or_value: ((ULONG_PTR)-1)
    - item_type: preproc_def
      name: WSAID_ACCEPTEX
      pos:
        line_end: 136
        line_start: 134
        source_file: /src/libevent/event_iocp.c
      type_or_value: '{0xb5367df1,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}'
    - item_type: preproc_def
      name: WSAID_CONNECTEX
      pos:
        line_end: 140
        line_start: 138
        source_file: /src/libevent/event_iocp.c
      type_or_value: '{0x25a207b9,0xddf3,0x4660,{0x8e,0xe9,0x76,0xe5,0x8c,0x74,0x06,0x3e}}'
    - item_type: preproc_def
      name: WSAID_GETACCEPTEXSOCKADDRS
      pos:
        line_end: 144
        line_start: 142
        source_file: /src/libevent/event_iocp.c
      type_or_value: '{0xb5367df2,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}'
    - item_type: preproc_def
      name: N_CPUS_DEFAULT
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/libevent/event_iocp.c
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - CHAIN_SPACE_PTR
  - CHAIN_SPACE_LEN
  - CHAIN_PINNED
  - CHAIN_PINNED_R
  - PTR_NOT_FOUND
  - evbuffer_chain_new
  - evbuffer_chain_new_membuf
  - evbuffer_chain_free
  - evbuffer_free_all_chains
  - evbuffer_chains_all_empty
  - evbuffer_chains_all_empty
  - evbuffer_free_trailing_empty_chains
  - evbuffer_chain_insert
  - evbuffer_chain_insert_new
  - evbuffer_chain_pin_
  - evbuffer_chain_unpin_
  - evbuffer_chain_incref
  - evbuffer_new
  - evbuffer_set_flags
  - evbuffer_clear_flags
  - evbuffer_incref_
  - evbuffer_incref_and_lock_
  - evbuffer_defer_callbacks
  - evbuffer_enable_locking
  - evbuffer_set_parent_
  - evbuffer_run_callbacks
  - evbuffer_invoke_callbacks_
  - evbuffer_deferred_callback
  - evbuffer_remove_all_callbacks
  - evbuffer_decref_and_unlock_
  - evbuffer_free
  - evbuffer_set_max_read
  - evbuffer_get_max_read
  - evbuffer_lock
  - evbuffer_unlock
  - evbuffer_get_length
  - evbuffer_get_contiguous_space
  - evbuffer_add_iovec
  - evbuffer_reserve_space
  - advance_last_with_data
  - evbuffer_commit_space
  - HAS_PINNED_R
  - ZERO_CHAIN
  - PRESERVE_PINNED
  - RESTORE_PINNED
  - COPY_CHAIN
  - APPEND_CHAIN
  - APPEND_CHAIN_MULTICAST
  - PREPEND_CHAIN
  - evbuffer_add_buffer
  - evbuffer_add_buffer_reference
  - evbuffer_prepend_buffer
  - evbuffer_drain
  - evbuffer_remove
  - evbuffer_copyout
  - evbuffer_copyout_from
  - evbuffer_remove_buffer
  - evbuffer_pullup
  - evbuffer_readline
  - evbuffer_strchr
  - find_eol_char
  - evbuffer_find_eol_char
  - evbuffer_strspn
  - evbuffer_getchr
  - evbuffer_search_eol
  - evbuffer_readln
  - evbuffer_add
  - evbuffer_prepend
  - evbuffer_chain_align
  - evbuffer_chain_should_realign
  - evbuffer_expand_singlechain
  - evbuffer_expand_fast_
  - evbuffer_expand
  - evbuffer_read_setup_vecs_
  - get_n_bytes_readable_on_socket
  - evbuffer_read
  - evbuffer_write_iovec
  - evbuffer_write_sendfile
  - evbuffer_write_atmost
  - evbuffer_write
  - evbuffer_find
  - evbuffer_ptr_subtract
  - evbuffer_ptr_set
  - evbuffer_ptr_memcmp
  - evbuffer_search
  - evbuffer_search_range
  - evbuffer_peek
  - evbuffer_add_vprintf
  - va_copy
  - evbuffer_add_printf
  - evbuffer_add_reference
  - evbuffer_add_reference_with_offset
  - evbuffer_file_segment_new
  - get_page_size
  - evbuffer_file_segment_add_cleanup_cb
  - evbuffer_file_segment_free
  - evbuffer_add_file_segment
  - evbuffer_add_file
  - evbuffer_setcb
  - evbuffer_add_cb
  - evbuffer_remove_cb_entry
  - evbuffer_remove_cb
  - evbuffer_cb_set_flags
  - evbuffer_cb_clear_flags
  - evbuffer_freeze
  - evbuffer_unfreeze
  - evbuffer_cb_suspend
  - evbuffer_cb_unsuspend
  - evbuffer_get_callbacks_
  source_file: /src/libevent/buffer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAP_FAILED
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/libevent/buffer.c
      type_or_value: ((void *)-1)
    - item_type: preproc_def
      name: USE_SENDFILE
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/libevent/buffer.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SENDFILE_IS_LINUX
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/libevent/buffer.c
      type_or_value: '1'
    - item_type: preproc_def
      name: USE_SENDFILE
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/libevent/buffer.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SENDFILE_IS_FREEBSD
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/libevent/buffer.c
      type_or_value: '1'
    - item_type: preproc_def
      name: USE_SENDFILE
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/libevent/buffer.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SENDFILE_IS_MACOSX
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/libevent/buffer.c
      type_or_value: '1'
    - item_type: preproc_def
      name: USE_SENDFILE
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/libevent/buffer.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SENDFILE_IS_SOLARIS
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/libevent/buffer.c
      type_or_value: '1'
    - item_type: preproc_def
      name: EVBUFFER_CB_USER_FLAGS
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/libevent/buffer.c
      type_or_value: '0xffff'
    - item_type: preproc_def
      name: EVBUFFER_CB_INTERNAL_FLAGS
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/libevent/buffer.c
      type_or_value: '0xffff0000'
    - item_type: preproc_def
      name: EVBUFFER_CB_OBSOLETE
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/libevent/buffer.c
      type_or_value: '0x00040000'
    - item_type: preproc_def
      name: EVBUFFER_MAX_READ_DEFAULT
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/libevent/buffer.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: CHUNK_SZ
      pos:
        line_end: 1524
        line_start: 1523
        source_file: /src/libevent/buffer.c
      type_or_value: '128'
    - item_type: preproc_def
      name: EVBUFFER_CHAIN_MAX_AUTO_SIZE
      pos:
        line_end: 1751
        line_start: 1750
        source_file: /src/libevent/buffer.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: MAX_TO_COPY_IN_EXPAND
      pos:
        line_end: 1946
        line_start: 1945
        source_file: /src/libevent/buffer.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: MAX_TO_REALIGN_IN_EXPAND
      pos:
        line_end: 1947
        line_start: 1946
        source_file: /src/libevent/buffer.c
      type_or_value: '2048'
    - item_type: preproc_def
      name: DEFAULT_WRITE_IOVEC
      pos:
        line_end: 2208
        line_start: 2207
        source_file: /src/libevent/buffer.c
      type_or_value: '128'
    - item_type: preproc_def
      name: NUM_WRITE_IOVEC
      pos:
        line_end: 2211
        line_start: 2210
        source_file: /src/libevent/buffer.c
      type_or_value: UIO_MAXIOV
    - item_type: preproc_def
      name: NUM_WRITE_IOVEC
      pos:
        line_end: 2213
        line_start: 2212
        source_file: /src/libevent/buffer.c
      type_or_value: IOV_MAX
    - item_type: preproc_def
      name: NUM_WRITE_IOVEC
      pos:
        line_end: 2215
        line_start: 2214
        source_file: /src/libevent/buffer.c
      type_or_value: DEFAULT_WRITE_IOVEC
    - item_type: preproc_def
      name: IOV_TYPE
      pos:
        line_end: 2218
        line_start: 2217
        source_file: /src/libevent/buffer.c
      type_or_value: struct iovec
    - item_type: preproc_def
      name: IOV_PTR_FIELD
      pos:
        line_end: 2219
        line_start: 2218
        source_file: /src/libevent/buffer.c
      type_or_value: iov_base
    - item_type: preproc_def
      name: IOV_LEN_FIELD
      pos:
        line_end: 2220
        line_start: 2219
        source_file: /src/libevent/buffer.c
      type_or_value: iov_len
    - item_type: preproc_def
      name: IOV_LEN_TYPE
      pos:
        line_end: 2221
        line_start: 2220
        source_file: /src/libevent/buffer.c
      type_or_value: size_t
    - item_type: preproc_def
      name: NUM_WRITE_IOVEC
      pos:
        line_end: 2223
        line_start: 2222
        source_file: /src/libevent/buffer.c
      type_or_value: '16'
    - item_type: preproc_def
      name: IOV_TYPE
      pos:
        line_end: 2224
        line_start: 2223
        source_file: /src/libevent/buffer.c
      type_or_value: WSABUF
    - item_type: preproc_def
      name: IOV_PTR_FIELD
      pos:
        line_end: 2225
        line_start: 2224
        source_file: /src/libevent/buffer.c
      type_or_value: buf
    - item_type: preproc_def
      name: IOV_LEN_FIELD
      pos:
        line_end: 2226
        line_start: 2225
        source_file: /src/libevent/buffer.c
      type_or_value: len
    - item_type: preproc_def
      name: IOV_LEN_TYPE
      pos:
        line_end: 2227
        line_start: 2226
        source_file: /src/libevent/buffer.c
      type_or_value: unsigned long
    - item_type: preproc_def
      name: NUM_READ_IOVEC
      pos:
        line_end: 2230
        line_start: 2229
        source_file: /src/libevent/buffer.c
      type_or_value: '4'
    - item_type: preproc_def
      name: lseek
      pos:
        line_end: 3142
        line_start: 3141
        source_file: /src/libevent/buffer.c
      type_or_value: _lseeki64
    structs: []
    typedefs: []
    union: []
- function_names:
  - evthread_posix_lock_alloc
  - evthread_posix_lock_free
  - evthread_posix_lock
  - evthread_posix_unlock
  - evthread_posix_get_id
  - evthread_posix_cond_alloc
  - evthread_posix_cond_free
  - evthread_posix_cond_signal
  - evthread_posix_cond_wait
  - evthread_use_pthreads_with_flags
  - evthread_use_pthreads
  source_file: /src/libevent/evthread_pthread.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: thr
        type: pthread_t
      item_type: union
      name: r
      pos:
        line_end: 98
        line_start: 91
        source_file: /src/libevent/evthread_pthread.c
- function_names:
  - print_err
  - print_err
  - bio_bufferevent_new
  - bio_bufferevent_free
  - bio_bufferevent_read
  - bio_bufferevent_write
  - bio_bufferevent_ctrl
  - bio_bufferevent_puts
  - BIO_s_bufferevent
  - BIO_new_bufferevent
  - conn_closed
  - init_bio_counts
  - decrement_buckets
  - SSL_init
  - SSL_context_free
  - SSL_handshake_is_ok
  - SSL_is_want_read
  - SSL_is_want_write
  - openssl_read
  - openssl_write
  - be_openssl_get_fd
  - be_openssl_bio_set_fd
  - SSL_pending_wrap
  - bufferevent_openssl_filter_new
  - bufferevent_openssl_socket_new
  - bufferevent_ssl_renegotiate
  - bufferevent_openssl_get_ssl
  - bufferevent_openssl_get_allow_dirty_shutdown
  - bufferevent_openssl_set_allow_dirty_shutdown
  - bufferevent_get_openssl_error
  source_file: /src/libevent/bufferevent_openssl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BIO_TYPE_LIBEVENT
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/libevent/bufferevent_openssl.c
      type_or_value: '57'
    structs: []
    typedefs: []
    union: []
- function_names:
  - event_enable_debug_logging
  - event_set_fatal_callback
  - event_exit
  - event_err
  - event_warn
  - event_sock_err
  - event_sock_warn
  - event_errx
  - event_warnx
  - event_msgx
  - event_debugx_
  - event_logv_
  - event_set_log_callback
  - event_log
  source_file: /src/libevent/log.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_MASK
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/libevent/log.c
      type_or_value: EVENT_DBG_ALL
    - item_type: preproc_def
      name: DEFAULT_MASK
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/libevent/log.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - arc4_init
  - arc4_addrandom
  - read_all
  - arc4_seed_win32
  - arc4_seed_getrandom
  - arc4_seed_sysctl_bsd
  - arc4_seed_proc_sys_kernel_random_uuid
  - arc4_seed_urandom_helper_
  - arc4_seed_urandom
  - arc4_seed
  - arc4_stir
  - arc4_stir_if_needed
  - arc4_getbyte
  - arc4_getword
  - arc4random_stir
  - arc4random_addrandom
  - ARC4RANDOM_UINT32::arc4random
  - arc4random_buf
  - arc4random_uniform
  source_file: /src/libevent/arc4random.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ARC4RANDOM_UINT32
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/libevent/arc4random.c
      type_or_value: uint32_t
    - item_type: preproc_def
      name: ADD_ENTROPY
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libevent/arc4random.c
      type_or_value: '32'
    - item_type: preproc_def
      name: REKEY_BASE
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libevent/arc4random.c
      type_or_value: '(1024*1024) '
    - item_type: preproc_def
      name: getpid
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libevent/arc4random.c
      type_or_value: _getpid
    - item_type: preproc_def
      name: pid_t
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libevent/arc4random.c
      type_or_value: int
    - item_type: preproc_def
      name: O_RDONLY
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/libevent/arc4random.c
      type_or_value: _O_RDONLY
    structs:
    - fields:
      - name: i
        type: unsigned char
      - name: j
        type: unsigned char
      - name: s[256]
        type: unsigned char
      item_type: struct
      name: arc4_stream
      pos:
        line_end: 87
        line_start: 83
        source_file: /src/libevent/arc4random.c
    typedefs: []
    union: []
- function_names:
  - ev_token_bucket_decrement_read
  - ev_token_bucket_decrement_write
  source_file: /src/libevent/ratelim-internal.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: read_limit
        type: ev_ssize_t
      - name: last_updated
        type: ev_uint32_t
      item_type: struct
      name: ev_token_bucket
      pos:
        line_end: 44
        line_start: 37
        source_file: /src/libevent/ratelim-internal.h
    - fields:
      - name: read_rate
        type: size_t
      - name: read_maximum
        type: size_t
      - name: write_rate
        type: size_t
      - name: write_maximum
        type: size_t
      - name: tick_timeout
        type: struct timeval
      - name: msec_per_tick
        type: unsigned
      item_type: struct
      name: ev_token_bucket_cfg
      pos:
        line_end: 63
        line_start: 47
        source_file: /src/libevent/ratelim-internal.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/defer-internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*deferred_cb_fn)(struct event_callback *, void *)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/libevent/defer-internal.h
      type: void
    union: []
- function_names:
  - be_async_run_eventcb
  - be_async_trigger_nolock
  - fatal_error
  - upcast
  - upcast_connect
  - upcast_read
  - upcast_write
  - bev_async_del_write
  - bev_async_del_read
  - bev_async_add_write
  - bev_async_add_read
  - bev_async_consider_writing
  - bev_async_consider_reading
  - be_async_outbuf_callback
  - be_async_inbuf_callback
  - be_async_enable
  - be_async_disable
  - be_async_destruct
  - bev_async_set_wsa_error
  - be_async_flush
  - connect_complete
  - read_complete
  - write_complete
  - bufferevent_async_new_
  - bufferevent_async_set_connected_
  - bufferevent_async_can_connect_
  - bufferevent_async_connect_
  - be_async_ctrl
  source_file: /src/libevent/bufferevent_async.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SO_UPDATE_CONNECT_CONTEXT
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libevent/bufferevent_async.c
      type_or_value: '0x7010'
    structs:
    - fields:
      - name: bev
        type: struct bufferevent_private
      - name: connect_overlapped
        type: struct event_overlapped
      - name: read_overlapped
        type: struct event_overlapped
      - name: write_overlapped
        type: struct event_overlapped
      - name: read_in_progress
        type: size_t
      - name: write_in_progress
        type: size_t
      - name: ok
        type: unsigned
      - name: read_added
        type: unsigned
      - name: write_added
        type: unsigned
      item_type: struct
      name: bufferevent_async
      pos:
        line_end: 89
        line_start: 79
        source_file: /src/libevent/bufferevent_async.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/kqueue-internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hash_debug_entry
  - eq_debug_entry
  - event_debug_mode_too_late_set
  - event_debug_note_setup_
  - event_debug_note_teardown_
  - event_debug_note_add_
  - event_debug_note_del_
  - event_debug_assert_is_setup_
  - event_debug_assert_not_added_
  - event_debug_assert_socket_nonblocking_
  - event_debug_note_setup_
  - event_debug_note_teardown_
  - event_debug_note_add_
  - event_debug_note_del_
  - event_debug_assert_is_setup_
  - event_debug_assert_not_added_
  - event_debug_assert_socket_nonblocking_
  - EVENT_BASE_ASSERT_LOCKED
  - gettime
  - event_base_gettimeofday_cached
  - clear_time_cache
  - update_time_cache
  - event_base_update_cache_time
  - event_callback_to_event
  - event_to_event_callback
  - event_init
  - event_base_new
  - event_config_is_avoided_method
  - event_is_method_disabled
  - event_base_get_features
  - event_enable_debug_mode
  - event_disable_debug_mode
  - event_base_new_with_config
  - event_base_start_iocp_
  - event_base_stop_iocp_
  - event_base_cancel_single_callback_
  - event_base_free_queues_
  - event_base_free_
  - event_base_free_nofinalize
  - event_base_free
  - nil_backend_del
  - event_reinit
  - event_gettime_monotonic
  - event_get_supported_methods
  - event_config_new
  - event_config_entry_free
  - event_config_free
  - event_config_set_flag
  - event_config_avoid_method
  - event_config_require_features
  - event_config_set_num_cpus_hint
  - event_config_set_max_dispatch_interval
  - event_priority_init
  - event_base_priority_init
  - event_base_get_npriorities
  - event_base_get_num_events
  - event_base_get_max_events
  - event_haveevents
  - event_signal_closure
  - COMMON_TIMEOUT_IDX
  - is_common_timeout
  - is_same_common_timeout
  - get_common_timeout_list
  - common_timeout_ok
  - common_timeout_schedule
  - common_timeout_callback
  - event_base_init_common_timeout
  - event_persist_closure
  - event_process_active_single_queue
  - event_process_active
  - event_dispatch
  - event_base_dispatch
  - event_base_get_method
  - event_base_get_signal_method
  - event_loopexit_cb
  - event_loopexit
  - event_base_loopexit
  - event_loopbreak
  - event_base_loopbreak
  - event_base_loopcontinue
  - event_base_got_break
  - event_base_got_exit
  - event_loop
  - event_base_loop
  - event_once_cb
  - event_once
  - event_base_once
  - event_assign
  - event_base_set
  - event_set
  - event_self_cbarg
  - event_base_get_running_event
  - event_new
  - event_free
  - event_debug_unassign
  - event_finalize_nolock_
  - event_finalize_impl_
  - event_finalize
  - event_free_finalize
  - event_callback_finalize_nolock_
  - event_callback_finalize_
  - event_callback_finalize_many_
  - event_priority_set
  - event_pending
  - event_initialized
  - event_get_assignment
  - event_get_struct_event_size
  - event_get_fd
  - event_get_base
  - event_get_events
  - event_get_callback
  - event_get_callback_arg
  - event_get_priority
  - event_add
  - evthread_notify_base_default
  - evthread_notify_base_eventfd
  - evthread_notify_base
  - event_remove_timer_nolock_
  - event_remove_timer
  - event_add_nolock_
  - event_del_
  - event_del
  - event_del_block
  - event_del_noblock
  - event_del_nolock_
  - event_active
  - event_active_nolock_
  - event_active_later_
  - event_active_later_nolock_
  - event_callback_activate_
  - event_callback_activate_nolock_
  - event_callback_activate_later_nolock_
  - event_callback_init_
  - event_callback_cancel_
  - event_callback_cancel_nolock_
  - event_deferred_cb_init_
  - event_deferred_cb_set_priority_
  - event_deferred_cb_cancel_
  - event_deferred_cb_schedule_
  - timeout_next
  - timeout_process
  - MAX
  - MAX_EVENT_COUNT
  - DECR_EVENT_COUNT
  - INCR_EVENT_COUNT
  - event_queue_remove_inserted
  - event_queue_remove_active
  - event_queue_remove_active_later
  - event_queue_remove_timeout
  - event_queue_reinsert_timeout
  - insert_common_timeout_inorder
  - event_queue_insert_inserted
  - event_queue_insert_active
  - event_queue_insert_active_later
  - event_queue_insert_timeout
  - event_queue_make_later_events_active
  - event_get_version
  - event_get_version_number
  - event_get_method
  - event_mm_malloc_
  - event_mm_calloc_
  - event_mm_strdup_
  - event_mm_realloc_
  - event_mm_free_
  - event_set_mem_functions
  - evthread_notify_drain_eventfd
  - evthread_notify_drain_default
  - evthread_make_base_notifiable
  - evthread_make_base_notifiable_nolock_
  - event_base_foreach_event_nolock_
  - dump_inserted_event_fn
  - dump_active_event_fn
  - event_base_foreach_event
  - event_base_dump_events
  - event_base_active_by_fd
  - event_base_active_by_signal
  - event_base_add_virtual_
  - event_base_del_virtual_
  - event_free_debug_globals_locks
  - event_free_debug_globals
  - event_free_evsig_globals
  - event_free_evutil_globals
  - event_free_globals
  - libevent_global_shutdown
  - event_global_setup_locks_
  - event_base_assert_ok_
  - event_base_assert_ok_nolock_
  source_file: /src/libevent/event.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: current_base
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/libevent/event.c
      type_or_value: event_global_current_base_
    - item_type: preproc_def
      name: CLOCK_SYNC_INTERVAL
      pos:
        line_end: 425
        line_start: 424
        source_file: /src/libevent/event.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: MICROSECONDS_MASK
      pos:
        line_end: 1450
        line_start: 1449
        source_file: /src/libevent/event.c
      type_or_value: COMMON_TIMEOUT_MICROSECONDS_MASK
    - item_type: preproc_def
      name: COMMON_TIMEOUT_IDX_MASK
      pos:
        line_end: 1451
        line_start: 1450
        source_file: /src/libevent/event.c
      type_or_value: '0x0ff00000'
    - item_type: preproc_def
      name: COMMON_TIMEOUT_IDX_SHIFT
      pos:
        line_end: 1452
        line_start: 1451
        source_file: /src/libevent/event.c
      type_or_value: '20'
    - item_type: preproc_def
      name: COMMON_TIMEOUT_MASK
      pos:
        line_end: 1453
        line_start: 1452
        source_file: /src/libevent/event.c
      type_or_value: '0xf0000000'
    - item_type: preproc_def
      name: COMMON_TIMEOUT_MAGIC
      pos:
        line_end: 1454
        line_start: 1453
        source_file: /src/libevent/event.c
      type_or_value: '0x50000000'
    - item_type: preproc_def
      name: MAX_COMMON_TIMEOUTS
      pos:
        line_end: 1542
        line_start: 1541
        source_file: /src/libevent/event.c
      type_or_value: '256'
    - item_type: preproc_def
      name: EVENT_FINALIZE_FREE_
      pos:
        line_end: 2336
        line_start: 2335
        source_file: /src/libevent/event.c
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: MAX_DEFERREDS_QUEUED
      pos:
        line_end: 3225
        line_start: 3224
        source_file: /src/libevent/event.c
      type_or_value: '32'
    structs:
    - fields:
      - name: (event_debug_entry)
        type: HT_ENTRY
      - name: '*ptr'
        type: struct event
      - name: added
        type: unsigned
      item_type: struct
      name: event_debug_entry
      pos:
        line_end: 188
        line_start: 184
        source_file: /src/libevent/event.c
    typedefs: []
    union: []
- function_names:
  - sigfd_cb
  - sigfd_free_sigevent
  - sigfd_add
  - sigfd_del
  - sigfd_init_
  source_file: /src/libevent/signalfd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - evrpc_init
  - evrpc_free
  - evrpc_add_hook
  - evrpc_remove_hook_internal
  - TAILQ_FOREACH
  - evrpc_remove_hook
  - evrpc_process_hooks
  - TAILQ_FOREACH
  - evrpc_construct_uri
  - evrpc_register_rpc
  - evrpc_unregister_rpc
  - evrpc_request_cb
  - evrpc_request_cb_closure
  - evrpc_reqstate_free_
  - evrpc_request_done
  - evrpc_get_request
  - evrpc_get_reply
  - evrpc_request_done_closure
  - evrpc_pool_new
  - evrpc_request_wrapper_free
  - evrpc_pool_free
  - evrpc_pool_add_connection
  - evrpc_pool_remove_connection
  - evrpc_pool_set_timeout
  - evrpc_pool_find_connection
  - evrpc_schedule_request
  - evrpc_schedule_request_closure
  - evrpc_pause_request
  - evrpc_resume_request
  - TAILQ_FOREACH
  - evrpc_make_request
  - evrpc_make_request_ctx
  - evrpc_reply_done
  - evrpc_reply_done_closure
  - evrpc_pool_schedule
  - evrpc_request_timeout
  - evrpc_meta_data_free
  - evrpc_hook_meta_new_
  - evrpc_hook_associate_meta_
  - evrpc_hook_context_free_
  - evrpc_hook_add_meta
  - evrpc_hook_find_meta
  - evrpc_hook_get_connection
  - evrpc_send_request_generic
  - evrpc_register_object
  - evrpc_register_generic
  - evrpc_request_get_pool
  - evrpc_request_set_pool
  - evrpc_request_set_cb
  source_file: /src/libevent/evrpc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bufferevent_socket_get_conn_address_
  - bufferevent_socket_set_conn_address_fd_
  - bufferevent_socket_set_conn_address_
  - bufferevent_socket_outbuf_cb
  - bufferevent_readcb
  - bufferevent_writecb
  - bufferevent_socket_new
  - bufferevent_connect_getaddrinfo_cb
  - bufferevent_socket_connect_hostname
  - bufferevent_socket_connect_hostname_hints
  - bufferevent_socket_get_dns_error
  - bufferevent_new
  - be_socket_enable
  - be_socket_disable
  - be_socket_destruct
  - be_socket_flush
  - be_socket_setfd
  - bufferevent_priority_set
  - bufferevent_base_set
  - be_socket_ctrl
  source_file: /src/libevent/bufferevent_sock.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/mbedtls-compat.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EPOLL_OP_TABLE_INDEX
  source_file: /src/libevent/epolltable-internal.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: events
        type: int
      - name: op
        type: int
      item_type: struct
      name: operation
      pos:
        line_end: 138
        line_start: 135
        source_file: /src/libevent/epolltable-internal.h
    typedefs: []
    union: []
- function_names:
  - close_epoll_handle
  - close_epoll_handle
  - epoll_init
  - change_to_string
  - epoll_op_to_string
  - PRINT_CHANGES
  - epoll_apply_one_change
  - epoll_apply_changes
  - epoll_nochangelist_add
  - epoll_nochangelist_del
  - epoll_dispatch
  - epoll_dealloc
  source_file: /src/libevent/epoll.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EPOLLET
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/libevent/epoll.c
      type_or_value: '0'
    - item_type: preproc_def
      name: EPOLLRDHUP
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/libevent/epoll.c
      type_or_value: '0'
    - item_type: preproc_def
      name: EARLY_CLOSE_IF_HAVE_RDHUP
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libevent/epoll.c
      type_or_value: '0'
    - item_type: preproc_def
      name: EARLY_CLOSE_IF_HAVE_RDHUP
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libevent/epoll.c
      type_or_value: EV_FEATURE_EARLY_CLOSE
    - item_type: preproc_def
      name: INVALID_EPOLL_HANDLE
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/libevent/epoll.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: INVALID_EPOLL_HANDLE
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/libevent/epoll.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: INITIAL_NEVENT
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/libevent/epoll.c
      type_or_value: '32'
    - item_type: preproc_def
      name: MAX_NEVENT
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/libevent/epoll.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: MAX_EPOLL_TIMEOUT_MSEC
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/libevent/epoll.c
      type_or_value: (35*60*1000)
    structs:
    - fields:
      - name: '*events'
        type: struct epoll_event
      - name: nevents
        type: int
      - name: epfd
        type: epoll_handle
      item_type: struct
      name: epollop
      pos:
        line_end: 110
        line_start: 103
        source_file: /src/libevent/epoll.c
    typedefs:
    - item_type: typedef
      name: epoll_handle
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/libevent/epoll.c
      type: HANDLE
    - item_type: typedef
      name: epoll_handle
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/libevent/epoll.c
      type: int
    union: []
- function_names: []
  source_file: /src/libevent/evrpc-internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EVRPC_URI_PREFIX
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/libevent/evrpc-internal.h
      type_or_value: '"/.rpc."'
    - item_type: preproc_def
      name: input_hooks
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/libevent/evrpc-internal.h
      type_or_value: common.in_hooks
    - item_type: preproc_def
      name: output_hooks
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/libevent/evrpc-internal.h
      type_or_value: common.out_hooks
    - item_type: preproc_def
      name: paused_requests
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libevent/evrpc-internal.h
      type_or_value: common.pause_requests
    structs:
    - fields:
      - name: (evrpc_hook)
        type: TAILQ_ENTRY
      - name: "(*process)(void *, struct evhttp_request *,\n\t    struct evbuffer
          *, void *)"
        type: int
      - name: '*process_arg'
        type: void
      item_type: struct
      name: evrpc_hook
      pos:
        line_end: 46
        line_start: 37
        source_file: /src/libevent/evrpc-internal.h
    - fields:
      - name: in_hooks
        type: struct evrpc_hook_list
      - name: out_hooks
        type: struct evrpc_hook_list
      - name: pause_requests
        type: struct evrpc_pause_list
      item_type: struct
      name: evrpc_hooks_
      pos:
        line_end: 65
        line_start: 59
        source_file: /src/libevent/evrpc-internal.h
    - fields:
      - name: common
        type: struct evrpc_hooks_
      - name: '* http_server'
        type: struct evhttp
      item_type: struct
      name: evrpc_base
      pos:
        line_end: 79
        line_start: 71
        source_file: /src/libevent/evrpc-internal.h
    - fields:
      - name: common
        type: struct evrpc_hooks_
      - name: '*base'
        type: struct event_base
      - name: connections
        type: struct evconq
      - name: timeout
        type: int
      item_type: struct
      name: evrpc_pool
      pos:
        line_end: 95
        line_start: 85
        source_file: /src/libevent/evrpc-internal.h
    - fields:
      - name: (evrpc_hook_ctx)
        type: TAILQ_ENTRY
      - name: '*ctx'
        type: void
      - name: (*cb)(void *, enum EVRPC_HOOK_RESULT)
        type: void
      item_type: struct
      name: evrpc_hook_ctx
      pos:
        line_end: 102
        line_start: 97
        source_file: /src/libevent/evrpc-internal.h
    - fields:
      - name: (evrpc_meta)
        type: TAILQ_ENTRY
      - name: '*key'
        type: char
      - name: '*data'
        type: void
      - name: data_size
        type: size_t
      item_type: struct
      name: evrpc_meta
      pos:
        line_end: 110
        line_start: 104
        source_file: /src/libevent/evrpc-internal.h
    - fields:
      - name: meta_data
        type: struct evrpc_meta_list
      - name: '*evcon'
        type: struct evhttp_connection
      item_type: struct
      name: evrpc_hook_meta
      pos:
        line_end: 117
        line_start: 114
        source_file: /src/libevent/evrpc-internal.h
    - fields:
      - name: '*hook_meta'
        type: struct evrpc_hook_meta
      - name: '*request'
        type: void
      - name: '*reply'
        type: void
      - name: '*rpc'
        type: struct evrpc
      - name: '* http_req'
        type: struct evhttp_request
      - name: '* rpc_data'
        type: struct evbuffer
      item_type: struct
      name: evrpc_req_generic
      pos:
        line_end: 160
        line_start: 132
        source_file: /src/libevent/evrpc-internal.h
    - fields:
      - name: '*hook_meta'
        type: struct evrpc_hook_meta
      - name: (evrpc_request_wrapper)
        type: TAILQ_ENTRY
      - name: '*pool'
        type: struct evrpc_pool
      - name: '*evcon'
        type: struct evhttp_connection
      - name: '*req'
        type: struct evhttp_request
      - name: ev_timeout
        type: struct event
      - name: '*name'
        type: char
      - name: (*cb)(struct evrpc_status*, void *request, void *reply, void *arg)
        type: void
      - name: '*cb_arg'
        type: void
      - name: '*request'
        type: void
      - name: '*reply'
        type: void
      - name: (*request_marshal)(struct evbuffer *, void *)
        type: void
      - name: (*reply_clear)(void *)
        type: void
      - name: (*reply_unmarshal)(void *, struct evbuffer*)
        type: int
      item_type: struct
      name: evrpc_request_wrapper
      pos:
        line_end: 202
        line_start: 163
        source_file: /src/libevent/evrpc-internal.h
    typedefs: []
    union: []
- function_names:
  - EVBUFFER_CHAIN_EXTRA
  - ASSERT_EVBUFFER_LOCKED
  - EVBUFFER_LOCK
  - EVBUFFER_UNLOCK
  - EVBUFFER_LOCK2
  - EVBUFFER_UNLOCK2
  - WSABUF_FROM_EVBUFFER_IOV
  source_file: /src/libevent/evbuffer-internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EVBUFFER_CB_NODEFER
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MIN_BUFFER_SIZE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: '512'
    - item_type: preproc_def
      name: MIN_BUFFER_SIZE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: EVBUFFER_CHAIN_MAX
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: ((size_t)EV_SSIZE_MAX)
    - item_type: preproc_def
      name: EVBUFFER_CHAIN_MAX
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: EV_SIZE_MAX
    - item_type: preproc_def
      name: EVBUFFER_CHAIN_MAX
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: ((size_t)EV_SSIZE_MAX)
    - item_type: preproc_def
      name: EVBUFFER_FILESEGMENT
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: '0x0001  '
    - item_type: preproc_def
      name: EVBUFFER_SENDFILE
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: "0x0002\t"
    - item_type: preproc_def
      name: EVBUFFER_REFERENCE
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: "0x0004\t"
    - item_type: preproc_def
      name: EVBUFFER_IMMUTABLE
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: "0x0008\t"
    - item_type: preproc_def
      name: EVBUFFER_MEM_PINNED_R
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: EVBUFFER_MEM_PINNED_W
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: EVBUFFER_MEM_PINNED_ANY
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: (EVBUFFER_MEM_PINNED_R|EVBUFFER_MEM_PINNED_W)
    - item_type: preproc_def
      name: EVBUFFER_DANGLING
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: EVBUFFER_MULTICAST
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: '0x0080'
    - item_type: preproc_def
      name: EVBUFFER_CHAIN_SIZE
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/libevent/evbuffer-internal.h
      type_or_value: sizeof(struct evbuffer_chain)
    structs:
    - fields:
      - name: (evbuffer_cb_entry)
        type: LIST_ENTRY
      - name: cb
        type: "union {\n\t\tevbuffer_cb_func cb_func;\n\t\tevbuffer_cb cb_obsolete;\n\t}"
      - name: '*cbarg'
        type: void
      - name: flags
        type: ev_uint32_t
      item_type: struct
      name: evbuffer_cb_entry
      pos:
        line_end: 75
        line_start: 61
        source_file: /src/libevent/evbuffer-internal.h
    - fields:
      - name: '*first'
        type: struct evbuffer_chain
      - name: '*last'
        type: struct evbuffer_chain
      - name: '**last_with_datap'
        type: struct evbuffer_chain
      - name: total_len
        type: size_t
      - name: max_read
        type: size_t
      - name: n_add_for_cb
        type: size_t
      - name: n_del_for_cb
        type: size_t
      - name: own_lock
        type: unsigned
      - name: freeze_start
        type: unsigned
      - name: freeze_end
        type: unsigned
      - name: deferred_cbs
        type: unsigned
      - name: flags
        type: ev_uint32_t
      - name: '*cb_queue'
        type: struct event_base
      - name: refcnt
        type: int
      - name: deferred
        type: struct event_callback
      - name: '*parent'
        type: struct bufferevent
      item_type: struct
      name: evbuffer
      pos:
        line_end: 157
        line_start: 79
        source_file: /src/libevent/evbuffer-internal.h
    - fields:
      - name: '*next'
        type: struct evbuffer_chain
      - name: buffer_len
        type: size_t
      - name: misalign
        type: ev_misalign_t
      - name: 'off'
        type: size_t
      - name: flags
        type: unsigned
      - name: refcnt
        type: int
      - name: '*buffer'
        type: unsigned char
      item_type: struct
      name: evbuffer_chain
      pos:
        line_end: 215
        line_start: 172
        source_file: /src/libevent/evbuffer-internal.h
    - fields:
      - name: cleanupfn
        type: evbuffer_ref_cleanup_cb
      - name: '*extra'
        type: void
      item_type: struct
      name: evbuffer_chain_reference
      pos:
        line_end: 223
        line_start: 220
        source_file: /src/libevent/evbuffer-internal.h
    - fields:
      - name: '*segment'
        type: struct evbuffer_file_segment
      item_type: struct
      name: evbuffer_chain_file_segment
      pos:
        line_end: 233
        line_start: 227
        source_file: /src/libevent/evbuffer-internal.h
    - fields:
      - name: '*lock'
        type: void
      - name: refcnt
        type: int
      - name: flags
        type: unsigned
      - name: can_sendfile
        type: unsigned
      - name: is_mapping
        type: unsigned
      - name: fd
        type: int
      - name: '*mapping'
        type: void
      - name: '*contents'
        type: char
      - name: file_offset
        type: ev_off_t
      - name: mmap_offset
        type: ev_off_t
      - name: length
        type: ev_off_t
      - name: cleanup_cb
        type: evbuffer_file_segment_cleanup_cb
      - name: '*cleanup_cb_arg'
        type: void
      item_type: struct
      name: evbuffer_file_segment
      pos:
        line_end: 267
        line_start: 236
        source_file: /src/libevent/evbuffer-internal.h
    - fields:
      - name: '*source'
        type: struct evbuffer
      - name: '*parent'
        type: struct evbuffer_chain
      item_type: struct
      name: evbuffer_multicast_parent
      pos:
        line_end: 276
        line_start: 271
        source_file: /src/libevent/evbuffer-internal.h
    typedefs:
    - item_type: typedef
      name: ev_misalign_t
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/libevent/evbuffer-internal.h
      type: ev_ssize_t
    - item_type: typedef
      name: ev_misalign_t
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/libevent/evbuffer-internal.h
      type: ev_off_t
    union: []
- function_names:
  - evthread_win32_lock_create
  - evthread_win32_lock_free
  - evthread_win32_lock
  - evthread_win32_unlock
  - evthread_win32_get_id
  - evthread_win32_condvar_init
  - LOAD
  - evthread_win32_condvar_alloc
  - evthread_win32_condvar_free
  - evthread_win32_condvar_signal
  - evthread_win32_condvar_wait
  - evthread_win32_cond_alloc
  - evthread_win32_cond_free
  - evthread_win32_cond_signal
  - evthread_win32_cond_wait
  - evthread_use_windows_threads
  source_file: /src/libevent/evthread_win32.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _WIN32_WINNT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/libevent/evthread_win32.c
      type_or_value: '0x0403'
    - item_type: preproc_def
      name: SPIN_COUNT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/libevent/evthread_win32.c
      type_or_value: '2000'
    structs:
    - fields:
      - name: event
        type: HANDLE
      - name: lock
        type: CRITICAL_SECTION
      - name: n_waiting
        type: int
      - name: n_to_wake
        type: int
      - name: generation
        type: int
      item_type: struct
      name: evthread_win32_cond
      pos:
        line_end: 189
        line_start: 182
        source_file: /src/libevent/evthread_win32.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/time-internal.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: adjust_monotonic_clock
        type: struct timeval
      - name: last_time
        type: struct timeval
      item_type: struct
      name: evutil_monotonic_timer
      pos:
        line_end: 87
        line_start: 63
        source_file: /src/libevent/time-internal.h
    typedefs:
    - item_type: typedef
      name: (WINAPI *ev_GetTickCount_func)(void)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/libevent/time-internal.h
      type: ULONGLONG
    union: []
- function_names: []
  source_file: /src/libevent/evdns-internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - evutil_gettimeofday
  - U64_LITERAL
  - U64_LITERAL
  - evutil_tv_to_msec_
  - evutil_usleep_
  - evutil_date_rfc1123
  - adjust_monotonic_time
  - evutil_monotonic_timer_new
  - evutil_monotonic_timer_free
  - evutil_configure_monotonic_time
  - evutil_gettime_monotonic
  - evutil_configure_monotonic_time_
  - evutil_gettime_monotonic_
  - evutil_configure_monotonic_time_
  - evutil_gettime_monotonic_
  - evutil_GetTickCount_
  - evutil_configure_monotonic_time_
  - abs64
  - evutil_gettime_monotonic_
  - evutil_configure_monotonic_time_
  - evutil_gettime_monotonic_
  source_file: /src/libevent/evutil_time.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EPOCH_BIAS
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libevent/evutil_time.c
      type_or_value: U64_LITERAL(116444736000000000)
    - item_type: preproc_def
      name: UNITS_PER_SEC
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libevent/evutil_time.c
      type_or_value: U64_LITERAL(10000000)
    - item_type: preproc_def
      name: USEC_PER_SEC
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libevent/evutil_time.c
      type_or_value: U64_LITERAL(1000000)
    - item_type: preproc_def
      name: UNITS_PER_USEC
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libevent/evutil_time.c
      type_or_value: U64_LITERAL(10)
    - item_type: preproc_def
      name: MAX_SECONDS_IN_MSEC_LONG
      pos:
        line_end: 125
        line_start: 123
        source_file: /src/libevent/evutil_time.c
      type_or_value: (((LONG_MAX) - 999) / 1000)
    structs: []
    typedefs:
    - item_type: typedef
      name: (WINAPI *GetSystemTimePreciseAsFileTime_fn_t) (LPFILETIME)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/libevent/evutil_time.c
      type: void
    union:
    - fields:
      - name: ft_ft
        type: FILETIME
      - name: ft_64
        type: ev_uint64_t
      item_type: union
      name: ft
      pos:
        line_end: 93
        line_start: 90
        source_file: /src/libevent/evutil_time.c
- function_names:
  - upcast
  - downcast
  - be_underlying_writebuf_full
  - be_readbuf_full
  - be_null_filter
  - bufferevent_filter_new
  - be_filter_unlink
  - be_filter_destruct
  - be_filter_enable
  - be_filter_disable
  - be_filter_process_input
  - be_filter_process_output
  - bufferevent_filtered_outbuf_cb
  - be_filter_read_nolock_
  - bufferevent_filtered_inbuf_cb
  - be_filter_readcb
  - be_filter_writecb
  - be_filter_eventcb
  - be_filter_flush
  - be_filter_ctrl
  source_file: /src/libevent/bufferevent_filter.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: bev
        type: struct bufferevent_private
      - name: '*underlying'
        type: struct bufferevent
      - name: '*inbuf_cb'
        type: struct evbuffer_cb_entry
      - name: '*outbuf_cb'
        type: struct evbuffer_cb_entry
      - name: got_eof
        type: unsigned
      - name: (*free_context)(void *)
        type: void
      - name: process_in
        type: bufferevent_filter_cb
      - name: process_out
        type: bufferevent_filter_cb
      - name: '*context'
        type: void
      item_type: struct
      name: bufferevent_filtered
      pos:
        line_end: 100
        line_start: 79
        source_file: /src/libevent/bufferevent_filter.c
    typedefs: []
    union: []
- function_names:
  - ev_token_bucket_init_
  - ev_token_bucket_update_
  - bufferevent_update_buckets
  - ev_token_bucket_get_tick_
  - ev_token_bucket_cfg_new
  - ev_token_bucket_cfg_free
  - LOCK_GROUP
  - UNLOCK_GROUP
  - bufferevent_get_rlim_max_
  - LIM
  - GROUP_SUSPENDED
  - CLAMPTO
  - bufferevent_get_read_max_
  - bufferevent_get_write_max_
  - bufferevent_decrement_read_buckets_
  - bufferevent_decrement_write_buckets_
  - bev_group_suspend_reading_
  - bev_group_suspend_writing_
  - bev_refill_callback_
  - bev_group_random_element_
  - FOREACH_RANDOM_ORDER
  - bev_group_unsuspend_reading_
  - bev_group_unsuspend_writing_
  - bev_group_refill_callback_
  - bufferevent_set_rate_limit
  - bufferevent_rate_limit_group_new
  - bufferevent_rate_limit_group_set_cfg
  - bufferevent_rate_limit_group_set_min_share
  - bufferevent_rate_limit_group_free
  - bufferevent_add_to_rate_limit_group
  - bufferevent_remove_from_rate_limit_group
  - bufferevent_remove_from_rate_limit_group_internal_
  - bufferevent_get_read_limit
  - bufferevent_get_write_limit
  - bufferevent_set_max_single_read
  - bufferevent_set_max_single_write
  - bufferevent_get_max_single_read
  - bufferevent_get_max_single_write
  - bufferevent_get_max_to_read
  - bufferevent_get_max_to_write
  - bufferevent_get_token_bucket_cfg
  - bufferevent_rate_limit_group_get_read_limit
  - bufferevent_rate_limit_group_get_write_limit
  - bufferevent_decrement_read_limit
  - bufferevent_decrement_write_limit
  - bufferevent_rate_limit_group_decrement_read
  - bufferevent_rate_limit_group_decrement_write
  - bufferevent_rate_limit_group_get_totals
  - bufferevent_rate_limit_group_reset_totals
  - bufferevent_ratelim_init_
  source_file: /src/libevent/bufferevent_ratelim.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_SINGLE_READ_DEFAULT
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/libevent/bufferevent_ratelim.c
      type_or_value: '16384'
    - item_type: preproc_def
      name: MAX_SINGLE_WRITE_DEFAULT
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/libevent/bufferevent_ratelim.c
      type_or_value: '16384'
    structs: []
    typedefs: []
    union: []
- function_names:
  - rol
  - blk0
  - blk0
  - blk
  - R0
  - R1
  - R2
  - R3
  - R4
  - SHA1Transform
  - SHA1Init
  - SHA1Update
  - SHA1Final
  - builtin_SHA1
  source_file: /src/libevent/sha1.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: state[5]
        type: uint32_t
      - name: count[2]
        type: uint32_t
      - name: buffer[64]
        type: unsigned char
      item_type: struct
      name: SHA1_CTX
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libevent/sha1.c
    typedefs: []
    union:
    - fields:
      - name: c[64]
        type: unsigned char
      - name: l[16]
        type: uint32_t
      item_type: union
      name: CHAR64LONG16
      pos:
        line_end: 93
        line_start: 90
        source_file: /src/libevent/sha1.c
- function_names:
  - evtag_init
  - ENCODE_INT_INTERNAL
  - encode_int64_internal
  - evtag_encode_int
  - evtag_encode_int64
  - evtag_encode_tag
  - decode_tag_internal
  - evtag_decode_tag
  - evtag_marshal
  - evtag_marshal_buffer
  - evtag_marshal_int
  - evtag_marshal_int64
  - evtag_marshal_string
  - evtag_marshal_timeval
  - DECODE_INT_INTERNAL
  - decode_int64_internal
  - evtag_decode_int
  - evtag_decode_int64
  - evtag_peek
  - evtag_peek_length
  - evtag_payload_length
  - evtag_unmarshal_header
  - evtag_consume
  - evtag_unmarshal
  - evtag_unmarshal_int
  - evtag_unmarshal_int64
  - evtag_unmarshal_fixed
  - evtag_unmarshal_string
  - evtag_unmarshal_timeval
  source_file: /src/libevent/event_tagging.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/strlcpy-internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: strlcpy
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/libevent/strlcpy-internal.h
      type_or_value: event_strlcpy_
    structs: []
    typedefs: []
    union: []
- function_names:
  - EVUTIL_HAS_ATTRIBUTE
  - EVUTIL_NIL_CONDITION_
  - EVUTIL_ERR_IS_EAGAIN
  - EVUTIL_ERR_IS_EAGAIN
  - EVUTIL_ERR_RW_RETRIABLE
  - EVUTIL_ERR_CONNECT_RETRIABLE
  - EVUTIL_ERR_ACCEPT_RETRIABLE
  - EVUTIL_ERR_CONNECT_REFUSED
  - EVUTIL_ERR_IS_EAGAIN
  - EVUTIL_ERR_RW_RETRIABLE
  - EVUTIL_ERR_CONNECT_RETRIABLE
  - EVUTIL_ERR_ACCEPT_RETRIABLE
  - EVUTIL_ERR_CONNECT_REFUSED
  - EVUTIL_ASSERT_LIST_OK
  - EVUTIL_ASSERT_TAILQ_OK
  - EVUTIL_UPCAST
  - EVUTIL_UNLIKELY
  - EVUTIL_UNLIKELY
  - EVUTIL_ASSERT
  - EVUTIL_FAILURE_CHECK
  - EVUTIL_ASSERT
  - EVUTIL_FAILURE_CHECK
  - EV_I64_ARG
  - EV_U64_ARG
  - EV_I64_ARG
  - EV_U64_ARG
  - EV_SOCK_ARG
  - EV_SOCK_ARG
  - EV_SIZE_ARG
  - EV_SSIZE_ARG
  - EV_SIZE_ARG
  - EV_SSIZE_ARG
  - EV_SIZE_ARG
  - EV_SSIZE_ARG
  source_file: /src/libevent/util-internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EVUTIL_HAS_ATTRIBUTE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/libevent/util-internal.h
      type_or_value: __has_attribute
    - item_type: preproc_def
      name: inline
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/libevent/util-internal.h
      type_or_value: EVENT__inline
    - item_type: preproc_def
      name: __func__
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libevent/util-internal.h
      type_or_value: __func__
    - item_type: preproc_def
      name: __func__
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libevent/util-internal.h
      type_or_value: __FUNCTION__
    - item_type: preproc_def
      name: __func__
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libevent/util-internal.h
      type_or_value: __FILE__
    - item_type: preproc_def
      name: EVUTIL_NIL_STMT_
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libevent/util-internal.h
      type_or_value: ((void)0)
    - item_type: preproc_def
      name: EVUTIL_SHUT_RD
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/libevent/util-internal.h
      type_or_value: SHUT_RD
    - item_type: preproc_def
      name: EVUTIL_SHUT_RD
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/libevent/util-internal.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EVUTIL_SHUT_WR
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/libevent/util-internal.h
      type_or_value: SHUT_WR
    - item_type: preproc_def
      name: EVUTIL_SHUT_WR
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/libevent/util-internal.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: EVUTIL_SHUT_BOTH
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/libevent/util-internal.h
      type_or_value: SHUT_BOTH
    - item_type: preproc_def
      name: EVUTIL_SHUT_BOTH
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/libevent/util-internal.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EVUTIL_WEAKRAND_MAX
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/libevent/util-internal.h
      type_or_value: EV_INT32_MAX
    - item_type: preproc_def
      name: EVUTIL_FALLTHROUGH
      pos:
        line_end: 361
        line_start: 360
        source_file: /src/libevent/util-internal.h
      type_or_value: ; __attribute__((fallthrough))
    - item_type: preproc_def
      name: ss_family
      pos:
        line_end: 400
        line_start: 399
        source_file: /src/libevent/util-internal.h
      type_or_value: ss_union.ss_sa.sa_family
    - item_type: preproc_def
      name: EVUTIL_EAI_NEED_RESOLVE
      pos:
        line_end: 406
        line_start: 405
        source_file: /src/libevent/util-internal.h
      type_or_value: '-90002'
    - item_type: preproc_def
      name: EV_WINDOWS
      pos:
        line_end: 475
        line_start: 474
        source_file: /src/libevent/util-internal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EV_WINDOWS
      pos:
        line_end: 477
        line_start: 476
        source_file: /src/libevent/util-internal.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EV_U64_FMT
      pos:
        line_end: 482
        line_start: 481
        source_file: /src/libevent/util-internal.h
      type_or_value: '"%I64u"'
    - item_type: preproc_def
      name: EV_I64_FMT
      pos:
        line_end: 483
        line_start: 482
        source_file: /src/libevent/util-internal.h
      type_or_value: '"%I64d"'
    - item_type: preproc_def
      name: EV_U64_FMT
      pos:
        line_end: 487
        line_start: 486
        source_file: /src/libevent/util-internal.h
      type_or_value: '"%llu"'
    - item_type: preproc_def
      name: EV_I64_FMT
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/libevent/util-internal.h
      type_or_value: '"%lld"'
    - item_type: preproc_def
      name: EV_SOCK_FMT
      pos:
        line_end: 495
        line_start: 494
        source_file: /src/libevent/util-internal.h
      type_or_value: EV_I64_FMT
    - item_type: preproc_def
      name: EV_SOCK_FMT
      pos:
        line_end: 498
        line_start: 497
        source_file: /src/libevent/util-internal.h
      type_or_value: '"%d"'
    - item_type: preproc_def
      name: EV_SIZE_FMT
      pos:
        line_end: 504
        line_start: 503
        source_file: /src/libevent/util-internal.h
      type_or_value: '"%zu"'
    - item_type: preproc_def
      name: EV_SSIZE_FMT
      pos:
        line_end: 505
        line_start: 504
        source_file: /src/libevent/util-internal.h
      type_or_value: '"%zd"'
    - item_type: preproc_def
      name: EV_SIZE_FMT
      pos:
        line_end: 513
        line_start: 512
        source_file: /src/libevent/util-internal.h
      type_or_value: '"%lu"'
    - item_type: preproc_def
      name: EV_SSIZE_FMT
      pos:
        line_end: 514
        line_start: 513
        source_file: /src/libevent/util-internal.h
      type_or_value: '"%ld"'
    - item_type: preproc_def
      name: EV_SIZE_FMT
      pos:
        line_end: 518
        line_start: 517
        source_file: /src/libevent/util-internal.h
      type_or_value: EV_U64_FMT
    - item_type: preproc_def
      name: EV_SSIZE_FMT
      pos:
        line_end: 519
        line_start: 518
        source_file: /src/libevent/util-internal.h
      type_or_value: EV_I64_FMT
    - item_type: preproc_def
      name: EVUTIL_SOCK_NONBLOCK
      pos:
        line_end: 541
        line_start: 540
        source_file: /src/libevent/util-internal.h
      type_or_value: SOCK_NONBLOCK
    - item_type: preproc_def
      name: EVUTIL_SOCK_NONBLOCK
      pos:
        line_end: 543
        line_start: 542
        source_file: /src/libevent/util-internal.h
      type_or_value: '0x4000000'
    - item_type: preproc_def
      name: EVUTIL_SOCK_CLOEXEC
      pos:
        line_end: 546
        line_start: 545
        source_file: /src/libevent/util-internal.h
      type_or_value: SOCK_CLOEXEC
    - item_type: preproc_def
      name: EVUTIL_SOCK_CLOEXEC
      pos:
        line_end: 548
        line_start: 547
        source_file: /src/libevent/util-internal.h
      type_or_value: '0x80000000'
    - item_type: preproc_def
      name: EVUTIL_EFD_NONBLOCK
      pos:
        line_end: 551
        line_start: 550
        source_file: /src/libevent/util-internal.h
      type_or_value: EFD_NONBLOCK
    - item_type: preproc_def
      name: EVUTIL_EFD_NONBLOCK
      pos:
        line_end: 553
        line_start: 552
        source_file: /src/libevent/util-internal.h
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: EVUTIL_EFD_CLOEXEC
      pos:
        line_end: 556
        line_start: 555
        source_file: /src/libevent/util-internal.h
      type_or_value: EFD_CLOEXEC
    - item_type: preproc_def
      name: EVUTIL_EFD_CLOEXEC
      pos:
        line_end: 558
        line_start: 557
        source_file: /src/libevent/util-internal.h
      type_or_value: '0x8000'
    structs:
    - fields:
      - name: seed
        type: ev_uint32_t
      item_type: struct
      name: evutil_weakrand_state
      pos:
        line_end: 324
        line_start: 322
        source_file: /src/libevent/util-internal.h
    - fields:
      - name: ss_union
        type: "union {\n\t\tstruct sockaddr ss_sa;\n\t\tstruct sockaddr_in ss_sin;\n\t\tstruct
          sockaddr_in6 ss_sin6;\n\t\tchar ss_padding[128];\n\t}"
      item_type: struct
      name: sockaddr_storage
      pos:
        line_end: 398
        line_start: 391
        source_file: /src/libevent/util-internal.h
    typedefs:
    - item_type: typedef
      name: "* (*evdns_getaddrinfo_fn)(\n    struct evdns_base *base,\n    const char
        *nodename, const char *servname,\n    const struct evutil_addrinfo *hints_in,\n
        \   void (*cb)(int, struct evutil_addrinfo *, void *), void *arg)"
      pos:
        line_end: 413
        line_start: 409
        source_file: /src/libevent/util-internal.h
      type: evdns_getaddrinfo_request
    - item_type: typedef
      name: "(*evdns_getaddrinfo_cancel_fn)(\n    struct evdns_getaddrinfo_request
        *req)"
      pos:
        line_end: 417
        line_start: 416
        source_file: /src/libevent/util-internal.h
      type: void
    union: []
- function_names:
  - bufferevent_ssl_upcast
  - bufferevent_ssl_put_error
  - start_reading
  - start_writing
  - bufferevent_ssl_stop_reading
  - bufferevent_ssl_stop_writing
  - set_rbow
  - set_wbor
  - clear_rbow
  - clear_wbor
  - do_read
  - do_write
  - bytes_to_read
  - consider_reading
  - consider_writing
  - be_ssl_readcb
  - be_ssl_writecb
  - be_ssl_eventcb
  - be_ssl_readeventcb
  - be_ssl_writeeventcb
  - be_ssl_auto_fd
  - set_open_callbacks
  - do_handshake
  - be_ssl_handshakecb
  - be_ssl_handshakeeventcb
  - set_handshake_callbacks
  - bufferevent_ssl_renegotiate_impl
  - be_ssl_outbuf_cb
  - be_ssl_enable
  - be_ssl_disable
  - be_ssl_unlink
  - be_ssl_destruct
  - be_ssl_adj_timeouts
  - be_ssl_flush
  - be_ssl_set_fd
  - be_ssl_ctrl
  - bufferevent_ssl_new_impl
  - bufferevent_get_ssl_error
  - bufferevent_ssl_get_flags
  - bufferevent_ssl_set_flags
  - bufferevent_ssl_clear_flags
  - bufferevent_ssl_get_allow_dirty_shutdown
  - bufferevent_ssl_set_allow_dirty_shutdown
  source_file: /src/libevent/bufferevent_ssl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OP_MADE_PROGRESS
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/libevent/bufferevent_ssl.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OP_BLOCKED
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/libevent/bufferevent_ssl.c
      type_or_value: '2'
    - item_type: preproc_def
      name: OP_ERR
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/libevent/bufferevent_ssl.c
      type_or_value: '4'
    - item_type: preproc_def
      name: WRITE_FRAME
      pos:
        line_end: 427
        line_start: 426
        source_file: /src/libevent/bufferevent_ssl.c
      type_or_value: '15000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - poll_init
  - poll_check_ok
  - poll_dispatch
  - poll_add
  - poll_del
  - poll_dealloc
  source_file: /src/libevent/poll.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: POLLRDHUP
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/libevent/poll.c
      type_or_value: '0'
    - item_type: preproc_def
      name: EARLY_CLOSE_IF_HAVE_RDHUP
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/libevent/poll.c
      type_or_value: '0'
    - item_type: preproc_def
      name: EARLY_CLOSE_IF_HAVE_RDHUP
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/libevent/poll.c
      type_or_value: EV_FEATURE_EARLY_CLOSE
    structs:
    - fields:
      - name: idxplus1
        type: int
      item_type: struct
      name: pollidx
      pos:
        line_end: 68
        line_start: 66
        source_file: /src/libevent/poll.c
    - fields:
      - name: event_count
        type: int
      - name: nfds
        type: int
      - name: realloc_copy
        type: int
      - name: '*event_set'
        type: struct pollfd
      - name: '*event_set_copy'
        type: struct pollfd
      item_type: struct
      name: pollop
      pos:
        line_end: 77
        line_start: 70
        source_file: /src/libevent/poll.c
    typedefs: []
    union: []
- function_names:
  - evutil_secure_rng_set_urandom_device_file
  - evutil_secure_rng_init
  - evutil_secure_rng_global_setup_locks_
  - evutil_free_secure_rng_globals_locks
  - ev_arc4random_buf
  - ARC4_LOCK_
  - ARC4_UNLOCK_
  - evutil_secure_rng_global_setup_locks_
  - evutil_free_secure_rng_globals_locks
  - evutil_secure_rng_set_urandom_device_file
  - evutil_secure_rng_init
  - ev_arc4random_buf
  - evutil_secure_rng_get_bytes
  - evutil_secure_rng_add_bytes
  - evutil_free_secure_rng_globals_
  source_file: /src/libevent/evutil_rand.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ssize_t
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/libevent/evutil_rand.c
      type_or_value: EVENT__ssize_t
    - item_type: preproc_def
      name: ARC4RANDOM_EXPORT
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/libevent/evutil_rand.c
      type_or_value: static
    - item_type: preproc_def
      name: ARC4RANDOM_UINT32
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/libevent/evutil_rand.c
      type_or_value: ev_uint32_t
    structs: []
    typedefs: []
    union: []
- function_names:
  - HT_HEAD
  - HT_INITIALIZER
  - HT_ENTRY
  - HT_ENTRY
  - HT_EMPTY
  - HT_SIZE
  - HT_MEM_USAGE
  - HT_FIND
  - HT_INSERT
  - HT_REPLACE
  - HT_REMOVE
  - HT_START
  - HT_NEXT
  - HT_NEXT_RMV
  - HT_CLEAR
  - HT_INIT
  - ht_improve_hash_
  - ht_string_hash_
  - ht_string_hash_
  - HT_SET_HASH_
  - HT_SET_HASHVAL_
  - HT_ELT_HASH_
  - HT_SET_HASH_
  - HT_ELT_HASH_
  - HT_SET_HASHVAL_
  - HT_BUCKET_
  - HT_FOREACH
  - HT_PROTOTYPE
  - _HT_FIND_P_
  - _HT_FIND
  - _HT_INSERT
  - _HT_REPLACE
  - _HT_REMOVE
  - _HT_FOREACH_FN
  - _HT_START
  - _HT_NEXT
  - _HT_NEXT_RMV
  - HT_GENERATE
  - _HT_GROW
  - _HT_CLEAR
  - _HT_REP_IS_BAD_
  - HT_FIND_OR_INSERT_
  - HT_FOI_INSERT_
  source_file: /src/libevent/ht-internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - devpoll_commit
  - devpoll_queue
  - devpoll_init
  - devpoll_dispatch
  - devpoll_add
  - devpoll_del
  - devpoll_dealloc
  source_file: /src/libevent/devpoll.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NEVENT
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libevent/devpoll.c
      type_or_value: '32000'
    structs:
    - fields:
      - name: '*events'
        type: struct pollfd
      - name: nevents
        type: int
      - name: dpfd
        type: int
      - name: '*changes'
        type: struct pollfd
      - name: nchanges
        type: int
      item_type: struct
      name: devpollop
      pos:
        line_end: 61
        line_start: 55
        source_file: /src/libevent/devpoll.c
    typedefs: []
    union: []
- function_names:
  - DIV_ROUNDUP
  - SELECT_ALLOC_SIZE
  - select_init
  - check_selectop
  - check_selectop
  - select_dispatch
  - select_resize
  - select_add
  - select_del
  - select_free_selectop
  - select_dealloc
  source_file: /src/libevent/select.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NFDBITS
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/libevent/select.c
      type_or_value: (sizeof(fd_mask)*8)
    structs:
    - fields:
      - name: event_fds
        type: int
      - name: event_fdsz
        type: int
      - name: resize_out_sets
        type: int
      - name: '*event_readset_in'
        type: fd_set
      - name: '*event_writeset_in'
        type: fd_set
      - name: '*event_readset_out'
        type: fd_set
      - name: '*event_writeset_out'
        type: fd_set
      item_type: struct
      name: selectop
      pos:
        line_end: 85
        line_start: 77
        source_file: /src/libevent/select.c
    typedefs:
    - item_type: typedef
      name: fd_mask
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/libevent/select.c
      type: unsigned long
    union: []
- function_names:
  - EVSIGBASE_LOCK
  - EVSIGBASE_UNLOCK
  - evsig_set_base_
  - evsig_cb
  - evsig_init_
  - evsig_ensure_saved_
  - evsig_set_handler_
  - evsig_add
  - evsig_restore_handler_
  - evsig_del
  - evsig_handler
  - evsig_dealloc_
  - evsig_free_globals_locks
  - evsig_free_globals_
  - evsig_global_setup_locks_
  source_file: /src/libevent/signal.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bufferevent_suspend_read_
  - bufferevent_unsuspend_read_
  - bufferevent_suspend_write_
  - bufferevent_unsuspend_write_
  - bufferevent_inbuf_wm_check
  - bufferevent_inbuf_wm_cb
  - bufferevent_run_deferred_callbacks_locked
  - bufferevent_run_deferred_callbacks_unlocked
  - UNLOCKED
  - SCHEDULE_DEFERRED
  - bufferevent_run_readcb_
  - bufferevent_run_writecb_
  - bufferevent_trigger
  - bufferevent_run_eventcb_
  - bufferevent_trigger_event
  - bufferevent_init_common_
  - bufferevent_setcb
  - bufferevent_getcb
  - bufferevent_get_input
  - bufferevent_get_output
  - bufferevent_get_base
  - bufferevent_get_priority
  - bufferevent_write
  - bufferevent_write_buffer
  - bufferevent_read
  - bufferevent_read_buffer
  - bufferevent_enable
  - bufferevent_set_timeouts
  - bufferevent_settimeout
  - bufferevent_disable_hard_
  - bufferevent_disable
  - bufferevent_setwatermark
  - bufferevent_getwatermark
  - bufferevent_flush
  - bufferevent_incref_and_lock_
  - bufferevent_transfer_lock_ownership_
  - bufferevent_decref_and_unlock_
  - bufferevent_finalize_cb_
  - bufferevent_decref
  - bufferevent_free
  - bufferevent_incref
  - bufferevent_enable_locking_
  - bufferevent_setfd
  - bufferevent_replacefd
  - bufferevent_getfd
  - bufferevent_get_options_
  - bufferevent_cancel_all_
  - bufferevent_get_enabled
  - bufferevent_get_underlying
  - bufferevent_generic_read_timeout_cb
  - bufferevent_generic_write_timeout_cb
  - bufferevent_init_generic_timeout_cbs_
  - bufferevent_generic_adj_timeouts_
  - bufferevent_generic_adj_existing_timeouts_
  - bufferevent_add_event_
  - bufferevent_lock
  - bufferevent_unlock
  source_file: /src/libevent/bufferevent.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BEV_TRIG_ALL_OPTS
      pos:
        line_end: 274
        line_start: 270
        source_file: /src/libevent/bufferevent.c
      type_or_value: "(\t\t\t\\\n\t\tBEV_TRIG_IGNORE_WATERMARKS|\t\\\n\t\tBEV_TRIG_DEFER_CALLBACKS\t\\\n\t)"
    - item_type: preproc_def
      name: MAX_CBS
      pos:
        line_end: 715
        line_start: 714
        source_file: /src/libevent/bufferevent.c
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - epoll_create
  - epoll_ctl
  - epoll_wait
  source_file: /src/libevent/epoll_sub.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/ssl-compat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_ERRORS
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/libevent/ssl-compat.h
      type_or_value: '3'
    structs:
    - fields:
      - name: '*(*init)(void *ssl)'
        type: void
      - name: (*free)(void *ssl, int flags)
        type: void
      - name: (*free_raw)(void *ssl)
        type: void
      - name: (*renegotiate)(void *ssl)
        type: int
      - name: (*write)(void *ssl, const unsigned char *buf, size_t len)
        type: int
      - name: (*read)(void *ssl, unsigned char *buf, size_t len)
        type: int
      - name: (*pending)(void *ssl)
        type: size_t
      - name: (*handshake)(void *ssl)
        type: int
      - name: (*get_error)(void *ssl, int ret)
        type: int
      - name: (*clear_error)(void)
        type: void
      - name: (*clear)(void *ssl)
        type: int
      - name: (*set_connect_state)(void *ssl)
        type: void
      - name: (*set_accept_state)(void *ssl)
        type: void
      - name: (*handshake_is_ok)(int err)
        type: int
      - name: (*err_is_want_read)(int err)
        type: int
      - name: (*err_is_want_write)(int err)
        type: int
      - name: (*get_fd)(void *ssl)
        type: evutil_socket_t
      - name: (*bio_set_fd)(struct bufferevent_ssl *ssl, evutil_socket_t fd)
        type: int
      - name: (*init_bio_counts)(struct bufferevent_ssl *bev)
        type: void
      - name: (*decrement_buckets)(struct bufferevent_ssl *bev)
        type: void
      - name: "(*conn_closed)(\n\t\tstruct bufferevent_ssl *bev, int when, int errcode,
          int ret)"
        type: void
      - name: (*print_err)(int err)
        type: void
      item_type: struct
      name: le_ssl_ops
      pos:
        line_end: 32
        line_start: 8
        source_file: /src/libevent/ssl-compat.h
    - fields:
      - name: n_written
        type: unsigned long
      - name: n_read
        type: unsigned long
      item_type: struct
      name: bio_data_counts
      pos:
        line_end: 37
        line_start: 34
        source_file: /src/libevent/ssl-compat.h
    - fields:
      - name: bev
        type: struct bufferevent_private
      - name: '*underlying'
        type: struct bufferevent
      - name: '*ssl'
        type: void
      - name: '*ssl_ops'
        type: struct le_ssl_ops
      - name: '*outbuf_cb'
        type: struct evbuffer_cb_entry
      - name: counts
        type: struct bio_data_counts
      - name: last_write
        type: ev_ssize_t
      - name: errors[NUM_ERRORS]
        type: ev_uint32_t
      - name: read_blocked_on_write
        type: unsigned
      - name: write_blocked_on_read
        type: unsigned
      - name: n_errors
        type: unsigned
      - name: state
        type: unsigned
      - name: old_state
        type: unsigned
      - name: flags
        type: ev_uint64_t
      item_type: struct
      name: bufferevent_ssl
      pos:
        line_end: 84
        line_start: 39
        source_file: /src/libevent/ssl-compat.h
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/libevent/cmake/CheckFileOffsetBits.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KB
      pos:
        line_end: 3
        line_start: 2
        source_file: /src/libevent/cmake/CheckFileOffsetBits.c
      type_or_value: ((off_t)1024)
    - item_type: preproc_def
      name: MB
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/libevent/cmake/CheckFileOffsetBits.c
      type_or_value: ((off_t)1024 * KB)
    - item_type: preproc_def
      name: GB
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/libevent/cmake/CheckFileOffsetBits.c
      type_or_value: ((off_t)1024 * MB)
    - item_type: preproc_def
      name: TB
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/libevent/cmake/CheckFileOffsetBits.c
      type_or_value: ((off_t)1024 * GB)
    structs: []
    typedefs: []
    union: []
- function_names:
  - gettime_
  - timeout_thread_proc_
  - testcase_run_in_thread_
  - testcase_set_timeout_
  - testcase_reset_timeout_
  - testcase_run_bare_
  - testcase_run_forked_
  - tinytest_set_flag_
  - usage
  - process_test_alias
  - process_test_option
  - tinytest_set_aliases
  - par_buf_append_
  - par_slot_free_
  - run_tests_parallel_
  - tinytest_main
  - tinytest_get_verbosity_
  - tinytest_set_test_failed_
  - tinytest_set_test_skipped_
  - tinytest_format_hex_
  source_file: /src/libevent/test/tinytest.c
  types:
    enum:
    - enumerators:
      - name: SKIP
        value: '2'
      - name: FAIL
        value: '0'
      - name: OK
        value: '1'
      item_type: enum
      name: outcome
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/libevent/test/tinytest.c
    preproc_defs:
    - item_type: preproc_def
      name: LONGEST_TEST_NAME
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libevent/test/tinytest.c
      type_or_value: '16384'
    - item_type: preproc_def
      name: DEFAULT_TESTCASE_TIMEOUT
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/libevent/test/tinytest.c
      type_or_value: 30U
    - item_type: preproc_def
      name: MAGIC_EXITCODE
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libevent/test/tinytest.c
      type_or_value: '42'
    structs:
    - fields:
      - name: '*fn'
        type: testcase_fn
      - name: '*env'
        type: void
      item_type: struct
      name: timeout_thread_args
      pos:
        line_end: 136
        line_start: 133
        source_file: /src/libevent/test/tinytest.c
    - fields:
      - name: testname[LONGEST_TEST_NAME]
        type: char
      - name: '*output'
        type: char
      - name: output_len
        type: size_t
      - name: output_cap
        type: size_t
      - name: start_time
        type: double
      item_type: struct
      name: parallel_slot
      pos:
        line_end: 539
        line_start: 526
        source_file: /src/libevent/test/tinytest.c
    typedefs: []
    union: []
- function_names:
  - readcb
  - writecb
  - errorcb
  - test_bufferevent_impl
  - test_bufferevent
  - test_bufferevent_pair
  - test_bufferevent_flush_normal
  - test_bufferevent_flush_flush
  - test_bufferevent_flush_finished
  - test_bufferevent_pair_flush_normal
  - test_bufferevent_pair_flush_flush
  - test_bufferevent_pair_flush_finished
  - test_bufferevent_ratelimit_div_by_zero
  - test_bufferevent_ratelimit_overflow
  - lu_find
  - trace_lock_alloc
  - trace_lock_free
  - trace_lock_lock
  - trace_lock_unlock
  - lock_unlock_free_thread_cbs
  - use_lock_unlock_profiler
  - free_lock_unlock_profiler
  - test_bufferevent_pair_release_lock
  - wm_readcb
  - wm_writecb
  - wm_errorcb
  - test_bufferevent_watermarks_impl
  - test_bufferevent_watermarks
  - test_bufferevent_pair_watermarks
  - bufferevent_input_filter
  - bufferevent_output_filter
  - test_bufferevent_filters_impl
  - test_bufferevent_filters
  - test_bufferevent_pair_filters
  - test_bufferevent_filters_disable
  - test_bufferevent_pair_filters_disable
  - sender_writecb
  - sender_errorcb
  - listen_cb
  - fake_listener_create
  - reader_eventcb
  - reader_eventcb_simple
  - reader_readcb
  - test_bufferevent_connect
  - close_socket_cb
  - test_bufferevent_connect_fail_eventcb
  - want_fail_eventcb
  - test_bufferevent_connect_fail
  - bev_timeout_read_cb
  - bev_timeout_write_cb
  - bev_timeout_event_cb
  - test_bufferevent_timeouts
  - tt_assert_timeval_empty
  - trigger_failure_cb
  - trigger_eventcb
  - trigger_readcb_triggered
  - trigger_readcb
  - test_bufferevent_trigger
  - test_bufferevent_socket_filter_inactive
  - pair_flush_eventcb
  - test_bufferevent_pair_flush
  - bufferevent_filter_data_stuck_readcb
  - bufferevent_filter_data_stuck_inputcb
  - test_bufferevent_filter_data_stuck
  - read_failed_readcb
  - test_bufferevent_read_failed
  source_file: /src/libevent/test/regress_bufferevent.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TEST_STR
      pos:
        line_end: 679
        line_start: 677
        source_file: /src/libevent/test/regress_bufferevent.c
      type_or_value: "\"Now is the time for all good events to signal for \" \\\n\t\"the
        good of their protocol\""
    - item_type: preproc_def
      name: TT_IOCP
      pos:
        line_end: 1533
        line_start: 1532
        source_file: /src/libevent/test/regress_bufferevent.c
      type_or_value: (TT_FORK|TT_NEED_BASE|TT_ENABLE_IOCP)
    - item_type: preproc_def
      name: TT_IOCP_LEGACY
      pos:
        line_end: 1534
        line_start: 1533
        source_file: /src/libevent/test/regress_bufferevent.c
      type_or_value: (TT_ISOLATED|TT_ENABLE_IOCP)
    structs:
    - fields:
      - name: '*lock'
        type: void
      - name: status
        type: "enum {\n\t\tALLOC, FREE,\n\t}"
      - name: locked
        type: size_t
      item_type: struct
      name: lock_wrapper
      pos:
        line_end: 270
        line_start: 263
        source_file: /src/libevent/test/regress_bufferevent.c
    - fields:
      - name: cbs
        type: struct evthread_lock_callbacks
      - name: '*locks'
        type: lock_wrapper
      - name: nr_locks
        type: size_t
      item_type: struct
      name: lock_unlock_base
      pos:
        line_end: 278
        line_start: 271
        source_file: /src/libevent/test/regress_bufferevent.c
    - fields:
      - name: read_timeout_at
        type: struct timeval
      - name: write_timeout_at
        type: struct timeval
      - name: last_wrote_at
        type: struct timeval
      - name: last_read_at
        type: struct timeval
      - name: n_read_timeouts
        type: int
      - name: n_write_timeouts
        type: int
      - name: total_calls
        type: int
      item_type: struct
      name: timeout_cb_result
      pos:
        line_end: 986
        line_start: 978
        source_file: /src/libevent/test/regress_bufferevent.c
    - fields:
      - name: header_size
        type: size_t
      - name: total_read
        type: size_t
      item_type: struct
      name: bufferevent_filter_data_stuck
      pos:
        line_end: 1303
        line_start: 1300
        source_file: /src/libevent/test/regress_bufferevent.c
    typedefs: []
    union: []
- function_names:
  - read_cb
  - run_once
  - main
  source_file: /src/libevent/test/bench.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - zlib_deflate_free
  - zlib_inflate_free
  - getstate
  - zlib_input_filter
  - zlib_output_filter
  - readcb
  - writecb
  - errorcb
  - test_bufferevent_zlib
  source_file: /src/libevent/test/regress_zlib.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _LARGEFILE64_SOURCE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/libevent/test/regress_zlib.c
      type_or_value: '0'
    - item_type: preproc_def
      name: _LFS64_LARGEFILE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libevent/test/regress_zlib.c
      type_or_value: '0'
    - item_type: preproc_def
      name: _FILE_OFFSET_BITS
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libevent/test/regress_zlib.c
      type_or_value: '0'
    - item_type: preproc_def
      name: off64_t
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libevent/test/regress_zlib.c
      type_or_value: ev_int64_t
    structs: []
    typedefs: []
    union: []
- function_names:
  - my_perror
  - server_read_cb
  - server_event_cb
  - listener_accept_cb
  - start_loop
  - client_read_cb
  - client_event_cb
  - start_client
  - main
  source_file: /src/libevent/test/test-fdleak.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_REQUESTS
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/libevent/test/test-fdleak.c
      type_or_value: '1000'
    - item_type: preproc_def
      name: MAX_REQUESTS
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/libevent/test/test-fdleak.c
      type_or_value: '4000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/libevent/test/test-init.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TT_DECLARE
  - TT_GRIPE
  - TT_BLATHER
  - TT_DIE
  - TT_FAIL
  - tt_abort_printf
  - tt_abort_perror
  - tt_abort_msg
  - tt_abort
  - tt_failprint_f
  - tt_fail_perror
  - tt_fail_msg
  - tt_fail
  - tt_skip
  - tt_want_
  - tt_want_msg
  - tt_assert_msg
  - tt_want
  - tt_assert
  - tt_assert_test_fmt_type
  - tt_assert_test_type
  - tt_assert_test_type_opt
  - tt_assert_op_type
  - tt_int_op
  - tt_fd_op
  - tt_uint_op
  - tt_ptr_op
  - tt_nstr_op
  - tt_str_op
  - tt_mem_op
  - tt_want_int_op
  - tt_want_uint_op
  - tt_want_ptr_op
  - tt_want_str_op
  source_file: /src/libevent/test/tinytest_macros.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TT_STMT_BEGIN
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/libevent/test/tinytest_macros.h
      type_or_value: do {
    - item_type: preproc_def
      name: TT_STMT_END
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/libevent/test/tinytest_macros.h
      type_or_value: '} while (0)'
    - item_type: preproc_def
      name: TT_EXIT_TEST_FUNCTION
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/libevent/test/tinytest_macros.h
      type_or_value: TT_STMT_BEGIN goto end; TT_STMT_END
    structs: []
    typedefs: []
    union: []
- function_names:
  - count_init
  - count_free
  - count_incr
  - count_wait_for
  - dummy_cb
  - pair_is_in
  - test_iocp_port
  - read_complete
  - write_complete
  - test_iocp_evbuffer
  - async_readcb
  - test_iocp_bufferevent_async
  source_file: /src/libevent/test/regress_iocp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_CALLS
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/libevent/test/regress_iocp.c
      type_or_value: '16'
    structs:
    - fields:
      - name: eo
        type: struct event_overlapped
      - name: '*lock'
        type: void
      - name: call_count
        type: int
      - name: keys[MAX_CALLS]
        type: uintptr_t
      - name: sizes[MAX_CALLS]
        type: ev_ssize_t
      item_type: struct
      name: dummy_overlapped
      pos:
        line_end: 118
        line_start: 112
        source_file: /src/libevent/test/regress_iocp.c
    typedefs: []
    union: []
- function_names:
  - prepare_callback_1
  - prepare_callback_2
  - check_callback_1
  - check_callback_2
  - timeout_callback
  - test_callback_ordering
  - prepare_callback_3
  - test_timeout_unavailable
  - bad_malloc
  - test_malloc_failure
  source_file: /src/libevent/test/regress_watch.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - trigger_timer
  - init_test
  - cleanup_test
  - set_timer_tv
  - set_timer
  - remaining
  - test_with_flags
  - timer_timeout_test
  source_file: /src/libevent/test/regress_timer_timeout.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*eb'
        type: struct event_base
      - name: '*e'
        type: struct event
      - name: tv_tmo
        type: struct timeval
      item_type: struct
      name: EventTimeoutTest
      pos:
        line_end: 20
        line_start: 15
        source_file: /src/libevent/test/regress_timer_timeout.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/test/tinytest_local.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/libevent/test/tinytest_local.h
      type_or_value: evutil_snprintf
    structs: []
    typedefs: []
    union: []
- function_names:
  - write
  - read
  - simple_read_cb
  - basic_read_cb
  - dummy_read_cb
  - simple_write_cb
  - multiple_write_cb
  - multiple_read_cb
  - timeout_cb
  - combined_read_cb
  - combined_write_cb
  - setup_test
  - cleanup_test
  - test_simpleread
  - test_simplewrite
  - simpleread_multiple_cb
  - test_simpleread_multiple
  - simpleclose_close_fd_cb
  - record_event_cb
  - test_simpleclose_rw
  - test_simpleclose
  - test_multiple
  - test_persistent
  - test_combined
  - test_simpletimeout
  - periodic_timeout_cb
  - test_persistent_timeout
  - test_persistent_timeout_jump
  - activate_cb
  - persist_active_timeout_cb
  - test_persistent_active_timeout
  - common_timeout_cb
  - test_common_timeout
  - fork_signal_cb
  - simple_child_read_cb
  - test_fork
  - signal_cb_sa
  - signal_cb
  - signal_alarm_fallback
  - test_simple_signal_impl
  - test_simple_signal
  - test_simple_signal_re_order
  - signal_cb_free_event
  - test_signal_free_in_callback
  - test_multiplesignal
  - test_immediatesignal
  - test_signal_timeout
  - test_signal_dealloc
  - test_signal_pipeloss
  - test_signal_switchbase
  - test_signal_assert
  - test_signal_restore
  - signal_cb_swp
  - timeout_cb_swp
  - test_signal_while_processing
  - del_wait_thread
  - del_wait_cb
  - test_del_wait
  - null_cb
  - test_del_notify_thread
  - test_del_notify
  - test_free_active_base
  - test_manipulate_active_events
  - event_selfarg_cb
  - test_event_new_selfarg
  - test_event_assign_selfarg
  - test_event_base_get_num_events
  - test_event_base_get_max_events
  - test_bad_assign
  - bad_reentrant_run_loop_cb
  - test_bad_reentrant
  - write_a_byte_cb
  - read_and_drain_cb
  - activate_other_event_cb
  - test_active_later
  - incr_arg_cb
  - remove_timers_cb
  - send_a_byte_cb
  - read_not_timeout_cb
  - test_event_remove_timeout
  - test_event_timeout_lost_cb
  - test_event_timeout_lost
  - event_base_dispatch_threadcb
  - test_del_timeout_notify
  - test_event_base_new
  - test_loopexit
  - test_loopexit_multiple
  - break_cb
  - fail_cb
  - test_loopbreak
  - re_add_read_cb
  - test_nonpersist_readd
  - test_priorities_cb
  - test_priorities_impl
  - test_priorities
  - prio_active_inversion_cb
  - test_priority_active_inversion
  - test_multiple_cb
  - test_multiple_events_for_same_fd
  - read_once_cb
  - test_want_only_once
  - evtag_int_test
  - evtag_fuzz
  - evtag_tag_encoding
  - evtag_test_peek
  - test_methods
  - test_version
  - test_base_features
  - setenv
  - unsetenv
  - methodname_to_envvar
  - test_base_environ
  - read_called_once_cb
  - timeout_called_once_cb
  - immediate_called_twice_cb
  - test_event_once
  - test_event_once_never
  - test_event_pending
  - dfd_cb
  - test_event_closed_fd_poll
  - test_dup_fd
  - test_mm_functions
  - check_dummy_mem_ok
  - dummy_malloc
  - dummy_realloc
  - dummy_free
  - test_mm_functions
  - many_event_cb
  - test_many_events
  - test_struct_event_size
  - test_get_assignment
  - foreach_count_cb
  - foreach_find_cb
  - test_event_foreach
  - cache_time_cb
  - test_gettimeofday_cached
  - tabf_cb
  - test_evmap_invalid_slots
  - test_active_by_fd
  source_file: /src/libevent/test/regress.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TEST1
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libevent/test/regress.c
      type_or_value: '"this is a test"'
    - item_type: preproc_def
      name: LOCAL_SOCKETPAIR_AF
      pos:
        line_end: 402
        line_start: 401
        source_file: /src/libevent/test/regress.c
      type_or_value: AF_INET
    - item_type: preproc_def
      name: LOCAL_SOCKETPAIR_AF
      pos:
        line_end: 404
        line_start: 403
        source_file: /src/libevent/test/regress.c
      type_or_value: AF_UNIX
    - item_type: preproc_def
      name: current_base
      pos:
        line_end: 872
        line_start: 871
        source_file: /src/libevent/test/regress.c
      type_or_value: event_global_current_base_
    - item_type: preproc_def
      name: TEST_FORK_EXIT_SUCCESS
      pos:
        line_end: 903
        line_start: 902
        source_file: /src/libevent/test/regress.c
      type_or_value: '76'
    - item_type: preproc_def
      name: TEST_MAX_INT
      pos:
        line_end: 2605
        line_start: 2604
        source_file: /src/libevent/test/regress.c
      type_or_value: '6'
    - item_type: preproc_def
      name: MANY
      pos:
        line_end: 3274
        line_start: 3273
        source_file: /src/libevent/test/regress.c
      type_or_value: '70'
    - item_type: preproc_def
      name: RETRY_ON_DARWIN
      pos:
        line_end: 3791
        line_start: 3790
        source_file: /src/libevent/test/regress.c
      type_or_value: TT_RETRIABLE
    - item_type: preproc_def
      name: RETRY_ON_DARWIN
      pos:
        line_end: 3793
        line_start: 3792
        source_file: /src/libevent/test/regress.c
      type_or_value: '0'
    structs:
    - fields:
      - name: '*eb'
        type: struct event_base
      - name: '*ev'
        type: struct event
      - name: callcount
        type: unsigned int
      item_type: struct
      name: basic_cb_args
      pos:
        line_end: 103
        line_start: 98
        source_file: /src/libevent/test/regress.c
    - fields:
      - name: ev
        type: struct event
      - name: nread
        type: int
      item_type: struct
      name: both
      pos:
        line_end: 239
        line_start: 236
        source_file: /src/libevent/test/regress.c
    - fields:
      - name: n
        type: int
      - name: events[16]
        type: short
      - name: tvs[16]
        type: struct timeval
      item_type: struct
      name: persist_active_timeout_called
      pos:
        line_end: 696
        line_start: 692
        source_file: /src/libevent/test/regress.c
    - fields:
      - name: ev
        type: struct event
      - name: called_at
        type: struct timeval
      - name: which
        type: int
      - name: count
        type: int
      item_type: struct
      name: common_timeout_info
      pos:
        line_end: 764
        line_start: 759
        source_file: /src/libevent/test/regress.c
    - fields:
      - name: '**ev'
        type: struct event
      - name: events
        type: int
      - name: count
        type: int
      item_type: struct
      name: read_not_timeout_param
      pos:
        line_end: 2011
        line_start: 2006
        source_file: /src/libevent/test/regress.c
    - fields:
      - name: ev
        type: struct event
      - name: count
        type: int
      item_type: struct
      name: test_pri_event
      pos:
        line_end: 2382
        line_start: 2379
        source_file: /src/libevent/test/regress.c
    - fields:
      - name: count
        type: int
      - name: '*ev'
        type: struct event
      item_type: struct
      name: foreach_helper
      pos:
        line_end: 3369
        line_start: 3366
        source_file: /src/libevent/test/regress.c
    typedefs: []
    union: []
- function_names:
  - http_setup
  - rpc_setup
  - rpc_teardown
  - rpc_postrequest_failure
  - rpc_basic_test
  - rpc_postrequest_done
  - rpc_basic_message
  - rpc_pool_with_connection
  - GotKillCb
  - GotKillCbTwo
  - rpc_hook_add_header
  - rpc_hook_add_meta
  - rpc_hook_remove_header
  - rpc_basic_client
  - rpc_basic_queued_client
  - GotErrorCb
  - rpc_hook_pause_cb
  - rpc_hook_pause
  - rpc_basic_client_with_pause
  - rpc_client_timeout
  - rpc_test
  - rpc_invalid_type
  - RPC_LEGACY
  - RPC_LEGACY
  source_file: /src/libevent/test/regress_rpc.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*vbase'
        type: void
      - name: '*ctx'
        type: void
      item_type: struct
      name: rpc_hook_ctx_
      pos:
        line_end: 600
        line_start: 597
        source_file: /src/libevent/test/regress_rpc.c
    typedefs: []
    union: []
- function_names:
  - rand_int
  - time_cb
  - main
  source_file: /src/libevent/test/test-time.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NEVENT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/libevent/test/test-time.c
      type_or_value: '20000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - timeval_msec_diff
  - dnslogcb
  - regress_make_tmpfile
  - regress_fork
  - ignore_log_cb
  - move_pthread_to_realtime_scheduling_class
  - thread_setup
  - thread_setup
  - basic_test_setup
  - basic_test_cleanup
  - legacy_test_setup
  - run_legacy_test_fn
  - legacy_test_cleanup
  - main
  source_file: /src/libevent/test/regress_main.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_cb
  - run_once
  - main
  source_file: /src/libevent/test/bench_cascade.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ssl_getkey
  - ssl_getcert
  - get_ssl_ctx
  - init_ssl
  - ssl_test_setup
  - ssl_test_cleanup
  - bio_rwcount_new
  - bio_rwcount_free
  - bio_rwcount_read
  - bio_rwcount_write
  - bio_rwcount_ctrl
  - bio_rwcount_puts
  - BIO_s_rwcount
  - BIO_new_rwcount
  - BIO_setup
  source_file: /src/libevent/test/regress_openssl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TESTCASES_NAME
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/libevent/test/regress_openssl.c
      type_or_value: openssl_testcases
    - item_type: preproc_def
      name: bufferevent_ssl_get_ssl
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/libevent/test/regress_openssl.c
      type_or_value: bufferevent_openssl_get_ssl
    - item_type: preproc_def
      name: bufferevent_ssl_set_allow_dirty_shutdown
      pos:
        line_end: 46
        line_start: 44
        source_file: /src/libevent/test/regress_openssl.c
      type_or_value: bufferevent_openssl_set_allow_dirty_shutdown
    - item_type: preproc_def
      name: bufferevent_ssl_socket_new
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/libevent/test/regress_openssl.c
      type_or_value: bufferevent_openssl_socket_new
    - item_type: preproc_def
      name: bufferevent_ssl_filter_new
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/libevent/test/regress_openssl.c
      type_or_value: bufferevent_openssl_filter_new
    - item_type: preproc_def
      name: BIO_TYPE_LIBEVENT_RWCOUNT
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/libevent/test/regress_openssl.c
      type_or_value: '0xff1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - closed_cb
  - main
  source_file: /src/libevent/test/test-closed.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/test/regress_testutils.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*q'
        type: char
      - name: '*anstype'
        type: char
      - name: '*ans'
        type: char
      - name: seen
        type: int
      - name: lower
        type: int
      item_type: struct
      name: regress_dns_server_table
      pos:
        line_end: 37
        line_start: 31
        source_file: /src/libevent/test/regress_testutils.h
    typedefs: []
    union: []
- function_names:
  - readcb
  - errorcb
  - frob_socket
  - launch_request
  - main
  source_file: /src/libevent/test/bench_httpclient.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: I64_FMT
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/libevent/test/bench_httpclient.c
      type_or_value: '"%I64d"'
    - item_type: preproc_def
      name: I64_TYP
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/libevent/test/bench_httpclient.c
      type_or_value: __int64
    - item_type: preproc_def
      name: I64_FMT
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/libevent/test/bench_httpclient.c
      type_or_value: '"%lld"'
    - item_type: preproc_def
      name: I64_TYP
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/libevent/test/bench_httpclient.c
      type_or_value: long long int
    structs:
    - fields:
      - name: n_read
        type: size_t
      - name: started
        type: struct timeval
      item_type: struct
      name: request_info
      pos:
        line_end: 65
        line_start: 62
        source_file: /src/libevent/test/bench_httpclient.c
    typedefs: []
    union: []
- function_names:
  - MIN
  - loud_writecb
  - discard_readcb
  - write_on_connectedcb
  - echo_readcb
  - echo_writecb
  - echo_eventcb
  - echo_listenercb
  - check_bucket_levels_cb
  - B
  - check_group_bucket_levels_cb
  - group_drain_cb
  - timer_bias_cb
  - timer_bias_calculate
  - test_ratelimiting
  - handle_option
  - usage
  - main
  source_file: /src/libevent/test/test-ratelim.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TIMER_MAX_COST_USEC
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/libevent/test/test-ratelim.c
      type_or_value: '10'
    structs:
    - fields:
      - name: queued
        type: size_t
      - name: received
        type: ev_uint64_t
      item_type: struct
      name: client_state
      pos:
        line_end: 88
        line_start: 84
        source_file: /src/libevent/test/test-ratelim.c
    - fields:
      - name: '*name'
        type: char
      - name: '*ptr'
        type: int
      - name: min
        type: int
      - name: isbool
        type: int
      item_type: struct
      name: option
      pos:
        line_end: 560
        line_start: 558
        source_file: /src/libevent/test/test-ratelim.c
    typedefs: []
    union: []
- function_names:
  - tinytest_skip
  source_file: /src/libevent/test/tinytest.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TT_FORK
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/libevent/test/tinytest.h
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: TT_SKIP
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/libevent/test/tinytest.h
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: TT_ENABLED_
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/libevent/test/tinytest.h
      type_or_value: (1<<2)
    - item_type: preproc_def
      name: TT_OFF_BY_DEFAULT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/libevent/test/tinytest.h
      type_or_value: (1<<3)
    - item_type: preproc_def
      name: TT_RETRIABLE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/libevent/test/tinytest.h
      type_or_value: (1<<4)
    - item_type: preproc_def
      name: TT_FIRST_USER_FLAG
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/libevent/test/tinytest.h
      type_or_value: (1<<5)
    - item_type: preproc_def
      name: END_OF_TESTCASES
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/libevent/test/tinytest.h
      type_or_value: '{ NULL, NULL, 0, NULL, NULL }'
    - item_type: preproc_def
      name: END_OF_GROUPS
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libevent/test/tinytest.h
      type_or_value: '{ NULL, NULL}'
    - item_type: preproc_def
      name: END_OF_ALIASES
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libevent/test/tinytest.h
      type_or_value: '{ NULL, NULL }'
    structs:
    - fields:
      - name: '*(*setup_fn)(const struct testcase_t *)'
        type: void
      - name: (*cleanup_fn)(const struct testcase_t *, void *)
        type: int
      item_type: struct
      name: testcase_setup_t
      pos:
        line_end: 52
        line_start: 47
        source_file: /src/libevent/test/tinytest.h
    - fields:
      - name: '*name'
        type: char
      - name: fn
        type: testcase_fn
      - name: flags
        type: unsigned long
      - name: '*setup'
        type: struct testcase_setup_t
      - name: '*setup_data'
        type: void
      item_type: struct
      name: testcase_t
      pos:
        line_end: 61
        line_start: 55
        source_file: /src/libevent/test/tinytest.h
    - fields:
      - name: '*prefix'
        type: char
      - name: '*cases'
        type: struct testcase_t
      item_type: struct
      name: testgroup_t
      pos:
        line_end: 68
        line_start: 65
        source_file: /src/libevent/test/tinytest.h
    - fields:
      - name: '*name'
        type: char
      - name: '**tests'
        type: char
      item_type: struct
      name: testlist_alias_t
      pos:
        line_end: 74
        line_start: 71
        source_file: /src/libevent/test/tinytest.h
    typedefs:
    - item_type: typedef
      name: (*testcase_fn)(void *)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/libevent/test/tinytest.h
      type: void
    union: []
- function_names: []
  source_file: /src/libevent/test/regress_http.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ARRAY_SIZE
  - regress_get_socket_port
  - regress_get_udp_dnsserver
  - regress_get_tcp_dnsserver
  - regress_clean_dnsserver
  - strtolower
  - regress_dns_server_cb
  - regress_pick_port
  - regress_dnsserver
  - regress_get_listener_addr
  - parse_csv_address_list
  source_file: /src/libevent/test/regress_testutils.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ARRAY_SIZE
  - evbuffer_validate_
  - evbuffer_get_waste
  - evbuffer_validate
  - test_evbuffer
  - no_cleanup
  - test_evbuffer_remove_buffer_with_empty
  - test_evbuffer_remove_buffer_with_empty2
  - test_evbuffer_remove_buffer_with_empty3
  - test_evbuffer_pullup_with_empty
  - test_evbuffer_remove_buffer_with_empty_front
  - test_evbuffer_remove_buffer_adjust_last_with_datap_with_empty
  - test_evbuffer_add_buffer_with_empty
  - test_evbuffer_add_buffer_with_empty2
  - test_evbuffer_reserve2
  - test_evbuffer_reserve_many
  - test_evbuffer_reserve_with_empty
  - test_evbuffer_reserve_invalid_last_with_datap
  - test_evbuffer_expand
  - test_evbuffer_expand_overflow
  - test_evbuffer_add1
  - test_evbuffer_add2
  - reference_cb
  - test_evbuffer_reference
  - test_evbuffer_reference2
  - addfile_test_writecb
  - addfile_test_readcb
  - test_evbuffer_add_file_leak1
  - test_evbuffer_add_file
  - file_segment_cleanup_cp
  - test_evbuffer_file_segment_add_cleanup_cb
  - failing_malloc
  - test_evbuffer_readln
  - tt_line_eq
  - test_evbuffer_search_eol
  - test_evbuffer_iterative
  - test_evbuffer_find
  - test_evbuffer_ptr_set
  - test_evbuffer_search
  - log_change_callback
  - self_draining_callback
  - test_evbuffer_callbacks
  - ref_done_cb
  - test_evbuffer_add_reference
  - ref_done_cb_with_offset
  - test_evbuffer_add_reference_with_offset
  - test_evbuffer_multicast
  - test_evbuffer_multicast_drain
  - check_prepend
  - test_evbuffer_prepend
  - test_evbuffer_empty_reference_prepend
  - test_evbuffer_empty_reference_prepend_buffer
  - test_evbuffer_peek_first_gt
  - test_evbuffer_peek
  - tt_iov_eq
  - test_evbuffer_freeze
  - FREEZE_EQ
  - test_evbuffer_add_iovec
  - test_evbuffer_copyout
  - setup_passthrough
  - cleanup_passthrough
  source_file: /src/libevent/test/regress_buffer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EVBUFFER_INITIAL_LENGTH
      pos:
        line_end: 1784
        line_start: 1783
        source_file: /src/libevent/test/regress_buffer.c
      type_or_value: '256'
    structs: []
    typedefs: []
    union: []
- function_names:
  - E
  - main
  source_file: /src/libevent/test/print-winsock-errors.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_cb
  - main
  source_file: /src/libevent/test/test-weof.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - start_cpu_usage_timer
  - filetime_to_100nsec
  - filetime_diff
  - get_cpu_usage
  - write_cb
  - timeout_cb
  - main
  source_file: /src/libevent/test/test-changelist.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: timeBegin
        type: struct timeval
      item_type: struct
      name: cpu_usage_timer
      pos:
        line_end: 62
        line_start: 53
        source_file: /src/libevent/test/test-changelist.c
    typedefs: []
    union: []
- function_names:
  - base_supports_et
  - read_cb
  - test_edgetriggered
  - test_edgetriggered_mix_error
  - read_notification_cb
  - write_notification_cb
  - test_edge_triggered_multiple_events
  source_file: /src/libevent/test/regress_et.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - htonll
  - ntohll
  - on_ws_msg_cb
  - on_ws_close_cb
  - http_on_ws_cb
  - http_ws_errorcb
  - receive_ws_msg
  - send_ws_msg
  - http_ws_readcb_phase2
  - http_ws_readcb_hdr
  - http_ws_readcb_bad
  - http_ws_test_with_connection
  - http_ws_test
  source_file: /src/libevent/test/regress_ws.c
  types:
    enum:
    - enumerators:
      - name: WS_FIN
        value: 1 << 7
      - name: WS_TEXT
        value: 1 << 0
      - name: WS_BINARY
        value: 1 << 1
      item_type: enum
      name: WSOptions
      pos:
        line_end: 209
        line_start: 205
        source_file: /src/libevent/test/regress_ws.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - http_basic_cb
  - http_ref_cb
  - main
  source_file: /src/libevent/test/bench_http.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - THREAD_RETURN
  - THREAD_SELF
  - THREAD_START
  - THREAD_JOIN
  - THREAD_RETURN
  - THREAD_SELF
  - THREAD_START
  - THREAD_JOIN
  source_file: /src/libevent/test/regress_thread.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: THREAD_T
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/libevent/test/regress_thread.h
      type_or_value: 'void * '
    - item_type: preproc_def
      name: THREAD_FN
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/libevent/test/regress_thread.h
      type_or_value: unsigned __stdcall
    - item_type: preproc_def
      name: THREAD_T
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/libevent/test/regress_thread.h
      type_or_value: pthread_t
    - item_type: preproc_def
      name: THREAD_FN
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/libevent/test/regress_thread.h
      type_or_value: void *
    structs: []
    typedefs: []
    union: []
- function_names:
  - SSL_SET_HOSTNAME
  - bufferevent_ssl_check_fd
  - bufferevent_ssl_check_freed
  - free_on_cb
  - respond_to_number
  - done_writing_cb
  - eventcb
  - open_ssl_bufevs
  - regress_bufferevent_openssl
  - acceptcb_deferred
  - acceptcb
  - regress_bufferevent_openssl_connect
  - wm_transfer
  - wm_eventcb
  - wm_acceptcb
  - regress_bufferevent_openssl_wm
  source_file: /src/libevent/test/regress_ssl.c
  types:
    enum:
    - enumerators:
      - name: REGRESS_OPENSSL_SOCKETPAIR
        value: '1'
      - name: REGRESS_OPENSSL_OPEN
        value: '8'
      - name: REGRESS_OPENSSL_RENEGOTIATE
        value: '4'
      - name: REGRESS_OPENSSL_FILTER
        value: '2'
      - name: REGRESS_OPENSSL_DIRTY_SHUTDOWN
        value: '16'
      - name: REGRESS_OPENSSL_FD
        value: '32'
      - name: REGRESS_OPENSSL_CLIENT
        value: '64'
      - name: REGRESS_OPENSSL_SERVER
        value: '128'
      - name: REGRESS_OPENSSL_FREED
        value: '256'
      - name: REGRESS_OPENSSL_TIMEOUT
        value: '512'
      - name: REGRESS_DEFERRED_CALLBACKS
        value: '4096'
      - name: REGRESS_OPENSSL_CLIENT_WRITE
        value: '2048'
      - name: REGRESS_OPENSSL_SLEEP
        value: '1024'
      - name: REGRESS_OPENSSL_BATCH_WRITE
        value: '8192'
      item_type: enum
      name: regress_openssl_type
      pos:
        line_end: 139
        line_start: 116
        source_file: /src/libevent/test/regress_ssl.c
    preproc_defs:
    - item_type: preproc_def
      name: read
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/libevent/test/regress_ssl.c
      type_or_value: _read
    - item_type: preproc_def
      name: write
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/libevent/test/regress_ssl.c
      type_or_value: _write
    structs:
    - fields:
      - name: fd
        type: evutil_socket_t
      - name: read
        type: size_t
      - name: write
        type: size_t
      item_type: struct
      name: rwcount
      pos:
        line_end: 501
        line_start: 496
        source_file: /src/libevent/test/regress_ssl.c
    - fields:
      - name: server
        type: int
      - name: flags
        type: int
      - name: '*data'
        type: struct evbuffer
      - name: to_read
        type: size_t
      - name: wm_high
        type: size_t
      - name: limit
        type: size_t
      - name: get
        type: size_t
      - name: '*bev'
        type: struct bufferevent
      - name: '*neighbour'
        type: struct wm_context
      item_type: struct
      name: wm_context
      pos:
        line_end: 583
        line_start: 572
        source_file: /src/libevent/test/regress_ssl.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/test/regress_ws.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sock_perror
  - callback1
  - callback2
  - main
  source_file: /src/libevent/test/test-dumpevents.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: N_EVENTS
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/libevent/test/test-dumpevents.c
      type_or_value: '13'
    - item_type: preproc_def
      name: LOCAL_SOCKETPAIR_AF
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libevent/test/test-dumpevents.c
      type_or_value: AF_INET
    - item_type: preproc_def
      name: LOCAL_SOCKETPAIR_AF
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/libevent/test/test-dumpevents.c
      type_or_value: AF_UNIX
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_cb
  - trigger_kq
  - notify_cb
  - write_cb
  - exit_cb
  - main
  source_file: /src/libevent/test/test-kq-collision.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAGIC_FD
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/libevent/test/test-kq-collision.c
      type_or_value: 42 // The old magic number used by kqueue EVFILT_USER
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_weakrand
  - BASIC
  - LEGACY
  - test_ai_eq
  - test_timeval_diff_leq
  - test_timeval_diff_eq
  source_file: /src/libevent/test/regress.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TT_NEED_SOCKETPAIR
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/libevent/test/regress.h
      type_or_value: TT_FIRST_USER_FLAG
    - item_type: preproc_def
      name: TT_NEED_BASE
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/libevent/test/regress.h
      type_or_value: (TT_FIRST_USER_FLAG<<1)
    - item_type: preproc_def
      name: TT_NEED_DNS
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/libevent/test/regress.h
      type_or_value: (TT_FIRST_USER_FLAG<<2)
    - item_type: preproc_def
      name: TT_LEGACY
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/libevent/test/regress.h
      type_or_value: (TT_FIRST_USER_FLAG<<3)
    - item_type: preproc_def
      name: TT_NEED_THREADS
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/libevent/test/regress.h
      type_or_value: (TT_FIRST_USER_FLAG<<4)
    - item_type: preproc_def
      name: TT_NO_LOGS
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/libevent/test/regress.h
      type_or_value: (TT_FIRST_USER_FLAG<<5)
    - item_type: preproc_def
      name: TT_ENABLE_IOCP_FLAG
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/libevent/test/regress.h
      type_or_value: (TT_FIRST_USER_FLAG<<6)
    - item_type: preproc_def
      name: TT_ENABLE_IOCP
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/libevent/test/regress.h
      type_or_value: (TT_ENABLE_IOCP_FLAG|TT_NEED_THREADS)
    - item_type: preproc_def
      name: TT_ENABLE_DEBUG_MODE
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/libevent/test/regress.h
      type_or_value: (TT_FIRST_USER_FLAG<<7)
    - item_type: preproc_def
      name: TT_ENABLE_PRIORITY_INHERITANCE
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/libevent/test/regress.h
      type_or_value: (TT_FIRST_USER_FLAG<<8)
    - item_type: preproc_def
      name: TT_ISOLATED
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/libevent/test/regress.h
      type_or_value: TT_FORK|TT_NEED_SOCKETPAIR|TT_NEED_BASE
    structs:
    - fields:
      - name: '*base'
        type: struct event_base
      - name: pair[2]
        type: evutil_socket_t
      - name: (*legacy_test_fn)(void)
        type: void
      - name: '*setup_data'
        type: void
      item_type: struct
      name: basic_test_data
      pos:
        line_end: 82
        line_start: 75
        source_file: /src/libevent/test/regress.h
    typedefs: []
    union: []
- function_names:
  - wake_all_timeout
  - wake_one_timeout
  - basic_thread
  - sigchld_cb
  - notify_fd_cb
  - wait_for_condition
  - thread_conditions_simple
  - SLEEP_MS
  - deferred_callback
  - load_deferred_queue
  - timer_callback
  - start_threads_callback
  - thread_deferred_cb_skew
  - note_time_cb
  - register_events_subthread
  - thread_no_events
  - create_base_thread
  - thread_debug_mode_too_late_race
  - TEST
  source_file: /src/libevent/test/regress_thread.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_THREADS
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libevent/test/regress_thread.c
      type_or_value: '100'
    - item_type: preproc_def
      name: NUM_ITERATIONS
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libevent/test/regress_thread.c
      type_or_value: '100'
    - item_type: preproc_def
      name: NUM_THREADS
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/libevent/test/regress_thread.c
      type_or_value: '10'
    - item_type: preproc_def
      name: CB_COUNT
      pos:
        line_end: 386
        line_start: 385
        source_file: /src/libevent/test/regress_thread.c
      type_or_value: '128'
    - item_type: preproc_def
      name: QUEUE_THREAD_COUNT
      pos:
        line_end: 387
        line_start: 386
        source_file: /src/libevent/test/regress_thread.c
      type_or_value: '8'
    - item_type: preproc_def
      name: N_PARALLEL_BASES
      pos:
        line_end: 564
        line_start: 563
        source_file: /src/libevent/test/regress_thread.c
      type_or_value: '20'
    structs:
    - fields:
      - name: '*lock'
        type: void
      - name: '*cond'
        type: void
      item_type: struct
      name: cond_wait
      pos:
        line_end: 66
        line_start: 63
        source_file: /src/libevent/test/regress_thread.c
    - fields:
      - name: '*cond'
        type: struct cond_wait
      - name: delay
        type: struct timeval
      - name: alerted_at
        type: struct timeval
      - name: timed_out
        type: int
      item_type: struct
      name: alerted_record
      pos:
        line_end: 261
        line_start: 256
        source_file: /src/libevent/test/regress_thread.c
    - fields:
      - name: cbs[CB_COUNT]
        type: struct event_callback
      - name: '*queue'
        type: struct event_base
      item_type: struct
      name: deferred_test_data
      pos:
        line_end: 400
        line_start: 397
        source_file: /src/libevent/test/regress_thread.c
    typedefs: []
    union: []
- function_names:
  - ARRAY_SIZE
  - REPEAT_2
  - REPEAT_4
  - REPEAT_8
  - REPEAT_16
  - REPEAT_32
  - REPEAT_64
  - REPEAT_128
  - REPEAT_256
  - dns_gethostbyname_cb
  - dns_gethostbyname
  - dns_gethostbyname6
  - dns_gethostbyaddr
  - dns_resolve_reverse
  - dns_server_request_cb
  - dns_server_gethostbyname_cb
  - dns_server
  - generic_dns_callback
  - dns_search_test
  - dns_search_lower_test
  - search_cancel_server_cb
  - dns_search_cancel_test
  - fail_server_cb
  - dns_retry_test_impl
  - dns_retry_test
  - dns_retry_disable_when_inactive_test
  - dns_probe_settings_test
  - dns_reissue_test_impl
  - dns_reissue_test
  - dns_reissue_disable_when_inactive_test
  - dumb_bytes_fn
  - dns_inflight_test_impl
  - dns_inflight_test
  - dns_disable_when_inactive_test
  - dns_disable_when_inactive_no_ns_test
  - dns_initialize_nameservers_test
  - windows_dns_initialize_ipv6_nameservers_test
  - dns_initialize_inactive_one_nameserver_test
  - dns_initialize_inactive_two_nameservers_test
  - dns_nameservers_no_default_test
  - dns_nameservers_no_nameservers_configured_test
  - be_getaddrinfo_server_cb
  - nil_accept_cb
  - be_connect_hostname_event_cb
  - bev_connect_hostname
  - test_bufferevent_connect_hostname
  - gai_cb
  - cancel_gai_cb
  - test_getaddrinfo_async
  - gaic_cancel_request_cb
  - gaic_server_response_cb
  - gaic_server_cb
  - gaic_getaddrinfo_cb
  - gaic_launch
  - cnt_malloc
  - cnt_realloc
  - cnt_free
  - testleak_setup
  - testleak_cleanup
  - test_dbg_leak_cancel
  - dbg_leak_resume
  - IMPL_DBG_LEAK_RESUME
  - test_dbg_leak_shutdown
  - test_getaddrinfo_async_cancel_stress
  - dns_client_fail_requests_test
  - getaddrinfo_cb
  - dns_client_fail_requests_getaddrinfo_test
  - race_base_run
  - race_busywait_run
  - race_gai_cb
  - getaddrinfo_race_gotresolve_test
  - test_tcp_resolve
  - test_tcp_resolve_pipeline
  - test_tcp_resolve_many_clients
  - test_tcp_timeout
  - test_tcp_notimpl
  - test_edns
  - test_set_so_rcvbuf_so_sndbuf
  - test_set_option
  - test_set_server_option
  - DNS_LEGACY
  source_file: /src/libevent/test/regress_dns.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HOST_NAME_MAX_NAME
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/libevent/test/regress_dns.c
      type_or_value: '"1111111111111111111111111111111111111111111111111." '
    - item_type: preproc_def
      name: RESOLV_FILE
      pos:
        line_end: 1326
        line_start: 1325
        source_file: /src/libevent/test/regress_dns.c
      type_or_value: '"empty-resolv.conf"'
    - item_type: preproc_def
      name: GAIC_MAGIC
      pos:
        line_end: 2331
        line_start: 2330
        source_file: /src/libevent/test/regress_dns.c
      type_or_value: '0x1234abcd'
    - item_type: preproc_def
      name: SUCCESS
      pos:
        line_end: 3236
        line_start: 3235
        source_file: /src/libevent/test/regress_dns.c
      type_or_value: '0'
    - item_type: preproc_def
      name: FAIL
      pos:
        line_end: 3237
        line_start: 3236
        source_file: /src/libevent/test/regress_dns.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: SUCCESS
      pos:
        line_end: 3312
        line_start: 3311
        source_file: /src/libevent/test/regress_dns.c
      type_or_value: '0'
    - item_type: preproc_def
      name: FAIL
      pos:
        line_end: 3313
        line_start: 3312
        source_file: /src/libevent/test/regress_dns.c
      type_or_value: '-1'
    structs:
    - fields:
      - name: result
        type: int
      - name: type
        type: char
      - name: count
        type: int
      - name: ttl
        type: int
      - name: addrs_len
        type: size_t
      - name: '*addrs'
        type: void
      - name: addrs_buf[4096]
        type: char
      item_type: struct
      name: generic_dns_callback_result
      pos:
        line_end: 508
        line_start: 500
        source_file: /src/libevent/test/regress_dns.c
    - fields:
      - name: dnserr
        type: int
      - name: what
        type: int
      item_type: struct
      name: be_conn_hostname_result
      pos:
        line_end: 1557
        line_start: 1554
        source_file: /src/libevent/test/regress_dns.c
    - fields:
      - name: err
        type: int
      - name: '*ai'
        type: struct evutil_addrinfo
      item_type: struct
      name: gai_outcome
      pos:
        line_end: 1771
        line_start: 1768
        source_file: /src/libevent/test/regress_dns.c
    - fields:
      - name: magic
        type: int
      - name: '*base'
        type: struct event_base
      - name: '*dns_base'
        type: struct evdns_base
      - name: '*request'
        type: struct evdns_getaddrinfo_request
      - name: cancel_event
        type: struct event
      - name: canceled
        type: int
      item_type: struct
      name: gaic_request_status
      pos:
        line_end: 2323
        line_start: 2316
        source_file: /src/libevent/test/regress_dns.c
    - fields:
      - name: '*req'
        type: struct evdns_server_request
      - name: timer
        type: struct event
      item_type: struct
      name: gaic_delayed_response
      pos:
        line_end: 2328
        line_start: 2325
        source_file: /src/libevent/test/regress_dns.c
    - fields:
      - name: '*base'
        type: struct event_base
      - name: '*dns_base'
        type: struct evdns_base
      - name: '*req'
        type: struct evdns_request
      - name: r
        type: struct generic_dns_callback_result
      item_type: struct
      name: testleak_env_t
      pos:
        line_end: 2471
        line_start: 2466
        source_file: /src/libevent/test/regress_dns.c
    - fields:
      - name: '*lock'
        type: void
      - name: '*reqs_cmpl_cond'
        type: void
      - name: bw_threads
        type: int
      - name: '*bw_threads_exited_cond'
        type: void
      - name: stopping
        type: int
      - name: '*base'
        type: void
      - name: '*dns'
        type: void
      - name: locked
        type: int
      item_type: struct
      name: race_param
      pos:
        line_end: 2775
        line_start: 2764
        source_file: /src/libevent/test/regress_dns.c
    typedefs: []
    union: []
- function_names:
  - acceptcb
  - regress_pick_a_port
  - errorcb
  - regress_listener_error
  - acceptcb_free
  - regress_listener_close_accepted_fd
  - regress_listener_immediate_close
  - regress_listener_error_unlock
  - disable_thread
  - acceptcb_for_thread_test
  - regress_listener_disable_in_thread
  - errorcb_for_thread_test
  - acceptcb_for_thread_test_error
  - regress_listener_disable_in_thread_error
  - is_unicode_temp_path
  - empty_listener_cb
  - regress_listener_reuseport_on_unix_socket
  source_file: /src/libevent/test/regress_listener.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: unlink
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/libevent/test/regress_listener.c
      type_or_value: _unlink
    - item_type: preproc_def
      name: close
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libevent/test/regress_listener.c
      type_or_value: _close
    structs: []
    typedefs: []
    union: []
- function_names:
  - ARRAY_SIZE
  - ext_method_cb
  - http_bind
  - https_bev
  - https_mbedtls_bev
  - http_setup_gencb
  - http_setup
  - http_connect
  - evbuffer_datacmp
  - evbuffer_contains
  - http_readcb
  - http_writecb
  - http_errorcb
  - http_basic_cb
  - http_timeout_reply_cb
  - http_timeout_cb
  - http_large_cb
  - http_chunked_trickle_cb
  - http_chunked_cb
  - http_chunked_input_cb
  - create_bev
  - http_half_writecb
  - http_basic_test_impl
  - http_basic_test
  - http_basic_trailing_space_test
  - http_delay_reply
  - http_delay_cb
  - http_badreq_cb
  - http_badreq_errorcb
  - http_badreq_readcb
  - http_badreq_successcb
  - http_bad_request_test
  - http_large_delay_cb
  - http_genmethod_cb
  - http_genmethod_test
  - http_custom_cb
  - http_custom_test
  - http_delete_test
  - http_propfind_test
  - http_proppatch_test
  - http_mkcol_test
  - http_lock_test
  - http_unlock_test
  - http_copy_test
  - http_move_test
  - http_sent_cb
  - http_on_complete_cb
  - http_on_complete_test
  - http_allowed_methods_eventcb
  - http_allowed_methods_test
  - http_connection_test_
  - http_connection_test
  - http_persist_connection_test
  - http_connection_async_test
  - http_autofree_connection_test
  - http_request_never_call
  - http_failed_request_done
  - http_timed_out_request_done
  - http_request_error_cb_with_cancel
  - http_do_cancel
  - http_no_write
  - http_free_evcons
  - http_fill_backlog
  - http_cancel_test_bad_request_new
  - http_cancel_test
  - http_request_no_action_done
  - http_request_done
  - http_request_expect_error
  - http_virtual_host_test
  - http_request_empty_done
  - http_dispatcher_cb
  - http_dispatcher_test_done
  - http_dispatcher_test
  - http_connect_unixsocket
  - evhttp_bind_unixsocket
  - http_unix_socket_test_
  - http_unix_socket_test
  - http_unix_socket_preexist_test
  - http_post_test
  - http_post_cb
  - http_postrequest_done
  - http_put_test
  - http_put_cb
  - http_putrequest_done
  - http_failure_readcb
  - http_failure_test
  - close_detect_done
  - close_detect_launch
  - close_detect_cb
  - http_close_detection_
  - http_close_detection_test
  - http_close_detection_delay_test
  - http_highport_test
  - http_bad_header_test
  - validate_header
  - http_parse_query_test
  - http_parse_query_str_test
  - http_parse_query_str_flags_test
  - http_parse_uri_test
  - URI_PARSE_FLAGS
  - URI_PARSE
  - TT_URI
  - BAD
  - NCF
  - UNI
  - http_uriencode_test
  - ENC
  - DEC
  - OLD_DEC
  - http_base_test
  - http_incomplete_readcb
  - http_incomplete_errorcb
  - http_incomplete_writecb
  - http_incomplete_test_
  - http_incomplete_test
  - http_incomplete_timeout_test
  - http_chunked_readcb
  - http_chunked_errorcb
  - http_chunked_writecb
  - http_chunked_request_done
  - http_send_chunk_test_read_cb
  - http_send_chunk_test_write_cb
  - http_send_chunk_test_error_cb
  - http_send_chunk_test
  - http_send_chunk_malformed_test_write_cb
  - http_send_chunk_malformed_test_error_cb
  - http_send_chunk_malformed_test
  - http_chunk_out_test_impl
  - http_chunk_out_test
  - http_stream_out_test_impl
  - http_stream_out_test
  - http_stream_in_chunk
  - http_stream_in_done
  - http_stream_in_test_
  - http_stream_in_test
  - http_stream_in_cancel_chunk
  - http_stream_in_cancel_done
  - http_stream_in_cancel_test
  - http_connection_fail_done
  - http_connection_fail_test_impl
  - http_connection_fail_test
  - http_connection_retry_done
  - http_make_web_server
  - http_simple_test_impl
  - http_simple_test
  - http_simple_preexisting_test
  - http_simple_nonconformant_test
  - http_simple_nonconformant_preexisting_test
  - https_bind_ssl_bevcb
  - https_per_socket_bevcb_impl
  - https_per_socket_bevcb
  - http_connection_retry_test_basic
  - http_connection_retry_conn_address_test_impl
  - http_connection_retry_conn_address_test
  - http_connection_retry_test_impl
  - http_connection_retry_test
  - http_primitives
  - http_multi_line_header_test
  - http_request_bad
  - http_negative_content_length_test
  - http_data_length_constraints_test_done
  - http_large_entity_test_done
  - http_expectation_failed_done
  - http_data_length_constraints_test_impl
  - http_data_length_constraints_test
  - http_read_on_write_error_test
  - http_lingering_close_test_impl
  - http_non_lingering_close_test
  - http_lingering_close_test
  - terminate_chunked_trickle_cb
  - terminate_chunked_close_cb
  - terminate_chunked_cb
  - terminate_chunked_client
  - terminate_readcb
  - http_terminate_chunked_test_impl
  - http_terminate_chunked_test
  - http_terminate_chunked_oneshot_test
  - http_ipv6_for_domain_test_impl
  - http_ipv6_for_domain_test
  - http_request_get_addr_on_close
  - http_get_addr_test
  - http_set_family_test
  - http_set_family_ipv4_test
  - http_set_family_ipv6_test
  - http_write_during_read
  - http_write_during_read_test_impl
  - http_write_during_read_test
  - http_request_own_test
  - http_run_bev_request
  - http_request_extra_body_test
  - http_newreqcb_test_state_check
  - http_request_done_newreqcb
  - http_request_error_newreqcb
  - http_newreqcb
  - http_newreqcb_test
  - http_timeout_read_client_test
  - http_error_callback_gencb
  - http_error_callback_errorcb
  - http_error_callback_test_done
  - http_error_callback_test
  - http_add_output_buffer
  - http_timeout_read_server_test
  - http_max_connections_test
  - HTTP_LEGACY
  - HTTP_CAST_ARG
  - HTTP_OFF_N
  - HTTP_RET_N
  - HTTP_N
  - HTTP
  - HTTP_OPT
  - HTTPS
  - HTTPS_MBEDTLS
  - https_basic_test
  - https_filter_basic_test
  - https_incomplete_test
  - https_incomplete_timeout_test
  - https_simple_test
  - https_simple_preexisting_test
  - https_simple_dirty_test
  - https_simple_dirty_preexisting_test
  - https_connection_retry_conn_address_test
  - https_connection_retry_test
  - https_chunk_out_test
  - https_filter_chunk_out_test
  - https_stream_out_test
  - https_connection_fail_test
  - https_write_during_read_test
  - https_connection_test
  - https_persist_connection_test
  - https_per_socket_bevcb_test
  - https_mbedtls_basic_test
  - https_mbedtls_filter_basic_test
  - https_mbedtls_incomplete_test
  - https_mbedtls_incomplete_timeout_test
  - https_mbedtls_simple_test
  - https_mbedtls_simple_preexisting_test
  - https_mbedtls_simple_dirty_test
  - https_mbedtls_simple_dirty_preexisting_test
  - https_mbedtls_connection_retry_conn_address_test
  - https_mbedtls_connection_retry_test
  - https_mbedtls_chunk_out_test
  - https_mbedtls_filter_chunk_out_test
  - https_mbedtls_stream_out_test
  - https_mbedtls_connection_fail_test
  - https_mbedtls_write_during_read_test
  - https_mbedtls_connection_test
  - https_mbedtls_persist_connection_test
  - https_mbedtls_per_socket_bevcb_test
  source_file: /src/libevent/test/regress_http.c
  types:
    enum:
    - enumerators:
      - name: BASIC
        value: '1'
      - name: BY_HOST
        value: '2'
      - name: NO_NS
        value: '4'
      - name: INACTIVE_SERVER
        value: '8'
      - name: SERVER_TIMEOUT
        value: '16'
      - name: NS_TIMEOUT
        value: '32'
      item_type: enum
      name: http_cancel_test_type
      pos:
        line_end: 1739
        line_start: 1732
        source_file: /src/libevent/test/regress_http.c
    preproc_defs:
    - item_type: preproc_def
      name: SKIP_UNDER_WINDOWS
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libevent/test/regress_http.c
      type_or_value: TT_SKIP
    - item_type: preproc_def
      name: SKIP_UNDER_WINDOWS
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libevent/test/regress_http.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SKIP_UNDER_ANDROID
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libevent/test/regress_http.c
      type_or_value: TT_SKIP
    - item_type: preproc_def
      name: SKIP_UNDER_ANDROID
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libevent/test/regress_http.c
      type_or_value: '0'
    - item_type: preproc_def
      name: EVHTTP_REQ_CUSTOM
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libevent/test/regress_http.c
      type_or_value: ((EVHTTP_REQ_MAX) << 1)
    - item_type: preproc_def
      name: HTTP_BIND_IPV6
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/libevent/test/regress_http.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HTTP_OPENSSL
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/libevent/test/regress_http.c
      type_or_value: '2'
    - item_type: preproc_def
      name: HTTP_SSL_FILTER
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/libevent/test/regress_http.c
      type_or_value: '4'
    - item_type: preproc_def
      name: HTTP_MBEDTLS
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/libevent/test/regress_http.c
      type_or_value: '8'
    - item_type: preproc_def
      name: NI_MAXSERV
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/libevent/test/regress_http.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: BACKLOG_SIZE
      pos:
        line_end: 1709
        line_start: 1708
        source_file: /src/libevent/test/regress_http.c
      type_or_value: '256'
    - item_type: preproc_def
      name: POST_DATA
      pos:
        line_end: 2445
        line_start: 2444
        source_file: /src/libevent/test/regress_http.c
      type_or_value: '"Okay.  Not really printf"'
    - item_type: preproc_def
      name: PUT_DATA
      pos:
        line_end: 2584
        line_start: 2583
        source_file: /src/libevent/test/regress_http.c
      type_or_value: '"Hi, I''m some PUT data"'
    - item_type: preproc_def
      name: ERRCBFLAG_GENCB
      pos:
        line_end: 5725
        line_start: 5724
        source_file: /src/libevent/test/regress_http.c
      type_or_value: (0x01)
    - item_type: preproc_def
      name: ERRCBFLAG_ERRCB
      pos:
        line_end: 5726
        line_start: 5725
        source_file: /src/libevent/test/regress_http.c
      type_or_value: (0x02)
    - item_type: preproc_def
      name: ERRCBFLAG_BOTHCB
      pos:
        line_end: 5727
        line_start: 5726
        source_file: /src/libevent/test/regress_http.c
      type_or_value: (ERRCBFLAG_GENCB | ERRCBFLAG_ERRCB)
    structs:
    - fields:
      - name: '*base'
        type: struct event_base
      - name: '*req'
        type: struct evhttp_request
      - name: i
        type: int
      item_type: struct
      name: chunk_req_state
      pos:
        line_end: 485
        line_start: 481
        source_file: /src/libevent/test/regress_http.c
    - fields:
      - name: port
        type: ev_uint16_t
      - name: ssl
        type: int
      - name: '*http'
        type: struct evhttp
      item_type: struct
      name: http_server
      pos:
        line_end: 4446
        line_start: 4441
        source_file: /src/libevent/test/regress_http.c
    - fields:
      - name: '*base'
        type: struct event_base
      - name: '*req'
        type: struct evhttp_request
      - name: '*bev'
        type: struct bufferevent
      - name: fd
        type: evutil_socket_t
      - name: gotclosecb
        type: int
      - name: oneshot
        type: int
      item_type: struct
      name: terminate_state
      pos:
        line_end: 5128
        line_start: 5121
        source_file: /src/libevent/test/regress_http.c
    - fields:
      - name: connections_started
        type: int
      - name: connections_noticed
        type: int
      - name: connections_throttled
        type: int
      - name: connections_good
        type: int
      - name: connections_error
        type: int
      - name: connections_done
        type: int
      item_type: struct
      name: http_newreqcb_test_state
      pos:
        line_end: 5569
        line_start: 5561
        source_file: /src/libevent/test/regress_http.c
    - fields:
      - name: flags
        type: unsigned char
      - name: type
        type: enum evhttp_cmd_type
      - name: response_code
        type: int
      - name: length
        type: int
      item_type: struct
      name: error_callback_test
      pos:
        line_end: 5733
        line_start: 5728
        source_file: /src/libevent/test/regress_http.c
    - fields:
      - name: '*data'
        type: struct basic_test_data
      - name: test_index
        type: unsigned
      - name: '*test'
        type: struct error_callback_test
      - name: test_failed
        type: int
      item_type: struct
      name: error_callback_state
      pos:
        line_end: 5752
        line_start: 5746
        source_file: /src/libevent/test/regress_http.c
    typedefs: []
    union: []
- function_names:
  - test_strcmp
  - setup_data_buffer
  - clean_data_buffer
  - test_memcpy
  - test_timeout
  - test_timeout_retry
  - main
  source_file: /src/libevent/test/tinytest_demo.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: buffer1[512]
        type: char
      - name: buffer2[512]
        type: char
      item_type: struct
      name: data_buffer
      pos:
        line_end: 106
        line_start: 98
        source_file: /src/libevent/test/tinytest_demo.c
    typedefs: []
    union: []
- function_names:
  - regress_ipv4_parse
  - regress_ipv6_parse
  - regress_ipv6_parse_scope
  - regress_sockaddr_port_parse
  - regress_sockaddr_port_format
  - test_evutil_sockaddr_predicates
  - test_evutil_strtoll
  - test_evutil_snprintf
  - test_evutil_casecmp
  - test_evutil_rtrim
  - TEST_TRIM
  - logfn
  - fatalfn
  - check_error_logging
  - errx_fn
  - err_fn
  - sock_err_fn
  - test_evutil_log
  - RESET
  - LOGEQ
  - test_evutil_strlcpy
  - test_evutil_upcast
  - test_evutil_integers
  - ai_find_by_family
  - ai_find_by_protocol
  - test_ai_eq_
  - test_evutil_rand
  - test_EVUTIL_IS_
  - test_evutil_getaddrinfo
  - test_evutil_getaddrinfo_live
  - test_evutil_getaddrinfo_AI_ADDRCONFIG
  - test_evutil_loadsyslib
  - test_event_malloc
  - test_event_calloc
  - test_event_calloc_enomem
  - test_event_strdup
  - test_evutil_usleep
  - test_evutil_monotonic_res
  - test_evutil_monotonic_prc
  - create_tm_from_unix_epoch
  - test_evutil_date_rfc1123
  - test_evutil_v4addr_is_local
  - LOCAL
  - test_evutil_v6addr_is_local
  - LOCAL6
  - socketpair_init
  - socketpair_close
  - test_evutil_socketpair_create
  - SOCKETPAIR_CHECK_CLOSE
  - test_evutil_win_socketpair
  - CHK_LOCALADDR
  - get_windows_build
  - test_evutil_check_working_afunix
  source_file: /src/libevent/test/regress_util.c
  types:
    enum:
    - enumerators:
      - name: NORMAL
      - name: BAD
      - name: CANONICAL
      item_type: enum
      name: entry_status
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/libevent/test/regress_util.c
    preproc_defs:
    - item_type: preproc_def
      name: MIN_BUILD_NUM
      pos:
        line_end: 1833
        line_start: 1832
        source_file: /src/libevent/test/regress_util.c
      type_or_value: '17063'
    structs:
    - fields:
      - name: '*addr'
        type: char
      - name: res
        type: ev_uint32_t
      - name: status
        type: enum entry_status
      item_type: struct
      name: ipv4_entry
      pos:
        line_end: 79
        line_start: 75
        source_file: /src/libevent/test/regress_util.c
    - fields:
      - name: '*addr'
        type: char
      - name: res[4]
        type: ev_uint32_t
      - name: status
        type: enum entry_status
      item_type: struct
      name: ipv6_entry
      pos:
        line_end: 93
        line_start: 89
        source_file: /src/libevent/test/regress_util.c
    - fields:
      - name: '*addr'
        type: char
      - name: res[4]
        type: ev_uint32_t
      - name: scope
        type: unsigned
      - name: status
        type: enum entry_status
      item_type: struct
      name: ipv6_entry_scope
      pos:
        line_end: 222
        line_start: 217
        source_file: /src/libevent/test/regress_util.c
    - fields:
      - name: '*parse'
        type: char
      - name: safamily
        type: int
      - name: '*addr'
        type: char
      - name: port
        type: int
      item_type: struct
      name: sa_port_ent
      pos:
        line_end: 281
        line_start: 276
        source_file: /src/libevent/test/regress_util.c
    - fields:
      - name: '*parse'
        type: char
      - name: is_loopback
        type: int
      item_type: struct
      name: sa_pred_ent
      pos:
        line_end: 391
        line_start: 387
        source_file: /src/libevent/test/regress_util.c
    - fields:
      - name: '*a'
        type: char
      - name: '*b'
        type: char
      - name: c
        type: long
      item_type: struct
      name: example_struct
      pos:
        line_end: 736
        line_start: 732
        source_file: /src/libevent/test/regress_util.c
    - fields:
      - name: t
        type: time_t
      - name: date[30]
        type: char
      item_type: struct
      name: date_rfc1123_case
      pos:
        line_end: 1541
        line_start: 1538
        source_file: /src/libevent/test/regress_util.c
    typedefs: []
    union: []
- function_names:
  - set_random_timeout
  - check_heap
  - test_heap_randomized
  source_file: /src/libevent/test/regress_minheap.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_cb
  - main
  source_file: /src/libevent/test/test-eof.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - timer_callback
  - simple_callback
  - event_finalize_callback_1
  - callback_finalize_callback_1
  - test_fin_cb_invoked
  - tfff_malloc
  - tfff_free
  - tfff_realloc
  - test_fin_free_finalize
  - event_finalize_callback_2
  - timer_callback_2
  - test_fin_within_cb
  - event_finalize_callback_free
  - test_fin_debug_use_after_free
  - timer_callback_3
  - test_fin_many
  - TEST
  source_file: /src/libevent/test/regress_finalize.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ev'
        type: struct event
      - name: '*ev2'
        type: struct event
      - name: count
        type: int
      item_type: struct
      name: event_and_count
      pos:
        line_end: 236
        line_start: 232
        source_file: /src/libevent/test/regress_finalize.c
    typedefs: []
    union: []
- function_names:
  - SSL_use_certificate
  - SSL_use_PrivateKey
  - X509_free
  - SSL_SET_HOSTNAME
  - mbedtls_debug
  - mbedtls_rng
  - mbedtls_getkey
  - mbedtls_getcert
  - get_mbedtls_config
  - init_mbedtls
  - mbedtls_test_setup
  - mbedtls_test_cleanup
  - bio_rwcount_read
  - bio_rwcount_write
  - BIO_setup
  source_file: /src/libevent/test/regress_mbedtls.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TESTCASES_NAME
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: mbedtls_testcases
    - item_type: preproc_def
      name: OPENSSL_VERSION_NUMBER
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SSL_IS_CLIENT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: MBEDTLS_SSL_IS_CLIENT
    - item_type: preproc_def
      name: SSL_IS_SERVER
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: MBEDTLS_SSL_IS_SERVER
    - item_type: preproc_def
      name: get_ssl_ctx
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: get_mbedtls_config
    - item_type: preproc_def
      name: SSL_renegotiate
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: mbedtls_ssl_renegotiate
    - item_type: preproc_def
      name: SSL_get_peer_certificate
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: mbedtls_ssl_get_peer_cert
    - item_type: preproc_def
      name: SSL_get1_peer_certificate
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: mbedtls_ssl_get_peer_cert
    - item_type: preproc_def
      name: SSL_new
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: bufferevent_mbedtls_dyncontext_new
    - item_type: preproc_def
      name: X509
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: const mbedtls_x509_crt
    - item_type: preproc_def
      name: SSL
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: mbedtls_ssl_context
    - item_type: preproc_def
      name: bufferevent_ssl_get_ssl
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: bufferevent_mbedtls_get_ssl
    - item_type: preproc_def
      name: bufferevent_ssl_set_allow_dirty_shutdown
      pos:
        line_end: 76
        line_start: 74
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: bufferevent_mbedtls_set_allow_dirty_shutdown
    - item_type: preproc_def
      name: bufferevent_ssl_socket_new
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: bufferevent_mbedtls_socket_new
    - item_type: preproc_def
      name: bufferevent_ssl_filter_new
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: bufferevent_mbedtls_filter_new
    - item_type: preproc_def
      name: ssl_setup
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libevent/test/regress_mbedtls.c
      type_or_value: mbedtls_setup
    structs: []
    typedefs: []
    union: []
- function_names:
  - SLIST_HEAD_INITIALIZER
  - SLIST_FIRST
  - SLIST_END
  - SLIST_EMPTY
  - SLIST_NEXT
  - SLIST_FOREACH
  - SLIST_INIT
  - SLIST_INSERT_AFTER
  - SLIST_INSERT_HEAD
  - SLIST_REMOVE_HEAD
  - LIST_HEAD_INITIALIZER
  - LIST_ENTRY
  - LIST_FIRST
  - LIST_END
  - LIST_EMPTY
  - LIST_NEXT
  - LIST_FOREACH
  - LIST_INIT
  - LIST_INSERT_AFTER
  - LIST_INSERT_BEFORE
  - LIST_INSERT_HEAD
  - LIST_REMOVE
  - LIST_REPLACE
  - SIMPLEQ_HEAD
  - SIMPLEQ_HEAD_INITIALIZER
  - SIMPLEQ_FIRST
  - SIMPLEQ_END
  - SIMPLEQ_EMPTY
  - SIMPLEQ_NEXT
  - SIMPLEQ_FOREACH
  - SIMPLEQ_INIT
  - SIMPLEQ_INSERT_HEAD
  - SIMPLEQ_INSERT_TAIL
  - SIMPLEQ_INSERT_AFTER
  - SIMPLEQ_REMOVE_HEAD
  - TAILQ_HEAD
  - TAILQ_HEAD_INITIALIZER
  - TAILQ_ENTRY
  - TAILQ_FIRST
  - TAILQ_END
  - TAILQ_NEXT
  - TAILQ_LAST
  - TAILQ_PREV
  - TAILQ_EMPTY
  - TAILQ_FOREACH
  - TAILQ_FOREACH_REVERSE
  - TAILQ_INIT
  - TAILQ_INSERT_HEAD
  - TAILQ_INSERT_TAIL
  - TAILQ_INSERT_AFTER
  - TAILQ_INSERT_BEFORE
  - TAILQ_REMOVE
  - TAILQ_REPLACE
  - CIRCLEQ_HEAD
  - CIRCLEQ_HEAD_INITIALIZER
  - CIRCLEQ_ENTRY
  - CIRCLEQ_FIRST
  - CIRCLEQ_LAST
  - CIRCLEQ_END
  - CIRCLEQ_NEXT
  - CIRCLEQ_PREV
  - CIRCLEQ_EMPTY
  - CIRCLEQ_FOREACH
  - CIRCLEQ_FOREACH_REVERSE
  - CIRCLEQ_INIT
  - CIRCLEQ_INSERT_AFTER
  - CIRCLEQ_INSERT_BEFORE
  - CIRCLEQ_INSERT_HEAD
  - CIRCLEQ_INSERT_TAIL
  - CIRCLEQ_REMOVE
  - CIRCLEQ_REPLACE
  source_file: /src/libevent/compat/sys/queue.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SPLAY_INITIALIZER
  - SPLAY_INIT
  - SPLAY_ENTRY
  - SPLAY_LEFT
  - SPLAY_RIGHT
  - SPLAY_ROOT
  - SPLAY_EMPTY
  - SPLAY_ROTATE_RIGHT
  - SPLAY_ROTATE_LEFT
  - SPLAY_LINKLEFT
  - SPLAY_LINKRIGHT
  - SPLAY_ASSEMBLE
  - SPLAY_PROTOTYPE
  - _SPLAY_FIND
  - _SPLAY_NEXT
  - _SPLAY_MIN_MAX
  - SPLAY_GENERATE
  - _SPLAY_MINMAX
  - SPLAY_INSERT
  - SPLAY_REMOVE
  - SPLAY_FIND
  - SPLAY_NEXT
  - SPLAY_MIN
  - SPLAY_MAX
  - SPLAY_FOREACH
  - RB_INITIALIZER
  - RB_INIT
  - RB_ENTRY
  - RB_LEFT
  - RB_RIGHT
  - RB_PARENT
  - RB_COLOR
  - RB_ROOT
  - RB_EMPTY
  - RB_SET
  - RB_SET_BLACKRED
  - RB_ROTATE_LEFT
  - RB_ROTATE_RIGHT
  - RB_PROTOTYPE
  - RB_GENERATE
  - _RB_INSERT
  - _RB_FIND
  - _RB_NEXT
  - _RB_MINMAX
  - RB_INSERT
  - RB_REMOVE
  - RB_FIND
  - RB_NEXT
  - RB_MIN
  - RB_MAX
  - RB_FOREACH
  source_file: /src/libevent/compat/sys/tree.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPLAY_NEGINF
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/libevent/compat/sys/tree.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: SPLAY_INF
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/libevent/compat/sys/tree.h
      type_or_value: '1'
    - item_type: preproc_def
      name: RB_BLACK
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/libevent/compat/sys/tree.h
      type_or_value: '0'
    - item_type: preproc_def
      name: RB_RED
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/libevent/compat/sys/tree.h
      type_or_value: '1'
    - item_type: preproc_def
      name: RB_NEGINF
      pos:
        line_end: 662
        line_start: 661
        source_file: /src/libevent/compat/sys/tree.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: RB_INF
      pos:
        line_end: 663
        line_start: 662
        source_file: /src/libevent/compat/sys/tree.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - eq
  - histogram_new
  - histogram_free
  - histogram_update
  - histogram_query
  - on_prepare
  - on_check
  - on_timeout
  - on_sigint
  - main
  source_file: /src/libevent/sample/watch-timing.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INFINITY
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/libevent/sample/watch-timing.c
      type_or_value: (1.0/0.0)
    structs:
    - fields:
      - name: centroid
        type: double
      - name: count
        type: unsigned long
      item_type: struct
      name: bin
      pos:
        line_end: 67
        line_start: 64
        source_file: /src/libevent/sample/watch-timing.c
    - fields:
      - name: '*bins'
        type: struct bin
      - name: max_bins
        type: unsigned
      - name: num_bins
        type: unsigned
      - name: gap
        type: unsigned
      - name: count
        type: unsigned long
      - name: min
        type: double
      - name: max
        type: double
      item_type: struct
      name: histogram
      pos:
        line_end: 77
        line_start: 69
        source_file: /src/libevent/sample/watch-timing.c
    typedefs: []
    union: []
- function_names:
  - Curl_raw_toupper
  - Curl_raw_equal
  - Curl_raw_nequal
  - hostmatch
  - Curl_cert_hostcheck
  source_file: /src/libevent/sample/hostcheck.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - debug_ntoa
  - main_callback
  - gai_callback
  - evdns_server_callback
  - logfn
  - main
  source_file: /src/libevent/sample/dns-example.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: u32
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/libevent/sample/dns-example.c
      type_or_value: ev_uint32_t
    - item_type: preproc_def
      name: u8
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/libevent/sample/dns-example.c
      type_or_value: ev_uint8_t
    structs:
    - fields:
      - name: reverse
        type: int
      - name: use_getaddrinfo
        type: int
      - name: servertest
        type: int
      - name: '*resolv_conf'
        type: char
      - name: '*ns'
        type: char
      item_type: struct
      name: options
      pos:
        line_end: 164
        line_start: 158
        source_file: /src/libevent/sample/dns-example.c
    typedefs: []
    union: []
- function_names:
  - S_ISDIR
  - guess_content_type
  - dump_request_cb
  - send_document_cb
  - print_usage
  - parse_opts
  - do_term
  - display_listen_sock
  - main
  source_file: /src/libevent/sample/http-server.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: stat
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/libevent/sample/http-server.c
      type_or_value: _stat
    - item_type: preproc_def
      name: fstat
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/libevent/sample/http-server.c
      type_or_value: _fstat
    - item_type: preproc_def
      name: open
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/libevent/sample/http-server.c
      type_or_value: _open
    - item_type: preproc_def
      name: close
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libevent/sample/http-server.c
      type_or_value: _close
    - item_type: preproc_def
      name: O_RDONLY
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libevent/sample/http-server.c
      type_or_value: _O_RDONLY
    structs:
    - fields:
      - name: '*extension'
        type: char
      - name: '*content_type'
        type: char
      item_type: struct
      name: table_entry
      pos:
        line_end: 85
        line_start: 82
        source_file: /src/libevent/sample/http-server.c
    - fields:
      - name: port
        type: int
      - name: iocp
        type: int
      - name: verbose
        type: int
      - name: max_body_size
        type: int
      - name: unlink
        type: int
      - name: '*unixsock'
        type: char
      - name: '*bind'
        type: char
      - name: '*docroot'
        type: char
      item_type: struct
      name: options
      pos:
        line_end: 111
        line_start: 101
        source_file: /src/libevent/sample/http-server.c
    typedefs: []
    union: []
- function_names:
  - VERIFY
  - uri_parse
  - uri_path
  - uri_hostport
  - get_cb
  - connect_cb
  - main
  source_file: /src/libevent/sample/http-connect.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: URL_MAX
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/libevent/sample/http-connect.c
      type_or_value: '4096'
    structs:
    - fields:
      - name: '*evcon'
        type: struct evhttp_connection
      - name: '*location'
        type: struct evhttp_uri
      item_type: struct
      name: connect_base
      pos:
        line_end: 23
        line_start: 19
        source_file: /src/libevent/sample/http-connect.c
    typedefs: []
    union: []
- function_names:
  - fifo_read
  - signal_cb
  - main
  source_file: /src/libevent/sample/event-read-fifo.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - syntax
  - err
  - err_mbedtls
  - cert_verify_callback
  - err_openssl
  - cert_verify_callback
  - add_cert_for_store
  - strndup
  source_file: /src/libevent/sample/https-client.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/libevent/sample/https-client.c
      type_or_value: _snprintf
    - item_type: preproc_def
      name: strcasecmp
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/libevent/sample/https-client.c
      type_or_value: '_stricmp '
    structs: []
    typedefs: []
    union: []
- function_names:
  - my_debug
  - writecb
  - readcb
  - eventcb
  - main
  source_file: /src/libevent/sample/ssl-client-mbedtls.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TEST_CA_CRT_RSA_SHA256_PEM
      pos:
        line_end: 77
        line_start: 56
        source_file: /src/libevent/sample/ssl-client-mbedtls.c
      type_or_value: "\"-----BEGIN CERTIFICATE-----\\r\\n\"                                      \\\n
        \   \"MIIDQTCCAimgAwIBAgIBAzANBgkqhkiG9w0BAQsFADA7MQswCQYDVQQGEwJOTDER\\r\\n\"
        \\\n    \"MA8GA1UECgwIUG9sYXJTU0wxGTAXBgNVBAMMEFBvbGFyU1NMIFRlc3QgQ0EwHhcN\\r\\n\"
        \\\n    \"MTkwMjEwMTQ0NDAwWhcNMjkwMjEwMTQ0NDAwWjA7MQswCQYDVQQGEwJOTDERMA8G\\r\\n\"
        \\\n    \"A1UECgwIUG9sYXJTU0wxGTAXBgNVBAMMEFBvbGFyU1NMIFRlc3QgQ0EwggEiMA0G\\r\\n\"
        \\\n    \"CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDA3zf8F7vglp0/ht6WMn1EpRagzSHx\\r\\n\"
        \\\n    \"mdTs6st8GFgIlKXsm8WL3xoemTiZhx57wI053zhdcHgH057Zk+i5clHFzqMwUqny\\r\\n\"
        \\\n    \"50BwFMtEonILwuVA+T7lpg6z+exKY8C4KQB0nFc7qKUEkHHxvYPZP9al4jwqj+8n\\r\\n\"
        \\\n    \"YMPGn8u67GB9t+aEMr5P+1gmIgNb1LTV+/Xjli5wwOQuvfwu7uJBVcA0Ln0kcmnL\\r\\n\"
        \\\n    \"R7EUQIN9Z/SG9jGr8XmksrUuEvmEF/Bibyc+E1ixVA0hmnM3oTDPb5Lc9un8rNsu\\r\\n\"
        \\\n    \"KNF+AksjoBXyOGVkCeoMbo4bF6BxyLObyavpw/LPh5aPgAIynplYb6LVAgMBAAGj\\r\\n\"
        \\\n    \"UDBOMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFLRa5KWz3tJS9rnVppUP6z68x/3/\\r\\n\"
        \\\n    \"MB8GA1UdIwQYMBaAFLRa5KWz3tJS9rnVppUP6z68x/3/MA0GCSqGSIb3DQEBCwUA\\r\\n\"
        \\\n    \"A4IBAQA4qFSCth2q22uJIdE4KGHJsJjVEfw2/xn+MkTvCMfxVrvmRvqCtjE4tKDl\\r\\n\"
        \\\n    \"oK4MxFOek07oDZwvtAT9ijn1hHftTNS7RH9zd/fxNpfcHnMZXVC4w4DNA1fSANtW\\r\\n\"
        \\\n    \"5sY1JB5Je9jScrsLSS+mAjyv0Ow3Hb2Bix8wu7xNNrV5fIf7Ubm+wt6SqEBxu3Kb\\r\\n\"
        \\\n    \"+EfObAT4huf3czznhH3C17ed6NSbXwoXfby7stWUDeRJv08RaFOykf/Aae7bY5PL\\r\\n\"
        \\\n    \"yTVrkAnikMntJ9YI+hNNYt3inqq11A5cN0+rVTst8UKCxzQ4GpvroSwPKTFkbMw4\\r\\n\"
        \\\n    \"/anT1dVxr/BtwJfiESoK3/4CeXR1\\r\\n\"                                     \\\n
        \   \"-----END CERTIFICATE-----\\r\\n\""
    - item_type: preproc_def
      name: SERVER_PORT
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libevent/sample/ssl-client-mbedtls.c
      type_or_value: '"443"'
    - item_type: preproc_def
      name: SERVER_NAME
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libevent/sample/ssl-client-mbedtls.c
      type_or_value: '"amazon.com"'
    - item_type: preproc_def
      name: GET_REQUEST
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libevent/sample/ssl-client-mbedtls.c
      type_or_value: '"GET / HTTP/1.0\r\n\r\n"'
    - item_type: preproc_def
      name: DEBUG_LEVEL
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libevent/sample/ssl-client-mbedtls.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - readcb
  - drained_writecb
  - close_on_finished_writecb
  - eventcb
  - syntax
  - accept_cb
  - main
  source_file: /src/libevent/sample/le-proxy.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_OUTPUT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/libevent/sample/le-proxy.c
      type_or_value: (512*1024)
    structs: []
    typedefs: []
    union: []
- function_names:
  - signal_cb
  - main
  source_file: /src/libevent/sample/signal-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/sample/hostcheck.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CURL_HOST_NOMATCH
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/libevent/sample/hostcheck.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CURL_HOST_MATCH
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/libevent/sample/hostcheck.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  - listener_cb
  - conn_writecb
  - conn_eventcb
  - signal_cb
  source_file: /src/libevent/sample/hello-world.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CHECK_FMT
  - info
  - error
  - be_free
  - be_new
  - be_set_timeout
  - ssl_init
  - ssl_init
  - ssl_ctx_free
  - ssl_load_key
  - ssl_load_cert
  - ssl_ctx_init
  - print_usage
  - parse_opts
  - do_term
  - make_address
  - be_ssl_errors
  - event_cb_
  - read_cb
  - write_cb
  - server_event_cb
  - accept_cb
  - client_event_cb
  - in_event_cb
  - trigger_bev_write_cb
  - main
  source_file: /src/libevent/sample/becat.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STDIN_FILENO
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/libevent/sample/becat.c
      type_or_value: '0'
    structs:
    - fields:
      - name: port
        type: int
      - name: '*address'
        type: char
      item_type: struct
      name: addr
      pos:
        line_end: 59
        line_start: 55
        source_file: /src/libevent/sample/becat.c
    - fields:
      - name: src
        type: struct addr
      - name: dst
        type: struct addr
      - name: max_read
        type: int
      - name: timeout
        type: "struct {\n\t\tint read; /* seconds */\n\t\tint write; /* seconds */\n\t}"
      - name: tcp_keepalive_timeout
        type: int
      - name: extra
        type: "struct {\n\t\tint listen:1;\n\t\tint keep:1;\n\t\tint ssl:1;\n\t}"
      item_type: struct
      name: options
      pos:
        line_end: 77
        line_start: 60
        source_file: /src/libevent/sample/becat.c
    - fields:
      - name: '*ctx'
        type: SSL_CTX
      - name: '*pkey'
        type: EVP_PKEY
      - name: '*cert'
        type: X509
      item_type: struct
      name: ssl_context
      pos:
        line_end: 83
        line_start: 78
        source_file: /src/libevent/sample/becat.c
    - fields:
      - name: '*opts'
        type: struct options
      - name: ssl
        type: struct ssl_context
      - name: '*in'
        type: struct bufferevent
      - name: '*out'
        type: struct bufferevent
      - name: '*fout'
        type: FILE
      item_type: struct
      name: context
      pos:
        line_end: 93
        line_start: 84
        source_file: /src/libevent/sample/becat.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/sample/openssl_hostname_validation.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - log_d
  - broadcast_msg
  - on_msg_cb
  - on_close_cb
  - nice_addr
  - addr2str
  - on_ws
  - on_html
  - signal_cb
  - main
  source_file: /src/libevent/sample/ws-chat-server.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: stat
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/libevent/sample/ws-chat-server.c
      type_or_value: _stat
    - item_type: preproc_def
      name: fstat
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/libevent/sample/ws-chat-server.c
      type_or_value: _fstat
    - item_type: preproc_def
      name: open
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/libevent/sample/ws-chat-server.c
      type_or_value: _open
    - item_type: preproc_def
      name: close
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/libevent/sample/ws-chat-server.c
      type_or_value: _close
    - item_type: preproc_def
      name: O_RDONLY
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/libevent/sample/ws-chat-server.c
      type_or_value: _O_RDONLY
    structs:
    - fields:
      - name: '*evws'
        type: struct evws_connection
      - name: name[INET6_ADDRSTRLEN]
        type: char
      - name: (client)
        type: TAILQ_ENTRY
      item_type: struct
      name: client
      pos:
        line_end: 59
        line_start: 55
        source_file: /src/libevent/sample/ws-chat-server.c
    typedefs:
    - item_type: typedef
      name: (clients_s, client)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/libevent/sample/ws-chat-server.c
      type: TAILQ_HEAD
    union: []
- function_names:
  - timeout_cb
  - signal_cb
  - main
  source_file: /src/libevent/sample/time-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - matches_common_name
  - matches_subject_alternative_name
  - validate_hostname
  source_file: /src/libevent/sample/openssl_hostname_validation.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HOSTNAME_MAX_SIZE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/libevent/sample/openssl_hostname_validation.c
      type_or_value: '255'
    - item_type: preproc_def
      name: ASN1_STRING_get0_data
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/libevent/sample/openssl_hostname_validation.c
      type_or_value: ASN1_STRING_data
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/evutil.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/evhttp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/evdns.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/event.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/evrpc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/bufferevent_ssl.h
  types:
    enum:
    - enumerators:
      - name: BUFFEREVENT_SSL_OPEN
        value: '0'
      - name: BUFFEREVENT_SSL_CONNECTING
        value: '1'
      - name: BUFFEREVENT_SSL_ACCEPTING
        value: '2'
      item_type: enum
      name: bufferevent_ssl_state
      pos:
        line_end: 49
        line_start: 45
        source_file: /src/libevent/include/event2/bufferevent_ssl.h
    preproc_defs:
    - item_type: preproc_def
      name: BUFFEREVENT_SSL_DIRTY_SHUTDOWN
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/libevent/include/event2/bufferevent_ssl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: BUFFEREVENT_SSL_BATCH_WRITE
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libevent/include/event2/bufferevent_ssl.h
      type_or_value: '2'
    structs: []
    typedefs:
    - item_type: typedef
      name: mbedtls_dyncontext
      pos:
        line_end: 186
        line_start: 186
        source_file: /src/libevent/include/event2/bufferevent_ssl.h
      type: mbedtls_ssl_context
    union: []
- function_names:
  - EVBUFFER_LENGTH
  - EVBUFFER_DATA
  source_file: /src/libevent/include/event2/buffer_compat.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*evbuffer_cb)(struct evbuffer *buffer, size_t old_len, size_t new_len,
        void *arg)
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/libevent/include/event2/buffer_compat.h
      type: void
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/tag.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/http.h
  types:
    enum:
    - enumerators:
      - name: EVHTTP_REQ_GET
        value: 1 << 0
      - name: EVHTTP_REQ_HEAD
        value: 1 << 2
      - name: EVHTTP_REQ_PUT
        value: 1 << 3
      - name: EVHTTP_REQ_POST
        value: 1 << 1
      - name: EVHTTP_REQ_DELETE
        value: 1 << 4
      - name: EVHTTP_REQ_OPTIONS
        value: 1 << 5
      - name: EVHTTP_REQ_TRACE
        value: 1 << 6
      - name: EVHTTP_REQ_CONNECT
        value: 1 << 7
      - name: EVHTTP_REQ_PATCH
        value: 1 << 8
      - name: EVHTTP_REQ_PROPFIND
        value: 1 << 9
      - name: EVHTTP_REQ_PROPPATCH
        value: 1 << 10
      - name: EVHTTP_REQ_MKCOL
        value: 1 << 11
      - name: EVHTTP_REQ_UNLOCK
        value: 1 << 13
      - name: EVHTTP_REQ_COPY
        value: 1 << 14
      - name: EVHTTP_REQ_MOVE
        value: 1 << 15
      - name: EVHTTP_REQ_LOCK
        value: 1 << 12
      item_type: enum
      name: evhttp_cmd_type
      pos:
        line_end: 639
        line_start: 622
        source_file: /src/libevent/include/event2/http.h
    - enumerators:
      - name: EVHTTP_REQUEST
      - name: EVHTTP_RESPONSE
      item_type: enum
      name: evhttp_request_kind
      pos:
        line_end: 659
        line_start: 659
        source_file: /src/libevent/include/event2/http.h
    - enumerators:
      - name: EVREQ_HTTP_TIMEOUT
      - name: EVREQ_HTTP_EOF
      - name: EVREQ_HTTP_INVALID_HEADER
      - name: EVREQ_HTTP_REQUEST_CANCEL
      - name: EVREQ_HTTP_BUFFER_ERROR
      - name: EVREQ_HTTP_DATA_TOO_LONG
      item_type: enum
      name: evhttp_request_error
      pos:
        line_end: 791
        line_start: 766
        source_file: /src/libevent/include/event2/http.h
    preproc_defs:
    - item_type: preproc_def
      name: HTTP_CONTINUE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "100\t"
    - item_type: preproc_def
      name: HTTP_SWITCH_PROTOCOLS
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "101\t"
    - item_type: preproc_def
      name: HTTP_PROCESSING
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "102\t"
    - item_type: preproc_def
      name: HTTP_EARLYHINTS
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "103\t"
    - item_type: preproc_def
      name: HTTP_OK
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "200\t"
    - item_type: preproc_def
      name: HTTP_CREATED
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "201\t"
    - item_type: preproc_def
      name: HTTP_ACCEPTED
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "202\t"
    - item_type: preproc_def
      name: HTTP_NONAUTHORITATIVE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "203\t"
    - item_type: preproc_def
      name: HTTP_NOCONTENT
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "204\t"
    - item_type: preproc_def
      name: HTTP_MOVEPERM
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "301\t"
    - item_type: preproc_def
      name: HTTP_MOVETEMP
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "302\t"
    - item_type: preproc_def
      name: HTTP_NOTMODIFIED
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "304\t"
    - item_type: preproc_def
      name: HTTP_BADREQUEST
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "400\t"
    - item_type: preproc_def
      name: HTTP_UNAUTHORIZED
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "401\t"
    - item_type: preproc_def
      name: HTTP_PAYMENTREQUIRED
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "402\t"
    - item_type: preproc_def
      name: HTTP_FORBIDDEN
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "403\t"
    - item_type: preproc_def
      name: HTTP_NOTFOUND
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "404\t"
    - item_type: preproc_def
      name: HTTP_BADMETHOD
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "405 \t"
    - item_type: preproc_def
      name: HTTP_ENTITYTOOLARGE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "413\t"
    - item_type: preproc_def
      name: HTTP_EXPECTATIONFAILED
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "417\t"
    - item_type: preproc_def
      name: HTTP_INTERNAL
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libevent/include/event2/http.h
      type_or_value: '500     '
    - item_type: preproc_def
      name: HTTP_NOTIMPLEMENTED
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libevent/include/event2/http.h
      type_or_value: '501     '
    - item_type: preproc_def
      name: HTTP_BADGATEWAY
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "502\t"
    - item_type: preproc_def
      name: HTTP_SERVUNAVAIL
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libevent/include/event2/http.h
      type_or_value: "503\t"
    - item_type: preproc_def
      name: EVHTTP_SERVER_LINGERING_CLOSE
      pos:
        line_end: 507
        line_start: 506
        source_file: /src/libevent/include/event2/http.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: EVHTTP_REQ_MAX
      pos:
        line_end: 642
        line_start: 641
        source_file: /src/libevent/include/event2/http.h
      type_or_value: EVHTTP_REQ_MOVE
    - item_type: preproc_def
      name: EVHTTP_METHOD_HAS_BODY
      pos:
        line_end: 657
        line_start: 656
        source_file: /src/libevent/include/event2/http.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: EVHTTP_CON_REUSE_CONNECTED_ADDR
      pos:
        line_end: 850
        line_start: 849
        source_file: /src/libevent/include/event2/http.h
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: EVHTTP_CON_READ_ON_WRITE_ERROR
      pos:
        line_end: 854
        line_start: 853
        source_file: /src/libevent/include/event2/http.h
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: EVHTTP_CON_LINGERING_CLOSE
      pos:
        line_end: 856
        line_start: 855
        source_file: /src/libevent/include/event2/http.h
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: EVHTTP_CON_PUBLIC_FLAGS_END
      pos:
        line_end: 858
        line_start: 857
        source_file: /src/libevent/include/event2/http.h
      type_or_value: '0x100000'
    - item_type: preproc_def
      name: EVHTTP_URI_QUERY_NONCONFORMANT
      pos:
        line_end: 1261
        line_start: 1260
        source_file: /src/libevent/include/event2/http.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: EVHTTP_URI_QUERY_LAST_VAL
      pos:
        line_end: 1268
        line_start: 1267
        source_file: /src/libevent/include/event2/http.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: EVHTTP_URI_NONCONFORMANT
      pos:
        line_end: 1447
        line_start: 1446
        source_file: /src/libevent/include/event2/http.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: EVHTTP_URI_HOST_STRIP_BRACKETS
      pos:
        line_end: 1457
        line_start: 1456
        source_file: /src/libevent/include/event2/http.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: EVHTTP_URI_UNIX_SOCKET
      pos:
        line_end: 1464
        line_start: 1463
        source_file: /src/libevent/include/event2/http.h
      type_or_value: '0x08'
    structs:
    - fields:
      - name: '*method'
        type: char
      - name: type
        type: ev_uint32_t
      - name: flags
        type: ev_uint16_t
      item_type: struct
      name: evhttp_ext_method
      pos:
        line_end: 654
        line_start: 650
        source_file: /src/libevent/include/event2/http.h
    typedefs:
    - item_type: typedef
      name: evhttp_bound_socket_foreach_fn(struct evhttp_bound_socket *, void *)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/libevent/include/event2/http.h
      type: void
    - item_type: typedef
      name: (*evhttp_ext_method_cb)(struct evhttp_ext_method *)
      pos:
        line_end: 288
        line_start: 288
        source_file: /src/libevent/include/event2/http.h
      type: int
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/dns_struct.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: dns_question_class
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libevent/include/event2/dns_struct.h
      type_or_value: class
    structs:
    - fields:
      - name: flags
        type: int
      - name: nquestions
        type: int
      - name: '**questions'
        type: struct evdns_server_question
      item_type: struct
      name: evdns_server_request
      pos:
        line_end: 59
        line_start: 55
        source_file: /src/libevent/include/event2/dns_struct.h
    - fields:
      - name: type
        type: int
      - name: name[1]
        type: char
      item_type: struct
      name: evdns_server_question
      pos:
        line_end: 72
        line_start: 60
        source_file: /src/libevent/include/event2/dns_struct.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/bufferevent_struct.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: low
        type: size_t
      - name: high
        type: size_t
      item_type: struct
      name: event_watermark
      pos:
        line_end: 59
        line_start: 56
        source_file: /src/libevent/include/event2/bufferevent_struct.h
    - fields:
      - name: '*ev_base'
        type: struct event_base
      - name: '*be_ops'
        type: struct bufferevent_ops
      - name: ev_read
        type: struct event
      - name: ev_write
        type: struct event
      - name: '*input'
        type: struct evbuffer
      - name: '*output'
        type: struct evbuffer
      - name: wm_read
        type: struct event_watermark
      - name: wm_write
        type: struct event_watermark
      - name: readcb
        type: bufferevent_data_cb
      - name: writecb
        type: bufferevent_data_cb
      - name: errorcb
        type: bufferevent_event_cb
      - name: '*cbarg'
        type: void
      - name: timeout_read
        type: struct timeval
      - name: timeout_write
        type: struct timeval
      - name: enabled
        type: short
      item_type: struct
      name: bufferevent
      pos:
        line_end: 109
        line_start: 69
        source_file: /src/libevent/include/event2/bufferevent_struct.h
    typedefs: []
    union: []
- function_names:
  - EVENT_IN_DOXYGEN_
  source_file: /src/libevent/include/event2/bufferevent.h
  types:
    enum:
    - enumerators:
      - name: BEV_OPT_CLOSE_ON_FREE
        value: (1<<0)
      - name: BEV_OPT_THREADSAFE
        value: (1<<1)
      - name: BEV_OPT_UNLOCK_CALLBACKS
        value: (1<<3)
      - name: BEV_OPT_DEFER_CALLBACKS
        value: (1<<2)
      item_type: enum
      name: bufferevent_options
      pos:
        line_end: 174
        line_start: 157
        source_file: /src/libevent/include/event2/bufferevent.h
    - enumerators:
      - name: BEV_NORMAL
        value: '0'
      - name: BEV_FINISHED
        value: '2'
      - name: BEV_FLUSH
        value: '1'
      item_type: enum
      name: bufferevent_flush_mode
      pos:
        line_end: 641
        line_start: 632
        source_file: /src/libevent/include/event2/bufferevent.h
    - enumerators:
      - name: BEV_TRIG_IGNORE_WATERMARKS
        value: (1<<16)
      - name: BEV_TRIG_DEFER_CALLBACKS
        value: BEV_OPT_DEFER_CALLBACKS
      item_type: enum
      name: bufferevent_trigger_options
      pos:
        line_end: 669
        line_start: 660
        source_file: /src/libevent/include/event2/bufferevent.h
    - enumerators:
      - name: BEV_OK
        value: '0'
      - name: BEV_ERROR
        value: '2'
      - name: BEV_NEED_MORE
        value: '1'
      item_type: enum
      name: bufferevent_filter_result
      pos:
        line_end: 717
        line_start: 707
        source_file: /src/libevent/include/event2/bufferevent.h
    preproc_defs:
    - item_type: preproc_def
      name: BEV_EVENT_READING
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/libevent/include/event2/bufferevent.h
      type_or_value: "0x01\t"
    - item_type: preproc_def
      name: BEV_EVENT_WRITING
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/libevent/include/event2/bufferevent.h
      type_or_value: "0x02\t"
    - item_type: preproc_def
      name: BEV_EVENT_EOF
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/libevent/include/event2/bufferevent.h
      type_or_value: "0x10\t"
    - item_type: preproc_def
      name: BEV_EVENT_ERROR
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/libevent/include/event2/bufferevent.h
      type_or_value: "0x20\t"
    - item_type: preproc_def
      name: BEV_EVENT_TIMEOUT
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/libevent/include/event2/bufferevent.h
      type_or_value: "0x40\t"
    - item_type: preproc_def
      name: BEV_EVENT_CONNECTED
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/libevent/include/event2/bufferevent.h
      type_or_value: "0x80\t"
    - item_type: preproc_def
      name: EV_RATE_LIMIT_MAX
      pos:
        line_end: 799
        line_start: 798
        source_file: /src/libevent/include/event2/bufferevent.h
      type_or_value: EV_SSIZE_MAX
    structs: []
    typedefs:
    - item_type: typedef
      name: (*bufferevent_data_cb)(struct bufferevent *bev, void *ctx)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/libevent/include/event2/bufferevent.h
      type: void
    - item_type: typedef
      name: (*bufferevent_event_cb)(struct bufferevent *bev, short what, void *ctx)
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/libevent/include/event2/bufferevent.h
      type: void
    - item_type: typedef
      name: "(*bufferevent_filter_cb)(\n    struct evbuffer *src, struct evbuffer
        *dst, ev_ssize_t dst_limit,\n    enum bufferevent_flush_mode mode, void *ctx)"
      pos:
        line_end: 739
        line_start: 737
        source_file: /src/libevent/include/event2/bufferevent.h
      type: bufferevent_filter_result
    union: []
- function_names:
  - evtimer_set
  - evsignal_set
  - timeout_add
  - timeout_set
  - timeout_del
  - timeout_pending
  - timeout_initialized
  - signal_add
  - signal_set
  - signal_del
  - signal_pending
  - signal_initialized
  - EVENT_FD
  - EVENT_SIGNAL
  source_file: /src/libevent/include/event2/event_compat.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/http_struct.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*evcon'
        type: struct evhttp_connection
      - name: flags
        type: int
      - name: '*input_headers'
        type: struct evkeyvalq
      - name: '*output_headers'
        type: struct evkeyvalq
      - name: '*remote_host'
        type: char
      - name: remote_port
        type: ev_uint16_t
      - name: '*host_cache'
        type: char
      - name: kind
        type: enum evhttp_request_kind
      - name: type
        type: enum evhttp_cmd_type
      - name: headers_size
        type: size_t
      - name: body_size
        type: size_t
      - name: '*uri'
        type: char
      - name: '*uri_elems'
        type: struct evhttp_uri
      - name: major
        type: char
      - name: minor
        type: char
      - name: response_code
        type: int
      - name: '*response_code_line'
        type: char
      - name: '*input_buffer'
        type: struct evbuffer
      - name: ntoread
        type: ev_int64_t
      - name: chunked
        type: unsigned
      - name: '*output_buffer'
        type: struct evbuffer
      - name: (*cb)(struct evhttp_request *, void *)
        type: void
      - name: '*cb_arg'
        type: void
      - name: (*chunk_cb)(struct evhttp_request *, void *)
        type: void
      - name: (*header_cb)(struct evhttp_request *, void *)
        type: int
      - name: (*error_cb)(enum evhttp_request_error, void *)
        type: void
      - name: (*on_complete_cb)(struct evhttp_request *, void *)
        type: void
      - name: '*on_complete_cb_arg'
        type: void
      item_type: struct
      name: evhttp_request
      pos:
        line_end: 134
        line_start: 56
        source_file: /src/libevent/include/event2/http_struct.h
    typedefs: []
    union: []
- function_names:
  - EVENT_IN_DOXYGEN_
  - EVUTIL_CLOSESOCKET
  - EVUTIL_SOCKET_ERROR
  - EVUTIL_SET_SOCKET_ERROR
  - EVUTIL_SOCKET_ERROR
  - EVUTIL_SET_SOCKET_ERROR
  - evutil_socket_geterror
  - evutil_socket_error_to_string
  - EVUTIL_SOCKET_ERROR
  - EVUTIL_SET_SOCKET_ERROR
  - evutil_socket_geterror
  - evutil_socket_error_to_string
  - evutil_timeradd
  - evutil_timersub
  - evutil_timeradd
  - evutil_timersub
  - evutil_timerclear
  - evutil_timerclear
  - evutil_timercmp
  - evutil_timerisset
  - evutil_timerisset
  - evutil_offsetof
  - evutil_offsetof
  - evutil_gettimeofday
  source_file: /src/libevent/include/event2/util.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EVENT__SOLARIS_11_4
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libevent/include/event2/util.h
      type_or_value: (1)
    - item_type: preproc_def
      name: EVENT__SOLARIS_11_4
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libevent/include/event2/util.h
      type_or_value: (0)
    - item_type: preproc_def
      name: EVENT__SIZEOF_VOID_P
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EVENT__SIZEOF_VOID__
    - item_type: preproc_def
      name: ev_uint64_t
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/libevent/include/event2/util.h
      type_or_value: uint64_t
    - item_type: preproc_def
      name: ev_int64_t
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/libevent/include/event2/util.h
      type_or_value: int64_t
    - item_type: preproc_def
      name: ev_uint64_t
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/libevent/include/event2/util.h
      type_or_value: unsigned __int64
    - item_type: preproc_def
      name: ev_int64_t
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/libevent/include/event2/util.h
      type_or_value: signed __int64
    - item_type: preproc_def
      name: ev_uint64_t
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/libevent/include/event2/util.h
      type_or_value: unsigned long long
    - item_type: preproc_def
      name: ev_int64_t
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/libevent/include/event2/util.h
      type_or_value: long long
    - item_type: preproc_def
      name: ev_uint64_t
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/libevent/include/event2/util.h
      type_or_value: unsigned long
    - item_type: preproc_def
      name: ev_int64_t
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/libevent/include/event2/util.h
      type_or_value: long
    - item_type: preproc_def
      name: ev_uint64_t
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '...'
    - item_type: preproc_def
      name: ev_int64_t
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '...'
    - item_type: preproc_def
      name: ev_uint32_t
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/libevent/include/event2/util.h
      type_or_value: uint32_t
    - item_type: preproc_def
      name: ev_int32_t
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/libevent/include/event2/util.h
      type_or_value: int32_t
    - item_type: preproc_def
      name: ev_uint32_t
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/libevent/include/event2/util.h
      type_or_value: unsigned int
    - item_type: preproc_def
      name: ev_int32_t
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/libevent/include/event2/util.h
      type_or_value: signed int
    - item_type: preproc_def
      name: ev_uint32_t
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/libevent/include/event2/util.h
      type_or_value: unsigned long
    - item_type: preproc_def
      name: ev_int32_t
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/libevent/include/event2/util.h
      type_or_value: signed long
    - item_type: preproc_def
      name: ev_uint32_t
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/libevent/include/event2/util.h
      type_or_value: unsigned int
    - item_type: preproc_def
      name: ev_int32_t
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/libevent/include/event2/util.h
      type_or_value: signed int
    - item_type: preproc_def
      name: ev_uint32_t
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '...'
    - item_type: preproc_def
      name: ev_int32_t
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '...'
    - item_type: preproc_def
      name: ev_uint16_t
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/libevent/include/event2/util.h
      type_or_value: uint16_t
    - item_type: preproc_def
      name: ev_int16_t
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/libevent/include/event2/util.h
      type_or_value: int16_t
    - item_type: preproc_def
      name: ev_uint16_t
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/libevent/include/event2/util.h
      type_or_value: unsigned short
    - item_type: preproc_def
      name: ev_int16_t
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/libevent/include/event2/util.h
      type_or_value: signed short
    - item_type: preproc_def
      name: ev_uint16_t
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/libevent/include/event2/util.h
      type_or_value: unsigned int
    - item_type: preproc_def
      name: ev_int16_t
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/libevent/include/event2/util.h
      type_or_value: signed int
    - item_type: preproc_def
      name: ev_uint16_t
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/libevent/include/event2/util.h
      type_or_value: unsigned short
    - item_type: preproc_def
      name: ev_int16_t
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/libevent/include/event2/util.h
      type_or_value: signed short
    - item_type: preproc_def
      name: ev_uint16_t
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '...'
    - item_type: preproc_def
      name: ev_int16_t
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '...'
    - item_type: preproc_def
      name: ev_uint8_t
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/libevent/include/event2/util.h
      type_or_value: uint8_t
    - item_type: preproc_def
      name: ev_int8_t
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/libevent/include/event2/util.h
      type_or_value: int8_t
    - item_type: preproc_def
      name: ev_uint8_t
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '...'
    - item_type: preproc_def
      name: ev_int8_t
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '...'
    - item_type: preproc_def
      name: ev_uint8_t
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/libevent/include/event2/util.h
      type_or_value: unsigned char
    - item_type: preproc_def
      name: ev_int8_t
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/libevent/include/event2/util.h
      type_or_value: signed char
    - item_type: preproc_def
      name: ev_uintptr_t
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/libevent/include/event2/util.h
      type_or_value: uintptr_t
    - item_type: preproc_def
      name: ev_intptr_t
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/libevent/include/event2/util.h
      type_or_value: intptr_t
    - item_type: preproc_def
      name: ev_uintptr_t
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ev_uint32_t
    - item_type: preproc_def
      name: ev_intptr_t
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ev_int32_t
    - item_type: preproc_def
      name: ev_uintptr_t
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ev_uint64_t
    - item_type: preproc_def
      name: ev_intptr_t
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ev_int64_t
    - item_type: preproc_def
      name: ev_uintptr_t
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '...'
    - item_type: preproc_def
      name: ev_intptr_t
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '...'
    - item_type: preproc_def
      name: ev_ssize_t
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EVENT__ssize_t
    - item_type: preproc_def
      name: ev_ssize_t
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ssize_t
    - item_type: preproc_def
      name: ev_off_t
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ev_int64_t
    - item_type: preproc_def
      name: ev_off_t
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ev_int64_t
    - item_type: preproc_def
      name: ev_off_t
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ev_int32_t
    - item_type: preproc_def
      name: ev_off_t
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '...'
    - item_type: preproc_def
      name: ev_off_t
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/libevent/include/event2/util.h
      type_or_value: off_t
    - item_type: preproc_def
      name: EV_UINT64_MAX
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ((((ev_uint64_t)0xffffffffUL) << 32) | 0xffffffffUL)
    - item_type: preproc_def
      name: EV_INT64_MAX
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ((((ev_int64_t) 0x7fffffffL) << 32) | 0xffffffffL)
    - item_type: preproc_def
      name: EV_INT64_MIN
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ((-EV_INT64_MAX) - 1)
    - item_type: preproc_def
      name: EV_UINT32_MAX
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ((ev_uint32_t)0xffffffffUL)
    - item_type: preproc_def
      name: EV_INT32_MAX
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ((ev_int32_t) 0x7fffffffL)
    - item_type: preproc_def
      name: EV_INT32_MIN
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ((-EV_INT32_MAX) - 1)
    - item_type: preproc_def
      name: EV_UINT16_MAX
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ((ev_uint16_t)0xffffUL)
    - item_type: preproc_def
      name: EV_INT16_MAX
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ((ev_int16_t) 0x7fffL)
    - item_type: preproc_def
      name: EV_INT16_MIN
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ((-EV_INT16_MAX) - 1)
    - item_type: preproc_def
      name: EV_UINT8_MAX
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '255'
    - item_type: preproc_def
      name: EV_INT8_MAX
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '127'
    - item_type: preproc_def
      name: EV_INT8_MIN
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ((-EV_INT8_MAX) - 1)
    - item_type: preproc_def
      name: EV_UINT64_MAX
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/libevent/include/event2/util.h
      type_or_value: UINT64_MAX
    - item_type: preproc_def
      name: EV_INT64_MAX
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/libevent/include/event2/util.h
      type_or_value: INT64_MAX
    - item_type: preproc_def
      name: EV_INT64_MIN
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/libevent/include/event2/util.h
      type_or_value: INT64_MIN
    - item_type: preproc_def
      name: EV_UINT32_MAX
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/libevent/include/event2/util.h
      type_or_value: UINT32_MAX
    - item_type: preproc_def
      name: EV_INT32_MAX
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/libevent/include/event2/util.h
      type_or_value: INT32_MAX
    - item_type: preproc_def
      name: EV_INT32_MIN
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/libevent/include/event2/util.h
      type_or_value: INT32_MIN
    - item_type: preproc_def
      name: EV_UINT16_MAX
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/libevent/include/event2/util.h
      type_or_value: UINT16_MAX
    - item_type: preproc_def
      name: EV_INT16_MIN
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/libevent/include/event2/util.h
      type_or_value: INT16_MIN
    - item_type: preproc_def
      name: EV_INT16_MAX
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/libevent/include/event2/util.h
      type_or_value: INT16_MAX
    - item_type: preproc_def
      name: EV_UINT8_MAX
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/libevent/include/event2/util.h
      type_or_value: UINT8_MAX
    - item_type: preproc_def
      name: EV_INT8_MAX
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/libevent/include/event2/util.h
      type_or_value: INT8_MAX
    - item_type: preproc_def
      name: EV_INT8_MIN
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/libevent/include/event2/util.h
      type_or_value: INT8_MIN
    - item_type: preproc_def
      name: EV_SIZE_MAX
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EV_UINT64_MAX
    - item_type: preproc_def
      name: EV_SSIZE_MAX
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EV_INT64_MAX
    - item_type: preproc_def
      name: EV_SIZE_MAX
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EV_UINT32_MAX
    - item_type: preproc_def
      name: EV_SSIZE_MAX
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EV_INT32_MAX
    - item_type: preproc_def
      name: EV_SIZE_MAX
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '...'
    - item_type: preproc_def
      name: EV_SSIZE_MAX
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '...'
    - item_type: preproc_def
      name: EV_SSIZE_MIN
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/libevent/include/event2/util.h
      type_or_value: ((-EV_SSIZE_MAX) - 1)
    - item_type: preproc_def
      name: ev_socklen_t
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/libevent/include/event2/util.h
      type_or_value: int
    - item_type: preproc_def
      name: ev_socklen_t
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EVENT__socklen_t
    - item_type: preproc_def
      name: ev_socklen_t
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/libevent/include/event2/util.h
      type_or_value: socklen_t
    - item_type: preproc_def
      name: ss_family
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/libevent/include/event2/util.h
      type_or_value: __ss_family
    - item_type: preproc_def
      name: evutil_socket_t
      pos:
        line_end: 323
        line_start: 322
        source_file: /src/libevent/include/event2/util.h
      type_or_value: intptr_t
    - item_type: preproc_def
      name: evutil_socket_t
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/libevent/include/event2/util.h
      type_or_value: int
    - item_type: preproc_def
      name: EV_MONOT_PRECISE
      pos:
        line_end: 346
        line_start: 345
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EV_MONOT_FALLBACK
      pos:
        line_end: 347
        line_start: 346
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EVUTIL_INVALID_SOCKET
      pos:
        line_end: 535
        line_start: 534
        source_file: /src/libevent/include/event2/util.h
      type_or_value: INVALID_SOCKET
    - item_type: preproc_def
      name: EVUTIL_INVALID_SOCKET
      pos:
        line_end: 559
        line_start: 558
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: EVUTIL_INVALID_SOCKET
      pos:
        line_end: 567
        line_start: 566
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: evutil_addrinfo
      pos:
        line_end: 724
        line_start: 723
        source_file: /src/libevent/include/event2/util.h
      type_or_value: addrinfo
    - item_type: preproc_def
      name: EVUTIL_EAI_ADDRFAMILY
      pos:
        line_end: 750
        line_start: 749
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EAI_ADDRFAMILY
    - item_type: preproc_def
      name: EVUTIL_EAI_ADDRFAMILY
      pos:
        line_end: 752
        line_start: 751
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-901'
    - item_type: preproc_def
      name: EVUTIL_EAI_AGAIN
      pos:
        line_end: 755
        line_start: 754
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EAI_AGAIN
    - item_type: preproc_def
      name: EVUTIL_EAI_AGAIN
      pos:
        line_end: 757
        line_start: 756
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-902'
    - item_type: preproc_def
      name: EVUTIL_EAI_BADFLAGS
      pos:
        line_end: 760
        line_start: 759
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EAI_BADFLAGS
    - item_type: preproc_def
      name: EVUTIL_EAI_BADFLAGS
      pos:
        line_end: 762
        line_start: 761
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-903'
    - item_type: preproc_def
      name: EVUTIL_EAI_FAIL
      pos:
        line_end: 765
        line_start: 764
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EAI_FAIL
    - item_type: preproc_def
      name: EVUTIL_EAI_FAIL
      pos:
        line_end: 767
        line_start: 766
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-904'
    - item_type: preproc_def
      name: EVUTIL_EAI_FAMILY
      pos:
        line_end: 770
        line_start: 769
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EAI_FAMILY
    - item_type: preproc_def
      name: EVUTIL_EAI_FAMILY
      pos:
        line_end: 772
        line_start: 771
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-905'
    - item_type: preproc_def
      name: EVUTIL_EAI_MEMORY
      pos:
        line_end: 775
        line_start: 774
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EAI_MEMORY
    - item_type: preproc_def
      name: EVUTIL_EAI_MEMORY
      pos:
        line_end: 777
        line_start: 776
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-906'
    - item_type: preproc_def
      name: EVUTIL_EAI_NODATA
      pos:
        line_end: 783
        line_start: 782
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EAI_NODATA
    - item_type: preproc_def
      name: EVUTIL_EAI_NODATA
      pos:
        line_end: 785
        line_start: 784
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-907'
    - item_type: preproc_def
      name: EVUTIL_EAI_NONAME
      pos:
        line_end: 788
        line_start: 787
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EAI_NONAME
    - item_type: preproc_def
      name: EVUTIL_EAI_NONAME
      pos:
        line_end: 790
        line_start: 789
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-908'
    - item_type: preproc_def
      name: EVUTIL_EAI_SERVICE
      pos:
        line_end: 793
        line_start: 792
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EAI_SERVICE
    - item_type: preproc_def
      name: EVUTIL_EAI_SERVICE
      pos:
        line_end: 795
        line_start: 794
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-909'
    - item_type: preproc_def
      name: EVUTIL_EAI_SOCKTYPE
      pos:
        line_end: 798
        line_start: 797
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EAI_SOCKTYPE
    - item_type: preproc_def
      name: EVUTIL_EAI_SOCKTYPE
      pos:
        line_end: 800
        line_start: 799
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-910'
    - item_type: preproc_def
      name: EVUTIL_EAI_SYSTEM
      pos:
        line_end: 803
        line_start: 802
        source_file: /src/libevent/include/event2/util.h
      type_or_value: EAI_SYSTEM
    - item_type: preproc_def
      name: EVUTIL_EAI_SYSTEM
      pos:
        line_end: 805
        line_start: 804
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-911'
    - item_type: preproc_def
      name: EVUTIL_EAI_CANCEL
      pos:
        line_end: 808
        line_start: 807
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '-90001'
    - item_type: preproc_def
      name: EVUTIL_AI_PASSIVE
      pos:
        line_end: 811
        line_start: 810
        source_file: /src/libevent/include/event2/util.h
      type_or_value: AI_PASSIVE
    - item_type: preproc_def
      name: EVUTIL_AI_PASSIVE
      pos:
        line_end: 813
        line_start: 812
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: EVUTIL_AI_CANONNAME
      pos:
        line_end: 816
        line_start: 815
        source_file: /src/libevent/include/event2/util.h
      type_or_value: AI_CANONNAME
    - item_type: preproc_def
      name: EVUTIL_AI_CANONNAME
      pos:
        line_end: 818
        line_start: 817
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: EVUTIL_AI_NUMERICHOST
      pos:
        line_end: 821
        line_start: 820
        source_file: /src/libevent/include/event2/util.h
      type_or_value: AI_NUMERICHOST
    - item_type: preproc_def
      name: EVUTIL_AI_NUMERICHOST
      pos:
        line_end: 823
        line_start: 822
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: EVUTIL_AI_NUMERICSERV
      pos:
        line_end: 826
        line_start: 825
        source_file: /src/libevent/include/event2/util.h
      type_or_value: AI_NUMERICSERV
    - item_type: preproc_def
      name: EVUTIL_AI_NUMERICSERV
      pos:
        line_end: 828
        line_start: 827
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: EVUTIL_AI_V4MAPPED
      pos:
        line_end: 831
        line_start: 830
        source_file: /src/libevent/include/event2/util.h
      type_or_value: AI_V4MAPPED
    - item_type: preproc_def
      name: EVUTIL_AI_V4MAPPED
      pos:
        line_end: 833
        line_start: 832
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: EVUTIL_AI_ALL
      pos:
        line_end: 836
        line_start: 835
        source_file: /src/libevent/include/event2/util.h
      type_or_value: AI_ALL
    - item_type: preproc_def
      name: EVUTIL_AI_ALL
      pos:
        line_end: 838
        line_start: 837
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '0x20000'
    - item_type: preproc_def
      name: EVUTIL_AI_ADDRCONFIG
      pos:
        line_end: 841
        line_start: 840
        source_file: /src/libevent/include/event2/util.h
      type_or_value: AI_ADDRCONFIG
    - item_type: preproc_def
      name: EVUTIL_AI_ADDRCONFIG
      pos:
        line_end: 843
        line_start: 842
        source_file: /src/libevent/include/event2/util.h
      type_or_value: '0x40000'
    structs:
    - fields:
      - name: ai_flags
        type: int
      - name: ai_family
        type: int
      - name: ai_socktype
        type: int
      - name: ai_protocol
        type: int
      - name: ai_addrlen
        type: size_t
      - name: '*ai_canonname'
        type: char
      - name: '*ai_addr'
        type: struct sockaddr
      - name: '*ai_next'
        type: struct evutil_addrinfo
      item_type: struct
      name: evutil_addrinfo
      pos:
        line_end: 739
        line_start: 730
        source_file: /src/libevent/include/event2/util.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/thread.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EVTHREAD_WRITE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/libevent/include/event2/thread.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: EVTHREAD_READ
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/libevent/include/event2/thread.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: EVTHREAD_TRY
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/libevent/include/event2/thread.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: EVTHREAD_LOCK_API_VERSION
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libevent/include/event2/thread.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVTHREAD_LOCKTYPE_RECURSIVE
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libevent/include/event2/thread.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVTHREAD_LOCKTYPE_READWRITE
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libevent/include/event2/thread.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EVTHREAD_CONDITION_API_VERSION
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/libevent/include/event2/thread.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVTHREAD_USE_WINDOWS_THREADS_IMPLEMENTED
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/libevent/include/event2/thread.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVTHREAD_PTHREAD_PRIO_INHERIT
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/libevent/include/event2/thread.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: EVTHREAD_USE_PTHREADS_IMPLEMENTED
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/libevent/include/event2/thread.h
      type_or_value: '1'
    structs:
    - fields:
      - name: lock_api_version
        type: int
      - name: supported_locktypes
        type: unsigned
      - name: '*(*alloc)(unsigned locktype)'
        type: void
      - name: (*free)(void *lock, unsigned locktype)
        type: void
      - name: (*lock)(unsigned mode, void *lock)
        type: int
      - name: (*unlock)(unsigned mode, void *lock)
        type: int
      item_type: struct
      name: evthread_lock_callbacks
      pos:
        line_end: 118
        line_start: 94
        source_file: /src/libevent/include/event2/thread.h
    - fields:
      - name: condition_api_version
        type: int
      - name: '*(*alloc_condition)(unsigned condtype)'
        type: void
      - name: (*free_condition)(void *cond)
        type: void
      - name: (*signal_condition)(void *cond, int broadcast)
        type: int
      - name: "(*wait_condition)(void *cond, void *lock,\n\t    const struct timeval
          *timeout)"
        type: int
      item_type: struct
      name: evthread_condition_callbacks
      pos:
        line_end: 169
        line_start: 139
        source_file: /src/libevent/include/event2/thread.h
    typedefs: []
    union: []
- function_names:
  - EVBUFFER_INPUT
  - EVBUFFER_OUTPUT
  source_file: /src/libevent/include/event2/bufferevent_compat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: evbuffercb
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/libevent/include/event2/bufferevent_compat.h
      type_or_value: bufferevent_data_cb
    - item_type: preproc_def
      name: everrorcb
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/libevent/include/event2/bufferevent_compat.h
      type_or_value: bufferevent_event_cb
    - item_type: preproc_def
      name: EVBUFFER_READ
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/libevent/include/event2/bufferevent_compat.h
      type_or_value: BEV_EVENT_READING
    - item_type: preproc_def
      name: EVBUFFER_WRITE
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/libevent/include/event2/bufferevent_compat.h
      type_or_value: BEV_EVENT_WRITING
    - item_type: preproc_def
      name: EVBUFFER_EOF
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/libevent/include/event2/bufferevent_compat.h
      type_or_value: BEV_EVENT_EOF
    - item_type: preproc_def
      name: EVBUFFER_ERROR
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/libevent/include/event2/bufferevent_compat.h
      type_or_value: BEV_EVENT_ERROR
    - item_type: preproc_def
      name: EVBUFFER_TIMEOUT
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/libevent/include/event2/bufferevent_compat.h
      type_or_value: BEV_EVENT_TIMEOUT
    structs: []
    typedefs: []
    union: []
- function_names:
  - TAILQ_ENTRY
  source_file: /src/libevent/include/event2/rpc_struct.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EVRPC_STATUS_ERR_NONE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/libevent/include/event2/rpc_struct.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EVRPC_STATUS_ERR_TIMEOUT
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/libevent/include/event2/rpc_struct.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVRPC_STATUS_ERR_BADPAYLOAD
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/libevent/include/event2/rpc_struct.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EVRPC_STATUS_ERR_UNSTARTED
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/libevent/include/event2/rpc_struct.h
      type_or_value: '3'
    - item_type: preproc_def
      name: EVRPC_STATUS_ERR_HOOKABORTED
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/libevent/include/event2/rpc_struct.h
      type_or_value: '4'
    structs:
    - fields:
      - name: error
        type: int
      - name: '*http_req'
        type: struct evhttp_request
      item_type: struct
      name: evrpc_status
      pos:
        line_end: 63
        line_start: 53
        source_file: /src/libevent/include/event2/rpc_struct.h
    - fields:
      - name: (evrpc)
        type: TAILQ_ENTRY
      - name: '* uri'
        type: char
      - name: '*(*request_new)(void *)'
        type: void
      - name: '*request_new_arg'
        type: void
      - name: (*request_free)(void *)
        type: void
      - name: (*request_unmarshal)(void *, struct evbuffer *)
        type: int
      - name: '*(*reply_new)(void *)'
        type: void
      - name: '*reply_new_arg'
        type: void
      - name: (*reply_free)(void *)
        type: void
      - name: (*reply_complete)(void *)
        type: int
      - name: (*reply_marshal)(struct evbuffer*, void *)
        type: void
      - name: (*cb)(struct evrpc_req_generic *, void *)
        type: void
      - name: '*cb_arg'
        type: void
      - name: '*base'
        type: struct evrpc_base
      item_type: struct
      name: evrpc
      pos:
        line_end: 103
        line_start: 68
        source_file: /src/libevent/include/event2/rpc_struct.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/http_compat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: evhttp_request_uri
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libevent/include/event2/http_compat.h
      type_or_value: evhttp_request_get_uri
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/dns.h
  types:
    enum:
    - enumerators:
      - name: EVDNS_SOPT_TCP_MAX_CLIENTS
      - name: EVDNS_SOPT_TCP_IDLE_TIMEOUT
      item_type: enum
      name: evdns_server_option
      pos:
        line_end: 748
        line_start: 735
        source_file: /src/libevent/include/event2/dns.h
    preproc_defs:
    - item_type: preproc_def
      name: DNS_ERR_NONE
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DNS_ERR_FORMAT
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DNS_ERR_SERVERFAILED
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '2'
    - item_type: preproc_def
      name: DNS_ERR_NOTEXIST
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '3'
    - item_type: preproc_def
      name: DNS_ERR_NOTIMPL
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '4'
    - item_type: preproc_def
      name: DNS_ERR_REFUSED
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '5'
    - item_type: preproc_def
      name: DNS_ERR_TRUNCATED
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '65'
    - item_type: preproc_def
      name: DNS_ERR_UNKNOWN
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '66'
    - item_type: preproc_def
      name: DNS_ERR_TIMEOUT
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '67'
    - item_type: preproc_def
      name: DNS_ERR_SHUTDOWN
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '68'
    - item_type: preproc_def
      name: DNS_ERR_CANCEL
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '69'
    - item_type: preproc_def
      name: DNS_ERR_NODATA
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '70'
    - item_type: preproc_def
      name: DNS_IPv4_A
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DNS_PTR
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '2'
    - item_type: preproc_def
      name: DNS_IPv6_AAAA
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '3'
    - item_type: preproc_def
      name: DNS_CNAME
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '4'
    - item_type: preproc_def
      name: DNS_QUERY_NO_SEARCH
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: DNS_QUERY_USEVC
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: DNS_QUERY_IGNTC
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: DNS_CNAME_CALLBACK
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: DNS_OPTION_SEARCH
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DNS_OPTION_NAMESERVERS
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '2'
    - item_type: preproc_def
      name: DNS_OPTION_MISC
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '4'
    - item_type: preproc_def
      name: DNS_OPTION_HOSTSFILE
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '8'
    - item_type: preproc_def
      name: DNS_OPTIONS_ALL
      pos:
        line_end: 231
        line_start: 224
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: "(    \\\n    DNS_OPTION_SEARCH      | \\\n    DNS_OPTION_NAMESERVERS
        | \\\n    DNS_OPTION_MISC        | \\\n    DNS_OPTION_HOSTSFILE   | \\\n    0
        \                       \\\n)"
    - item_type: preproc_def
      name: DNS_OPTION_NAMESERVERS_NO_DEFAULT
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '16'
    - item_type: preproc_def
      name: DNS_NO_SEARCH
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: DNS_QUERY_NO_SEARCH
    - item_type: preproc_def
      name: EVDNS_BASE_INITIALIZE_NAMESERVERS
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVDNS_BASE_NO_CACHE
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: EVDNS_BASE_DISABLE_WHEN_INACTIVE
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: EVDNS_BASE_NAMESERVERS_NO_DEFAULT
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: EVDNS_ERROR_NONE
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EVDNS_ERROR_FAILED_TO_OPEN_FILE
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVDNS_ERROR_FAILED_TO_STAT_FILE
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EVDNS_ERROR_FILE_TOO_LARGE
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '3'
    - item_type: preproc_def
      name: EVDNS_ERROR_OUT_OF_MEMORY
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '4'
    - item_type: preproc_def
      name: EVDNS_ERROR_SHORT_READ_FROM_FILE
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '5'
    - item_type: preproc_def
      name: EVDNS_ERROR_NO_NAMESERVERS_CONFIGURED
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '6'
    - item_type: preproc_def
      name: EVDNS_ANSWER_SECTION
      pos:
        line_end: 673
        line_start: 672
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EVDNS_AUTHORITY_SECTION
      pos:
        line_end: 674
        line_start: 673
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVDNS_ADDITIONAL_SECTION
      pos:
        line_end: 675
        line_start: 674
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EVDNS_TYPE_A
      pos:
        line_end: 677
        line_start: 676
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVDNS_TYPE_NS
      pos:
        line_end: 678
        line_start: 677
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EVDNS_TYPE_CNAME
      pos:
        line_end: 679
        line_start: 678
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '5'
    - item_type: preproc_def
      name: EVDNS_TYPE_SOA
      pos:
        line_end: 680
        line_start: 679
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '6'
    - item_type: preproc_def
      name: EVDNS_TYPE_PTR
      pos:
        line_end: 681
        line_start: 680
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '12'
    - item_type: preproc_def
      name: EVDNS_TYPE_MX
      pos:
        line_end: 682
        line_start: 681
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '15'
    - item_type: preproc_def
      name: EVDNS_TYPE_TXT
      pos:
        line_end: 683
        line_start: 682
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '16'
    - item_type: preproc_def
      name: EVDNS_TYPE_AAAA
      pos:
        line_end: 684
        line_start: 683
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '28'
    - item_type: preproc_def
      name: EVDNS_QTYPE_AXFR
      pos:
        line_end: 686
        line_start: 685
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '252'
    - item_type: preproc_def
      name: EVDNS_QTYPE_ALL
      pos:
        line_end: 687
        line_start: 686
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '255'
    - item_type: preproc_def
      name: EVDNS_CLASS_INET
      pos:
        line_end: 689
        line_start: 688
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVDNS_FLAGS_AA
      pos:
        line_end: 692
        line_start: 691
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '0x400'
    - item_type: preproc_def
      name: EVDNS_FLAGS_RD
      pos:
        line_end: 693
        line_start: 692
        source_file: /src/libevent/include/event2/dns.h
      type_or_value: '0x080'
    structs: []
    typedefs:
    - item_type: typedef
      name: (*evdns_callback_type) (int result, char type, int count, int ttl, void
        *addresses, void *arg)
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/libevent/include/event2/dns.h
      type: void
    - item_type: typedef
      name: (*evdns_debug_log_fn_type)(int is_warning, const char *msg)
      pos:
        line_end: 640
        line_start: 640
        source_file: /src/libevent/include/event2/dns.h
      type: void
    - item_type: typedef
      name: (*evdns_request_callback_fn_type)(struct evdns_server_request *, void
        *)
      pos:
        line_end: 671
        line_start: 671
        source_file: /src/libevent/include/event2/dns.h
      type: void
    - item_type: typedef
      name: (*evdns_getaddrinfo_cb)(int result, struct evutil_addrinfo *res, void
        *arg)
      pos:
        line_end: 798
        line_start: 798
        source_file: /src/libevent/include/event2/dns.h
      type: void
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/listener.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LEV_OPT_LEAVE_SOCKETS_BLOCKING
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/libevent/include/event2/listener.h
      type_or_value: (1u<<0)
    - item_type: preproc_def
      name: LEV_OPT_CLOSE_ON_FREE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/libevent/include/event2/listener.h
      type_or_value: (1u<<1)
    - item_type: preproc_def
      name: LEV_OPT_CLOSE_ON_EXEC
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/libevent/include/event2/listener.h
      type_or_value: (1u<<2)
    - item_type: preproc_def
      name: LEV_OPT_REUSEABLE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/libevent/include/event2/listener.h
      type_or_value: (1u<<3)
    - item_type: preproc_def
      name: LEV_OPT_THREADSAFE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libevent/include/event2/listener.h
      type_or_value: (1u<<4)
    - item_type: preproc_def
      name: LEV_OPT_DISABLED
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libevent/include/event2/listener.h
      type_or_value: (1u<<5)
    - item_type: preproc_def
      name: LEV_OPT_DEFERRED_ACCEPT
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libevent/include/event2/listener.h
      type_or_value: (1u<<6)
    - item_type: preproc_def
      name: LEV_OPT_REUSEABLE_PORT
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/libevent/include/event2/listener.h
      type_or_value: (1u<<7)
    - item_type: preproc_def
      name: LEV_OPT_BIND_IPV6ONLY
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/libevent/include/event2/listener.h
      type_or_value: (1u<<8)
    - item_type: preproc_def
      name: LEV_OPT_BIND_IPV4_AND_IPV6
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/libevent/include/event2/listener.h
      type_or_value: (1u<<9)
    structs: []
    typedefs:
    - item_type: typedef
      name: (*evconnlistener_cb)(struct evconnlistener *, evutil_socket_t, struct
        sockaddr *, int socklen, void *)
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/libevent/include/event2/listener.h
      type: void
    - item_type: typedef
      name: (*evconnlistener_errorcb)(struct evconnlistener *, void *)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/libevent/include/event2/listener.h
      type: void
    union: []
- function_names:
  - TAILQ_ENTRY
  - TAILQ_HEAD
  - LIST_ENTRY
  source_file: /src/libevent/include/event2/event_struct.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EVLIST_TIMEOUT
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/libevent/include/event2/event_struct.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: EVLIST_INSERTED
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/libevent/include/event2/event_struct.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: EVLIST_SIGNAL
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/libevent/include/event2/event_struct.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: EVLIST_ACTIVE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/libevent/include/event2/event_struct.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: EVLIST_INTERNAL
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/libevent/include/event2/event_struct.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: EVLIST_ACTIVE_LATER
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/libevent/include/event2/event_struct.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: EVLIST_FINALIZING
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/libevent/include/event2/event_struct.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: EVLIST_INIT
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/libevent/include/event2/event_struct.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: EVLIST_ALL
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/libevent/include/event2/event_struct.h
      type_or_value: '0xff'
    structs:
    - fields:
      - name: (event_callback)
        type: TAILQ_ENTRY
      - name: evcb_flags
        type: short
      - name: evcb_pri
        type: ev_uint8_t
      - name: evcb_closure
        type: ev_uint8_t
      - name: evcb_cb_union
        type: "union {\n\t\tvoid (*evcb_callback)(evutil_socket_t, short, void *);\n\t\tvoid
          (*evcb_selfcb)(struct event_callback *, void *);\n\t\tvoid (*evcb_evfinalize)(struct
          event *, void *);\n\t\tvoid (*evcb_cbfinalize)(struct event_callback *,
          void *);\n\t}"
      - name: '*evcb_arg'
        type: void
      item_type: struct
      name: event_callback
      pos:
        line_end: 119
        line_start: 106
        source_file: /src/libevent/include/event2/event_struct.h
    - fields:
      - name: ev_evcallback
        type: struct event_callback
      - name: ev_timeout_pos
        type: "union {\n\t\tTAILQ_ENTRY(event) ev_next_with_common_timeout;\n\t\tsize_t
          min_heap_idx;\n\t}"
      - name: ev_fd
        type: evutil_socket_t
      - name: ev_events
        type: short
      - name: ev_res
        type: short
      - name: '*ev_base'
        type: struct event_base
      - name: ev_
        type: "union {\n\t\t/* used for io events */\n\t\tstruct {\n\t\t\tLIST_ENTRY
          (event) ev_io_next;\n\t\t\tstruct timeval ev_timeout;\n\t\t} ev_io;\n\n\t\t/*
          used by signal events */\n\t\tstruct {\n\t\t\tLIST_ENTRY (event) ev_signal_next;\n\t\t\tshort
          ev_ncalls;\n\t\t\t/* Allows deletes in callback */\n\t\t\tshort *ev_pncalls;\n\t\t}
          ev_signal;\n\t}"
      - name: ev_timeout
        type: struct timeval
      item_type: struct
      name: event
      pos:
        line_end: 155
        line_start: 122
        source_file: /src/libevent/include/event2/event_struct.h
    typedefs: []
    union: []
- function_names:
  - EVTAG_HAS
  - EVTAG_ASSIGN
  - EVTAG_ASSIGN_WITH_LEN
  - EVTAG_GET
  - EVTAG_GET_WITH_LEN
  - EVTAG_ARRAY_ADD_VALUE
  - EVTAG_ARRAY_ADD
  - EVTAG_ARRAY_GET
  - EVTAG_ARRAY_LEN
  - EVRPC_STRUCT
  - EVRPC_HEADER
  - EVRPC_MAKE_CTX
  - EVRPC_GENERATE
  - EVRPC_REQUEST_HTTP
  - EVRPC_REQUEST_DONE
  - EVRPC_REGISTER
  - EVRPC_UNREGISTER
  - EVRPC_MAKE_REQUEST
  source_file: /src/libevent/include/event2/rpc.h
  types:
    enum:
    - enumerators:
      - name: EVRPC_INPUT
      - name: EVRPC_OUTPUT
      item_type: enum
      name: EVRPC_HOOK_TYPE
      pos:
        line_end: 474
        line_start: 471
        source_file: /src/libevent/include/event2/rpc.h
    - enumerators:
      - name: EVRPC_TERMINATE
        value: '-1'
      - name: EVRPC_PAUSE
        value: '1'
      - name: EVRPC_CONTINUE
        value: '0'
      item_type: enum
      name: EVRPC_HOOK_RESULT
      pos:
        line_end: 493
        line_start: 489
        source_file: /src/libevent/include/event2/rpc.h
    preproc_defs:
    - item_type: preproc_def
      name: INPUT
      pos:
        line_end: 480
        line_start: 479
        source_file: /src/libevent/include/event2/rpc.h
      type_or_value: EVRPC_INPUT
    - item_type: preproc_def
      name: OUTPUT
      pos:
        line_end: 483
        line_start: 482
        source_file: /src/libevent/include/event2/rpc.h
      type_or_value: EVRPC_OUTPUT
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/ws.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WS_CR_NONE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/libevent/include/event2/ws.h
      type_or_value: '0'
    - item_type: preproc_def
      name: WS_CR_NORMAL
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/libevent/include/event2/ws.h
      type_or_value: '1000'
    - item_type: preproc_def
      name: WS_CR_PROTO_ERR
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/libevent/include/event2/ws.h
      type_or_value: '1002'
    - item_type: preproc_def
      name: WS_CR_DATA_TOO_BIG
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/libevent/include/event2/ws.h
      type_or_value: '1009'
    - item_type: preproc_def
      name: WS_TEXT_FRAME
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/libevent/include/event2/ws.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: WS_BINARY_FRAME
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/libevent/include/event2/ws.h
      type_or_value: '0x2'
    structs: []
    typedefs:
    - item_type: typedef
      name: "(*ws_on_msg_cb)(\n\tstruct evws_connection *, int type, const unsigned
        char *, size_t, void *)"
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/libevent/include/event2/ws.h
      type: void
    - item_type: typedef
      name: (*ws_on_close_cb)(struct evws_connection *, void *)
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/libevent/include/event2/ws.h
      type: void
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/dns_compat.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EVENT_IN_DOXYGEN_
  - EVENT_IN_DOXYGEN_
  - EVENT_IN_DOXYGEN_
  - evtimer_assign
  - evtimer_new
  - evtimer_add
  - evtimer_del
  - evtimer_pending
  - evtimer_initialized
  - evsignal_add
  - evsignal_assign
  - evsignal_new
  - evsignal_del
  - evsignal_pending
  - evsignal_initialized
  - evuser_new
  - evuser_del
  - evuser_pending
  - evuser_initialized
  - evuser_trigger
  - event_get_signal
  source_file: /src/libevent/include/event2/event.h
  types:
    enum:
    - enumerators:
      - name: EV_FEATURE_ET
        value: '0x01'
      - name: EV_FEATURE_FDS
        value: '0x04'
      - name: EV_FEATURE_EARLY_CLOSE
        value: '0x08'
      - name: EV_FEATURE_O1
        value: '0x02'
      item_type: enum
      name: event_method_feature
      pos:
        line_end: 530
        line_start: 512
        source_file: /src/libevent/include/event2/event.h
    - enumerators:
      - name: EVENT_BASE_FLAG_NOLOCK
        value: '0x01'
      - name: EVENT_BASE_FLAG_EPOLL_USE_CHANGELIST
        value: '0x10'
      - name: EVENT_BASE_FLAG_IGNORE_ENV
        value: '0x02'
      - name: EVENT_BASE_FLAG_NO_CACHE_TIME
        value: '0x08'
      - name: EVENT_BASE_FLAG_STARTUP_IOCP
        value: '0x04'
      - name: EVENT_BASE_FLAG_PRECISE_TIMER
        value: '0x20'
      - name: EVENT_BASE_FLAG_EPOLL_DISALLOW_TIMERFD
        value: '0x40'
      - name: EVENT_BASE_FLAG_USE_SIGNALFD
        value: '0x80'
      item_type: enum
      name: event_base_config_flag
      pos:
        line_end: 606
        line_start: 540
        source_file: /src/libevent/include/event2/event.h
    preproc_defs:
    - item_type: preproc_def
      name: EVENT_BASE_COUNT_ACTIVE
      pos:
        line_end: 425
        line_start: 424
        source_file: /src/libevent/include/event2/event.h
      type_or_value: 1U
    - item_type: preproc_def
      name: EVENT_BASE_COUNT_VIRTUAL
      pos:
        line_end: 428
        line_start: 427
        source_file: /src/libevent/include/event2/event.h
      type_or_value: 2U
    - item_type: preproc_def
      name: EVENT_BASE_COUNT_ADDED
      pos:
        line_end: 431
        line_start: 430
        source_file: /src/libevent/include/event2/event.h
      type_or_value: 4U
    - item_type: preproc_def
      name: EVENT_LOG_DEBUG
      pos:
        line_end: 736
        line_start: 735
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EVENT_LOG_MSG
      pos:
        line_end: 737
        line_start: 736
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVENT_LOG_WARN
      pos:
        line_end: 738
        line_start: 737
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EVENT_LOG_ERR
      pos:
        line_end: 739
        line_start: 738
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '3'
    - item_type: preproc_def
      name: _EVENT_LOG_DEBUG
      pos:
        line_end: 744
        line_start: 743
        source_file: /src/libevent/include/event2/event.h
      type_or_value: EVENT_LOG_DEBUG
    - item_type: preproc_def
      name: _EVENT_LOG_MSG
      pos:
        line_end: 745
        line_start: 744
        source_file: /src/libevent/include/event2/event.h
      type_or_value: EVENT_LOG_MSG
    - item_type: preproc_def
      name: _EVENT_LOG_WARN
      pos:
        line_end: 746
        line_start: 745
        source_file: /src/libevent/include/event2/event.h
      type_or_value: EVENT_LOG_WARN
    - item_type: preproc_def
      name: _EVENT_LOG_ERR
      pos:
        line_end: 747
        line_start: 746
        source_file: /src/libevent/include/event2/event.h
      type_or_value: EVENT_LOG_ERR
    - item_type: preproc_def
      name: EVENT_DBG_ALL
      pos:
        line_end: 790
        line_start: 789
        source_file: /src/libevent/include/event2/event.h
      type_or_value: 0xffffffffu
    - item_type: preproc_def
      name: EVENT_DBG_NONE
      pos:
        line_end: 791
        line_start: 790
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EVLOOP_ONCE
      pos:
        line_end: 829
        line_start: 828
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: EVLOOP_NONBLOCK
      pos:
        line_end: 832
        line_start: 831
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: EVLOOP_NO_EXIT_ON_EMPTY
      pos:
        line_end: 837
        line_start: 836
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: EV_TIMEOUT
      pos:
        line_end: 955
        line_start: 954
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: EV_READ
      pos:
        line_end: 957
        line_start: 956
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: EV_WRITE
      pos:
        line_end: 959
        line_start: 958
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: EV_SIGNAL
      pos:
        line_end: 961
        line_start: 960
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: EV_PERSIST
      pos:
        line_end: 968
        line_start: 967
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: EV_ET
      pos:
        line_end: 970
        line_start: 969
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: EV_FINALIZE
      pos:
        line_end: 979
        line_start: 978
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: EV_CLOSED
      pos:
        line_end: 988
        line_start: 987
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: LIBEVENT_VERSION
      pos:
        line_end: 1471
        line_start: 1470
        source_file: /src/libevent/include/event2/event.h
      type_or_value: EVENT__VERSION
    - item_type: preproc_def
      name: LIBEVENT_VERSION_NUMBER
      pos:
        line_end: 1474
        line_start: 1473
        source_file: /src/libevent/include/event2/event.h
      type_or_value: EVENT__NUMERIC_VERSION
    - item_type: preproc_def
      name: EVENT_MAX_PRIORITIES
      pos:
        line_end: 1477
        line_start: 1476
        source_file: /src/libevent/include/event2/event.h
      type_or_value: '256'
    structs: []
    typedefs:
    - item_type: typedef
      name: (*event_log_cb)(int severity, const char *msg)
      pos:
        line_end: 753
        line_start: 753
        source_file: /src/libevent/include/event2/event.h
      type: void
    - item_type: typedef
      name: (*event_fatal_cb)(int err)
      pos:
        line_end: 772
        line_start: 772
        source_file: /src/libevent/include/event2/event.h
      type: void
    - item_type: typedef
      name: (*event_callback_fn)(evutil_socket_t, short, void *)
      pos:
        line_end: 1047
        line_start: 1047
        source_file: /src/libevent/include/event2/event.h
      type: void
    - item_type: typedef
      name: (*event_finalize_callback_fn)(struct event *, void *)
      pos:
        line_end: 1179
        line_start: 1179
        source_file: /src/libevent/include/event2/event.h
      type: void
    - item_type: typedef
      name: (*event_base_foreach_event_cb)(const struct event_base *, const struct
        event *, void *)
      pos:
        line_end: 1626
        line_start: 1626
        source_file: /src/libevent/include/event2/event.h
      type: int
    union: []
- function_names:
  - EVTAG_ASSIGN
  - EVTAG_GET
  - EVTAG_ADD
  - EVTAG_LEN
  source_file: /src/libevent/include/event2/rpc_compat.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - encode_int
  - encode_int64
  source_file: /src/libevent/include/event2/tag_compat.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/watch.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*evwatch_prepare_cb)(struct evwatch *, const struct evwatch_prepare_cb_info
        *, void *)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/libevent/include/event2/watch.h
      type: void
    - item_type: typedef
      name: (*evwatch_check_cb)(struct evwatch *, const struct evwatch_check_cb_info
        *, void *)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/libevent/include/event2/watch.h
      type: void
    union: []
- function_names:
  - TAILQ_ENTRY
  - TAILQ_HEAD
  source_file: /src/libevent/include/event2/keyvalq_struct.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: (evkeyval)
        type: TAILQ_ENTRY
      - name: '*key'
        type: char
      - name: '*value'
        type: char
      item_type: struct
      name: evkeyval
      pos:
        line_end: 62
        line_start: 57
        source_file: /src/libevent/include/event2/keyvalq_struct.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libevent/include/event2/visibility.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EVENT2_EXPORT_SYMBOL
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/libevent/include/event2/visibility.h
      type_or_value: __global
    - item_type: preproc_def
      name: EVENT2_EXPORT_SYMBOL
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/libevent/include/event2/visibility.h
      type_or_value: __attribute__ ((visibility("default")))
    - item_type: preproc_def
      name: EVENT2_EXPORT_SYMBOL
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/libevent/include/event2/visibility.h
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: EVENT2_CORE_EXPORT_SYMBOL
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/libevent/include/event2/visibility.h
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: EVENT2_CORE_EXPORT_SYMBOL
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/libevent/include/event2/visibility.h
      type_or_value: __declspec(dllimport)
    - item_type: preproc_def
      name: EVENT2_CORE_EXPORT_SYMBOL
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/libevent/include/event2/visibility.h
      type_or_value: EVENT2_EXPORT_SYMBOL
    structs: []
    typedefs: []
    union: []
- function_names:
  - EVENT_IN_DOXYGEN_
  source_file: /src/libevent/include/event2/buffer.h
  types:
    enum:
    - enumerators:
      - name: EVBUFFER_EOL_ANY
      - name: EVBUFFER_EOL_NUL
      - name: EVBUFFER_EOL_LF
      - name: EVBUFFER_EOL_CRLF_STRICT
      - name: EVBUFFER_EOL_CRLF
      item_type: enum
      name: evbuffer_eol_style
      pos:
        line_end: 442
        line_start: 422
        source_file: /src/libevent/include/event2/buffer.h
    - enumerators:
      - name: EVBUFFER_PTR_SET
      - name: EVBUFFER_PTR_ADD
      item_type: enum
      name: evbuffer_ptr_how
      pos:
        line_end: 824
        line_start: 818
        source_file: /src/libevent/include/event2/buffer.h
    preproc_defs:
    - item_type: preproc_def
      name: evbuffer_iovec
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/libevent/include/event2/buffer.h
      type_or_value: iovec
    - item_type: preproc_def
      name: EVBUFFER_FLAG_DRAINS_TO_FD
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/libevent/include/event2/buffer.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EVBUF_FS_CLOSE_ON_FREE
      pos:
        line_end: 592
        line_start: 591
        source_file: /src/libevent/include/event2/buffer.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: EVBUF_FS_DISABLE_MMAP
      pos:
        line_end: 597
        line_start: 596
        source_file: /src/libevent/include/event2/buffer.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: EVBUF_FS_DISABLE_SENDFILE
      pos:
        line_end: 607
        line_start: 606
        source_file: /src/libevent/include/event2/buffer.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: EVBUF_FS_DISABLE_LOCKING
      pos:
        line_end: 614
        line_start: 613
        source_file: /src/libevent/include/event2/buffer.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: EVBUFFER_CB_ENABLED
      pos:
        line_end: 982
        line_start: 981
        source_file: /src/libevent/include/event2/buffer.h
      type_or_value: '1'
    structs:
    - fields:
      - name: pos
        type: ev_ssize_t
      - name: internal_
        type: "struct {\n\t\tvoid *chain;\n\t\tsize_t pos_in_chain;\n\t}"
      item_type: struct
      name: evbuffer_ptr
      pos:
        line_end: 124
        line_start: 115
        source_file: /src/libevent/include/event2/buffer.h
    - fields:
      - name: '*iov_base'
        type: void
      - name: iov_len
        type: size_t
      item_type: struct
      name: evbuffer_iovec
      pos:
        line_end: 141
        line_start: 136
        source_file: /src/libevent/include/event2/buffer.h
    - fields:
      - name: orig_size
        type: size_t
      - name: n_added
        type: size_t
      - name: n_deleted
        type: size_t
      item_type: struct
      name: evbuffer_cb_info
      pos:
        line_end: 917
        line_start: 909
        source_file: /src/libevent/include/event2/buffer.h
    typedefs:
    - item_type: typedef
      name: "(*evbuffer_ref_cleanup_cb)(const void *data,\n    size_t datalen, void
        *extra)"
      pos:
        line_end: 505
        line_start: 504
        source_file: /src/libevent/include/event2/buffer.h
      type: void
    - item_type: typedef
      name: "(*evbuffer_file_segment_cleanup_cb)(\n    struct evbuffer_file_segment
        const* seg, int flags, void* arg)"
      pos:
        line_end: 620
        line_start: 619
        source_file: /src/libevent/include/event2/buffer.h
      type: void
    - item_type: typedef
      name: (*evbuffer_cb_func)(struct evbuffer *buffer, const struct evbuffer_cb_info
        *info, void *arg)
      pos:
        line_end: 938
        line_start: 938
        source_file: /src/libevent/include/event2/buffer.h
      type: void
    union: []
- function_names: []
  source_file: /src/libevent/WIN32-Code/getopt.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: no_argument
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/libevent/WIN32-Code/getopt.h
      type_or_value: '0'
    - item_type: preproc_def
      name: required_argument
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/libevent/WIN32-Code/getopt.h
      type_or_value: '1'
    - item_type: preproc_def
      name: optional_argument
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/libevent/WIN32-Code/getopt.h
      type_or_value: '2'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: has_arg
        type: int
      - name: '*flag'
        type: int
      - name: val
        type: int
      item_type: struct
      name: option
      pos:
        line_end: 19
        line_start: 13
        source_file: /src/libevent/WIN32-Code/getopt.h
    typedefs: []
    union: []
- function_names:
  - __P
  - _DIAGASSERT
  source_file: /src/libevent/WIN32-Code/getopt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BADCH
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libevent/WIN32-Code/getopt.c
      type_or_value: (int)'?'
    - item_type: preproc_def
      name: BADARG
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/libevent/WIN32-Code/getopt.c
      type_or_value: (int)':'
    - item_type: preproc_def
      name: EMSG
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libevent/WIN32-Code/getopt.c
      type_or_value: '""'
    structs: []
    typedefs: []
    union: []
- function_names:
  - __P
  - _DIAGASSERT
  source_file: /src/libevent/WIN32-Code/getopt_long.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BADCH
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/libevent/WIN32-Code/getopt_long.c
      type_or_value: (int)'?'
    - item_type: preproc_def
      name: BADARG
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/libevent/WIN32-Code/getopt_long.c
      type_or_value: (int)':'
    - item_type: preproc_def
      name: EMSG
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/libevent/WIN32-Code/getopt_long.c
      type_or_value: '""'
    structs: []
    typedefs: []
    union: []
- function_names:
  - SPLAY_INITIALIZER
  - SPLAY_INIT
  - SPLAY_ENTRY
  - SPLAY_LEFT
  - SPLAY_RIGHT
  - SPLAY_ROOT
  - SPLAY_EMPTY
  - SPLAY_ROTATE_RIGHT
  - SPLAY_ROTATE_LEFT
  - SPLAY_LINKLEFT
  - SPLAY_LINKRIGHT
  - SPLAY_ASSEMBLE
  - SPLAY_PROTOTYPE
  - _SPLAY_FIND
  - _SPLAY_NEXT
  - _SPLAY_MIN_MAX
  - SPLAY_GENERATE
  - _SPLAY_MINMAX
  - SPLAY_INSERT
  - SPLAY_REMOVE
  - SPLAY_FIND
  - SPLAY_NEXT
  - SPLAY_MIN
  - SPLAY_MAX
  - SPLAY_FOREACH
  - RB_INITIALIZER
  - RB_INIT
  - RB_ENTRY
  - RB_LEFT
  - RB_RIGHT
  - RB_PARENT
  - RB_COLOR
  - RB_ROOT
  - RB_EMPTY
  - RB_SET
  - RB_SET_BLACKRED
  - RB_ROTATE_LEFT
  - RB_ROTATE_RIGHT
  - RB_PROTOTYPE
  - RB_GENERATE
  - _RB_INSERT
  - _RB_FIND
  - _RB_NEXT
  - _RB_MINMAX
  - RB_INSERT
  - RB_REMOVE
  - RB_FIND
  - RB_NEXT
  - RB_MIN
  - RB_MAX
  - RB_FOREACH
  source_file: /src/libevent/WIN32-Code/tree.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPLAY_NEGINF
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/libevent/WIN32-Code/tree.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: SPLAY_INF
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/libevent/WIN32-Code/tree.h
      type_or_value: '1'
    - item_type: preproc_def
      name: RB_BLACK
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/libevent/WIN32-Code/tree.h
      type_or_value: '0'
    - item_type: preproc_def
      name: RB_RED
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/libevent/WIN32-Code/tree.h
      type_or_value: '1'
    - item_type: preproc_def
      name: RB_NEGINF
      pos:
        line_end: 662
        line_start: 661
        source_file: /src/libevent/WIN32-Code/tree.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: RB_INF
      pos:
        line_end: 663
        line_start: 662
        source_file: /src/libevent/WIN32-Code/tree.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - test
  - test
  - test
  - test
  - test
  - main
  source_file: /src/libevent/test-export/test-export.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
