From 6ea24f04cd635295d826f03d9c7d8a08cc1d5b31 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 23 Feb 2011 11:48:01 +0000 Subject: bitbake/data_smart: Improve the way lazyassignment works Currently, if a variable has been set with ??= and the code looks it up before the data finalisation phase, no value is found. This is causes serious problems for anonymous python functions which manipulate data, or for the fetcher revision handling code where revisions can be set with ??=. There is also a significant performance implication for processing lazy assignment in finalise. Moving the check for a default value into getVarFlag addresses both the timing issue and the performace. This change gives a 7% real time performance improvement to parsing the Poky metadata. The cost of the check at this point is minimal since we have all the data flags available. This should also fix Yocto bug 752. Signed-off-by: Richard Purdie --- bitbake/lib/bb/parse/ast.py | 8 -------- 1 file changed, 8 deletions(-) (limited to 'bitbake/lib/bb/parse') diff --git a/bitbake/lib/bb/parse/ast.py b/bitbake/lib/bb/parse/ast.py index 8fffe1e8f0..b968db40b3 100644 --- a/bitbake/lib/bb/parse/ast.py +++ b/bitbake/lib/bb/parse/ast.py @@ -115,9 +115,6 @@ class DataNode(AstNode): if 'flag' in groupd and groupd['flag'] != None: bb.data.setVarFlag(key, groupd['flag'], val, data) elif groupd["lazyques"]: - assigned = bb.data.getVar("__lazy_assigned", data) or [] - assigned.append(key) - bb.data.setVar("__lazy_assigned", assigned, data) bb.data.setVarFlag(key, "defaultval", val, data) else: bb.data.setVar(key, val, data) @@ -310,11 +307,6 @@ def handleInherit(statements, filename, lineno, m): statements.append(InheritNode(filename, lineno, classes.split())) def finalize(fn, d, variant = None): - for lazykey in bb.data.getVar("__lazy_assigned", d) or (): - if bb.data.getVar(lazykey, d) is None: - val = bb.data.getVarFlag(lazykey, "defaultval", d) - bb.data.setVar(lazykey, val, d) - bb.data.expandKeys(d) bb.data.update_data(d) code = [] -- cgit v1.2.3-54-g00ecf