diff options
author | Stavros Aronis <aronisstav@gmail.com> | 2012-02-16 16:03:51 +0100 |
---|---|---|
committer | Henrik Nord <henrik@erlang.org> | 2012-05-21 15:31:17 +0200 |
commit | ffadf7f6f8a113fbcc42a2be36d2dd5c841d48e3 (patch) | |
tree | a81087857f76805ac1f0dd56daa658b7956cc57a /lib/dialyzer/src/dialyzer_dataflow.erl | |
parent | e6fa01359a41d3b054260d01d2880820c867ca2b (diff) | |
download | otp-ffadf7f6f8a113fbcc42a2be36d2dd5c841d48e3.tar.gz otp-ffadf7f6f8a113fbcc42a2be36d2dd5c841d48e3.tar.bz2 otp-ffadf7f6f8a113fbcc42a2be36d2dd5c841d48e3.zip |
Moving code between callgraph & dataflow
Diffstat (limited to 'lib/dialyzer/src/dialyzer_dataflow.erl')
-rw-r--r-- | lib/dialyzer/src/dialyzer_dataflow.erl | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/lib/dialyzer/src/dialyzer_dataflow.erl b/lib/dialyzer/src/dialyzer_dataflow.erl index bd375b04fa..ad07524fa6 100644 --- a/lib/dialyzer/src/dialyzer_dataflow.erl +++ b/lib/dialyzer/src/dialyzer_dataflow.erl @@ -358,16 +358,7 @@ analyze_loop(#state{callgraph = Callgraph, races = Races} = State) -> t_to_string(t_fun(ArgTypes, BodyType))]), NewState5 = case RaceDetection andalso RaceAnalysis of - true -> - Races1 = NewState4#state.races, - Code = lists:reverse(dialyzer_races:get_race_list(Races1)), - Callgraph1 = - renew_code(dialyzer_races:get_curr_fun(Races1), - dialyzer_races:get_curr_fun_args(Races1), - Code, - state__warning_mode(NewState4), - NewState4#state.callgraph), - NewState4#state{callgraph = Callgraph1}; + true -> renew_race_code(NewState4); false -> NewState4 end, NewState6 = @@ -3342,13 +3333,13 @@ state__records_only(#state{records = Records}) -> %%% %%% =========================================================================== -renew_code(Fun, FunArgs, Code, WarningMode, Callgraph) -> +renew_race_code(#state{races = Races, callgraph = Callgraph, + warning_mode = WarningMode} = State) -> case WarningMode of - true -> Callgraph; + true -> State; false -> - RaceCode = dialyzer_callgraph:get_race_code(Callgraph), - dialyzer_callgraph:put_race_code( - dict:store(Fun, [FunArgs, Code], RaceCode), Callgraph) + NewCallgraph = dialyzer_callgraph:renew_race_code(Races, Callgraph), + State#state{callgraph = NewCallgraph} end. renew_public_tables([Var], Table, WarningMode, Callgraph) -> |