aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib/src/dets.erl
diff options
context:
space:
mode:
authorHans Bolinder <[email protected]>2010-10-21 09:43:00 +0200
committerHans Bolinder <[email protected]>2010-10-21 09:43:00 +0200
commit9040272e941352944a2e9294230f0c46e27c5a45 (patch)
tree67ccaa2eaf1949abea2349b57d469f7b6177a1b6 /lib/stdlib/src/dets.erl
parent4e79fa3b1b6797f2583848d307d6b85cec94a920 (diff)
parentac96033fc95304a43813cd5a4a75aeefe6299a2d (diff)
downloadotp-9040272e941352944a2e9294230f0c46e27c5a45.tar.gz
otp-9040272e941352944a2e9294230f0c46e27c5a45.tar.bz2
otp-9040272e941352944a2e9294230f0c46e27c5a45.zip
Merge branch 'hb/stdlib/dets_stream_op/OTP-8899' into dev
* hb/stdlib/dets_stream_op/OTP-8899: Fix a bug that could cause 'bad_object' errors Conflicts: lib/stdlib/test/dets_SUITE.erl
Diffstat (limited to 'lib/stdlib/src/dets.erl')
-rw-r--r--lib/stdlib/src/dets.erl6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/stdlib/src/dets.erl b/lib/stdlib/src/dets.erl
index 79bebada4d..c23f77cdfa 100644
--- a/lib/stdlib/src/dets.erl
+++ b/lib/stdlib/src/dets.erl
@@ -1094,7 +1094,9 @@ do_apply_op(Op, From, Head, N) ->
{N2, H2} when is_record(H2, head), is_integer(N2) ->
open_file_loop(H2, N2);
H2 when is_record(H2, head) ->
- open_file_loop(H2, N)
+ open_file_loop(H2, N);
+ {{more,From1,Op1,N1}, NewHead} ->
+ do_apply_op(Op1, From1, NewHead, N1)
catch
exit:normal ->
exit(normal);
@@ -1436,7 +1438,7 @@ stream_end2([], Ps, no_more, N, C, Head, _Reply) ->
penalty(Head, Ps, C),
{N, Head};
stream_end2([], _Ps, {From, Op}, N, _C, Head, _Reply) ->
- apply_op(Op, From, Head, N).
+ {{more,From,Op,N},Head}.
penalty(H, _Ps, _C) when H#head.fixed =:= false ->
ok;