diff --git a/object_db.go b/object_db.go index c96b961..659b45b 100644 --- a/object_db.go +++ b/object_db.go @@ -158,7 +158,7 @@ func (o *ObjectDatabase) WriteBlob(b *Blob) ([]byte, error) { if err != nil { return nil, err } - defer os.Remove(buf.Name()) + defer o.cleanup(buf) sha, _, err := o.encodeBuffer(b, buf) if err != nil { @@ -236,7 +236,7 @@ func (d *ObjectDatabase) encodeBuffer(object Object, buf io.ReadWriter) (sha []b if err != nil { return nil, 0, err } - defer os.Remove(tmp.Name()) + defer d.cleanup(tmp) to := NewObjectWriter(tmp) if _, err = to.WriteHeader(object.Type(), int64(cn)); err != nil { @@ -323,3 +323,8 @@ func (o *ObjectDatabase) decode(r *ObjectReader, into Object) error { } return r.Close() } + +func (o *ObjectDatabase) cleanup(f *os.File) { + f.Close() + os.Remove(f.Name()) +}