Fix memory leak in setLang cache of BrowseRecord for issue1025

This commit is contained in:
Cédric Krier committed 2009-05-21 12:21:42 +02:00
1 parent 365bfef747
commit 25adb99165
1 file changed
+9 -6
+9 -6
View File
@@ -55,9 +55,9 @@ class BrowseRecord(object):
self._model = model
self._model_name = self._model._name
self._context = context or {}
self._language_cache = {}
cache.setdefault(model._name, {})
cache.setdefault('_language_cache', {})
self._data = cache[model._name]
if not record_id in self._data:
self._data[record_id] = {'id': record_id}
@@ -191,16 +191,19 @@ class BrowseRecord(object):
self._context = self._context.copy()
prev_lang = self._context.get('language') or 'en_US'
self._context['language'] = lang
language_cache = self._cache['_language_cache']
for model in self._cache:
if model == '_language_cache':
continue
for record_id in self._cache[model]:
self._language_cache.setdefault(prev_lang,
language_cache.setdefault(prev_lang,
{}).setdefault(model, {})[record_id] = \
self._cache[model][record_id]
if lang in self._language_cache \
and model in self._language_cache[lang] \
and record_id in self._language_cache[lang][model]:
if lang in language_cache \
and model in language_cache[lang] \
and record_id in language_cache[lang][model]:
self._cache[model][record_id] = \
self._language_cache[lang][model][record_id]
language_cache[lang][model][record_id]
else:
self._cache[model][record_id] = {'id': record_id}