data.emit_var() - only call getVar if we need the variable
authorRichard Purdie <rpurdie@linux.intel.com>
Tue, 31 Jul 2007 13:09:51 +0000 (13:09 +0000)
committerRichard Purdie <rpurdie@linux.intel.com>
Tue, 31 Jul 2007 13:09:51 +0000 (13:09 +0000)
ChangeLog
lib/bb/data.py

index 2acac58..fd99849 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,6 +6,7 @@ Changes in Bitbake 1.8.x:
        - Import persistent data store from trunk
        - Sync fetcher code with that in trunk, adding SRCREV support for svn
        - Add ConfigParsed Event after configuration parsing is complete
+       - data.emit_var() - only call getVar if we need the variable
 
 Changes in Bitbake 1.8.6:
        - Correctly redirect stdin when forking
index 14f1d89..9782c9f 100644 (file)
@@ -337,6 +337,12 @@ def emit_var(var, o=sys.__stdout__, d = init(), all=False):
     if getVarFlag(var, "python", d):
         return 0
 
+    export = getVarFlag(var, "export", d)
+    unexport = getVarFlag(var, "unexport", d)
+    func = getVarFlag(var, "func", d)
+    if not all and not export and not unexport and not func:
+        return 0
+
     try:
         if all:
             oval = getVar(var, d, 0)
@@ -362,28 +368,28 @@ def emit_var(var, o=sys.__stdout__, d = init(), all=False):
     if (var.find("-") != -1 or var.find(".") != -1 or var.find('{') != -1 or var.find('}') != -1 or var.find('+') != -1) and not all:
         return 0
 
+    varExpanded = expand(var, d)
+
+    if unexport:
+        o.write('unset %s\n' % varExpanded)
+        return 1
+
     val.rstrip()
     if not val:
         return 0
-       
-    varExpanded = expand(var, d)
 
-    if getVarFlag(var, "func", d):
-#       NOTE: should probably check for unbalanced {} within the var
+    if func:
+        # NOTE: should probably check for unbalanced {} within the var
         o.write("%s() {\n%s\n}\n" % (varExpanded, val))
-    else:
-        if getVarFlag(var, "unexport", d):
-            o.write('unset %s\n' % varExpanded)
-            return 1
-        if getVarFlag(var, "export", d):
-            o.write('export ')
-        else:
-            if not all:
-                return 0
-#       if we're going to output this within doublequotes,
-#       to a shell, we need to escape the quotes in the var
-        alter = re.sub('"', '\\"', val.strip())
-        o.write('%s="%s"\n' % (varExpanded, alter))
+        return 1
+
+    if export:
+        o.write('export ')
+
+    # if we're going to output this within doublequotes,
+    # to a shell, we need to escape the quotes in the var
+    alter = re.sub('"', '\\"', val.strip())
+    o.write('%s="%s"\n' % (varExpanded, alter))
     return 1