| summaryrefslogtreecommitdiff |
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-05-26 12:07:10 +0200 |
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-05-26 12:07:10 +0200 |
| commit | 7e7b1dda9103a335aefe4f163366325afa9b4d2a (patch) | |
| tree | e97095131e901c689eebf0a95c41e265fb91f7cc | |
| parent | 19c17dcd229f28524d4ecd91e385803c16d95c00 (diff) | |
| -rw-r--r-- | src/ataxic_optimize.erl | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/src/ataxic_optimize.erl b/src/ataxic_optimize.erl index b1dc048..5d55feb 100644 --- a/src/ataxic_optimize.erl +++ b/src/ataxic_optimize.erl @@ -29,6 +29,7 @@ remove_overridden_operations (List) -> {ok, L} -> case Elem of #const{} -> {done, [Elem|L]}; + #current{} -> {ok, L}; _ -> {ok, [Elem|L]} end end @@ -209,12 +210,12 @@ optimize_update_orddict_sequence (List) -> [ #apply_fun { - module = orddict, - function = fetch, - params = [ConstIX2, #current{}] - }, - _ - ] + module = orddict, + function = fetch, + params = [ConstIX2, #current{}] + }, + _ + ] } -> (ConstIX1 == ConstIX2); _ -> false end; @@ -229,8 +230,13 @@ optimize_update_orddict_sequence (List) -> end, fun ataxic_sugar:update_orddict_element/2, fun (E) -> - [_,OP|_] = E#apply_fun.params, - OP + [_,StoreOP|_] = E#apply_fun.params, + case StoreOP of + #const{} -> StoreOP; + #seq{ ops = [_FetchOP|ActualUpdateOP]} -> + ataxic:sequence(ActualUpdateOP); + _ -> error(bad_optimize) + end end, fun (E) -> [#const{ value = IX }|_] = E#apply_fun.params, |


