浏览代码

Merge pull request #4 from eapache/cleanup

Cleanup
Evan Huus 10 年之前
父节点
当前提交
c0c762fac2
共有 3 个文件被更改,包括 11 次插入8 次删除
  1. 4 3
      .travis.yml
  2. 7 3
      queue.go
  3. 0 2
      queue_test.go

+ 4 - 3
.travis.yml

@@ -1,6 +1,7 @@
 language: go
+sudo: false
 
 go:
-    - 1.2
-    - 1.3
-    - 1.4
+  - 1.2
+  - 1.3
+  - 1.4

+ 7 - 3
queue.go

@@ -17,7 +17,9 @@ type Queue struct {
 
 // New constructs and returns a new Queue.
 func New() *Queue {
-	return &Queue{buf: make([]interface{}, minQueueLen)}
+	return &Queue{
+		buf: make([]interface{}, minQueueLen),
+	}
 }
 
 // Length returns the number of elements currently stored in the queue.
@@ -25,6 +27,8 @@ func (q *Queue) Length() int {
 	return q.count
 }
 
+// resizes the queue to fit exactly twice its current contents
+// this can result in shrinking if the queue is less than half-full
 func (q *Queue) resize() {
 	newBuf := make([]interface{}, q.count*2)
 
@@ -63,7 +67,7 @@ func (q *Queue) Peek() interface{} {
 // Get returns the element at index i in the queue. If the index is
 // invalid, the call will panic.
 func (q *Queue) Get(i int) interface{} {
-	if i >= q.count || i < 0 {
+	if i < 0 || i >= q.count {
 		panic("queue: Get() called with index out of range")
 	}
 	return q.buf[(q.head+i)%len(q.buf)]
@@ -78,7 +82,7 @@ func (q *Queue) Remove() {
 	q.buf[q.head] = nil
 	q.head = (q.head + 1) % len(q.buf)
 	q.count--
-	if len(q.buf) > minQueueLen && q.count*4 <= len(q.buf) {
+	if len(q.buf) > minQueueLen && q.count*4 == len(q.buf) {
 		q.resize()
 	}
 }

+ 0 - 2
queue_test.go

@@ -119,8 +119,6 @@ func assertPanics(t *testing.T, name string, f func()) {
 	defer func() {
 		if r := recover(); r == nil {
 			t.Errorf("%s: didn't panic as expected", name)
-		} else {
-			t.Logf("%s: got panic as expected: %v", name, r)
 		}
 	}()