diff options
Diffstat (limited to 'xdelta3/go/src/xdelta/rstream.go')
-rw-r--r-- | xdelta3/go/src/xdelta/rstream.go | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/xdelta3/go/src/xdelta/rstream.go b/xdelta3/go/src/xdelta/rstream.go index 1666934..1d56031 100644 --- a/xdelta3/go/src/xdelta/rstream.go +++ b/xdelta3/go/src/xdelta/rstream.go | |||
@@ -16,20 +16,21 @@ func WriteRstreams(seed, offset, len int64, | |||
16 | go writeOne(seed, offset, len, second) | 16 | go writeOne(seed, offset, len, second) |
17 | } | 17 | } |
18 | 18 | ||
19 | func writeOne(seed, offset, len int64, stream io.WriteCloser) { | 19 | func writeOne(seed, offset, len int64, stream io.WriteCloser) error { |
20 | if offset != 0 { | 20 | if offset != 0 { |
21 | // Fill with other random data until the offset | 21 | // Fill with other random data until the offset |
22 | writeRand(rand.New(rand.NewSource(^seed)), | 22 | if err := writeRand(rand.New(rand.NewSource(^seed)), offset, stream); err != nil { |
23 | offset, stream) | 23 | return err |
24 | } | ||
24 | } | 25 | } |
25 | writeRand(rand.New(rand.NewSource(seed)), | 26 | if err := writeRand(rand.New(rand.NewSource(seed)), |
26 | len - offset, stream) | 27 | len - offset, stream); err != nil { |
27 | if err := stream.Close(); err != nil { | 28 | return err |
28 | panic(err) | ||
29 | } | 29 | } |
30 | return stream.Close() | ||
30 | } | 31 | } |
31 | 32 | ||
32 | func writeRand(r *rand.Rand, len int64, s io.Writer) { | 33 | func writeRand(r *rand.Rand, len int64, s io.Writer) error { |
33 | blk := make([]byte, blocksize) | 34 | blk := make([]byte, blocksize) |
34 | for len > 0 { | 35 | for len > 0 { |
35 | fillRand(r, blk) | 36 | fillRand(r, blk) |
@@ -38,10 +39,11 @@ func writeRand(r *rand.Rand, len int64, s io.Writer) { | |||
38 | c = int(len) | 39 | c = int(len) |
39 | } | 40 | } |
40 | if _, err := s.Write(blk[0:c]); err != nil { | 41 | if _, err := s.Write(blk[0:c]); err != nil { |
41 | panic(err) | 42 | return err |
42 | } | 43 | } |
43 | len -= int64(c) | 44 | len -= int64(c) |
44 | } | 45 | } |
46 | return nil | ||
45 | } | 47 | } |
46 | 48 | ||
47 | func fillRand(r *rand.Rand, blk []byte) { | 49 | func fillRand(r *rand.Rand, blk []byte) { |