Procházet zdrojové kódy

check for double release

Darien Raymond před 9 roky
rodič
revize
5769df496b
1 změnil soubory, kde provedl 8 přidání a 4 odebrání
  1. 8 4
      common/bufio/writer.go

+ 8 - 4
common/bufio/writer.go

@@ -85,11 +85,15 @@ func (v *BufferedWriter) SetCached(cached bool) {
 	}
 }
 
+// Release implements common.Releasable.Release().
 func (v *BufferedWriter) Release() {
-	v.Flush()
-
-	v.buffer.Release()
-	v.buffer = nil
+	if !v.buffer.IsEmpty() {
+		v.Flush()
+	}
 
+	if v.buffer != nil {
+		v.buffer.Release()
+		v.buffer = nil
+	}
 	common.Release(v.writer)
 }