aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans Bolinder <[email protected]>2017-09-12 14:49:53 +0200
committerHans Bolinder <[email protected]>2017-09-12 14:49:53 +0200
commit4bfca4eed77e53ba1042b2fdc1e63993b44696e1 (patch)
treef3c88a29093b2b0e8dec7412c3184826139013c7
parentb6fc9a3964a564ac857838243d8e06ccdb904d5e (diff)
parentfbed19107051cb0830434a8ffe09f16e0ddbd944 (diff)
downloadotp-4bfca4eed77e53ba1042b2fdc1e63993b44696e1.tar.gz
otp-4bfca4eed77e53ba1042b2fdc1e63993b44696e1.tar.bz2
otp-4bfca4eed77e53ba1042b2fdc1e63993b44696e1.zip
Merge branch 'hasse/dialyzer/fix_merge_plts/ERIERL-53/OTP-14558' into maint
* hasse/dialyzer/fix_merge_plts/ERIERL-53/OTP-14558: dialyzer: Do not fix ETS tables when merging PLTs
-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),