Fix infinite recursion on calculated master of multi variable
There was a infinite recursion between option.Multi.append() and config.Config._getattr() through config.Config.fill_multi() when calculating the master: - config.Config._getattr() -> config.Config.fill_multi() -> option.Multi.__init__() -> option.Multi.append() -> config.Config._getattr() * tiramisu/option.py (Multi.append): do not pass by config.Config._getattr(). * tiramisu/option.py (Multi.__init__): do not catch exception when appending. Ref: #4799 @8h
This commit is contained in:
parent
deaa0942ff
commit
064bed9efa
|
@ -58,10 +58,7 @@ class Multi(list):
|
|||
super(Multi, self).__init__(lst)
|
||||
# we add the slaves without modifying the master
|
||||
for l in lst:
|
||||
try:
|
||||
self.append(l, add_master=False)
|
||||
except Exception, err:
|
||||
print err
|
||||
self.append(l, add_master=False)
|
||||
else:
|
||||
if force_append:
|
||||
self.config._valid_len(self.opt._name, lst)
|
||||
|
@ -84,7 +81,8 @@ class Multi(list):
|
|||
except TypeError:
|
||||
self._setvalue(value, who=settings.get_owner())
|
||||
multis = []
|
||||
for name, multi in self.config:
|
||||
for opt in self.config._cfgimpl_descr._children:
|
||||
multi = self.config._cfgimpl_values[opt._name]
|
||||
multis.append(multi)
|
||||
for multi in multis:
|
||||
if master == multi.opt._name:
|
||||
|
|
Loading…
Reference in New Issue