فهرست منبع

Make sure iterator releases on error.

Kelly Norton 9 سال پیش
والد
کامیت
52dac29fcb
1فایلهای تغییر یافته به همراه6 افزوده شده و 3 حذف شده
  1. 6 3
      context/context.go

+ 6 - 3
context/context.go

@@ -163,6 +163,7 @@ func (c *Context) Del(key string) error {
 func (c *Context) GetAll() (map [string]Route, error) {
 	golinks := map[string]Route{}
 	iter := c.db.NewIterator(nil, nil)
+	defer iter.Release()
 
 	for iter.Next() {
 		key := iter.Key()
@@ -173,10 +174,12 @@ func (c *Context) GetAll() (map [string]Route, error) {
 		}
 		golinks[string(key[:])] = *rt
 	}
-	iter.Release()
-	err := iter.Error()
 
-	return golinks, err
+	if err := iter.Error(); err != nil {
+		return nil, err
+	}
+
+	return golinks, nil
 }
 
 func (c *Context) commit(id uint64) error {