1 |
On 04/16/2016 09:51 AM, Zac Medico wrote: |
2 |
> On 03/29/2016 01:35 AM, Alexander Berntsen wrote: |
3 |
>> On 20/03/16 15:33, Adam Mills wrote: |
4 |
>>> + for set_name in root_config.sets: |
5 |
>>> + if set_name == "system": |
6 |
>>> + system = root_config.sets[set_name].findAtomForPackage( |
7 |
>>> + pkg, modified_use=self.conf.pkg_use_enabled(pkg)) |
8 |
>>> + elif set_name == "selected": |
9 |
>>> + world = root_config.sets[set_name].findAtomForPackage( |
10 |
>>> + pkg, modified_use=self.conf.pkg_use_enabled(pkg)) |
11 |
>>> + elif user_set is None and root_config.sets[set_name].isUserSet(): |
12 |
>>> + user_set = root_config.sets[set_name].findAtomForPackage( |
13 |
>>> + pkg, modified_use=self.conf.pkg_use_enabled(pkg)) |
14 |
>> This is really silly. At the very least try to not repeat yourself so |
15 |
>> much. |
16 |
> |
17 |
> In order to avoid the loop, all of the user sets could be combined into |
18 |
> a single InternalPackageSet instance, for indexing purposes. |
19 |
|
20 |
To clarify, a combined user sets InternalPackageSet instance will |
21 |
convert this from a O(N) sequential search loop to a O(1) hash table lookup. |
22 |
-- |
23 |
Thanks, |
24 |
Zac |