public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Zhu, Yonghong" <yonghong.zhu@intel.com>
To: "Carsey, Jaben" <jaben.carsey@intel.com>,
	"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Cc: "Gao, Liming" <liming.gao@intel.com>,
	"Zhu, Yonghong" <yonghong.zhu@intel.com>
Subject: Re: [PATCH v1 1/1] BaseTools: AutoGen - change class variable to funciton variable
Date: Tue, 24 Jul 2018 07:24:09 +0000	[thread overview]
Message-ID: <B9726D6DCCFB8B4CA276A9169B02216D520C3BBB@SHSMSX103.ccr.corp.intel.com> (raw)
In-Reply-To: <e1d64b508fcb4e4db28c0abac869e5c54b9c074f.1532023032.git.jaben.carsey@intel.com>

Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com> 

Best Regards,
Zhu Yonghong

-----Original Message-----
From: Carsey, Jaben 
Sent: Friday, July 20, 2018 1:58 AM
To: edk2-devel@lists.01.org
Cc: Gao, Liming <liming.gao@intel.com>; Zhu, Yonghong <yonghong.zhu@intel.com>
Subject: [PATCH v1 1/1] BaseTools: AutoGen - change class variable to funciton variable

This variable is only used in one function, make it local there.
Also when iterating on the variable, use dict.items() to get value instead of re-looking up the value multiple times.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
---
 BaseTools/Source/Python/AutoGen/GenMake.py | 25 ++++++++++----------
 1 file changed, 12 insertions(+), 13 deletions(-)

diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py b/BaseTools/Source/Python/AutoGen/GenMake.py
index 992de5490dff..f1fe5514f3f2 100644
--- a/BaseTools/Source/Python/AutoGen/GenMake.py
+++ b/BaseTools/Source/Python/AutoGen/GenMake.py
@@ -435,7 +435,6 @@ cleanlib:
         self.ListFileMacros = {}
 
         self.FileCache = {}
-        self.FileDependency = []
         self.LibraryBuildCommandList = []
         self.LibraryFileList = []
         self.LibraryMakefileList = []
@@ -890,26 +889,26 @@ cleanlib:
                 if Item in SourceFileList:
                     SourceFileList.remove(Item)
 
-        self.FileDependency = self.GetFileDependency(
+        FileDependencyDict = self.GetFileDependency(
                                     SourceFileList,
                                     ForceIncludedFile,
                                     self._AutoGenObject.IncludePathList + self._AutoGenObject.BuildOptionIncPathList
                                     )
         DepSet = None
-        for File in self.FileDependency:
-            if not self.FileDependency[File]:
-                self.FileDependency[File] = ['$(FORCE_REBUILD)']
+        for File,Dependency in FileDependencyDict.items():
+            if not Dependency:
+                FileDependencyDict[File] = ['$(FORCE_REBUILD)']
                 continue
 
-            self._AutoGenObject.AutoGenDepSet |= set(self.FileDependency[File])
+            self._AutoGenObject.AutoGenDepSet |= set(Dependency)
 
             # skip non-C files
             if File.Ext not in [".c", ".C"] or File.Name == "AutoGen.c":
                 continue
             elif DepSet is None:
-                DepSet = set(self.FileDependency[File])
+                DepSet = set(Dependency)
             else:
-                DepSet &= set(self.FileDependency[File])
+                DepSet &= set(Dependency)
         # in case nothing in SourceFileList
         if DepSet is None:
             DepSet = set()
@@ -919,13 +918,13 @@ cleanlib:
         for File in DepSet:
             self.CommonFileDependency.append(self.PlaceMacro(File.Path, self.Macros))
 
-        for File in self.FileDependency:
+        for File in FileDependencyDict:
             # skip non-C files
             if File.Ext not in [".c", ".C"] or File.Name == "AutoGen.c":
                 continue
-            NewDepSet = set(self.FileDependency[File])
+            NewDepSet = set(FileDependencyDict[File])
             NewDepSet -= DepSet
-            self.FileDependency[File] = ["$(COMMON_DEPS)"] + list(NewDepSet)
+            FileDependencyDict[File] = ["$(COMMON_DEPS)"] + 
+ list(NewDepSet)
 
         # Convert target description object to target string in makefile
         for Type in self._AutoGenObject.Targets:
@@ -943,8 +942,8 @@ cleanlib:
                 for Dep in T.Dependencies:
                     Deps.append(self.PlaceMacro(str(Dep), self.Macros))
                 # Add inclusion-dependencies
-                if len(T.Inputs) == 1 and T.Inputs[0] in self.FileDependency:
-                    for F in self.FileDependency[T.Inputs[0]]:
+                if len(T.Inputs) == 1 and T.Inputs[0] in FileDependencyDict:
+                    for F in FileDependencyDict[T.Inputs[0]]:
                         Deps.append(self.PlaceMacro(str(F), self.Macros))
                 # Add source-dependencies
                 for F in T.Inputs:
--
2.16.2.windows.1



      reply	other threads:[~2018-07-24  7:24 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <cover.1532023032.git.jaben.carsey@intel.com>
2018-07-19 17:57 ` [PATCH v1 1/1] BaseTools: AutoGen - change class variable to funciton variable Jaben Carsey
2018-07-24  7:24   ` Zhu, Yonghong [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=B9726D6DCCFB8B4CA276A9169B02216D520C3BBB@SHSMSX103.ccr.corp.intel.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox