aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2009-05-15 21:59:08 -0700
committerRobert Griesemer <gri@golang.org>2009-05-15 21:59:08 -0700
commit8ee7688af69ba278712bb5ba4d963de3dd18b3bd (patch)
tree4e8c1b88ea54737e6c899159e90ed756e8165066 /src/lib
parente8c1e2b93a194fdd2cf855f32af4f3160a6c3bb2 (diff)
downloadgo-8ee7688af69ba278712bb5ba4d963de3dd18b3bd.tar.xz
make Len() == 0 for nil vector.Vector
(mimic behavior of slices) R=r DELTA=12 (12 added, 0 deleted, 0 changed) OCL=28960 CL=28962
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/container/vector/vector.go4
-rw-r--r--src/lib/container/vector/vector_test.go8
2 files changed, 12 insertions, 0 deletions
diff --git a/src/lib/container/vector/vector.go b/src/lib/container/vector/vector.go
index 30bbbab2a7..5b5cad21cd 100644
--- a/src/lib/container/vector/vector.go
+++ b/src/lib/container/vector/vector.go
@@ -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)
}
diff --git a/src/lib/container/vector/vector_test.go b/src/lib/container/vector/vector_test.go
index 0e39493127..2a9819394c 100644
--- a/src/lib/container/vector/vector_test.go
+++ b/src/lib/container/vector/vector_test.go
@@ -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") }