]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: simplify import path handling
authorMatthew Dempsky <mdempsky@google.com>
Sat, 20 Feb 2016 07:01:10 +0000 (23:01 -0800)
committerMatthew Dempsky <mdempsky@google.com>
Sun, 21 Feb 2016 05:05:08 +0000 (05:05 +0000)
Change-Id: I64c9b4c4978520a9bc989b7fd7d5708d364dc88a
Reviewed-on: https://go-review.googlesource.com/19755
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
src/cmd/compile/internal/gc/go.go
src/cmd/compile/internal/gc/lex.go

index 13a28c8720bb7a71768edeaf7c54db3c5d92155d..9b55eb88485a1a9814f5d16f12db0324a70a1446 100644 (file)
@@ -397,11 +397,6 @@ type Dlist struct {
        field *Type
 }
 
-type Idir struct {
-       link *Idir
-       dir  string
-}
-
 // argument passing to/from
 // smagic and umagic
 type Magic struct {
@@ -519,8 +514,6 @@ var Tptr EType // either TPTR32 or TPTR64
 
 var myimportpath string
 
-var idirs *Idir
-
 var localimport string
 
 var asmhdr string
index 66cc01862d403a10dde85dfb0138d673304fc539..08545df9538924e016f65966a8667afb2f7e2eee 100644 (file)
@@ -561,17 +561,12 @@ func skiptopkgdef(b *obj.Biobuf) bool {
        return true
 }
 
-func addidir(dir string) {
-       if dir == "" {
-               return
-       }
+var idirs []string
 
-       var pp **Idir
-       for pp = &idirs; *pp != nil; pp = &(*pp).link {
+func addidir(dir string) {
+       if dir != "" {
+               idirs = append(idirs, dir)
        }
-       *pp = new(Idir)
-       (*pp).link = nil
-       (*pp).dir = dir
 }
 
 // is this path a local name?  begins with ./ or ../ or /
@@ -610,12 +605,12 @@ func findpkg(name string) (file string, ok bool) {
                return "", false
        }
 
-       for p := idirs; p != nil; p = p.link {
-               file = fmt.Sprintf("%s/%s.a", p.dir, name)
+       for _, dir := range idirs {
+               file = fmt.Sprintf("%s/%s.a", dir, name)
                if _, err := os.Stat(file); err == nil {
                        return file, true
                }
-               file = fmt.Sprintf("%s/%s.o", p.dir, name)
+               file = fmt.Sprintf("%s/%s.o", dir, name)
                if _, err := os.Stat(file); err == nil {
                        return file, true
                }