perf(config): ensure root keys of 'conf' config is atom

This commit is contained in:
William Yang 2023-04-17 16:52:15 +02:00
parent 8e7ba2b6d1
commit ce6343a4f3
1 changed files with 5 additions and 5 deletions

View File

@ -232,14 +232,14 @@ find_listener_conf(Type, Listener, KeyPath) ->
put(Config) -> put(Config) ->
maps:fold( maps:fold(
fun(RootName, RootValue, _) -> fun(RootName, RootValue, _) ->
?MODULE:put([RootName], RootValue) ?MODULE:put([atom(RootName)], RootValue)
end, end,
ok, ok,
Config Config
). ).
erase(RootName) -> erase(RootName) ->
persistent_term:erase(?PERSIS_KEY(?CONF, bin(RootName))), persistent_term:erase(?PERSIS_KEY(?CONF, atom(RootName))),
persistent_term:erase(?PERSIS_KEY(?RAW_CONF, bin(RootName))), persistent_term:erase(?PERSIS_KEY(?RAW_CONF, bin(RootName))),
ok. ok.
@ -689,9 +689,9 @@ do_get(Type, [], Default) ->
false -> AllConf false -> AllConf
end; end;
do_get(Type, [RootName], Default) -> do_get(Type, [RootName], Default) ->
persistent_term:get(?PERSIS_KEY(Type, bin(RootName)), Default); persistent_term:get(?PERSIS_KEY(Type, RootName), Default);
do_get(Type, [RootName | KeyPath], Default) -> do_get(Type, [RootName | KeyPath], Default) ->
RootV = persistent_term:get(?PERSIS_KEY(Type, bin(RootName)), #{}), RootV = persistent_term:get(?PERSIS_KEY(Type, RootName), #{}),
do_deep_get(Type, KeyPath, RootV, Default). do_deep_get(Type, KeyPath, RootV, Default).
do_put(Type, Putter, [], DeepValue) -> do_put(Type, Putter, [], DeepValue) ->
@ -705,7 +705,7 @@ do_put(Type, Putter, [], DeepValue) ->
do_put(Type, Putter, [RootName | KeyPath], DeepValue) -> do_put(Type, Putter, [RootName | KeyPath], DeepValue) ->
OldValue = do_get(Type, [RootName], #{}), OldValue = do_get(Type, [RootName], #{}),
NewValue = do_deep_put(Type, Putter, KeyPath, OldValue, DeepValue), NewValue = do_deep_put(Type, Putter, KeyPath, OldValue, DeepValue),
persistent_term:put(?PERSIS_KEY(Type, bin(RootName)), NewValue). persistent_term:put(?PERSIS_KEY(Type, RootName), NewValue).
do_deep_get(?CONF, KeyPath, Map, Default) -> do_deep_get(?CONF, KeyPath, Map, Default) ->
atom_conf_path( atom_conf_path(