diff options
| author | Paul Buetow <paul@buetow.org> | 2026-03-06 17:32:24 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-03-06 17:32:24 +0200 |
| commit | 1561987330cb898f5ff64383a9c78e7e6559f118 (patch) | |
| tree | 69a823e8f98dce572566c97e6879c11c9d591bda /internal/flamegraph/trie_insert.go | |
| parent | 96225fb6159212a8851043a08d781aba721b4e78 (diff) | |
| parent | 110a193e04b81abb8d8e159abd73f9f6ed1acd7e (diff) | |
Merge branch 'feat/bubbletea-v2-migration'
Diffstat (limited to 'internal/flamegraph/trie_insert.go')
| -rw-r--r-- | internal/flamegraph/trie_insert.go | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/internal/flamegraph/trie_insert.go b/internal/flamegraph/trie_insert.go new file mode 100644 index 0000000..7748b4a --- /dev/null +++ b/internal/flamegraph/trie_insert.go @@ -0,0 +1,22 @@ +package flamegraph + +// insertTriePath follows or creates nodes for frames and adds value at the leaf. +func insertTriePath(root *trieNode, frames []string, value uint64) { + node := root + for _, frame := range frames { + if node.childMap == nil { + node.childMap = make(map[string]*trieNode) + } + child, ok := node.childMap[frame] + if !ok { + child = &trieNode{ + name: frame, + childMap: make(map[string]*trieNode), + } + node.children = append(node.children, child) + node.childMap[frame] = child + } + node = child + } + node.value += value +} |
