]> Cypherpunks repositories - gostls13.git/commitdiff
make Len() == 0 for nil vector.Vector
authorRobert Griesemer <gri@golang.org>
Sat, 16 May 2009 04:59:08 +0000 (21:59 -0700)
committerRobert Griesemer <gri@golang.org>
Sat, 16 May 2009 04:59:08 +0000 (21:59 -0700)
(mimic behavior of slices)

R=r
DELTA=12  (12 added, 0 deleted, 0 changed)
OCL=28960
CL=28962

src/lib/container/vector/vector.go
src/lib/container/vector/vector_test.go

index 30bbbab2a75fe5c3942fb8e3ca24c74fdc0c97d0..5b5cad21cdd496a9e3d06be1464f05d159c0dfe0 100644 (file)
@@ -84,7 +84,11 @@ func New(len int) *Vector {
 
 
 // Len returns the number of elements in the vector.
+// Len is 0 if p == nil.
 func (p *Vector) Len() int {
+       if p == nil {
+               return 0;
+       }
        return len(p.a)
 }
 
index 0e394931278205b2452be77f8421cc8d2ad4b35d..2a9819394cc6d3cb4683ddcacc57aba9aa71a9f9 100644 (file)
@@ -10,6 +10,14 @@ import "sort"
 import "fmt"
 
 
+func TestZeroLen(t *testing.T) {
+       var a *vector.Vector;
+       if a.Len() != 0 { t.Errorf("A) expected 0, got %d", a.Len()); }
+       a = vector.New(0);
+       if a.Len() != 0 { t.Errorf("B) expected 0, got %d", a.Len()); }
+}
+
+
 func TestInit(t *testing.T) {
        var a vector.Vector;
        if a.Init(0).Len() != 0 { t.Error("A") }