new new & make
R=r
OCL=22166
CL=22166
diff --git a/src/lib/bignum.go b/src/lib/bignum.go
index d8f8000..60d3b87 100755
--- a/src/lib/bignum.go
+++ b/src/lib/bignum.go
@@ -166,7 +166,7 @@
}
c := Digit(0);
- z := new(Natural, n + 1);
+ z := make(Natural, n + 1);
i := 0;
for i < m {
t := c + x[i] + y[i];
@@ -195,7 +195,7 @@
}
c := Digit(0);
- z := new(Natural, n);
+ z := make(Natural, n);
i := 0;
for i < m {
t := c + x[i] - y[i];
@@ -253,7 +253,7 @@
n := len(x);
m := len(y);
- z := new(Natural, n + m);
+ z := make(Natural, n + m);
for j := 0; j < m; j++ {
d := y[j];
if d != 0 {
@@ -280,7 +280,7 @@
func Unpack(x Natural) []Digit2 {
n := len(x);
- z := new([]Digit2, n*2 + 1); // add space for extra digit (used by DivMod)
+ z := make([]Digit2, n*2 + 1); // add space for extra digit (used by DivMod)
for i := 0; i < n; i++ {
t := x[i];
z[i*2] = Digit2(t & M2);
@@ -296,7 +296,7 @@
func Pack(x []Digit2) Natural {
n := (len(x) + 1) / 2;
- z := new(Natural, n);
+ z := make(Natural, n);
if len(x) & 1 == 1 {
// handle odd len(x)
n--;
@@ -472,7 +472,7 @@
func (x Natural) Shl(s uint) Natural {
n := uint(len(x));
m := n + s/W;
- z := new(Natural, m+1);
+ z := make(Natural, m+1);
z[m] = Shl(z[m-n : m], x, s%W);
@@ -497,7 +497,7 @@
if m > n { // check for underflow
m = 0;
}
- z := new(Natural, m);
+ z := make(Natural, m);
Shr(z, x[n-m : n], s%W);
@@ -512,7 +512,7 @@
return y.And(x);
}
- z := new(Natural, m);
+ z := make(Natural, m);
for i := 0; i < m; i++ {
z[i] = x[i] & y[i];
}
@@ -536,7 +536,7 @@
return y.Or(x);
}
- z := new(Natural, n);
+ z := make(Natural, n);
for i := 0; i < m; i++ {
z[i] = x[i] | y[i];
}
@@ -553,7 +553,7 @@
return y.Xor(x);
}
- z := new(Natural, n);
+ z := make(Natural, n);
for i := 0; i < m; i++ {
z[i] = x[i] ^ y[i];
}
@@ -627,10 +627,10 @@
// allocate buffer for conversion
assert(2 <= base && base <= 16);
n := (x.Log2() + 1) / Log2(Digit(base)) + 1; // +1: round up
- s := new([]byte, n);
+ s := make([]byte, n);
// don't destroy x
- t := new(Natural, len(x));
+ t := make(Natural, len(x));
Copy(t, x);
// convert
@@ -681,7 +681,7 @@
func MulAdd1(x Natural, d, c Digit) Natural {
assert(IsSmall(d-1) && IsSmall(c));
n := len(x);
- z := new(Natural, n + 1);
+ z := make(Natural, n + 1);
for i := 0; i < n; i++ {
t := c + x[i]*d;
diff --git a/src/lib/bufio.go b/src/lib/bufio.go
index 68be143..52b70b7 100644
--- a/src/lib/bufio.go
+++ b/src/lib/bufio.go
@@ -50,8 +50,8 @@
if size <= 0 {
return nil, BadBufSize
}
- b = new(*BufRead);
- b.buf = new([]byte, size);
+ b = new(BufRead);
+ b.buf = make([]byte, size);
b.rd = rd;
return b, nil
}
@@ -262,7 +262,7 @@
}
// Read bytes out of buffer.
- buf := new([]byte, b.Buffered());
+ buf := make([]byte, b.Buffered());
var n int;
n, e = b.Read(buf);
if e != nil {
@@ -278,9 +278,9 @@
// Grow list if needed.
if full == nil {
- full = new([][]byte, 16);
+ full = make([][]byte, 16);
} else if nfull >= len(full) {
- newfull := new([][]byte, len(full)*2);
+ newfull := make([][]byte, len(full)*2);
// BUG slice assignment
for i := 0; i < len(full); i++ {
newfull[i] = full[i];
@@ -301,7 +301,7 @@
n += len(frag);
// Copy full pieces and fragment in.
- buf := new([]byte, n);
+ buf := make([]byte, n);
n = 0;
for i := 0; i < nfull; i++ {
CopySlice(buf[n:n+len(full[i])], full[i]);
@@ -339,8 +339,8 @@
if size <= 0 {
return nil, BadBufSize
}
- b = new(*BufWrite);
- b.buf = new([]byte, size);
+ b = new(BufWrite);
+ b.buf = make([]byte, size);
b.wr = wr;
return b, nil
}
diff --git a/src/lib/bufio_test.go b/src/lib/bufio_test.go
index fecc778..272b8b6 100644
--- a/src/lib/bufio_test.go
+++ b/src/lib/bufio_test.go
@@ -14,7 +14,7 @@
)
func StringToBytes(s string) []byte {
- b := new([]byte, len(s));
+ b := make([]byte, len(s));
for i := 0; i < len(s); i++ {
b[i] = s[i]
}
@@ -34,7 +34,7 @@
}
func NewByteReader(p []byte) io.Read {
- b := new(*ByteReader);
+ b := new(ByteReader);
b.p = p;
return b
}
@@ -56,7 +56,7 @@
}
func NewHalfByteReader(p []byte) io.Read {
- b := new(*HalfByteReader);
+ b := new(HalfByteReader);
b.p = p;
return b
}
@@ -80,7 +80,7 @@
}
func NewRot13Reader(r io.Read) *Rot13Reader {
- r13 := new(*Rot13Reader);
+ r13 := new(Rot13Reader);
r13.r = r;
return r13
}
@@ -238,14 +238,14 @@
}
func NewByteWriter() WriteBuffer {
- return new(*ByteWriter)
+ return new(ByteWriter)
}
func (w *ByteWriter) Write(p []byte) (int, *os.Error) {
if w.p == nil {
- w.p = new([]byte, len(p)+100)
+ w.p = make([]byte, len(p)+100)
} else if w.n + len(p) >= len(w.p) {
- newp := new([]byte, len(w.p)*2 + len(p));
+ newp := make([]byte, len(w.p)*2 + len(p));
Copy(newp[0:w.n], w.p[0:w.n]);
w.p = newp
}
@@ -266,7 +266,7 @@
}
func NewHalfByteWriter() WriteBuffer {
- w := new(*HalfByteWriter);
+ w := new(HalfByteWriter);
w.bw = NewByteWriter();
return w
}
diff --git a/src/lib/container/array/array.go b/src/lib/container/array/array.go
index e87f426..241e8d9 100644
--- a/src/lib/container/array/array.go
+++ b/src/lib/container/array/array.go
@@ -22,7 +22,7 @@
if initial_len > n {
n = initial_len
}
- a = new([]Element, n);
+ a = make([]Element, n);
} else {
// nil out entries
for j := len(a) - 1; j >= 0; j-- {
@@ -36,7 +36,7 @@
export func New(len int) *Array {
- return new(*Array).Init(len)
+ return new(Array).Init(len)
}
@@ -66,7 +66,7 @@
// grow array by doubling its capacity
if n == cap(a) {
- b := new([]Element, 2*n);
+ b := make([]Element, 2*n);
for j := n-1; j >= 0; j-- {
b[j] = a[j];
}
diff --git a/src/lib/container/array/intarray.go b/src/lib/container/array/intarray.go
index a02e568..eb7e839 100644
--- a/src/lib/container/array/intarray.go
+++ b/src/lib/container/array/intarray.go
@@ -19,7 +19,7 @@
export func NewIntArray(len int) *IntArray {
- return new(*IntArray).Init(len)
+ return new(IntArray).Init(len)
}
diff --git a/src/lib/flag.go b/src/lib/flag.go
index bc962f6..6db76bb 100644
--- a/src/lib/flag.go
+++ b/src/lib/flag.go
@@ -318,10 +318,10 @@
}
func New() *Flags {
- f := new(*Flags);
+ f := new(Flags);
f.first_arg = 1; // 0 is the program name, 1 is first arg
- f.actual = new(map[string] *Flag);
- f.formal = new(map[string] *Flag);
+ f.actual = make(map[string] *Flag);
+ f.formal = make(map[string] *Flag);
return f;
}
@@ -361,7 +361,7 @@
}
func Add(name string, value Value, usage string) *Flag {
- f := new(*Flag);
+ f := new(Flag);
f.name = name;
f.usage = usage;
f.value = value;
diff --git a/src/lib/fmt/format.go b/src/lib/fmt/format.go
index 42d750d..9b0a126 100644
--- a/src/lib/fmt/format.go
+++ b/src/lib/fmt/format.go
@@ -71,7 +71,7 @@
}
export func New() *Fmt {
- f := new(*Fmt);
+ f := new(Fmt);
f.init();
return f;
}
@@ -135,7 +135,7 @@
if w > NByte {
w = NByte;
}
- buf := new([]byte, w);
+ buf := make([]byte, w);
for i := 0; i < w; i++ {
buf[i] = padchar;
}
diff --git a/src/lib/fmt/print.go b/src/lib/fmt/print.go
index 6546e13..6f0b0cf 100644
--- a/src/lib/fmt/print.go
+++ b/src/lib/fmt/print.go
@@ -46,7 +46,7 @@
}
func Printer() *P {
- p := new(*P);
+ p := new(P);
p.fmt = fmt.New();
return p;
}
@@ -81,7 +81,7 @@
if newn < n {
newn = n + AllocSize
}
- b := new([]byte, newn);
+ b := make([]byte, newn);
for i := 0; i < p.n; i++ {
b[i] = p.buf[i];
}
diff --git a/src/lib/hash/adler32.go b/src/lib/hash/adler32.go
index f1aa732..4d32fd8 100644
--- a/src/lib/hash/adler32.go
+++ b/src/lib/hash/adler32.go
@@ -52,7 +52,7 @@
}
func (d *Digest) Sum() []byte {
- p := new([]byte, 4);
+ p := make([]byte, 4);
s := d.Sum32();
p[0] = byte(s>>24);
p[1] = byte(s>>16);
diff --git a/src/lib/hash/crc32.go b/src/lib/hash/crc32.go
index 9f6aa7d..dca7579 100644
--- a/src/lib/hash/crc32.go
+++ b/src/lib/hash/crc32.go
@@ -29,7 +29,7 @@
export type Table []uint32
export func MakeTable(poly uint32) Table {
- t := new(Table, 256);
+ t := make(Table, 256);
for i := 0; i < 256; i++ {
crc := uint32(i);
for j := 0; j < 8; j++ {
@@ -74,7 +74,7 @@
}
func (d *Digest) Sum() []byte {
- p := new([]byte, 4);
+ p := make([]byte, 4);
s := d.Sum32();
p[0] = byte(s>>24);
p[1] = byte(s>>16);
diff --git a/src/lib/hash/md5.go b/src/lib/hash/md5.go
index 773ff4a..37dd2a4 100644
--- a/src/lib/hash/md5.go
+++ b/src/lib/hash/md5.go
@@ -27,7 +27,7 @@
}
export func NewDigest() *Digest {
- d := new(*Digest);
+ d := new(Digest);
d.s[0] = A;
d.s[1] = B;
d.s[2] = C;
@@ -88,7 +88,7 @@
panicln("oops");
}
- p := new([]byte, 16);
+ p := make([]byte, 16);
j := 0;
for i := 0; i < 4; i++ {
s := d.s[i];
diff --git a/src/lib/hash/sha1.go b/src/lib/hash/sha1.go
index 9733347..da50e46 100644
--- a/src/lib/hash/sha1.go
+++ b/src/lib/hash/sha1.go
@@ -28,7 +28,7 @@
}
export func NewDigest() *Digest {
- d := new(*Digest);
+ d := new(Digest);
d.h[0] = H0;
d.h[1] = H1;
d.h[2] = H2;
@@ -90,7 +90,7 @@
panicln("oops");
}
- p := new([]byte, 20);
+ p := make([]byte, 20);
j := 0;
for i := 0; i < 5; i++ {
s := d.h[i];
diff --git a/src/lib/http/conn.go b/src/lib/http/conn.go
index ec33d9e..15c0707 100644
--- a/src/lib/http/conn.go
+++ b/src/lib/http/conn.go
@@ -22,7 +22,7 @@
// Create new connection from rwc.
export func NewConn(rwc io.ReadWriteClose) (c *Conn, err *os.Error) {
- c = new(*Conn);
+ c = new(Conn);
c.rwc = rwc;
if c.br, err = bufio.NewBufRead(rwc); err != nil {
return nil, err
diff --git a/src/lib/http/request.go b/src/lib/http/request.go
index c997ee8..3d000ab 100644
--- a/src/lib/http/request.go
+++ b/src/lib/http/request.go
@@ -181,7 +181,7 @@
// Read and parse a request from b.
export func ReadRequest(b *bufio.BufRead) (req *Request, err *os.Error) {
- req = new(*Request);
+ req = new(Request);
// First line: GET /index.html HTTP/1.0
var s string;
@@ -205,7 +205,7 @@
// Subsequent lines: Key: value.
nheader := 0;
- req.header = new(map[string] string);
+ req.header = make(map[string] string);
for {
var key, value string;
if key, value, err = ReadKeyValue(b); err != nil {
diff --git a/src/lib/http/url.go b/src/lib/http/url.go
index b985c97..f96f947 100644
--- a/src/lib/http/url.go
+++ b/src/lib/http/url.go
@@ -60,7 +60,7 @@
return s, nil
}
- t := new([]byte, len(s)-2*n);
+ t := make([]byte, len(s)-2*n);
j := 0;
for i := 0; i < len(s); {
if s[i] == '%' {
@@ -131,7 +131,7 @@
if rawurl == "" {
return nil, BadURL
}
- url = new(*URL);
+ url = new(URL);
url.raw = rawurl;
// Split off possible leading "http:", "mailto:", etc.
diff --git a/src/lib/io/bytebuffer.go b/src/lib/io/bytebuffer.go
index f85679c..59547af 100644
--- a/src/lib/io/bytebuffer.go
+++ b/src/lib/io/bytebuffer.go
@@ -40,12 +40,12 @@
plen := len(p);
if len(b.buf) == 0 {
b.cap = plen + 1024;
- b.buf = new([]byte, b.cap);
+ b.buf = make([]byte, b.cap);
b.len = 0;
}
if b.len + len(p) > b.cap {
b.cap = 2*(b.cap + plen);
- nb := new([]byte, b.cap);
+ nb := make([]byte, b.cap);
bytecopy(nb, 0, b.buf, 0, b.len);
b.buf = nb;
}
@@ -81,7 +81,7 @@
export func NewByteBufferFromArray(buf []byte) *ByteBuffer {
- b := new(*ByteBuffer);
+ b := new(ByteBuffer);
b.buf = buf;
b.off = 0;
b.len = len(buf);
diff --git a/src/lib/io/io.go b/src/lib/io/io.go
index af6a9fe..0a512e9 100644
--- a/src/lib/io/io.go
+++ b/src/lib/io/io.go
@@ -31,7 +31,7 @@
}
export func WriteString(w Write, s string) (n int, err *os.Error) {
- b := new([]byte, len(s)+1);
+ b := make([]byte, len(s)+1);
if !syscall.StringToBytes(b, s) {
return -1, os.EINVAL
}
@@ -80,7 +80,7 @@
// Copies n bytes (or until EOF is reached) from src to dst.
// Returns the number of bytes copied and the error, if any.
export func Copyn(src Read, dst Write, n int64) (written int64, err *os.Error) {
- buf := new([]byte, 32*1024);
+ buf := make([]byte, 32*1024);
for written < n {
l := len(buf);
if d := n - written; d < int64(l) {
@@ -116,7 +116,7 @@
// Copies from src to dst until EOF is reached.
// Returns the number of bytes copied and the error, if any.
export func Copy(src Read, dst Write) (written int64, err *os.Error) {
- buf := new([]byte, 32*1024);
+ buf := make([]byte, 32*1024);
for {
nr, er := src.Read(buf);
if nr > 0 {
@@ -148,7 +148,7 @@
// Could fill with syscall.StringToBytes but it adds an unnecessary \000
// so the length would be wrong.
export func StringBytes(s string) []byte {
- b := new([]byte, len(s));
+ b := make([]byte, len(s));
for i := 0; i < len(s); i++ {
b[i] = s[i];
}
diff --git a/src/lib/json/generic.go b/src/lib/json/generic.go
index 4f42684..b62f8d9 100644
--- a/src/lib/json/generic.go
+++ b/src/lib/json/generic.go
@@ -269,11 +269,11 @@
}
func (b *JsonBuilder) Map() {
- b.Put(&Map{new(map[string]Json), Null{}})
+ b.Put(&Map{make(map[string]Json), Null{}})
}
func (b *JsonBuilder) Elem(i int) Builder {
- bb := new(*JsonBuilder);
+ bb := new(JsonBuilder);
bb.a = b.Get().(*Array).a;
bb.i = i;
for i >= bb.a.Len() {
@@ -283,7 +283,7 @@
}
func (b *JsonBuilder) Key(k string) Builder {
- bb := new(*JsonBuilder);
+ bb := new(JsonBuilder);
bb.m = b.Get().(*Map).m;
bb.k = k;
bb.m[k] = null;
@@ -293,7 +293,7 @@
export func StringToJson(s string) (json Json, ok bool, errtok string) {
var errindx int;
var j Json;
- b := new(*JsonBuilder);
+ b := new(JsonBuilder);
b.ptr = &j;
ok, errindx, errtok = Parse(s, b);
if !ok {
diff --git a/src/lib/json/generic_test.go b/src/lib/json/generic_test.go
index 0851c1c..41685b4 100644
--- a/src/lib/json/generic_test.go
+++ b/src/lib/json/generic_test.go
@@ -40,7 +40,7 @@
}
export func TestJsonMap(t *testing.T) {
- values := new(map[string]Json);
+ values := make(map[string]Json);
mapstr := "{";
for i := 0; i < len(jsontests); i++ {
val, ok, errtok := StringToJson(jsontests[i]);
diff --git a/src/lib/json/parse.go b/src/lib/json/parse.go
index f38bb59..cec2a29 100644
--- a/src/lib/json/parse.go
+++ b/src/lib/json/parse.go
@@ -48,7 +48,7 @@
if len(s) < 2 || s[0] != '"' || s[len(s)-1] != '"' {
return
}
- b := new([]byte, len(s));
+ b := make([]byte, len(s));
w := 0;
for r := 1; r < len(s)-1; {
switch {
@@ -118,9 +118,9 @@
}
export func Quote(s string) string {
- chr := new([]byte, utf8.UTFMax);
+ chr := make([]byte, utf8.UTFMax);
chr0 := chr[0:1];
- b := new(*io.ByteBuffer);
+ b := new(io.ByteBuffer);
chr[0] = '"';
b.Write(chr0);
for i := 0; i < len(s); i++ {
@@ -387,7 +387,7 @@
}
export func Parse(s string, build Builder) (ok bool, errindx int, errtok string) {
- lex := new(*Lexer);
+ lex := new(Lexer);
lex.s = s;
lex.Next();
if ParseValue(lex, build) {
diff --git a/src/lib/net/dialgoogle_test.go b/src/lib/net/dialgoogle_test.go
index 684439d..86ef5b9 100644
--- a/src/lib/net/dialgoogle_test.go
+++ b/src/lib/net/dialgoogle_test.go
@@ -22,7 +22,7 @@
req := io.StringBytes("GET / HTTP/1.0\r\nHost: www.google.com\r\n\r\n");
n, errno := fd.Write(req);
- buf := new([]byte, 1000);
+ buf := make([]byte, 1000);
n, errno = io.Readn(fd, buf);
if n < 1000 {
diff --git a/src/lib/net/dnsclient.go b/src/lib/net/dnsclient.go
index eff46f8..f9ca002 100644
--- a/src/lib/net/dnsclient.go
+++ b/src/lib/net/dnsclient.go
@@ -44,7 +44,7 @@
if len(name) >= 256 {
return nil, DNS_NameTooLong
}
- out := new(*DNS_Msg);
+ out := new(DNS_Msg);
out.id = 0x1234;
out.question = []DNS_Question{
DNS_Question{ name, DNS_TypeA, DNS_ClassINET }
@@ -64,14 +64,14 @@
// TODO(rsc): set up timeout or call ReadTimeout.
// right now net does not support that.
- buf := new([]byte, 2000); // More than enough.
+ buf := make([]byte, 2000); // More than enough.
n, err = c.Read(buf);
if err != nil {
// TODO(rsc): only continue if timed out
continue
}
buf = buf[0:n];
- in := new(*DNS_Msg);
+ in := new(DNS_Msg);
if !in.Unpack(buf) || in.id != out.id {
continue
}
@@ -85,7 +85,7 @@
// On return, if err == nil, addrs != nil.
// TODO(rsc): Maybe return [][]byte (==[]IPAddr) instead?
func Answer(name string, dns *DNS_Msg) (addrs []string, err *os.Error) {
- addrs = new([]string, 0, len(dns.answer));
+ addrs = make([]string, 0, len(dns.answer));
if dns.rcode == DNS_RcodeNameError && dns.authoritative {
return nil, DNS_NameNotFound // authoritative "no such host"
diff --git a/src/lib/net/dnsconfig.go b/src/lib/net/dnsconfig.go
index 5c2b458..04feddb 100644
--- a/src/lib/net/dnsconfig.go
+++ b/src/lib/net/dnsconfig.go
@@ -31,9 +31,9 @@
if file == nil {
return nil
}
- conf := new(*DNS_Config);
- conf.servers = new([]string, 3)[0:0]; // small, but the standard limit
- conf.search = new([]string, 0);
+ conf := new(DNS_Config);
+ conf.servers = make([]string, 3)[0:0]; // small, but the standard limit
+ conf.search = make([]string, 0);
conf.ndots = 1;
conf.timeout = 1;
conf.attempts = 1;
@@ -62,14 +62,14 @@
case "domain": // set search path to just this domain
if len(f) > 1 {
- conf.search = new([]string, 1);
+ conf.search = make([]string, 1);
conf.search[0] = f[1];
} else {
- conf.search = new([]string, 0)
+ conf.search = make([]string, 0)
}
case "search": // set search path to given servers
- conf.search = new([]string, len(f) - 1);
+ conf.search = make([]string, len(f) - 1);
for i := 0; i < len(conf.search); i++ {
conf.search[i] = f[i+1];
}
diff --git a/src/lib/net/dnsmsg.go b/src/lib/net/dnsmsg.go
index 1c85c93..76cdd90 100644
--- a/src/lib/net/dnsmsg.go
+++ b/src/lib/net/dnsmsg.go
@@ -198,18 +198,18 @@
// Map of constructors for each RR wire type.
var rr_mk = map[int]*()DNS_RR {
- DNS_TypeCNAME: func() DNS_RR { return new(*DNS_RR_CNAME) },
- DNS_TypeHINFO: func() DNS_RR { return new(*DNS_RR_HINFO) },
- DNS_TypeMB: func() DNS_RR { return new(*DNS_RR_MB) },
- DNS_TypeMG: func() DNS_RR { return new(*DNS_RR_MG) },
- DNS_TypeMINFO: func() DNS_RR { return new(*DNS_RR_MINFO) },
- DNS_TypeMR: func() DNS_RR { return new(*DNS_RR_MR) },
- DNS_TypeMX: func() DNS_RR { return new(*DNS_RR_MX) },
- DNS_TypeNS: func() DNS_RR { return new(*DNS_RR_NS) },
- DNS_TypePTR: func() DNS_RR { return new(*DNS_RR_PTR) },
- DNS_TypeSOA: func() DNS_RR { return new(*DNS_RR_SOA) },
- DNS_TypeTXT: func() DNS_RR { return new(*DNS_RR_TXT) },
- DNS_TypeA: func() DNS_RR { return new(*DNS_RR_A) },
+ DNS_TypeCNAME: func() DNS_RR { return new(DNS_RR_CNAME) },
+ DNS_TypeHINFO: func() DNS_RR { return new(DNS_RR_HINFO) },
+ DNS_TypeMB: func() DNS_RR { return new(DNS_RR_MB) },
+ DNS_TypeMG: func() DNS_RR { return new(DNS_RR_MG) },
+ DNS_TypeMINFO: func() DNS_RR { return new(DNS_RR_MINFO) },
+ DNS_TypeMR: func() DNS_RR { return new(DNS_RR_MR) },
+ DNS_TypeMX: func() DNS_RR { return new(DNS_RR_MX) },
+ DNS_TypeNS: func() DNS_RR { return new(DNS_RR_NS) },
+ DNS_TypePTR: func() DNS_RR { return new(DNS_RR_PTR) },
+ DNS_TypeSOA: func() DNS_RR { return new(DNS_RR_SOA) },
+ DNS_TypeTXT: func() DNS_RR { return new(DNS_RR_TXT) },
+ DNS_TypeA: func() DNS_RR { return new(DNS_RR_A) },
}
// Pack a domain name s into msg[off:].
@@ -424,7 +424,7 @@
}
n := int(msg[off]);
off++;
- b := new([]byte, n);
+ b := make([]byte, n);
for i := 0; i < n; i++ {
b[i] = msg[off+i];
}
@@ -582,7 +582,7 @@
// Could work harder to calculate message size,
// but this is far more than we need and not
// big enough to hurt the allocator.
- msg = new([]byte, 2000);
+ msg = make([]byte, 2000);
// Pack it in: header and then the pieces.
off := 0;
@@ -623,10 +623,10 @@
dns.rcode = int(dh.bits & 0xF);
// Arrays.
- dns.question = new([]DNS_Question, dh.qdcount);
- dns.answer = new([]DNS_RR, dh.ancount);
- dns.ns = new([]DNS_RR, dh.nscount);
- dns.extra = new([]DNS_RR, dh.arcount);
+ dns.question = make([]DNS_Question, dh.qdcount);
+ dns.answer = make([]DNS_RR, dh.ancount);
+ dns.ns = make([]DNS_RR, dh.nscount);
+ dns.extra = make([]DNS_RR, dh.arcount);
for i := 0; i < len(dns.question); i++ {
off, ok = UnpackStruct(&dns.question[i], msg, off);
diff --git a/src/lib/net/fd.go b/src/lib/net/fd.go
index a9c90c8..e155abd 100644
--- a/src/lib/net/fd.go
+++ b/src/lib/net/fd.go
@@ -78,9 +78,9 @@
func (s *PollServer) Run();
func NewPollServer() (s *PollServer, err *os.Error) {
- s = new(*PollServer);
- s.cr = new(chan *FD, 1);
- s.cw = new(chan *FD, 1);
+ s = new(PollServer);
+ s.cr = make(chan *FD, 1);
+ s.cw = make(chan *FD, 1);
if s.pr, s.pw, err = os.Pipe(); err != nil {
return nil, err
}
@@ -100,7 +100,7 @@
s.poll.Close();
goto Error
}
- s.pending = new(map[int64] *FD);
+ s.pending = make(map[int64] *FD);
go s.Run();
return s, nil
}
@@ -214,11 +214,11 @@
if err = SetNonblock(fd); err != nil {
return nil, err
}
- f = new(*FD);
+ f = new(FD);
f.fd = fd;
f.osfd = os.NewFD(fd);
- f.cr = new(chan *FD, 1);
- f.cw = new(chan *FD, 1);
+ f.cr = make(chan *FD, 1);
+ f.cw = make(chan *FD, 1);
return f, nil
}
diff --git a/src/lib/net/fd_darwin.go b/src/lib/net/fd_darwin.go
index 5a21be5..a92ad78 100644
--- a/src/lib/net/fd_darwin.go
+++ b/src/lib/net/fd_darwin.go
@@ -19,7 +19,7 @@
}
export func NewPollster() (p *Pollster, err *os.Error) {
- p = new(*Pollster);
+ p = new(Pollster);
var e int64;
if p.kq, e = syscall.kqueue(); e != 0 {
return nil, os.ErrnoToError(e)
diff --git a/src/lib/net/fd_linux.go b/src/lib/net/fd_linux.go
index e459ddd..77c2747 100644
--- a/src/lib/net/fd_linux.go
+++ b/src/lib/net/fd_linux.go
@@ -25,7 +25,7 @@
}
export func NewPollster() (p *Pollster, err *os.Error) {
- p = new(*Pollster);
+ p = new(Pollster);
var e int64;
// The arg to epoll_create is a hint to the kernel
@@ -34,7 +34,7 @@
if p.epfd, e = syscall.epoll_create(16); e != 0 {
return nil, os.ErrnoToError(e)
}
- p.events = new(map[int64] uint32);
+ p.events = make(map[int64] uint32);
return p, nil
}
diff --git a/src/lib/net/ip.go b/src/lib/net/ip.go
index 883a1c6..5ab0c50 100644
--- a/src/lib/net/ip.go
+++ b/src/lib/net/ip.go
@@ -23,7 +23,7 @@
// Make the 4 bytes into an IPv4 address (in IPv6 form)
func MakeIPv4(a, b, c, d byte) []byte {
- p := new([]byte, IPv6len);
+ p := make([]byte, IPv6len);
for i := 0; i < 10; i++ {
p[i] = 0
}
@@ -44,11 +44,11 @@
IPv4allsys = MakeIPv4(0xe0, 0x00, 0x00, 0x01);
IPv4allrouter = MakeIPv4(0xe0, 0x00, 0x00, 0x02);
IPv4prefix = MakeIPv4(0, 0, 0, 0);
- IPallbits = new([]byte, IPv6len);
+ IPallbits = make([]byte, IPv6len);
for i := 0; i < IPv6len; i++ {
IPallbits[i] = 0xff
}
- IPnoaddr = new([]byte, IPv6len); // zeroed
+ IPnoaddr = make([]byte, IPv6len); // zeroed
}
// Is p all zeros?
@@ -115,7 +115,7 @@
if n != len(mask) {
return nil
}
- out := new([]byte, n);
+ out := make([]byte, n);
for i := 0; i < n; i++ {
out[i] = ip[i] & mask[i];
}
@@ -280,7 +280,7 @@
// * The last 32 bits can be in IPv4 form.
// Thus, ::ffff:1.2.3.4 is the IPv4 address 1.2.3.4.
func ParseIPv6(s string) []byte {
- p := new([]byte, 16);
+ p := make([]byte, 16);
ellipsis := -1; // position of ellipsis in p
i := 0; // index in string s
diff --git a/src/lib/net/net.go b/src/lib/net/net.go
index cdf606a..915a354 100644
--- a/src/lib/net/net.go
+++ b/src/lib/net/net.go
@@ -370,7 +370,7 @@
}
func NewConnTCP(fd *FD, raddr string) *ConnTCP {
- c := new(*ConnTCP);
+ c := new(ConnTCP);
c.fd = fd;
c.raddr = raddr;
c.SetNoDelay(true);
@@ -398,7 +398,7 @@
}
func NewConnUDP(fd *FD, raddr string) *ConnUDP {
- c := new(*ConnUDP);
+ c := new(ConnUDP);
c.fd = fd;
c.raddr = raddr;
return c
@@ -497,7 +497,7 @@
syscall.close(fd.fd);
return nil, os.ErrnoToError(e1)
}
- l = new(*ListenerTCP);
+ l = new(ListenerTCP);
l.fd = fd;
return l, nil
}
diff --git a/src/lib/net/net_darwin.go b/src/lib/net/net_darwin.go
index 9d143d3..2ad0043 100644
--- a/src/lib/net/net_darwin.go
+++ b/src/lib/net/net_darwin.go
@@ -16,7 +16,7 @@
if p == nil || port < 0 || port > 0xFFFF {
return nil, os.EINVAL
}
- sa := new(*syscall.SockaddrInet4);
+ sa := new(syscall.SockaddrInet4);
sa.len = syscall.SizeofSockaddrInet4;
sa.family = syscall.AF_INET;
sa.port[0] = byte(port>>8);
@@ -32,7 +32,7 @@
if p == nil || port < 0 || port > 0xFFFF {
return nil, os.EINVAL
}
- sa := new(*syscall.SockaddrInet6);
+ sa := new(syscall.SockaddrInet6);
sa.len = syscall.SizeofSockaddrInet6;
sa.family = syscall.AF_INET6;
sa.port[0] = byte(port>>8);
diff --git a/src/lib/net/net_linux.go b/src/lib/net/net_linux.go
index 028e6e2..19ae0b6 100644
--- a/src/lib/net/net_linux.go
+++ b/src/lib/net/net_linux.go
@@ -16,7 +16,7 @@
if p == nil || port < 0 || port > 0xFFFF {
return nil, os.EINVAL
}
- sa := new(*syscall.SockaddrInet4);
+ sa := new(syscall.SockaddrInet4);
sa.family = syscall.AF_INET;
sa.port[0] = byte(port>>8);
sa.port[1] = byte(port);
@@ -41,7 +41,7 @@
p = IPv6zero;
}
- sa := new(*syscall.SockaddrInet6);
+ sa := new(syscall.SockaddrInet6);
sa.family = syscall.AF_INET6;
sa.port[0] = byte(port>>8);
sa.port[1] = byte(port);
diff --git a/src/lib/net/parse.go b/src/lib/net/parse.go
index b9ee185..904eb64 100644
--- a/src/lib/net/parse.go
+++ b/src/lib/net/parse.go
@@ -60,7 +60,7 @@
if err != nil {
return nil
}
- return &File{fd, new([]byte, 1024)[0:0]};
+ return &File{fd, make([]byte, 1024)[0:0]};
}
package func ByteIndex(s string, c byte) int {
@@ -85,7 +85,7 @@
// Split s at any bytes in t.
package func SplitAtBytes(s string, t string) []string {
- a := new([]string, 1+CountAnyByte(s, t));
+ a := make([]string, 1+CountAnyByte(s, t));
n := 0;
last := 0;
for i := 0; i < len(s); i++ {
diff --git a/src/lib/net/port.go b/src/lib/net/port.go
index efcbc0a..fbf5308 100644
--- a/src/lib/net/port.go
+++ b/src/lib/net/port.go
@@ -17,7 +17,7 @@
var services map[string] map[string] int
func ReadServices() {
- services = new(map[string] map[string] int);
+ services = make(map[string] map[string] int);
file := Open("/etc/services");
for line, ok := file.ReadLine(); ok; line, ok = file.ReadLine() {
// "http 80/tcp www www-http # World Wide Web HTTP"
@@ -36,7 +36,7 @@
netw := portnet[j+1:len(portnet)]; // "tcp"
m, ok1 := services[netw];
if !ok1 {
- m = new(map[string] int);
+ m = make(map[string] int);
services[netw] = m;
}
for i := 0; i < len(f); i++ {
diff --git a/src/lib/net/tcpserver_test.go b/src/lib/net/tcpserver_test.go
index e5520f5..730764c 100644
--- a/src/lib/net/tcpserver_test.go
+++ b/src/lib/net/tcpserver_test.go
@@ -36,7 +36,7 @@
if err != nil {
break;
}
- echodone := new(chan int);
+ echodone := make(chan int);
go Echo(fd, echodone);
<-echodone; // make sure Echo stops
l.Close();
@@ -67,8 +67,8 @@
func DoTest(t *testing.T, network, listenaddr, dialaddr string) {
t.Logf("Test %s %s %s\n", network, listenaddr, dialaddr);
- listening := new(chan int);
- done := new(chan int);
+ listening := make(chan int);
+ done := make(chan int);
go Serve(t, network, listenaddr, listening, done);
<-listening; // wait for server to start
Connect(t, network, dialaddr);
diff --git a/src/lib/once.go b/src/lib/once.go
index 414f288..a086d77 100644
--- a/src/lib/once.go
+++ b/src/lib/once.go
@@ -22,8 +22,8 @@
}
// TODO: Would like to use chan Request but 6g rejects it.
-var service = new(chan *Request)
-var jobmap = new(map[*()]*Job)
+var service = make(chan *Request)
+var jobmap = make(map[*()]*Job)
// Moderate access to the jobmap.
// Even if accesses were thread-safe (they should be but are not)
@@ -34,8 +34,8 @@
req := <-service;
job, present := jobmap[req.f];
if !present {
- job = new(*Job);
- job.doit = new(chan bool, 1);
+ job = new(Job);
+ job.doit = make(chan bool, 1);
job.doit <- true;
jobmap[req.f] = job
}
@@ -52,7 +52,7 @@
var present bool;
// job, present = jobmap[f]
if !present {
- c := new(chan *Job);
+ c := make(chan *Job);
req := Request{f, c};
service <- &req;
job = <-c
diff --git a/src/lib/os/os_error.go b/src/lib/os/os_error.go
index 6db223e..4c03454 100644
--- a/src/lib/os/os_error.go
+++ b/src/lib/os/os_error.go
@@ -12,7 +12,7 @@
s string
}
-var ErrorTab = new(map[int64] *Error);
+var ErrorTab = make(map[int64] *Error);
export func NewError(s string) *Error {
return &Error{s}
diff --git a/src/lib/os/os_file.go b/src/lib/os/os_file.go
index 4e878aa..5f317c7 100644
--- a/src/lib/os/os_file.go
+++ b/src/lib/os/os_file.go
@@ -85,7 +85,7 @@
if fd == nil {
return 0, EINVAL
}
- b := new([]byte, len(s)+1);
+ b := make([]byte, len(s)+1);
if !syscall.StringToBytes(b, s) {
return 0, EINVAL
}
diff --git a/src/lib/rand.go b/src/lib/rand.go
index 029a75c..ebdfdf1 100644
--- a/src/lib/rand.go
+++ b/src/lib/rand.go
@@ -166,7 +166,7 @@
export func
perm(n int) []int
{
- m := new([]int, n);
+ m := make([]int, n);
for i:=0; i<n; i++ {
m[i] = i;
}
diff --git a/src/lib/reflect/all_test.go b/src/lib/reflect/all_test.go
index d2e5bd0..eb0bbf9 100644
--- a/src/lib/reflect/all_test.go
+++ b/src/lib/reflect/all_test.go
@@ -176,7 +176,7 @@
}
{
type C chan *T; // TODO: should not be necessary
- var tmp = new(*C);
+ var tmp = new(C);
value := reflect.NewValue(tmp);
assert(reflect.ValueToString(value), "*reflect.C·all_test(@)");
}
diff --git a/src/lib/reflect/type.go b/src/lib/reflect/type.go
index f978e78..2cc3e48 100644
--- a/src/lib/reflect/type.go
+++ b/src/lib/reflect/type.go
@@ -332,7 +332,7 @@
return len(t.field)
}
-var NilInterface = NewInterfaceTypeStruct("nil", "", new([]Field, 0));
+var NilInterface = NewInterfaceTypeStruct("nil", "", make([]Field, 0));
// -- Func
@@ -397,9 +397,9 @@
Lock(); // not necessary because of init ordering but be safe.
- types = new(map[string] Type);
- typestring = new(map[string] string);
- basicstub = new(map[string] *StubType);
+ types = make(map[string] Type);
+ typestring = make(map[string] string);
+ basicstub = make(map[string] *StubType);
// Basics go into types table
types[MissingString] = Missing;
@@ -674,11 +674,11 @@
// Parse array of fields for struct, interface, and func arguments
func (p *Parser) Fields(sep, term string) []Field {
- a := new([]Field, 10);
+ a := make([]Field, 10);
nf := 0;
for p.token != "" && p.token != term {
if nf == len(a) {
- a1 := new([]Field, 2*nf);
+ a1 := make([]Field, 2*nf);
for i := 0; i < nf; i++ {
a1[i] = a[i];
}
@@ -706,7 +706,7 @@
// A single type packaged as a field for a function return
func (p *Parser) OneField() []Field {
- a := new([]Field, 1);
+ a := make([]Field, 1);
a[0].name = "";
a[0].typ = p.Type("");
return a;
@@ -838,7 +838,7 @@
// If the typestring is empty, it represents (the type of) a nil interface value
return NilInterface
}
- p := new(*Parser);
+ p := new(Parser);
p.str = typestring;
p.Next();
return p.Type(name).Get();
diff --git a/src/lib/reflect/value.go b/src/lib/reflect/value.go
index 1e566f4..2ff4b85 100644
--- a/src/lib/reflect/value.go
+++ b/src/lib/reflect/value.go
@@ -625,7 +625,7 @@
func ArrayCreator(typ Type, addr Addr) Value {
arraytype := typ.(ArrayType);
if arraytype.Open() {
- v := new(*OpenArrayValueStruct);
+ v := new(OpenArrayValueStruct);
v.kind = ArrayKind;
v.addr = addr;
v.typ = typ;
@@ -634,7 +634,7 @@
v.array = addr.(*RuntimeArray);
return v;
}
- v := new(*FixedArrayValueStruct);
+ v := new(FixedArrayValueStruct);
v.kind = ArrayKind;
v.addr = addr;
v.typ = typ;
@@ -710,7 +710,7 @@
func StructCreator(typ Type, addr Addr) Value {
t := typ.(StructType);
nfield := t.Len();
- v := &StructValueStruct{ Common{StructKind, typ, addr}, new([]Value, nfield) };
+ v := &StructValueStruct{ Common{StructKind, typ, addr}, make([]Value, nfield) };
for i := 0; i < nfield; i++ {
name, ftype, str, offset := t.Field(i);
addr_uint := uintptr(addr) + uintptr(offset);
@@ -783,7 +783,7 @@
FuncKind : &FuncCreator,
}
-var typecache = new(map[string] *Type);
+var typecache = make(map[string] *Type);
func NewValueAddr(typ Type, addr Addr) Value {
c, ok := creator[typ.Kind()];
@@ -807,7 +807,7 @@
if size == 0 {
size = 1;
}
- data := new([]uint8, size);
+ data := make([]uint8, size);
return NewValueAddr(typ, Addr(&data[0]));
}
@@ -824,12 +824,12 @@
return nil
}
- array := new(*RuntimeArray);
+ array := new(RuntimeArray);
size := typ.Elem().Size() * cap;
if size == 0 {
size = 1;
}
- data := new([]uint8, size);
+ data := make([]uint8, size);
array.data = Addr(&data[0]);
array.len = uint32(len);
array.cap = uint32(cap);
@@ -874,13 +874,13 @@
p, ok := typecache[typestring];
if !ok {
typ := ParseTypeString("", typestring);
- p = new(*Type);
+ p = new(Type);
*p = typ;
typecache[typestring] = p;
}
// Content of interface is a value; need a permanent copy to take its address
// so we can modify the contents. Values contain pointers to 'values'.
- ap := new(*uint64);
+ ap := new(uint64);
*ap = value;
return NewValueAddr(*p, ap.(Addr));
}
diff --git a/src/lib/regexp/all_test.go b/src/lib/regexp/all_test.go
index 99d5d00..143d813 100644
--- a/src/lib/regexp/all_test.go
+++ b/src/lib/regexp/all_test.go
@@ -197,7 +197,7 @@
if re == nil {
return
}
- strs := new([]string, len(match)/2);
+ strs := make([]string, len(match)/2);
for i := 0; i < len(match); i++ {
strs[i/2] = str[match[i] : match[i+1]]
}
diff --git a/src/lib/regexp/regexp.go b/src/lib/regexp/regexp.go
index 383db09..49f9716 100644
--- a/src/lib/regexp/regexp.go
+++ b/src/lib/regexp/regexp.go
@@ -112,7 +112,7 @@
func (char *Char) Print() { print("char ", string(char.char)) }
func NewChar(char int) *Char {
- c := new(*Char);
+ c := new(Char);
c.char = char;
return c;
}
@@ -163,7 +163,7 @@
}
func NewCharClass() *CharClass {
- c := new(*CharClass);
+ c := new(CharClass);
c.ranges = array.NewIntArray(0);
return c;
}
@@ -249,7 +249,7 @@
}
func NewParser(re *RE) *Parser {
- parser := new(*Parser);
+ parser := new(Parser);
parser.re = re;
parser.nextc(); // load p.ch
return parser;
@@ -364,15 +364,15 @@
p.re.Error(ErrUnmatchedRbkt);
case '^':
p.nextc();
- start = p.re.Add(new(*Bot));
+ start = p.re.Add(new(Bot));
return start, start;
case '$':
p.nextc();
- start = p.re.Add(new(*Eot));
+ start = p.re.Add(new(Eot));
return start, start;
case '.':
p.nextc();
- start = p.re.Add(new(*Any));
+ start = p.re.Add(new(Any));
return start, start;
case '[':
p.nextc();
@@ -393,9 +393,9 @@
}
p.nlpar--;
p.nextc();
- bra := new(*Bra);
+ bra := new(Bra);
p.re.Add(bra);
- ebra := new(*Ebra);
+ ebra := new(Ebra);
p.re.Add(ebra);
bra.n = nbra;
ebra.n = nbra;
@@ -437,7 +437,7 @@
switch p.c() {
case '*':
// (start,end)*:
- alt := new(*Alt);
+ alt := new(Alt);
p.re.Add(alt);
end.SetNext(alt); // after end, do alt
alt.left = start; // alternate brach: return to start
@@ -445,16 +445,16 @@
end = alt;
case '+':
// (start,end)+:
- alt := new(*Alt);
+ alt := new(Alt);
p.re.Add(alt);
end.SetNext(alt); // after end, do alt
alt.left = start; // alternate brach: return to start
end = alt; // start is unchanged; end is alt
case '?':
// (start,end)?:
- alt := new(*Alt);
+ alt := new(Alt);
p.re.Add(alt);
- nop := new(*Nop);
+ nop := new(Nop);
p.re.Add(nop);
alt.left = start; // alternate branch is start
alt.next = nop; // follow on to nop
@@ -478,7 +478,7 @@
switch {
case nstart == NULL: // end of this concatenation
if start == NULL { // this is the empty string
- nop := p.re.Add(new(*Nop));
+ nop := p.re.Add(new(Nop));
return nop, nop;
}
return;
@@ -501,11 +501,11 @@
case '|':
p.nextc();
nstart, nend := p.Concatenation();
- alt := new(*Alt);
+ alt := new(Alt);
p.re.Add(alt);
alt.left = start;
alt.next = nstart;
- nop := new(*Nop);
+ nop := new(Nop);
p.re.Add(nop);
end.SetNext(nop);
nend.SetNext(nop);
@@ -550,12 +550,12 @@
func (re *RE) DoParse() {
parser := NewParser(re);
- start := new(*Start);
+ start := new(Start);
re.Add(start);
s, e := parser.Regexp();
start.next = s;
re.start = start;
- e.SetNext(re.Add(new(*End)));
+ e.SetNext(re.Add(new(End)));
if debug {
re.Dump();
@@ -572,7 +572,7 @@
func Compiler(str string, ch chan *RE) {
- re := new(*RE);
+ re := new(RE);
re.expr = str;
re.inst = array.New(0);
re.ch = ch;
@@ -589,7 +589,7 @@
// Compile in separate goroutine; wait for result
export func Compile(str string) (regexp Regexp, error *os.Error) {
- ch := new(chan *RE);
+ ch := make(chan *RE);
go Compiler(str, ch);
re := <-ch;
return re, re.error
@@ -615,7 +615,7 @@
}
}
if l == cap(s) {
- s1 := new([]State, 2*l)[0:l];
+ s1 := make([]State, 2*l)[0:l];
for i := 0; i < l; i++ {
s1[i] = s[i];
}
@@ -629,15 +629,15 @@
func (re *RE) DoExecute(str string, pos int) []int {
var s [2][]State; // TODO: use a vector when State values (not ptrs) can be vector elements
- s[0] = new([]State, 10)[0:0];
- s[1] = new([]State, 10)[0:0];
+ s[0] = make([]State, 10)[0:0];
+ s[1] = make([]State, 10)[0:0];
in, out := 0, 1;
var final State;
found := false;
for pos <= len(str) {
if !found {
// prime the pump if we haven't seen a match yet
- match := new([]int, 2*(re.nbra+1));
+ match := make([]int, 2*(re.nbra+1));
for i := 0; i < len(match); i++ {
match[i] = -1; // no match seen; catches cases like "a(b)?c" on "ac"
}
@@ -689,7 +689,7 @@
case ALT:
s[in] = AddState(s[in], state.inst.(*Alt).left, state.match);
// give other branch a copy of this match vector
- s1 := new([]int, 2*(re.nbra+1));
+ s1 := make([]int, 2*(re.nbra+1));
for i := 0; i < len(s1); i++ {
s1[i] = state.match[i]
}
@@ -729,7 +729,7 @@
if r == nil {
return nil
}
- a := new([]string, len(r)/2);
+ a := make([]string, len(r)/2);
for i := 0; i < len(r); i += 2 {
a[i/2] = s[r[i] : r[i+1]]
}
diff --git a/src/lib/sort_test.go b/src/lib/sort_test.go
index 1a6b602..03f71da 100644
--- a/src/lib/sort_test.go
+++ b/src/lib/sort_test.go
@@ -76,7 +76,7 @@
}
export func TestSortLargeRandom(t *testing.T) {
- data := new([]int, 1000000);
+ data := make([]int, 1000000);
for i := 0; i < len(data); i++ {
data[i] = rand.rand() % 100;
}
diff --git a/src/lib/strconv/atof.go b/src/lib/strconv/atof.go
index b7f5156..8869e20 100644
--- a/src/lib/strconv/atof.go
+++ b/src/lib/strconv/atof.go
@@ -34,7 +34,7 @@
}
// digits
- b := new(*Decimal);
+ b := new(Decimal);
sawdot := false;
sawdigits := false;
for ; i < len(s); i++ {
diff --git a/src/lib/strconv/decimal.go b/src/lib/strconv/decimal.go
index 9f94e30..440b028 100644
--- a/src/lib/strconv/decimal.go
+++ b/src/lib/strconv/decimal.go
@@ -39,7 +39,7 @@
n += -a.dp;
}
- buf := new([]byte, n);
+ buf := make([]byte, n);
w := 0;
switch {
case a.nd == 0:
@@ -120,7 +120,7 @@
}
package func NewDecimal(i uint64) *Decimal {
- a := new(*Decimal);
+ a := new(Decimal);
a.Assign(i);
return a;
}
diff --git a/src/lib/strconv/ftoa.go b/src/lib/strconv/ftoa.go
index 0b6a616..b99d9d5 100644
--- a/src/lib/strconv/ftoa.go
+++ b/src/lib/strconv/ftoa.go
@@ -236,7 +236,7 @@
// %e: -d.ddddde±dd
func FmtE(neg bool, d *Decimal, prec int) string {
- buf := new([]byte, 3+Max(prec, 0)+30); // "-0." + prec digits + exp
+ buf := make([]byte, 3+Max(prec, 0)+30); // "-0." + prec digits + exp
w := 0; // write index
// sign
@@ -306,7 +306,7 @@
// %f: -ddddddd.ddddd
func FmtF(neg bool, d *Decimal, prec int) string {
- buf := new([]byte, 1+Max(d.dp, 1)+1+Max(prec, 0));
+ buf := make([]byte, 1+Max(d.dp, 1)+1+Max(prec, 0));
w := 0;
// sign
diff --git a/src/lib/strings.go b/src/lib/strings.go
index a553ec4..9da4806 100644
--- a/src/lib/strings.go
+++ b/src/lib/strings.go
@@ -8,7 +8,7 @@
// Split string into array of UTF-8 sequences (still strings)
export func explode(s string) []string {
- a := new([]string, utf8.RuneCountInString(s, 0, len(s)));
+ a := make([]string, utf8.RuneCountInString(s, 0, len(s)));
j := 0;
var size, rune int;
for i := 0; i < len(a); i++ {
@@ -57,7 +57,7 @@
c := sep[0];
start := 0;
n := count(s, sep)+1;
- a := new([]string, n);
+ a := make([]string, n);
na := 0;
for i := 0; i+len(sep) <= len(s); i++ {
if s[i] == c && (len(sep) == 1 || s[i:i+len(sep)] == sep) {
@@ -84,7 +84,7 @@
n += len(a[i])
}
- b := new([]byte, n);
+ b := make([]byte, n);
bp := 0;
for i := 0; i < len(a); i++ {
s := a[i];
diff --git a/src/lib/sync/mutex_test.go b/src/lib/sync/mutex_test.go
index 0fd204c..876cb0f 100644
--- a/src/lib/sync/mutex_test.go
+++ b/src/lib/sync/mutex_test.go
@@ -20,9 +20,9 @@
}
export func TestSemaphore(t *testing.T) {
- s := new(*int32);
+ s := new(int32);
*s = 1;
- c := new(chan bool);
+ c := make(chan bool);
for i := 0; i < 10; i++ {
go HammerSemaphore(s, c);
}
@@ -41,8 +41,8 @@
}
export func TestMutex(t *testing.T) {
- m := new(*Mutex);
- c := new(chan bool);
+ m := new(Mutex);
+ c := make(chan bool);
for i := 0; i < 10; i++ {
go HammerMutex(m, c);
}
diff --git a/src/lib/tabwriter/tabwriter.go b/src/lib/tabwriter/tabwriter.go
index f8df1e1..a004088 100644
--- a/src/lib/tabwriter/tabwriter.go
+++ b/src/lib/tabwriter/tabwriter.go
@@ -21,7 +21,7 @@
func (b *ByteArray) Init(initial_size int) {
- b.a = new([]byte, initial_size)[0 : 0];
+ b.a = make([]byte, initial_size)[0 : 0];
}
@@ -50,7 +50,7 @@
if m > n2 {
n2 = m;
}
- b := new([]byte, n2);
+ b := make([]byte, n2);
for i := 0; i < n; i++ {
b[i] = a[i];
}
@@ -446,5 +446,5 @@
export func New(writer io.Write, cellwidth, padding int, padchar byte, align_left, filter_html bool) *Writer {
- return new(*Writer).Init(writer, cellwidth, padding, padchar, align_left, filter_html)
+ return new(Writer).Init(writer, cellwidth, padding, padchar, align_left, filter_html)
}
diff --git a/src/lib/tabwriter/tabwriter_test.go b/src/lib/tabwriter/tabwriter_test.go
index 56b7e22..acd377d 100644
--- a/src/lib/tabwriter/tabwriter_test.go
+++ b/src/lib/tabwriter/tabwriter_test.go
@@ -18,7 +18,7 @@
func (b *Buffer) Init(n int) {
- b.a = new([]byte, n)[0 : 0];
+ b.a = make([]byte, n)[0 : 0];
}
diff --git a/src/lib/testing.go b/src/lib/testing.go
index 3609a25..6d3275f 100644
--- a/src/lib/testing.go
+++ b/src/lib/testing.go
@@ -92,8 +92,8 @@
if chatty {
println("=== RUN ", tests[i].name);
}
- t := new(*T);
- t.ch = new(chan *T);
+ t := new(T);
+ t.ch = make(chan *T);
go TRunner(t, &tests[i]);
<-t.ch;
if t.failed {
diff --git a/src/lib/time/tick.go b/src/lib/time/tick.go
index a4cb786..408dbc2 100644
--- a/src/lib/time/tick.go
+++ b/src/lib/time/tick.go
@@ -53,7 +53,7 @@
if ns <= 0 {
return nil
}
- c := new(chan int64);
+ c := make(chan int64);
go Ticker(ns, c);
return c;
}
diff --git a/src/lib/time/time.go b/src/lib/time/time.go
index c067cbe..1325d26 100644
--- a/src/lib/time/time.go
+++ b/src/lib/time/time.go
@@ -71,7 +71,7 @@
)
export func SecondsToUTC(sec int64) *Time {
- t := new(*Time);
+ t := new(Time);
// Split into time and day.
day := sec/SecondsPerDay;
@@ -281,7 +281,7 @@
// Just enough of strftime to implement the date formats below.
// Not exported.
func Format(t *Time, fmt string) string {
- buf := new([]byte, 128);
+ buf := make([]byte, 128);
bp := 0;
for i := 0; i < len(fmt); i++ {
diff --git a/src/lib/time/zoneinfo.go b/src/lib/time/zoneinfo.go
index 9ac9807..cdd656c 100644
--- a/src/lib/time/zoneinfo.go
+++ b/src/lib/time/zoneinfo.go
@@ -162,7 +162,7 @@
// Now we can build up a useful data structure.
// First the zone information.
// utcoff[4] isdst[1] nameindex[1]
- zone := new([]Zone, n[NZone]);
+ zone := make([]Zone, n[NZone]);
for i := 0; i < len(zone); i++ {
var ok bool;
var n uint32;
@@ -182,7 +182,7 @@
}
// Now the transition time info.
- zt = new([]Zonetime, n[NTime]);
+ zt = make([]Zonetime, n[NTime]);
for i := 0; i < len(zt); i++ {
var ok bool;
var n uint32;
@@ -209,7 +209,7 @@
if e != nil {
return nil, e
}
- p = new([]byte, max+1)[0:0];
+ p = make([]byte, max+1)[0:0];
n := 0;
for len(p) < max {
nn, e := fd.Read(p[n:cap(p)]);
diff --git a/src/run.bash b/src/run.bash
index 30166f7..bba8c22 100755
--- a/src/run.bash
+++ b/src/run.bash
@@ -52,11 +52,11 @@
make smoketest
) || exit $?
-(xcd ../usr/gri/gosrc
-make clean
-time make
-# make test
-) || exit $?
+# (xcd ../usr/gri/gosrc
+# make clean
+# time make
+# # make test
+# ) || exit $?
(xcd ../test
./run