func (r *callgraphResult) toSerial(res *serial.Result, fset *token.FileSet) { cg := make([]serial.CallGraph, len(r.nodes)) for _, n := range r.nodes { j := &cg[n.ID] fn := n.Func j.Name = fn.String() j.Pos = fset.Position(fn.Pos()).String() for callee := range callgraph.CalleesOf(n) { j.Children = append(j.Children, callee.ID) } sort.Ints(j.Children) } res.Callgraph = cg }
func (r *callgraphResult) toSerial(res *serial.Result, fset *token.FileSet) { nodes := r.callgraph.Nodes() numbering := make(map[call.GraphNode]int) for i, n := range nodes { numbering[n] = i } cg := make([]serial.CallGraph, len(nodes)) for i, n := range nodes { j := &cg[i] fn := n.Func() j.Name = fn.String() j.Pos = fset.Position(fn.Pos()).String() for callee := range call.CalleesOf(n) { j.Children = append(j.Children, numbering[callee]) } } res.Callgraph = cg }