Resolve remaining errcheck warnings.

pull/34/head
Ben Johnson 2014-03-24 07:38:27 -06:00
parent e0a6f5b2af
commit 3c1ecb925e
2 changed files with 29 additions and 11 deletions

View File

@ -18,10 +18,15 @@ cpuprofile: fmt
@go test -c
@./bolt.test -test.v -test.run="^X" -test.bench=$(BENCH) -test.cpuprofile cpu.prof
# go get github.com/kisielk/errcheck
errcheck:
@echo "=== errcheck ==="
@errcheck github.com/boltdb/bolt
fmt:
@go fmt ./...
test: fmt
test: fmt errcheck
@echo "=== TESTS ==="
@go test -v -cover -test.run=$(TEST)
@echo ""

33
db.go
View File

@ -66,11 +66,11 @@ func (db *DB) Open(path string, mode os.FileMode) error {
// Open data file and separate sync handler for metadata writes.
db.path = path
if db.file, err = os.OpenFile(db.path, os.O_RDWR|os.O_CREATE, mode); err != nil {
db.close()
_ = db.close()
return err
}
if db.metafile, err = os.OpenFile(db.path, os.O_RDWR|os.O_SYNC, mode); err != nil {
db.close()
_ = db.close()
return err
}
@ -96,7 +96,7 @@ func (db *DB) Open(path string, mode os.FileMode) error {
// Memory map the data file.
if err := db.mmap(0); err != nil {
db.close()
_ = db.close()
return err
}
@ -369,7 +369,7 @@ func (db *DB) Do(fn func(*Tx) error) error {
err = fn(t)
t.managed = false
if err != nil {
t.Rollback()
_ = t.Rollback()
return err
}
@ -385,7 +385,6 @@ func (db *DB) With(fn func(*Tx) error) error {
if err != nil {
return err
}
defer t.Rollback()
// Mark as a managed tx so that the inner function cannot manually rollback.
t.managed = true
@ -393,8 +392,16 @@ func (db *DB) With(fn func(*Tx) error) error {
// If an error is returned from the function then pass it through.
err = fn(t)
t.managed = false
if err != nil {
_ = t.Rollback()
return err
}
return err
if err := t.Rollback(); err != nil {
return err
}
return nil
}
// Copy writes the entire database to a writer.
@ -406,20 +413,26 @@ func (db *DB) Copy(w io.Writer) error {
if err != nil {
return err
}
defer t.Rollback()
// Open reader on the database.
f, err := os.Open(db.path)
if err != nil {
_ = t.Rollback()
return err
}
defer f.Close()
// Copy everything.
if _, err := io.Copy(w, f); err != nil {
_ = t.Rollback()
_ = f.Close()
return err
}
return nil
if err := t.Rollback(); err != nil {
_ = f.Close()
return err
}
return f.Close()
}
// CopyFile copies the entire database to file at the given path.
@ -430,10 +443,10 @@ func (db *DB) CopyFile(path string, mode os.FileMode) error {
if err != nil {
return err
}
defer f.Close()
err = db.Copy(f)
if err != nil {
_ = f.Close()
return err
}
return f.Close()