Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:23
erlang
7151-dialyzer-Simplify-ets-usage.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 7151-dialyzer-Simplify-ets-usage.patch of Package erlang
From f878ebb6c14ecafaf18bec551f83628c24ec247f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Muska=C5=82a?= <micmus@fb.com> Date: Fri, 2 Jun 2023 14:29:31 +0100 Subject: [PATCH] [dialyzer] Simplify ets usage This simplifies ets:lookup + ets:delete into ets:take calls. Removing one call to ets should be beneficial in terms of performance. --- lib/dialyzer/src/dialyzer_cplt.erl | 3 +-- lib/dialyzer/src/dialyzer_plt.erl | 3 +-- lib/dialyzer/src/dialyzer_utils.erl | 3 +-- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/lib/dialyzer/src/dialyzer_plt.erl b/lib/dialyzer/src/dialyzer_plt.erl index f58c84da25..203eafc3c2 100644 --- a/lib/dialyzer/src/dialyzer_plt.erl +++ b/lib/dialyzer/src/dialyzer_plt.erl @@ -371,9 +371,8 @@ tab_merge('$end_of_table', T1, T2) -> tab_merge(Key, T1, T2) end; tab_merge(K1, T1, T2) -> - Vs = ets:lookup(T1, K1), NextK1 = ets:next(T1, K1), - true = ets:delete(T1, K1), + Vs = ets:take(T1, K1), true = ets:insert(T2, Vs), tab_merge(NextK1, T1, T2). diff --git a/lib/dialyzer/src/dialyzer_utils.erl b/lib/dialyzer/src/dialyzer_utils.erl index b920d22b30..7282cee1a7 100644 --- a/lib/dialyzer/src/dialyzer_utils.erl +++ b/lib/dialyzer/src/dialyzer_utils.erl @@ -1179,9 +1179,8 @@ ets_take('$end_of_table', T, F, A) -> Key -> ets_take(Key, T, F, A) end; ets_take(Key, T, F, A) -> - Vs = ets:lookup(T, Key), Key1 = ets:next(T, Key), - true = ets:delete(T, Key), + Vs = ets:take(T, Key), ets_take(Key1, T, F, F(Vs, A)). -spec parallelism() -> integer(). -- 2.35.3
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor