Ver código fonte

Reset hashtable during Writer reset to ensure deterministic output.

Signed-off-by: Cyril Tovena <cyril.tovena@gmail.com>
Cyril Tovena 5 anos atrás
pai
commit
f5d4b63b7a
1 arquivos alterados com 6 adições e 1 exclusões
  1. 6 1
      writer.go

+ 6 - 1
writer.go

@@ -3,9 +3,10 @@ package lz4
 import (
 	"encoding/binary"
 	"fmt"
-	"github.com/pierrec/lz4/internal/xxh32"
 	"io"
 	"runtime"
+
+	"github.com/pierrec/lz4/internal/xxh32"
 )
 
 // zResult contains the results of compressing a block.
@@ -370,6 +371,10 @@ func (z *Writer) Reset(w io.Writer) {
 	z.checksum.Reset()
 	z.idx = 0
 	z.err = nil
+	// reset hashtable to ensure deterministic output.
+	for i := range z.hashtable {
+		z.hashtable[i] = 0
+	}
 	z.WithConcurrency(n)
 }