]> granicus.if.org Git - ejabberd/commitdiff
Use maps instead of dicts in HTTP upload modules
authorHolger Weiss <holger@zedat.fu-berlin.de>
Sat, 16 Jan 2016 00:30:22 +0000 (01:30 +0100)
committerHolger Weiss <holger@zedat.fu-berlin.de>
Sat, 16 Jan 2016 00:30:22 +0000 (01:30 +0100)
ejabberd currently depends on Erlang/OTP 17.1 or higher, so we can now
use maps.

src/mod_http_upload.erl
src/mod_http_upload_quota.erl

index a5e8e1726cd5b585340c3cf34ec95bba358dc869..36d3626be51b0309f07df5411a030bb100f25d60 100644 (file)
         get_url                :: binary(),
         service_url            :: binary() | undefined,
         thumbnail              :: boolean(),
-        slots = dict:new()     :: term()}). % dict:dict() requires Erlang 17.
+        slots = #{}            :: map()}).
 
 -record(media_info,
        {type   :: binary(),
@@ -676,18 +676,18 @@ create_slot(#state{service_url = ServiceURL},
 -spec add_slot(slot(), pos_integer(), timer:tref(), state()) -> state().
 
 add_slot(Slot, Size, Timer, #state{slots = Slots} = State) ->
-    NewSlots = dict:store(Slot, {Size, Timer}, Slots),
+    NewSlots = maps:put(Slot, {Size, Timer}, Slots),
     State#state{slots = NewSlots}.
 
 -spec get_slot(slot(), state()) -> {ok, {pos_integer(), timer:tref()}} | error.
 
 get_slot(Slot, #state{slots = Slots}) ->
-    dict:find(Slot, Slots).
+    maps:find(Slot, Slots).
 
 -spec del_slot(slot(), state()) -> state().
 
 del_slot(Slot, #state{slots = Slots} = State) ->
-    NewSlots = dict:erase(Slot, Slots),
+    NewSlots = maps:remove(Slot, Slots),
     State#state{slots = NewSlots}.
 
 -spec slot_el(slot() | binary(), state() | binary(), binary()) -> xmlel().
index eea23d34bf966d82efbde32cf6bbf2edd6764f93..db0b4aa4caf16267830d21f468ccaa288397590d 100644 (file)
@@ -62,7 +62,7 @@
         access_hard_quota              :: atom(),
         max_days                       :: pos_integer() | infinity,
         docroot                        :: binary(),
-        disk_usage = dict:new()        :: term(),
+        disk_usage = #{}               :: map(),
         timers                         :: [timer:tref()]}).
 
 -type state() :: #state{}.
@@ -172,7 +172,7 @@ handle_cast({handle_slot_request, #jid{user = U, server = S} = JID, Path, Size},
                    _ ->
                        0
                end,
-    OldSize = case dict:find({U, S}, DiskUsage) of
+    OldSize = case maps:find({U, S}, DiskUsage) of
                  {ok, Value} ->
                      Value;
                  error ->
@@ -202,7 +202,7 @@ handle_cast({handle_slot_request, #jid{user = U, server = S} = JID, Path, Size},
                      enforce_quota(Path, Size, OldSize, SoftQuota, HardQuota)
              end,
     NewDiskUsage = if is_integer(NewSize) ->
-                          dict:store({U, S}, NewSize, DiskUsage);
+                          maps:put({U, S}, NewSize, DiskUsage);
                      true ->
                           DiskUsage
                   end,