Created
June 27, 2019 12:13
-
-
Save rcoup/79e2d12904cf7b532e1b40b013b76348 to your computer and use it in GitHub Desktop.
cflow trace for git_revparse_single()
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ cflow -T --brief --main=git_revparse_single refs.c revparse.c | |
+-git_revparse_single() <int git_revparse_single (git_object **out, git_repository *repo, const char *spec) at revparse.c:854> | |
+-git_revparse_ext() <int git_revparse_ext (git_object **object_out, git_reference **reference_out, git_repository *repo, const char *spec) at revparse.c:828> | |
| +-revparse__ext() <int revparse__ext (git_object **object_out, git_reference **reference_out, size_t *identifier_len_out, git_repository *repo, const char *spec) at revparse.c:663> | |
| | +-assert() | |
| | +-ensure_base_rev_loaded() <int ensure_base_rev_loaded (git_object **object, git_reference **reference, const char *spec, size_t identifier_len, git_repository *repo, bool allow_empty_identifier) at revparse.c:610> | |
| | | +-object_from_reference() <int object_from_reference (git_object **object, git_reference *reference) at revparse.c:596> | |
| | | | +-git_reference_resolve() <int git_reference_resolve (git_reference **ref_out, const git_reference *ref) at refs.c:723> | |
| | | | | +-git_reference_type() <git_reference_t git_reference_type (const git_reference *ref) at refs.c:357> | |
| | | | | | \-assert() | |
| | | | | +-git_reference_lookup() <int git_reference_lookup (git_reference **ref_out, git_repository *repo, const char *name) at refs.c:162> | |
| | | | | | \-git_reference_lookup_resolved() <int git_reference_lookup_resolved (git_reference **ref_out, git_repository *repo, const char *name, int max_nesting) at refs.c:201> | |
| | | | | | +-assert() | |
| | | | | | +-reference_normalize_for_repo() <int reference_normalize_for_repo (git_refname_t out, git_repository *repo, const char *name, bool validate) at refs.c:182> | |
| | | | | | | +-git_repository__cvar() | |
| | | | | | | \-git_reference_normalize_name() <int git_reference_normalize_name (char *buffer_out, size_t buffer_size, const char *name, unsigned int flags) at refs.c:1090> | |
| | | | | | | +-git_reference__normalize_name() <int git_reference__normalize_name (git_buf *buf, const char *name, unsigned int flags) at refs.c:964> | |
| | | | | | | | +-assert() | |
| | | | | | | | +-git_buf_clear() | |
| | | | | | | | +-strlen() | |
| | | | | | | | +-git_path_iconv_init_precompose() | |
| | | | | | | | +-git_path_iconv() | |
| | | | | | | | +-git_buf_sets() | |
| | | | | | | | +-git_buf_oom() | |
| | | | | | | | +-ensure_segment_validity() <int ensure_segment_validity (const char *name) at refs.c:907> | |
| | | | | | | | | +-strlen() | |
| | | | | | | | | +-is_valid_ref_char() <int is_valid_ref_char (char ch) at refs.c:888> | |
| | | | | | | | | \-memcmp() | |
| | | | | | | | +-git_buf_len() | |
| | | | | | | | +-git_buf_joinpath() | |
| | | | | | | | +-git_buf_cstr() | |
| | | | | | | | +-git_buf_truncate() | |
| | | | | | | | +-is_all_caps_and_underscore() <bool is_all_caps_and_underscore (const char *name, size_t len) at refs.c:943> | |
| | | | | | | | | \-assert() | |
| | | | | | | | +-strcmp() | |
| | | | | | | | +-strchr() | |
| | | | | | | | +-git_error_set() | |
| | | | | | | | +-git_buf_dispose() | |
| | | | | | | | \-git_path_iconv_clear() | |
| | | | | | | +-git_buf_len() | |
| | | | | | | +-git_error_set() | |
| | | | | | | +-git_buf_copy_cstr() | |
| | | | | | | \-git_buf_dispose() | |
| | | | | | +-git_repository_refdb__weakptr() | |
| | | | | | +-strncpy() | |
| | | | | | +-git_reference_free() <void git_reference_free (git_reference *reference) at refs.c:124> | |
| | | | | | | +-git__free() | |
| | | | | | | \-GIT_REFCOUNT_DEC() | |
| | | | | | +-git_refdb_lookup() | |
| | | | | | \-git_error_set() | |
| | | | | +-git_reference_lookup_resolved() <int git_reference_lookup_resolved (git_reference **ref_out, git_repository *repo, const char *name, int max_nesting) at refs.c:201> [see 11] | |
| | | | | \-git_error_set() | |
| | | | +-git_object_lookup() | |
| | | | +-git_reference_target() <const git_oid *git_reference_target (const git_reference *ref) at refs.c:375> | |
| | | | | \-assert() | |
| | | | \-git_reference_free() <void git_reference_free (git_reference *reference) at refs.c:124> [see 45] | |
| | | +-git_buf_put() | |
| | | +-revparse_lookup_object() <int revparse_lookup_object (git_object **object_out, git_reference **reference_out, git_repository *repo, const char *spec) at revparse.c:88> | |
| | | | +-maybe_sha() <int maybe_sha (git_object **out, git_repository *repo, const char *spec) at revparse.c:28> | |
| | | | | +-strlen() | |
| | | | | \-maybe_sha_or_abbrev() <int maybe_sha_or_abbrev (git_object **out, git_repository *repo, const char *spec, size_t speclen) at revparse.c:18> | |
| | | | | +-git_oid_fromstrn() | |
| | | | | \-git_object_lookup_prefix() | |
| | | | +-git_reference_dwim() <int git_reference_dwim (git_reference **out, git_repository *repo, const char *refname) at refs.c:290> | |
| | | | | +-git_buf_puts() | |
| | | | | +-git_buf_clear() | |
| | | | | +-git_buf_printf() | |
| | | | | +-git_buf_cstr() | |
| | | | | +-git_reference_is_valid_name() <int git_reference_is_valid_name (const char *refname) at refs.c:1412> | |
| | | | | | \-git_reference__is_valid_name() <int git_reference__is_valid_name (const char *refname, unsigned int flags) at refs.c:1402> | |
| | | | | | +-git_reference__normalize_name() <int git_reference__normalize_name (git_buf *buf, const char *name, unsigned int flags) at refs.c:964> [see 16] | |
| | | | | | \-git_error_clear() | |
| | | | | +-git_reference_lookup_resolved() <int git_reference_lookup_resolved (git_reference **ref_out, git_repository *repo, const char *name, int max_nesting) at refs.c:201> [see 11] | |
| | | | | +-git_error_set() | |
| | | | | \-git_buf_dispose() | |
| | | | +-git_object_lookup() | |
| | | | +-git_reference_target() <const git_oid *git_reference_target (const git_reference *ref) at refs.c:375> [see 53] | |
| | | | +-strlen() | |
| | | | +-maybe_abbrev() <int maybe_abbrev (git_object **out, git_repository *repo, const char *spec) at revparse.c:38> | |
| | | | | +-strlen() | |
| | | | | \-maybe_sha_or_abbrev() <int maybe_sha_or_abbrev (git_object **out, git_repository *repo, const char *spec, size_t speclen) at revparse.c:18> [see 60] | |
| | | | +-maybe_describe() <int maybe_describe (git_object **out, git_repository *repo, const char *spec) at revparse.c:65> | |
| | | | | +-strstr() | |
| | | | | +-build_regex() <int build_regex (regex_t *regex, const char *pattern) at revparse.c:45> | |
| | | | | | +-git_error_set() | |
| | | | | | +-p_regcomp() | |
| | | | | | +-git_error_set_regex() | |
| | | | | | \-regfree() | |
| | | | | +-regexec() | |
| | | | | +-regfree() | |
| | | | | \-maybe_abbrev() <int maybe_abbrev (git_object **out, git_repository *repo, const char *spec) at revparse.c:38> [see 78] | |
| | | | \-git_error_set() | |
| | | +-git_buf_cstr() | |
| | | \-git_buf_dispose() | |
| | +-extract_curly_braces_content() <int extract_curly_braces_content (git_buf *buf, const char *spec, size_t *pos) at revparse.c:524> | |
| | | +-git_buf_clear() | |
| | | +-assert() | |
| | | \-git_buf_putc() | |
| | +-handle_caret_curly_syntax() <int handle_caret_curly_syntax (git_object **out, git_object *obj, const char *curly_braces_content) at revparse.c:506> | |
| | | +-dereference_to_non_tag() <int dereference_to_non_tag (git_object **out, git_object *obj) at revparse.c:375> | |
| | | | +-git_object_type() | |
| | | | +-git_tag_peel() | |
| | | | \-git_object_dup() | |
| | | +-handle_grep_syntax() <int handle_grep_syntax (git_object **out, git_repository *repo, const git_oid *spec_oid, const char *pattern) at revparse.c:477> | |
| | | | +-build_regex() <int build_regex (regex_t *regex, const char *pattern) at revparse.c:45> [see 83] | |
| | | | +-git_revwalk_new() | |
| | | | +-git_revwalk_sorting() | |
| | | | +-git_revwalk_push_glob() | |
| | | | +-git_revwalk_push() | |
| | | | +-walk_and_search() <int walk_and_search (git_object **out, git_revwalk *walk, regex_t *regex) at revparse.c:451> | |
| | | | | +-git_revwalk_next() | |
| | | | | +-git_object_lookup() | |
| | | | | +-git_revwalk_repository() | |
| | | | | +-regexec() | |
| | | | | +-git_commit_message() | |
| | | | | \-git_object_free() | |
| | | | +-regfree() | |
| | | | \-git_revwalk_free() | |
| | | +-git_object_owner() | |
| | | +-git_object_id() | |
| | | +-parse_obj_type() <git_object_t parse_obj_type (const char *str) at revparse.c:358> | |
| | | | \-strcmp() | |
| | | \-git_object_peel() | |
| | +-git_buf_cstr() | |
| | +-git_object_free() | |
| | +-extract_how_many() <int extract_how_many (int *n, const char *spec, size_t *pos) at revparse.c:565> | |
| | | +-assert() | |
| | | +-git__isdigit() | |
| | | +-git__strntol32() | |
| | | \-strlen() | |
| | +-handle_caret_parent_syntax() <int handle_caret_parent_syntax (git_object **out, git_object *obj, int n) at revparse.c:383> | |
| | | +-git_object_peel() | |
| | | +-git_commit_parent() | |
| | | \-git_object_free() | |
| | +-handle_linear_syntax() <int handle_linear_syntax (git_object **out, git_object *obj, int n) at revparse.c:403> | |
| | | +-git_object_peel() | |
| | | +-git_commit_nth_gen_ancestor() | |
| | | \-git_object_free() | |
| | +-extract_path() <int extract_path (git_buf *buf, const char *spec, size_t *pos) at revparse.c:549> | |
| | | +-git_buf_clear() | |
| | | +-assert() | |
| | | +-git_buf_puts() | |
| | | \-git_buf_len() | |
| | +-any_left_hand_identifier() <bool any_left_hand_identifier (git_object *object, git_reference *reference, size_t identifier_len) at revparse.c:641> | |
| | +-handle_colon_syntax() <int handle_colon_syntax (git_object **out, git_object *obj, const char *path) at revparse.c:418> | |
| | | +-git_object_peel() | |
| | | +-git_tree_entry_bypath() | |
| | | +-git_tree_entry_to_object() | |
| | | +-git_object_owner() | |
| | | +-git_tree_entry_free() | |
| | | \-git_object_free() | |
| | +-handle_grep_syntax() <int handle_grep_syntax (git_object **out, git_repository *repo, const git_oid *spec_oid, const char *pattern) at revparse.c:477> [see 103] | |
| | +-git_error_set() | |
| | +-ensure_base_rev_is_not_known_yet() <int ensure_base_rev_is_not_known_yet (git_object *object) at revparse.c:633> | |
| | +-handle_at_syntax() <int handle_at_syntax (git_object **out, git_reference **ref, const char *spec, size_t identifier_len, git_repository *repo, const char *curly_braces_content) at revparse.c:314> | |
| | | +-assert() | |
| | | +-git_buf_put() | |
| | | +-try_parse_numeric() <int try_parse_numeric (int *n, const char *curly_braces_content) at revparse.c:126> | |
| | | | +-git__strntol32() | |
| | | | \-strlen() | |
| | | +-retrieve_previously_checked_out_branch_or_revision() <int retrieve_previously_checked_out_branch_or_revision (git_object **out, git_reference **base_ref, git_repository *repo, const char *identifier, size_t position) at revparse.c:142> | |
| | | | +-build_regex() <int build_regex (regex_t *regex, const char *pattern) at revparse.c:45> [see 83] | |
| | | | +-git_reference_lookup() <int git_reference_lookup (git_reference **ref_out, git_repository *repo, const char *name) at refs.c:162> [see 10] | |
| | | | +-git_reflog_read() | |
| | | | +-git_reflog_entrycount() | |
| | | | +-git_reflog_entry_byindex() | |
| | | | +-git_reflog_entry_message() | |
| | | | +-regexec() | |
| | | | +-git_buf_put() | |
| | | | +-git_reference_dwim() <int git_reference_dwim (git_reference **out, git_repository *repo, const char *refname) at refs.c:290> [see 63] | |
| | | | +-git_buf_cstr() | |
| | | | +-maybe_abbrev() <int maybe_abbrev (git_object **out, git_repository *repo, const char *spec) at revparse.c:38> [see 78] | |
| | | | +-git_reference_free() <void git_reference_free (git_reference *reference) at refs.c:124> [see 45] | |
| | | | +-git_buf_dispose() | |
| | | | +-regfree() | |
| | | | \-git_reflog_free() | |
| | | +-git_buf_cstr() | |
| | | +-retrieve_revobject_from_reflog() <int retrieve_revobject_from_reflog (git_object **out, git_reference **base_ref, git_repository *repo, const char *identifier, size_t position) at revparse.c:257> | |
| | | | +-git_reference_dwim() <int git_reference_dwim (git_reference **out, git_repository *repo, const char *refname) at refs.c:290> [see 63] | |
| | | | +-git_object_lookup() | |
| | | | +-git_reference_target() <const git_oid *git_reference_target (const git_reference *ref) at refs.c:375> [see 53] | |
| | | | +-retrieve_oid_from_reflog() <int retrieve_oid_from_reflog (git_oid *oid, git_reference *ref, size_t identifier) at revparse.c:207> | |
| | | | | +-git_reflog_read() | |
| | | | | +-git_reference_owner() <git_repository *git_reference_owner (const git_reference *ref) at refs.c:369> | |
| | | | | | \-assert() | |
| | | | | +-git_reference_name() <const char *git_reference_name (const git_reference *ref) at refs.c:363> | |
| | | | | | \-assert() | |
| | | | | +-git_reflog_entrycount() | |
| | | | | +-git_reflog_entry_byindex() | |
| | | | | +-git_oid_cpy() | |
| | | | | +-git_reflog_entry_id_new() | |
| | | | | +-git_reflog_entry_committer() | |
| | | | | +-git_reflog_free() | |
| | | | | \-git_error_set() | |
| | | | \-git_reference_free() <void git_reference_free (git_reference *reference) at refs.c:124> [see 45] | |
| | | +-strcmp() | |
| | | +-retrieve_remote_tracking_reference() <int retrieve_remote_tracking_reference (git_reference **base_ref, const char *identifier, git_repository *repo) at revparse.c:286> | |
| | | | +-git_reference_dwim() <int git_reference_dwim (git_reference **out, git_repository *repo, const char *refname) at refs.c:290> [see 63] | |
| | | | +-git_reference_is_branch() <int git_reference_is_branch (const git_reference *ref) at refs.c:1303> | |
| | | | | +-assert() | |
| | | | | \-git_reference__is_branch() <int git_reference__is_branch (const char *ref_name) at refs.c:1298> | |
| | | | | \-git__prefixcmp() | |
| | | | +-git_branch_upstream() | |
| | | | \-git_reference_free() <void git_reference_free (git_reference *reference) at refs.c:124> [see 45] | |
| | | +-git__date_parse() | |
| | | \-git_buf_dispose() | |
| | +-ensure_left_hand_identifier_is_not_known_yet() <int ensure_left_hand_identifier_is_not_known_yet (git_object *object, git_reference *reference) at revparse.c:655> | |
| | | \-ensure_base_rev_is_not_known_yet() <int ensure_base_rev_is_not_known_yet (git_object *object) at revparse.c:633> [see 153] | |
| | +-git_reference_free() <void git_reference_free (git_reference *reference) at refs.c:124> [see 45] | |
| | \-git_buf_dispose() | |
| +-GIT_UNUSED() | |
| +-git_object_free() | |
| \-git_reference_free() <void git_reference_free (git_reference *reference) at refs.c:124> [see 45] | |
+-git_reference_free() <void git_reference_free (git_reference *reference) at refs.c:124> [see 45] | |
\-git_object_free() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment