func (fns profileFunctionMap) findOrAddFunction(name, filename string, p *profile.Profile) *profile.Function { f := profile.Function{ Name: name, SystemName: name, Filename: filename, } if fp := fns[f]; fp != nil { return fp } fp := new(profile.Function) fns[f] = fp *fp = f fp.ID = uint64(len(p.Function) + 1) p.Function = append(p.Function, fp) return fp }