From 26869b8656b644d031e3592653e1ae3c9a30c3c4 Mon Sep 17 00:00:00 2001 From: Linus Nordberg Date: Thu, 23 Feb 2017 15:27:32 +0100 Subject: Simplify added error handling. keysearch is as fast as member. --- merge/src/merge_util.erl | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'merge/src') diff --git a/merge/src/merge_util.erl b/merge/src/merge_util.erl index 388c627..0e19e90 100644 --- a/merge/src/merge_util.erl +++ b/merge/src/merge_util.erl @@ -68,18 +68,16 @@ sendentries_chunk(_, {[], _}, _) -> ok; sendentries_chunk(NodeAddress, {Chunk, Rest}, Chunksize) -> lager:debug("sending entries chunk: N=~B", [length(Chunk)]), - Entries = [db:entry_for_leafhash(H) || H <- Chunk], - HashesAndEntries = lists:zip(Chunk, Entries), - case lists:member(noentry, Entries) of - true -> - Missing = lists:keysearch(noentry, 2, HashesAndEntries), - lager:error("Entries not in db: ~p", [Missing]), - {error, entrynotindb}; + HashesAndEntries = lists:zip(Chunk, [db:entry_for_leafhash(H) || H <- Chunk]), + case lists:keysearch(noentry, 2, HashesAndEntries) of false -> ok = sendentries_request(NodeAddress, HashesAndEntries), sendentries_chunk(NodeAddress, lists:split(min(Chunksize, length(Rest)), Rest), - Chunksize) + Chunksize); + Missing -> + lager:error("Entries not in db: ~p", [Missing]), + {error, entrynotindb} end. sendentries_request(NodeAddress, HashesAndEntries) -> -- cgit v1.1