summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2009-04-15 20:27:45 -0700
committerRuss Cox <rsc@golang.org>2009-04-15 20:27:45 -0700
commit0ada410ece61f805c66b63eb15bb8584c3e584cd (patch)
tree16cfcc3cc7d82aa01da1b152e520297da5afc88a /src
parent398d9c9582bcde24740e65cc4e5c9b97c5bcac40 (diff)
downloadgolang-0ada410ece61f805c66b63eb15bb8584c3e584cd.tar.gz
code changes for array conversion.
as a reminder, the old conversion was that you could write var arr [10]byte; var slice []byte; slice = arr; but now you have to write slice = &arr; the change eliminates an implicit &, so that the only implicit &s left are in the . operator and in string(arr). also, removed utf8.EncodeRuneToString in favor of string(rune). R=r DELTA=83 (1 added, 23 deleted, 59 changed) OCL=27531 CL=27534
Diffstat (limited to 'src')
-rw-r--r--src/lib/exec.go2
-rw-r--r--src/lib/exec_test.go4
-rw-r--r--src/lib/go/scanner.go2
-rw-r--r--src/lib/hash/md5.go2
-rw-r--r--src/lib/hash/sha1.go2
-rw-r--r--src/lib/http/fs.go2
-rw-r--r--src/lib/io/pipe_test.go12
-rw-r--r--src/lib/net/fd.go8
-rw-r--r--src/lib/net/fd_darwin.go6
-rw-r--r--src/lib/net/tcpserver_test.go4
-rw-r--r--src/lib/net/timeout_test.go2
-rw-r--r--src/lib/os/os_test.go2
-rw-r--r--src/lib/sort_test.go12
-rw-r--r--src/lib/tabwriter/tabwriter.go2
-rw-r--r--src/lib/utf8.go11
-rw-r--r--src/lib/utf8_test.go13
16 files changed, 32 insertions, 54 deletions
diff --git a/src/lib/exec.go b/src/lib/exec.go
index 425b94eb3..6808b9554 100644
--- a/src/lib/exec.go
+++ b/src/lib/exec.go
@@ -96,7 +96,7 @@ func Run(argv0 string, argv, envv []string, stdin, stdout, stderr int) (p *Cmd,
}
// Run command.
- p.Pid, err = os.ForkExec(argv0, argv, envv, fd);
+ p.Pid, err = os.ForkExec(argv0, argv, envv, &fd);
if err != nil {
goto Error;
}
diff --git a/src/lib/exec_test.go b/src/lib/exec_test.go
index f4038fbc2..e67c75da3 100644
--- a/src/lib/exec_test.go
+++ b/src/lib/exec_test.go
@@ -19,7 +19,7 @@ func TestRunCat(t *testing.T) {
io.WriteString(cmd.Stdin, "hello, world\n");
cmd.Stdin.Close();
var buf [64]byte;
- n, err1 := io.Readn(cmd.Stdout, buf);
+ n, err1 := io.Readn(cmd.Stdout, &buf);
if err1 != nil && err1 != io.ErrEOF {
t.Fatalf("reading from /bin/cat: %v", err1);
}
@@ -38,7 +38,7 @@ func TestRunEcho(t *testing.T) {
t.Fatalf("opencmd /bin/echo: %v", err);
}
var buf [64]byte;
- n, err1 := io.Readn(cmd.Stdout, buf);
+ n, err1 := io.Readn(cmd.Stdout, &buf);
if err1 != nil && err1 != io.ErrEOF {
t.Fatalf("reading from /bin/echo: %v", err1);
}
diff --git a/src/lib/go/scanner.go b/src/lib/go/scanner.go
index e35cc5c72..ea5f13769 100644
--- a/src/lib/go/scanner.go
+++ b/src/lib/go/scanner.go
@@ -104,7 +104,7 @@ func charString(ch int) string {
case '\v': s = `\v`;
case '\\': s = `\\`;
case '\'': s = `\'`;
- default : s = utf8.EncodeRuneToString(ch);
+ default : s = string(ch);
}
return "'" + s + "' (U+" + strconv.Itob(ch, 16) + ")";
}
diff --git a/src/lib/hash/md5.go b/src/lib/hash/md5.go
index ab3201ffb..d9fc6157d 100644
--- a/src/lib/hash/md5.go
+++ b/src/lib/hash/md5.go
@@ -51,7 +51,7 @@ func (d *Digest) Write(p []byte) (nn int, err *os.Error) {
}
d.nx += n;
if d.nx == _Chunk {
- _Block(d, d.x);
+ _Block(d, &d.x);
d.nx = 0;
}
p = p[n:len(p)];
diff --git a/src/lib/hash/sha1.go b/src/lib/hash/sha1.go
index 0bf284ef1..788eda860 100644
--- a/src/lib/hash/sha1.go
+++ b/src/lib/hash/sha1.go
@@ -53,7 +53,7 @@ func (d *Digest) Write(p []byte) (nn int, err *os.Error) {
}
d.nx += n;
if d.nx == _Chunk {
- _Block(d, d.x);
+ _Block(d, &d.x);
d.nx = 0;
}
p = p[n:len(p)];
diff --git a/src/lib/http/fs.go b/src/lib/http/fs.go
index d93859dd2..23a994aa0 100644
--- a/src/lib/http/fs.go
+++ b/src/lib/http/fs.go
@@ -142,7 +142,7 @@ func serveFileInternal(c *Conn, r *Request, name string, redirect bool) {
} else {
// read first chunk to decide between utf-8 text and binary
var buf [1024]byte;
- n, err := io.Readn(f, buf);
+ n, err := io.Readn(f, &buf);
b := buf[0:n];
if isText(b) {
c.SetHeader("Content-Type", "text-plain; charset=utf-8");
diff --git a/src/lib/io/pipe_test.go b/src/lib/io/pipe_test.go
index df2ed8941..3358ef203 100644
--- a/src/lib/io/pipe_test.go
+++ b/src/lib/io/pipe_test.go
@@ -26,7 +26,7 @@ func checkWrite(t *testing.T, w io.Write, data []byte, c chan int) {
func TestPipe1(t *testing.T) {
c := make(chan int);
r, w := io.Pipe();
- var buf [64]byte;
+ var buf = make([]byte, 64);
go checkWrite(t, w, io.StringBytes("hello, world"), c);
n, err := r.Read(buf);
if err != nil {
@@ -41,7 +41,7 @@ func TestPipe1(t *testing.T) {
}
func reader(t *testing.T, r io.Read, c chan int) {
- var buf [64]byte;
+ var buf = make([]byte, 64);
for {
n, err := r.Read(buf);
if err != nil {
@@ -59,7 +59,7 @@ func TestPipe2(t *testing.T) {
c := make(chan int);
r, w := io.Pipe();
go reader(t, r, c);
- var buf [64]byte;
+ var buf = make([]byte, 64);
for i := 0; i < 5; i++ {
p := buf[0:5+i*10];
n, err := w.Write(p);
@@ -91,12 +91,12 @@ func writer(w io.WriteClose, buf []byte, c chan pipeReturn) {
func TestPipe3(t *testing.T) {
c := make(chan pipeReturn);
r, w := io.Pipe();
- var wdat [128]byte;
+ var wdat = make([]byte, 128);
for i := 0; i < len(wdat); i++ {
wdat[i] = byte(i);
}
go writer(w, wdat, c);
- var rdat [1024]byte;
+ var rdat = make([]byte, 1024);
tot := 0;
for n := 1; n <= 256; n *= 2 {
nn, err := r.Read(rdat[tot:tot+n]);
@@ -148,7 +148,7 @@ func testPipeReadClose(t *testing.T, async bool) {
} else {
delayClose(t, w, c);
}
- var buf [64]byte;
+ var buf = make([]byte, 64);
n, err := r.Read(buf);
<-c;
if err != nil {
diff --git a/src/lib/net/fd.go b/src/lib/net/fd.go
index c098c20b2..8b26efed5 100644
--- a/src/lib/net/fd.go
+++ b/src/lib/net/fd.go
@@ -265,8 +265,8 @@ func (s *pollServer) Run() {
}
if fd == s.pr.Fd() {
// Drain our wakeup pipe.
- for nn, e := s.pr.Read(scratch); nn > 0; {
- nn, e = s.pr.Read(scratch)
+ for nn, e := s.pr.Read(&scratch); nn > 0; {
+ nn, e = s.pr.Read(&scratch)
}
// Read from channels
@@ -287,9 +287,9 @@ func (s *pollServer) Run() {
}
}
+var wakeupbuf [1]byte;
func (s *pollServer) Wakeup() {
- var b [1]byte;
- s.pw.Write(b)
+ s.pw.Write(&wakeupbuf)
}
func (s *pollServer) WaitRead(fd *netFD) {
diff --git a/src/lib/net/fd_darwin.go b/src/lib/net/fd_darwin.go
index 74f0f4867..c543755b9 100644
--- a/src/lib/net/fd_darwin.go
+++ b/src/lib/net/fd_darwin.go
@@ -49,7 +49,7 @@ func (p *pollster) AddFD(fd int64, mode int, repeat bool) *os.Error {
ev.Flags |= syscall.EV_ONESHOT
}
- n, e := syscall.Kevent(p.kq, events, events, nil);
+ n, e := syscall.Kevent(p.kq, &events, &events, nil);
if e != 0 {
return os.ErrnoToError(e)
}
@@ -78,7 +78,7 @@ func (p *pollster) DelFD(fd int64, mode int) {
// EV_RECEIPT - generate fake EV_ERROR as result of add,
// rather than waiting for real event
ev.Flags = syscall.EV_DELETE | syscall.EV_RECEIPT;
- syscall.Kevent(p.kq, events, events, nil);
+ syscall.Kevent(p.kq, &events, &events, nil);
}
func (p *pollster) WaitFD(nsec int64) (fd int64, mode int, err *os.Error) {
@@ -91,7 +91,7 @@ func (p *pollster) WaitFD(nsec int64) (fd int64, mode int, err *os.Error) {
t.Sec = nsec / 1e9;
t.Nsec = uint64(nsec % 1e9);
}
- nn, e := syscall.Kevent(p.kq, nil, p.eventbuf, t);
+ nn, e := syscall.Kevent(p.kq, nil, &p.eventbuf, t);
if e != 0 {
if e == syscall.EINTR {
continue
diff --git a/src/lib/net/tcpserver_test.go b/src/lib/net/tcpserver_test.go
index 820220b03..11b13664b 100644
--- a/src/lib/net/tcpserver_test.go
+++ b/src/lib/net/tcpserver_test.go
@@ -15,7 +15,7 @@ func runEcho(fd io.ReadWrite, done chan<- int) {
var buf [1024]byte;
for {
- n, err := fd.Read(buf);
+ n, err := fd.Read(&buf);
if err != nil || n == 0 {
break;
}
@@ -58,7 +58,7 @@ func connect(t *testing.T, network, addr string) {
t.Fatalf("fd.Write(%q) = %d, %v", b, n, errno);
}
- n, errno = fd.Read(b1);
+ n, errno = fd.Read(&b1);
if n != len(b) {
t.Fatalf("fd.Read() = %d, %v", n, errno);
}
diff --git a/src/lib/net/timeout_test.go b/src/lib/net/timeout_test.go
index e1ce91789..d94b04940 100644
--- a/src/lib/net/timeout_test.go
+++ b/src/lib/net/timeout_test.go
@@ -20,7 +20,7 @@ func testTimeout(t *testing.T, network, addr string) {
t0 := time.Nanoseconds();
fd.SetReadTimeout(1e8); // 100ms
var b [100]byte;
- n, err1 := fd.Read(b);
+ n, err1 := fd.Read(&b);
t1 := time.Nanoseconds();
if n != 0 || err1 != os.EAGAIN {
t.Errorf("fd.Read on %s %s did not return 0, EAGAIN: %v, %v", network, addr, n, err1);
diff --git a/src/lib/os/os_test.go b/src/lib/os/os_test.go
index 93a2c5e08..7349b2247 100644
--- a/src/lib/os/os_test.go
+++ b/src/lib/os/os_test.go
@@ -38,7 +38,7 @@ func size(name string, t *testing.T) uint64 {
var buf [100]byte;
len := 0;
for {
- n, e := file.Read(buf);
+ n, e := file.Read(&buf);
if n < 0 || e != nil {
t.Fatal("read failed:", err);
}
diff --git a/src/lib/sort_test.go b/src/lib/sort_test.go
index aa80aa10e..d6c8f90e9 100644
--- a/src/lib/sort_test.go
+++ b/src/lib/sort_test.go
@@ -48,8 +48,8 @@ func TestSortStringArray(t *testing.T) {
func TestSortInts(t *testing.T) {
data := ints;
- sort.SortInts(data);
- if !sort.IntsAreSorted(data) {
+ sort.SortInts(&data);
+ if !sort.IntsAreSorted(&data) {
t.Errorf("sorted %v", ints);
t.Errorf(" got %v", data);
}
@@ -57,8 +57,8 @@ func TestSortInts(t *testing.T) {
func TestSortFloats(t *testing.T) {
data := floats;
- sort.SortFloats(data);
- if !sort.FloatsAreSorted(data) {
+ sort.SortFloats(&data);
+ if !sort.FloatsAreSorted(&data) {
t.Errorf("sorted %v", floats);
t.Errorf(" got %v", data);
}
@@ -66,8 +66,8 @@ func TestSortFloats(t *testing.T) {
func TestSortStrings(t *testing.T) {
data := strings;
- sort.SortStrings(data);
- if !sort.StringsAreSorted(data) {
+ sort.SortStrings(&data);
+ if !sort.StringsAreSorted(&data) {
t.Errorf("sorted %v", strings);
t.Errorf(" got %v", data);
}
diff --git a/src/lib/tabwriter/tabwriter.go b/src/lib/tabwriter/tabwriter.go
index 26679740b..fa0437d08 100644
--- a/src/lib/tabwriter/tabwriter.go
+++ b/src/lib/tabwriter/tabwriter.go
@@ -249,7 +249,7 @@ func (b *Writer) writePadding(textw, cellw int) (err *os.Error) {
}
for n > len(b.padbytes) {
- err = b.write0(b.padbytes);
+ err = b.write0(&b.padbytes);
if err != nil {
goto exit;
}
diff --git a/src/lib/utf8.go b/src/lib/utf8.go
index 448f4819c..ff55df802 100644
--- a/src/lib/utf8.go
+++ b/src/lib/utf8.go
@@ -256,17 +256,6 @@ func EncodeRune(rune int, p []byte) int {
return 4;
}
-// EncodeRuneToString returns the UTF-8 encoding of the rune.
-func EncodeRuneToString(rune int) string {
- if rune < _Rune1Max {
- return string([1]byte{byte(rune)})
- }
-
- var buf [UTFMax]byte;
- size := EncodeRune(rune, buf);
- return string(buf[0:size]);
-}
-
// RuneCount returns the number of runes in p. Erroneous and short
// encodings are treated as single runes of width 1 byte.
func RuneCount(p []byte) int {
diff --git a/src/lib/utf8_test.go b/src/lib/utf8_test.go
index 966b2c975..1f29cb82d 100644
--- a/src/lib/utf8_test.go
+++ b/src/lib/utf8_test.go
@@ -90,7 +90,7 @@ func TestEncodeRune(t *testing.T) {
m := utf8map[i];
b := bytes(m.str);
var buf [10]byte;
- n := utf8.EncodeRune(m.rune, buf);
+ n := utf8.EncodeRune(m.rune, &buf);
b1 := buf[0:n];
if !equalBytes(b, b1) {
t.Errorf("EncodeRune(0x%04x) = %q want %q", m.rune, b1, b);
@@ -98,17 +98,6 @@ func TestEncodeRune(t *testing.T) {
}
}
-func TestEncodeRuneToString(t *testing.T) {
- for i := 0; i < len(utf8map); i++ {
- m := utf8map[i];
- s := m.str;
- s1 := utf8.EncodeRuneToString(m.rune);
- if s != s1 {
- t.Errorf("EncodeRuneToString(0x%04x) = %s want %s", m.rune, s1, s);
- }
- }
-}
-
func TestDecodeRune(t *testing.T) {
for i := 0; i < len(utf8map); i++ {
m := utf8map[i];