From 5600a3a8a95b2ab5752beeab2aee73fe48e0564e Mon Sep 17 00:00:00 2001 From: Fabio Erculiani Date: Thu, 27 Oct 2011 14:47:30 +0200 Subject: [PATCH] [entropy.core] fix regression with SystemSettings metadata replacing CachingList() with list() --- lib/entropy/core/settings/base.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/entropy/core/settings/base.py b/lib/entropy/core/settings/base.py index 0c5b6c08a..9c32a8a3d 100644 --- a/lib/entropy/core/settings/base.py +++ b/lib/entropy/core/settings/base.py @@ -843,8 +843,8 @@ class SystemSettings(Singleton, EntropyPluginStore): """ return self.__generic_d_parser("license_accept_d", "license_accept") - def __generic_d_parser(self, setting_dirs_id, setting_id, validate = True, - parse_skipped = False): + def __generic_d_parser(self, setting_dirs_id, setting_id, + validate = True, parse_skipped = False): """ Generic parser used by _*_d_parser() functions. """ @@ -875,7 +875,15 @@ class SystemSettings(Singleton, EntropyPluginStore): content += self.__generic_parser(sett_file, comment_tag = self.__pkg_comment_tag) if setting_id is not None: - self.__data[setting_id] = content + # Always push out CachingList objects if + # metadata is not available in self.__data + # It doesn't harm to have it like this since + # CachingList is just a list(). + # Moreover, DO keep the same object and use + # extend rather than throwing it away. + self.__data.get( + setting_id, + SystemSettings.CachingList([])).extend(content) else: return content