diff options
author | Kostis Sagonas <[email protected]> | 2010-02-16 16:33:11 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2010-02-16 16:18:41 +0100 |
commit | abe48c24c115fd629063653eef7bdabd0f82fbbc (patch) | |
tree | 09280e163873b801da7802eb2c718d0726ab4b13 /lib/dialyzer/src/dialyzer_dataflow.erl | |
parent | 8b7dd064e2d44b600f05a9135aac08a539a19ffa (diff) | |
download | otp-abe48c24c115fd629063653eef7bdabd0f82fbbc.tar.gz otp-abe48c24c115fd629063653eef7bdabd0f82fbbc.tar.bz2 otp-abe48c24c115fd629063653eef7bdabd0f82fbbc.zip |
dialyzer: Fix system_limit exception in race analysis
dialyzer_callgraph:
Avoid creation of too many ets tables by the race analysis.
dialyzer_dataflow:
The digraph returned by the race analysis should not be the
translated one.
Diffstat (limited to 'lib/dialyzer/src/dialyzer_dataflow.erl')
-rw-r--r-- | lib/dialyzer/src/dialyzer_dataflow.erl | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/dialyzer/src/dialyzer_dataflow.erl b/lib/dialyzer/src/dialyzer_dataflow.erl index 7fb309497a..dada88c8bf 100644 --- a/lib/dialyzer/src/dialyzer_dataflow.erl +++ b/lib/dialyzer/src/dialyzer_dataflow.erl @@ -291,10 +291,16 @@ analyze_module(Tree, Plt, Callgraph, Records, GetWarnings) -> case BehaviourTranslations of [] -> dialyzer_races:race(State5); Behaviours -> + Callgraph2 = State5#state.callgraph, + Digraph = dialyzer_callgraph:get_digraph(Callgraph2), TranslatedCallgraph = dialyzer_behaviours:translate_callgraph(Behaviours, Module, - State5#state.callgraph), - dialyzer_races:race(State5#state{callgraph = TranslatedCallgraph}) + Callgraph2), + St = + dialyzer_races:race(State5#state{callgraph = TranslatedCallgraph}), + Callgraph3 = dialyzer_callgraph:put_digraph(Digraph, + St#state.callgraph), + St#state{callgraph = Callgraph3} end; false -> state__restore_race_code( |