diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2026-01-21 15:48:25 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2026-01-22 11:23:54 +0000 |
| commit | 623df388782dcfe70f4f147cb24197e535f9c89b (patch) | |
| tree | e815bc3ae2e0c315ceccf2cf22d887fea17363b9 /pkg/codesearch/codesearch.go | |
| parent | c1de3220482e317729f83e4e7d32fc30d46ec1e7 (diff) | |
pkg/codesearch: reduce memory consumption a bit more
Use uint32 instead of int for line numbers (2G lines should be enough for everyone).
Reorder fields to remove unnecessary paddings.
Diffstat (limited to 'pkg/codesearch/codesearch.go')
| -rw-r--r-- | pkg/codesearch/codesearch.go | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/pkg/codesearch/codesearch.go b/pkg/codesearch/codesearch.go index 08018a403..33a87e712 100644 --- a/pkg/codesearch/codesearch.go +++ b/pkg/codesearch/codesearch.go @@ -266,6 +266,7 @@ func (index *Index) FindReferences(contextFile, name, srcPrefix string, contextL if srcPrefix != "" { srcPrefix = filepath.Clean(srcPrefix) } + contextLines = min(contextLines, 10000) totalCount := 0 var results []ReferenceInfo for _, def := range index.db.Definitions { @@ -289,8 +290,8 @@ func (index *Index) FindReferences(contextFile, name, srcPrefix string, contextL if contextLines > 0 { lines := LineRange{ File: def.Body.File, - StartLine: max(def.Body.StartLine, ref.Line-contextLines), - EndLine: min(def.Body.EndLine, ref.Line+contextLines), + StartLine: max(def.Body.StartLine, uint32(max(0, int(ref.Line)-contextLines))), + EndLine: min(def.Body.EndLine, ref.Line+uint32(contextLines)), } var err error snippet, err = index.formatSource(lines, true) @@ -303,7 +304,7 @@ func (index *Index) FindReferences(contextFile, name, srcPrefix string, contextL ReferencingEntityName: def.Name, ReferenceKind: ref.Kind.String(), SourceFile: def.Body.File, - SourceLine: ref.Line, + SourceLine: int(ref.Line), SourceSnippet: snippet, }) } @@ -342,7 +343,7 @@ func (index *Index) formatSource(lines LineRange, includeLines bool) (string, er if !osutil.IsExist(file) { continue } - return formatSourceFile(file, lines.StartLine, lines.EndLine, includeLines) + return formatSourceFile(file, int(lines.StartLine), int(lines.EndLine), includeLines) } return "", fmt.Errorf("codesearch: can't find %q file in any of %v", lines.File, index.srcDirs) } |
