diff options
| author | Robin Morisset <rmorisset@fb.com> | 2022-10-11 15:45:15 +0200 |
|---|---|---|
| committer | Robin Morisset <rmorisset@fb.com> | 2022-10-17 17:21:58 +0200 |
| commit | 8134a8078433d46acb4e20df98ec7939845567e3 (patch) | |
| tree | 3c3bb77f653a73cba46e15fa6c6699f61376114c /lib/asn1 | |
| parent | e8f26bba73949dc0eb8a49516a7191ffebfd6487 (diff) | |
| download | erlang-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.erl | 11 |
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}. |
