build: use unsafe.Slice to reduce memory usage of overlayFiles
This commit is contained in:
@@ -30,6 +30,7 @@ import (
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"strings"
|
||||
"unsafe"
|
||||
|
||||
"golang.org/x/tools/go/ssa"
|
||||
|
||||
@@ -111,10 +112,6 @@ const (
|
||||
loadSyntax = loadTypes | packages.NeedSyntax | packages.NeedTypesInfo
|
||||
)
|
||||
|
||||
var overlayFiles = map[string]string{
|
||||
"math/exp_amd64.go": "package math;",
|
||||
}
|
||||
|
||||
func Do(args []string, conf *Config) {
|
||||
flags, patterns, verbose := ParseArgs(args, buildFlags)
|
||||
cfg := &packages.Config{
|
||||
@@ -126,7 +123,8 @@ func Do(args []string, conf *Config) {
|
||||
if len(overlayFiles) > 0 {
|
||||
cfg.Overlay = make(map[string][]byte)
|
||||
for file, src := range overlayFiles {
|
||||
cfg.Overlay[filepath.Join(runtime.GOROOT(), "src", file)] = []byte(src)
|
||||
overlay := unsafe.Slice(unsafe.StringData(src), len(src))
|
||||
cfg.Overlay[filepath.Join(runtime.GOROOT(), "src", file)] = overlay
|
||||
}
|
||||
}
|
||||
|
||||
@@ -765,6 +763,10 @@ var hasAltPkg = map[string]none{
|
||||
"runtime": {},
|
||||
}
|
||||
|
||||
var overlayFiles = map[string]string{
|
||||
"math/exp_amd64.go": "package math;",
|
||||
}
|
||||
|
||||
func check(err error) {
|
||||
if err != nil {
|
||||
panic(err)
|
||||
|
||||
Reference in New Issue
Block a user