summaryrefslogtreecommitdiff
path: root/lib/asn1
diff options
context:
space:
mode:
authorRobin Morisset <rmorisset@fb.com>2022-10-11 15:45:15 +0200
committerRobin Morisset <rmorisset@fb.com>2022-10-17 17:21:58 +0200
commit8134a8078433d46acb4e20df98ec7939845567e3 (patch)
tree3c3bb77f653a73cba46e15fa6c6699f61376114c /lib/asn1
parente8f26bba73949dc0eb8a49516a7191ffebfd6487 (diff)
downloaderlang-8134a8078433d46acb4e20df98ec7939845567e3.tar.gz
Replace some uses of ets:lookup by ets:lookup_element in the stdlib
When only one field of an ETS record is needed, using ets:lookup_element is usually faster than ets:lookup. This patch makes sure that we do so whenever possible, taking advantage of the recently landed ets:lookup_element/4 (https://github.com/erlang/otp/pull/6234) in places.
Diffstat (limited to 'lib/asn1')
-rw-r--r--lib/asn1/src/asn1_db.erl11
1 files changed, 4 insertions, 7 deletions
diff --git a/lib/asn1/src/asn1_db.erl b/lib/asn1/src/asn1_db.erl
index 7486fa2db9..28c1fc4563 100644
--- a/lib/asn1/src/asn1_db.erl
+++ b/lib/asn1/src/asn1_db.erl
@@ -82,11 +82,11 @@ loop(#state{parent = Parent, monitor = MRef, table = Table,
includes = Includes} = State) ->
receive
{set, Mod, K2, V} ->
- [{_, Modtab}] = ets:lookup(Table, Mod),
+ Modtab = ets:lookup_element(Table, Mod, 2),
ets:insert(Modtab, {K2, V}),
loop(State);
{set, Mod, Kvs} ->
- [{_, Modtab}] = ets:lookup(Table, Mod),
+ Modtab = ets:lookup_element(Table, Mod, 2),
ets:insert(Modtab, Kvs),
loop(State);
{From, {get, Mod, K2}} ->
@@ -105,7 +105,7 @@ loop(#state{parent = Parent, monitor = MRef, table = Table,
end,
loop(State);
{save, OutFile, Mod} ->
- [{_,Mtab}] = ets:lookup(Table, Mod),
+ Mtab = ets:lookup_element(Table, Mod, 2),
TempFile = OutFile ++ ".#temp",
ok = ets:tab2file(Mtab, TempFile),
ok = file:rename(TempFile, OutFile),
@@ -146,10 +146,7 @@ get_table(Table, Mod, Includes) ->
end.
lookup(Tab, K) ->
- case ets:lookup(Tab, K) of
- [] -> undefined;
- [{K,V}] -> V
- end.
+ ets:lookup_element(Tab, K, 2, undefined).
info(EruleMaps) ->
{asn1ct:vsn(),EruleMaps}.