瀏覽代碼

vendor: Update github.com/syndtr/goleveldb, minor bugfixes

Jakob Borg 8 年之前
父節點
當前提交
d304498027

+ 1 - 1
vendor/github.com/syndtr/goleveldb/leveldb/db.go

@@ -844,7 +844,7 @@ func (db *DB) Get(key []byte, ro *opt.ReadOptions) (value []byte, err error) {
 
 // Has returns true if the DB does contains the given key.
 //
-// It is safe to modify the contents of the argument after Get returns.
+// It is safe to modify the contents of the argument after Has returns.
 func (db *DB) Has(key []byte, ro *opt.ReadOptions) (ret bool, err error) {
 	err = db.ok()
 	if err != nil {

+ 2 - 0
vendor/github.com/syndtr/goleveldb/leveldb/doc.go

@@ -8,6 +8,8 @@
 //
 // Create or open a database:
 //
+//	// The returned DB instance is safe for concurrent use. Which mean that all
+//	// DB's methods may be called concurrently from multiple goroutine.
 //	db, err := leveldb.OpenFile("path/to/db", nil)
 //	...
 //	defer db.Close()

+ 1 - 1
vendor/github.com/syndtr/goleveldb/leveldb/iterator/iter.go

@@ -88,7 +88,7 @@ type Iterator interface {
 	// its contents may change on the next call to any 'seeks method'.
 	Key() []byte
 
-	// Value returns the key of the current key/value pair, or nil if done.
+	// Value returns the value of the current key/value pair, or nil if done.
 	// The caller should not modify the contents of the returned slice, and
 	// its contents may change on the next call to any 'seeks method'.
 	Value() []byte

+ 1 - 1
vendor/github.com/syndtr/goleveldb/leveldb/memdb/memdb.go

@@ -329,7 +329,7 @@ func (p *DB) Delete(key []byte) error {
 
 	h := p.nodeData[node+nHeight]
 	for i, n := range p.prevNode[:h] {
-		m := n + 4 + i
+		m := n + nNext + i
 		p.nodeData[m] = p.nodeData[p.nodeData[m]+nNext+i]
 	}
 

+ 20 - 4
vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage.go

@@ -234,14 +234,30 @@ func (fs *fileStorage) SetMeta(fd FileDesc) (err error) {
 		return
 	}
 	_, err = fmt.Fprintln(w, fsGenName(fd))
-	// Close the file first.
-	if cerr := w.Close(); cerr != nil {
-		fs.log(fmt.Sprintf("close CURRENT.%d: %v", fd.Num, cerr))
+	if err != nil {
+		fs.log(fmt.Sprintf("write CURRENT.%d: %v", fd.Num, err))
+		return
+	}
+	if err = w.Sync(); err != nil {
+		fs.log(fmt.Sprintf("flush CURRENT.%d: %v", fd.Num, err))
+		return
+	}
+	if err = w.Close(); err != nil {
+		fs.log(fmt.Sprintf("close CURRENT.%d: %v", fd.Num, err))
+		return
 	}
 	if err != nil {
 		return
 	}
-	return rename(path, filepath.Join(fs.path, "CURRENT"))
+	if err = rename(path, filepath.Join(fs.path, "CURRENT")); err != nil {
+		fs.log(fmt.Sprintf("rename CURRENT.%d: %v", fd.Num, err))
+		return
+	}
+	// Sync root directory.
+	if err = syncDir(fs.path); err != nil {
+		fs.log(fmt.Sprintf("syncDir: %v", err))
+	}
+	return
 }
 
 func (fs *fileStorage) GetMeta() (fd FileDesc, err error) {

+ 1 - 1
vendor/manifest

@@ -365,7 +365,7 @@
 			"importpath": "github.com/syndtr/goleveldb/leveldb",
 			"repository": "https://github.com/syndtr/goleveldb",
 			"vcs": "git",
-			"revision": "3c5717caf1475fd25964109a0fc640bd150fce43",
+			"revision": "549b6d6b1c0419617182954dd77770f2e2685ed5",
 			"branch": "master",
 			"path": "/leveldb",
 			"notests": true