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