summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2014-11-13 11:10:14 +0000
committerSimon MacMullen <simon@rabbitmq.com>2014-11-13 11:10:14 +0000
commitabebb6517d14610bb0ee31f28ee3f10efaeb4154 (patch)
tree059c6988e6f34ae99817bb5d261f72069b4ea601 /src
parentf285a3880bc5a8b7c77e6f03265cb57fae5278be (diff)
downloadrabbitmq-server-git-abebb6517d14610bb0ee31f28ee3f10efaeb4154.tar.gz
Small refactor suggested by Matthias.
Diffstat (limited to 'src')
-rw-r--r--src/file_handle_cache.erl34
1 files changed, 14 insertions, 20 deletions
diff --git a/src/file_handle_cache.erl b/src/file_handle_cache.erl
index fa896c67f3..06a72aa45d 100644
--- a/src/file_handle_cache.erl
+++ b/src/file_handle_cache.erl
@@ -845,27 +845,21 @@ maybe_seek(NewOffset, Handle = #handle{hdl = Hdl,
at_eof = AtEoF}) ->
{AtEoF1, NeedsSeek} = needs_seek(AtEoF, Offset, NewOffset),
case NeedsSeek of
+ true when is_number(NewOffset) andalso
+ NewOffset >= Offset andalso NewOffset =< BufSz + Offset ->
+ Diff = NewOffset - Offset,
+ <<_:Diff/binary, Rest/binary>> = Buf,
+ {{ok, NewOffset}, Handle#handle{offset = NewOffset,
+ at_eof = AtEoF1,
+ read_buffer = Rest,
+ read_buffer_size = BufSz - Diff}};
true ->
- case not is_number(NewOffset) orelse
- NewOffset < Offset orelse
- NewOffset > BufSz + Offset of
- true ->
- case prim_file_position(Hdl, NewOffset) of
- {ok, Offset1} = Result ->
- {Result, reset_read_buffer(
- Handle#handle{offset = Offset1,
- at_eof = AtEoF1})};
- {error, _} = Error ->
- {Error, Handle}
- end;
- false ->
- Diff = NewOffset - Offset,
- <<_:Diff/binary, Rest/binary>> = Buf,
- {{ok, NewOffset},
- Handle#handle{offset = NewOffset,
- at_eof = AtEoF1,
- read_buffer = Rest,
- read_buffer_size = BufSz - Diff}}
+ case prim_file_position(Hdl, NewOffset) of
+ {ok, Offset1} = Result ->
+ {Result, reset_read_buffer(Handle#handle{offset = Offset1,
+ at_eof = AtEoF1})};
+ {error, _} = Error ->
+ {Error, Handle}
end;
false ->
{{ok, Offset}, Handle}