Skip to content

Commit ff2336f

Browse files
committed
clean
1 parent 389c477 commit ff2336f

File tree

1 file changed

+8
-13
lines changed

1 file changed

+8
-13
lines changed

bitset.go

+8-13
Original file line numberDiff line numberDiff line change
@@ -898,19 +898,16 @@ func (b *BitSet) WriteTo(stream io.Writer) (int64, error) {
898898
// current implementation of bufio.Writer is more memory efficient than
899899
// binary.Write for large set
900900
writer := bufio.NewWriter(stream)
901-
var item = make([]byte, 8) // for serializing uint64
902-
var n = binary.Size(uint64(0)) // number of bytes written
903-
for _, x := range b.set {
904-
binaryOrder.PutUint64(item, x)
905-
nn, err := writer.Write(item)
906-
if err != nil {
907-
return int64(n+nn), err
901+
var item = make([]byte, binary.Size(uint64(0))) // for serializing one uint64
902+
for i := range b.set {
903+
binaryOrder.PutUint64(item, b.set[i])
904+
if nn, err := writer.Write(item); err != nil {
905+
return int64(i*binary.Size(uint64(0)) + nn), err
908906
}
909-
n += nn
910907
}
911908

912909
err = writer.Flush()
913-
return int64(n), err
910+
return int64(b.BinaryStorageSize()), err
914911
}
915912

916913
// ReadFrom reads a BitSet from a stream written using WriteTo
@@ -932,17 +929,15 @@ func (b *BitSet) ReadFrom(stream io.Reader) (int64, error) {
932929
// current implementation bufio.Reader is more memory efficient than
933930
// binary.Read for large set
934931
reader := bufio.NewReader(stream)
935-
i := 0
936-
var item = make([]byte, 8) // one uint64
937-
for {
932+
var item = make([]byte, binary.Size(uint64(0))) // one uint64
933+
for i := uint64(0); i < length; i++ {
938934
if _, err := reader.Read(item); err != nil {
939935
if err == io.EOF {
940936
break // done
941937
}
942938
return 0, err
943939
}
944940
newset.set[i] = binaryOrder.Uint64(item)
945-
i++
946941
}
947942

948943
*b = *newset

0 commit comments

Comments
 (0)