aboutsummaryrefslogtreecommitdiffstats
path: root/lib/dialyzer/src/dialyzer_plt.erl
diff options
context:
space:
mode:
authorHans Bolinder <[email protected]>2017-09-11 13:11:40 +0200
committerHans Bolinder <[email protected]>2017-09-12 14:38:59 +0200
commitfbed19107051cb0830434a8ffe09f16e0ddbd944 (patch)
treefc739722befee5318348bccc4d42712978254048 /lib/dialyzer/src/dialyzer_plt.erl
parenteee9dc863a4dc806ee48eea07da08bd87ab0bb0c (diff)
downloadotp-fbed19107051cb0830434a8ffe09f16e0ddbd944.tar.gz
otp-fbed19107051cb0830434a8ffe09f16e0ddbd944.tar.bz2
otp-fbed19107051cb0830434a8ffe09f16e0ddbd944.zip
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.
Diffstat (limited to 'lib/dialyzer/src/dialyzer_plt.erl')
-rw-r--r--lib/dialyzer/src/dialyzer_plt.erl10
1 files changed, 7 insertions, 3 deletions
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),