From e0d5daa6837dfc087ce9a7d29b5fd586d388eb6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Ojeda=20B=C3=A4r?= Date: Tue, 10 Apr 2018 15:40:11 +0200 Subject: [PATCH] Fix Stream.junk on channel streams --- stdlib/stream.ml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/stdlib/stream.ml b/stdlib/stream.ml index e9b5e6113..2bfef709d 100644 --- a/stdlib/stream.ml +++ b/stdlib/stream.ml @@ -99,7 +99,10 @@ let rec junk_data : type v. v cell -> unit = fun s -> match s.data with Scons (_, d) -> s.count <- (succ s.count); s.data <- d | Sgen ({curr = Some _} as g) -> s.count <- (succ s.count); g.curr <- None - | Sbuffio b -> s.count <- (succ s.count); b.ind <- succ b.ind + | Sbuffio b -> + if b.ind >= b.len then fill_buff b; + if b.len == 0 then s.data <- Sempty + else (s.count <- (succ s.count); b.ind <- succ b.ind) | _ -> match peek_data s with None -> ()