From fbed19107051cb0830434a8ffe09f16e0ddbd944 Mon Sep 17 00:00:00 2001 From: Hans Bolinder Date: Mon, 11 Sep 2017 13:11:40 +0200 Subject: dialyzer: Do not fix ETS tables when merging PLTs This commit removes the call to ets:safe_fixtable/2 introduced in commit 9458495. ETS memory can now be reclaimed while merging PLTs. --- lib/dialyzer/src/dialyzer_plt.erl | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/dialyzer/src/dialyzer_plt.erl b/lib/dialyzer/src/dialyzer_plt.erl index 0fd99bbc04..95c8b5ebce 100644 --- a/lib/dialyzer/src/dialyzer_plt.erl +++ b/lib/dialyzer/src/dialyzer_plt.erl @@ -772,12 +772,16 @@ tab_is_disj(K1, T1, T2) -> end. merge_tables(T1, T2) -> - ets:safe_fixtable(T1, true), tab_merge(ets:first(T1), T1, T2). tab_merge('$end_of_table', T1, T2) -> - true = ets:delete(T1), - T2; + case ets:first(T1) of % no safe_fixtable()... + '$end_of_table' -> + true = ets:delete(T1), + T2; + Key -> + tab_merge(Key, T1, T2) + end; tab_merge(K1, T1, T2) -> Vs = ets:lookup(T1, K1), NextK1 = ets:next(T1, K1), -- cgit v1.2.3