since we never access the values in the copied dict, just use a list instead.

Cc: Liming Gao <[email protected]>
Cc: Yonghong Zhu <[email protected]>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jaben Carsey <[email protected]>
---
 BaseTools/Source/Python/Common/ToolDefClassObject.py | 5 +++--
 BaseTools/Source/Python/GenFds/GenFds.py             | 2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/BaseTools/Source/Python/Common/ToolDefClassObject.py 
b/BaseTools/Source/Python/Common/ToolDefClassObject.py
index 73ebdaf6b179..49b24ef780c7 100644
--- a/BaseTools/Source/Python/Common/ToolDefClassObject.py
+++ b/BaseTools/Source/Python/Common/ToolDefClassObject.py
@@ -92,7 +92,9 @@ class ToolDefClassObject(object):
 
         KeyList = [TAB_TOD_DEFINES_TARGET, TAB_TOD_DEFINES_TOOL_CHAIN_TAG, 
TAB_TOD_DEFINES_TARGET_ARCH, TAB_TOD_DEFINES_COMMAND_TYPE]
         for Index in range(3, -1, -1):
-            for Key in dict(self.ToolsDefTxtDictionary):
+            # make a copy of the keys to enumerate over to prevent issues when 
+            # adding/removing items from the original dict.
+            for Key in list(self.ToolsDefTxtDictionary.keys()):
                 List = Key.split('_')
                 if List[Index] == '*':
                     for String in self.ToolsDefTxtDatabase[KeyList[Index]]:
@@ -100,7 +102,6 @@ class ToolDefClassObject(object):
                         NewKey = '%s_%s_%s_%s_%s' % tuple(List)
                         if NewKey not in self.ToolsDefTxtDictionary:
                             self.ToolsDefTxtDictionary[NewKey] = 
self.ToolsDefTxtDictionary[Key]
-                        continue
                     del self.ToolsDefTxtDictionary[Key]
                 elif List[Index] not in 
self.ToolsDefTxtDatabase[KeyList[Index]]:
                     del self.ToolsDefTxtDictionary[Key]
diff --git a/BaseTools/Source/Python/GenFds/GenFds.py 
b/BaseTools/Source/Python/GenFds/GenFds.py
index 54c7d828305f..74017e72629b 100644
--- a/BaseTools/Source/Python/GenFds/GenFds.py
+++ b/BaseTools/Source/Python/GenFds/GenFds.py
@@ -428,7 +428,7 @@ def FindExtendTool(KeyStringList, CurrentArchList, 
NameGuid):
         if BuildOption:
             ToolList = [TAB_TOD_DEFINES_TARGET, 
TAB_TOD_DEFINES_TOOL_CHAIN_TAG, TAB_TOD_DEFINES_TARGET_ARCH]
             for Index in range(2, -1, -1):
-                for Key in dict(BuildOption):
+                for Key in list(BuildOption.keys()):
                     List = Key.split('_')
                     if List[Index] == '*':
                         for String in ToolDb[ToolList[Index]]:
-- 
2.16.2.windows.1

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to