diff options
author | Stavros Aronis <[email protected]> | 2012-02-17 17:18:47 +0100 |
---|---|---|
committer | Henrik Nord <[email protected]> | 2012-05-21 15:31:17 +0200 |
commit | b8e96486af6b63c20cefd8af788a8e275a9d8e53 (patch) | |
tree | 2b907fa52ca8af07d399521129e22ec6077f2d43 /lib/dialyzer/src/dialyzer_races.erl | |
parent | 7640a30bbd0a45ccea356bd9f9393c445471cbc4 (diff) | |
download | otp-b8e96486af6b63c20cefd8af788a8e275a9d8e53.tar.gz otp-b8e96486af6b63c20cefd8af788a8e275a9d8e53.tar.bz2 otp-b8e96486af6b63c20cefd8af788a8e275a9d8e53.zip |
Separate race related fields of callgraph
Diffstat (limited to 'lib/dialyzer/src/dialyzer_races.erl')
-rw-r--r-- | lib/dialyzer/src/dialyzer_races.erl | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/dialyzer/src/dialyzer_races.erl b/lib/dialyzer/src/dialyzer_races.erl index 89b45990d9..cdb9f25999 100644 --- a/lib/dialyzer/src/dialyzer_races.erl +++ b/lib/dialyzer/src/dialyzer_races.erl @@ -347,6 +347,7 @@ fixup_race_list(RaceWarnTag, WarnVarArgs, State) -> DepList2 = fixup_race_list_helper(NewParents, Calls, CurrFun, WarnVarArgs, RaceWarnTag, NewState), + dialyzer_dataflow:dispose_state(CleanState), lists:usort(cleanup_dep_calls(DepList1 ++ DepList2)). fixup_race_list_helper(Parents, Calls, CurrFun, WarnVarArgs, RaceWarnTag, @@ -381,13 +382,15 @@ fixup_race_forward_pullout(CurrFun, CurrFunLabel, Calls, Code, RaceList, InitFun, WarnVarArgs, RaceWarnTag, RaceVarMap, FunDefVars, FunCallVars, FunArgTypes, NestingLevel, State) -> + TState = dialyzer_dataflow:state__duplicate(State), {DepList, NewCurrFun, NewCurrFunLabel, NewCalls, NewCode, NewRaceList, NewRaceVarMap, NewFunDefVars, NewFunCallVars, NewFunArgTypes, NewNestingLevel} = fixup_race_forward(CurrFun, CurrFunLabel, Calls, Code, RaceList, InitFun, WarnVarArgs, RaceWarnTag, RaceVarMap, FunDefVars, FunCallVars, FunArgTypes, NestingLevel, - cleanup_race_code(State)), + cleanup_race_code(TState)), + dialyzer_dataflow:dispose_state(TState), case NewCode of [] -> DepList; [#fun_call{caller = NewCurrFun, callee = Call, arg_types = FunTypes, |