From 63777f830d912bb129e32242a23b74d917b6f080 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Sat, 16 Jan 2016 01:30:22 +0100 Subject: [PATCH] Use maps instead of dicts in HTTP upload modules ejabberd currently depends on Erlang/OTP 17.1 or higher, so we can now use maps. --- src/mod_http_upload.erl | 8 ++++---- src/mod_http_upload_quota.erl | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/mod_http_upload.erl b/src/mod_http_upload.erl index a5e8e1726..36d3626be 100644 --- a/src/mod_http_upload.erl +++ b/src/mod_http_upload.erl @@ -108,7 +108,7 @@ 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(). diff --git a/src/mod_http_upload_quota.erl b/src/mod_http_upload_quota.erl index eea23d34b..db0b4aa4c 100644 --- a/src/mod_http_upload_quota.erl +++ b/src/mod_http_upload_quota.erl @@ -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, -- 2.40.0