From fd4fbf7ea87bbf55712c92ca5f777d24a35ea999 Mon Sep 17 00:00:00 2001 From: Martin Sumner Date: Fri, 29 Sep 2017 15:28:17 +0100 Subject: [PATCH] Keep trees empty on merge Done't blow out a tree unnecessarily on merge --- src/leveled_tictac.erl | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/leveled_tictac.erl b/src/leveled_tictac.erl index 2edd636..39bf983 100644 --- a/src/leveled_tictac.erl +++ b/src/leveled_tictac.erl @@ -278,7 +278,14 @@ merge_trees(TreeA, TreeB) -> fun(SQN, MergeL2) -> L2A = get_level2(TreeA, SQN), L2B = get_level2(TreeB, SQN), - NewLevel2 = merge_binaries(L2A, L2B), + BothEmpty = (L2A == ?EMPTY) and (L2B == ?EMPTY), + NewLevel2 = + case BothEmpty of + true -> + ?EMPTY; + false -> + merge_binaries(L2A, L2B) + end, array:set(SQN, NewLevel2, MergeL2) end, NewLevel2 = lists:foldl(MergeFun,