cmd: replace bio.Buf with bio.Reader and bio.Writer

Replace the bidirectional bio.Buf type with a pair of unidirectional
buffered seekable Reader and Writers.

Change-Id: I86664a06f93c94595dc67c2cbd21356feb6680ef
Reviewed-on: https://go-review.googlesource.com/21720
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Dave Cheney <dave@cheney.net>
TryBot-Result: Gobot Gobot <gobot@golang.org>
diff --git a/src/cmd/compile/internal/gc/bexport.go b/src/cmd/compile/internal/gc/bexport.go
index 909ff14..bb0a34e 100644
--- a/src/cmd/compile/internal/gc/bexport.go
+++ b/src/cmd/compile/internal/gc/bexport.go
@@ -124,7 +124,7 @@
 const exportInlined = true // default: true
 
 type exporter struct {
-	out      *bio.Buf
+	out      *bio.Writer
 	pkgIndex map[*Pkg]int
 	typIndex map[*Type]int
 	inlined  []*Func
@@ -136,7 +136,7 @@
 }
 
 // export writes the exportlist for localpkg to out and returns the number of bytes written.
-func export(out *bio.Buf, trace bool) int {
+func export(out *bio.Writer, trace bool) int {
 	p := exporter{
 		out:      out,
 		pkgIndex: make(map[*Pkg]int),
diff --git a/src/cmd/compile/internal/gc/go.go b/src/cmd/compile/internal/gc/go.go
index cd9db38..ec7e219 100644
--- a/src/cmd/compile/internal/gc/go.go
+++ b/src/cmd/compile/internal/gc/go.go
@@ -133,7 +133,7 @@
 
 var outfile string
 
-var bout *bio.Buf
+var bout *bio.Writer
 
 var nerrors int
 
@@ -288,7 +288,7 @@
 
 var writearchive int
 
-var bstdout *bio.Buf
+var bstdout *bio.Writer
 
 var Nacl bool
 
diff --git a/src/cmd/compile/internal/gc/obj.go b/src/cmd/compile/internal/gc/obj.go
index 3920e25..23c8be6 100644
--- a/src/cmd/compile/internal/gc/obj.go
+++ b/src/cmd/compile/internal/gc/obj.go
@@ -37,7 +37,7 @@
 		bout.WriteString("!<arch>\n")
 		arhdr = [ArhdrSize]byte{}
 		bout.Write(arhdr[:])
-		startobj = bio.Boffset(bout)
+		startobj = bout.Offset()
 	}
 
 	fmt.Fprintf(bout, "go object %s %s %s %s\n", obj.Getgoos(), obj.Getgoarch(), obj.Getgoversion(), obj.Expstring())
@@ -45,19 +45,19 @@
 
 	if writearchive != 0 {
 		bout.Flush()
-		size := bio.Boffset(bout) - startobj
+		size := bout.Offset() - startobj
 		if size&1 != 0 {
 			bout.WriteByte(0)
 		}
-		bio.Bseek(bout, startobj-ArhdrSize, 0)
+		bout.Seek(startobj-ArhdrSize, 0)
 		formathdr(arhdr[:], "__.PKGDEF", size)
 		bout.Write(arhdr[:])
 		bout.Flush()
 
-		bio.Bseek(bout, startobj+size+(size&1), 0)
+		bout.Seek(startobj+size+(size&1), 0)
 		arhdr = [ArhdrSize]byte{}
 		bout.Write(arhdr[:])
-		startobj = bio.Boffset(bout)
+		startobj = bout.Offset()
 		fmt.Fprintf(bout, "go object %s %s %s %s\n", obj.Getgoos(), obj.Getgoarch(), obj.Getgoversion(), obj.Expstring())
 	}
 
@@ -92,11 +92,11 @@
 
 	if writearchive != 0 {
 		bout.Flush()
-		size := bio.Boffset(bout) - startobj
+		size := bout.Offset() - startobj
 		if size&1 != 0 {
 			bout.WriteByte(0)
 		}
-		bio.Bseek(bout, startobj-ArhdrSize, 0)
+		bout.Seek(startobj-ArhdrSize, 0)
 		formathdr(arhdr[:], "_go_.o", size)
 		bout.Write(arhdr[:])
 	}
@@ -133,7 +133,7 @@
 	funcsyms = nil
 }
 
-func Bputname(b *bio.Buf, s *obj.LSym) {
+func Bputname(b *bio.Writer, s *obj.LSym) {
 	b.WriteString(s.Name)
 	b.WriteByte(0)
 }