FoldHeads to output binary

so that byte_size will work in sweeper
This commit is contained in:
Martin Sumner 2017-04-11 11:17:27 +01:00
parent 9badc8fbe7
commit 618d9cf53b

View file

@ -1103,7 +1103,7 @@ accumulate_objects(FoldObjectsFun, InkerClone, Tag, DeferredFetch) ->
MDBin, MDBin,
Size, Size,
{fun fetch_value/2, InkerClone, JK}}, {fun fetch_value/2, InkerClone, JK}},
FoldObjectsFun(B, K, Value, Acc); FoldObjectsFun(B, K, term_to_binary(Value), Acc);
false -> false ->
R = fetch_value(InkerClone, JK), R = fetch_value(InkerClone, JK),
case R of case R of
@ -1530,9 +1530,9 @@ foldobjects_vs_hashtree_test() ->
FoldHeadsFun = FoldHeadsFun =
fun(B, K, ProxyV, Acc) -> fun(B, K, ProxyV, Acc) ->
{proxy_object, {proxy_object,
_MDBin, _MDBin,
_Size, _Size,
{FetchFun, Clone, JK}} = ProxyV, {FetchFun, Clone, JK}} = binary_to_term(ProxyV),
V = FetchFun(Clone, JK), V = FetchFun(Clone, JK),
[{B, K, erlang:phash2(term_to_binary(V))}|Acc] [{B, K, erlang:phash2(term_to_binary(V))}|Acc]
end, end,
@ -1546,9 +1546,9 @@ foldobjects_vs_hashtree_test() ->
FoldHeadsFun2 = FoldHeadsFun2 =
fun(B, K, ProxyV, Acc) -> fun(B, K, ProxyV, Acc) ->
{proxy_object, {proxy_object,
MD, MD,
_Size, _Size,
_Fetcher} = ProxyV, _Fetcher} = binary_to_term(ProxyV),
{Hash, _Size} = MD, {Hash, _Size} = MD,
[{B, K, Hash}|Acc] [{B, K, Hash}|Acc]
end, end,
@ -1607,7 +1607,7 @@ foldobjects_vs_foldheads_bybucket_test() ->
{proxy_object, {proxy_object,
_MDBin, _MDBin,
_Size, _Size,
{FetchFun, Clone, JK}} = ProxyV, {FetchFun, Clone, JK}} = binary_to_term(ProxyV),
V = FetchFun(Clone, JK), V = FetchFun(Clone, JK),
[{B, K, erlang:phash2(term_to_binary(V))}|Acc] [{B, K, erlang:phash2(term_to_binary(V))}|Acc]
end, end,