func buildTree()

in pkg/display/graph/tree/adapter.go [77:98]


func buildTree(all map[string]*Node, seen map[string]bool, trace api.Trace) {
	for len(seen) < len(trace.Spans) {
		for _, span := range trace.Spans {
			if seen[id(span)] {
				continue
			}

			if all[pid(span)] != nil {
				all[pid(span)].Children = append(all[pid(span)].Children, all[id(span)])
				seen[id(span)] = true
			}

			for _, ref := range span.Refs {
				refData := all[id0(ref)]
				if refData != nil {
					refData.Children = append(refData.Children, all[id(span)])
					seen[id(span)] = true
				}
			}
		}
	}
}