summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/bb/data_smart.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/bb/data_smart.py b/lib/bb/data_smart.py
index 85412b2a8..99f55cf4b 100644
--- a/lib/bb/data_smart.py
+++ b/lib/bb/data_smart.py
@@ -530,7 +530,13 @@ class DataSmart(MutableMapping):
self._setvar_update_overridevars(var, value)
def _setvar_update_overridevars(self, var, value):
- self.overridevars.update(self.expandWithRefs(value, var).references)
+ new = self.expandWithRefs(value, var).references
+ while not new.issubset(self.overridevars):
+ nextnew = set()
+ self.overridevars.update(new)
+ for i in new:
+ nextnew.update(self.expandWithRefs(self.getVar(i, True), i).references)
+ new = nextnew
self.internal_finalize(True)
def _setvar_update_overrides(self, var, **loginfo):