| 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 /src/ataxic_optimize.erl | |
| parent | 19c17dcd229f28524d4ecd91e385803c16d95c00 (diff) | |
Diffstat (limited to 'src/ataxic_optimize.erl')
| -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, | 


