summaryrefslogtreecommitdiff
path: root/lib/access.c
diff options
context:
space:
mode:
authorJean Delvare <khali@linux-fr.org>2007-09-05 08:19:09 +0000
committerJean Delvare <khali@linux-fr.org>2007-09-05 08:19:09 +0000
commit7975800ac118ac503b3db6fa56ed9e3745611abc (patch)
tree5e4c324386b8696d5096159f49034a3ef3ed98e6 /lib/access.c
parent20c98f41b7f76b9b7282bb4c58a959f593f0a1cf (diff)
downloadlm-sensors-git-7975800ac118ac503b3db6fa56ed9e3745611abc.tar.gz
Renumber the features linearly, so that feature number N is at
position N in the array. This allows for O(1) look-ups, as opposed to O(N) before. This makes sensors_lookup_feature_nr() 2.4 times faster in my real-world tests, resulting in a 6% performance boost on average in the runtime part of "sensors". git-svn-id: http://lm-sensors.org/svn/lm-sensors/branches/lm-sensors-3.0.0@4759 7894878c-1315-0410-8ee3-d5d059ff63e0
Diffstat (limited to 'lib/access.c')
-rw-r--r--lib/access.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/lib/access.c b/lib/access.c
index 50f7f230..a784579b 100644
--- a/lib/access.c
+++ b/lib/access.c
@@ -92,15 +92,11 @@ sensors_for_all_config_chips(const sensors_chip_name *name,
const sensors_chip_feature *sensors_lookup_feature_nr(const sensors_chip_name *chip,
int feature)
{
- int i, j;
- const sensors_chip_feature *features;
+ int i;
for (i = 0; i < sensors_proc_chips_count; i++)
if (sensors_match_chip(&sensors_proc_chips[i].chip, chip)) {
- features = sensors_proc_chips[i].feature;
- for (j = 0; features[j].data.name; j++)
- if (features[j].data.number == feature)
- return features + j;
+ return sensors_proc_chips[i].feature + feature;
}
return NULL;
}