1
0
mirror of https://github.com/golang/go synced 2024-11-26 07:07:57 -07:00

avoid pointer-to-slice operations in gobuild

R=r
DELTA=19  (3 added, 1 deleted, 15 changed)
OCL=30591
CL=30601
This commit is contained in:
Russ Cox 2009-06-22 14:24:32 -07:00
parent ee23998963
commit 2fcc8f2fb6
2 changed files with 15 additions and 13 deletions

View File

@ -60,31 +60,33 @@ type Info struct {
var verbose = flag.Bool("v", false, "verbose mode") var verbose = flag.Bool("v", false, "verbose mode")
var writeMakefile = flag.Bool("m", false, "write Makefile to standard output") var writeMakefile = flag.Bool("m", false, "write Makefile to standard output")
func PushPkg(v *[]*Pkg, p *Pkg) { func PushPkg(vp *[]*Pkg, p *Pkg) {
v := *vp;
n := len(v); n := len(v);
if n >= cap(v) { if n >= cap(v) {
m := 2*n + 10; m := 2*n + 10;
a := make([]*Pkg, n, m); a := make([]*Pkg, n, m);
for i := range *v { for i := range v {
a[i] = v[i]; a[i] = v[i];
} }
*v = a; v = a;
} }
*v = v[0:n+1]; *vp = v[0:n+1];
v[n] = p; v[n] = p;
} }
func PushFile(v *[]*File, p *File) { func PushFile(vp *[]*File, p *File) {
v := *vp;
n := len(v); n := len(v);
if n >= cap(v) { if n >= cap(v) {
m := 2*n + 10; m := 2*n + 10;
a := make([]*File, n, m); a := make([]*File, n, m);
for i := range *v { for i := range v {
a[i] = v[i]; a[i] = v[i];
} }
*v = a; v = a;
} }
*v = v[0:n+1]; *vp = v[0:n+1];
v[n] = p; v[n] = p;
} }

View File

@ -71,21 +71,21 @@ func init() {
} }
} }
func PushString(v *[]string, p string) { func PushString(vp *[]string, p string) {
v := *vp;
n := len(v); n := len(v);
if n >= cap(v) { if n >= cap(v) {
m := 2*n + 10; m := 2*n + 10;
a := make([]string, n, m); a := make([]string, n, m);
for i := range *v { for i := range v {
a[i] = v[i]; a[i] = v[i];
} }
*v = a; v = a;
} }
*v = v[0:n+1]; *vp = v[0:n+1];
v[n] = p; v[n] = p;
} }
func run(argv []string, flag int) (ok bool) { func run(argv []string, flag int) (ok bool) {
argv0 := bin[argv[0]]; argv0 := bin[argv[0]];
null, err := os.Open("/dev/null", os.O_RDWR, 0); null, err := os.Open("/dev/null", os.O_RDWR, 0);