#\r
class DependencyExpression:\r
\r
- ArchProtocols = set([\r
+ ArchProtocols = {\r
'665e3ff6-46cc-11d4-9a38-0090273fc14d', # 'gEfiBdsArchProtocolGuid'\r
'26baccb1-6f42-11d4-bce7-0080c73c8881', # 'gEfiCpuArchProtocolGuid'\r
'26baccb2-6f42-11d4-bce7-0080c73c8881', # 'gEfiMetronomeArchProtocolGuid'\r
'6441f818-6362-4e44-b570-7dba31dd2453', # 'gEfiVariableWriteArchProtocolGuid'\r
'1e5668e2-8481-11d4-bcf1-0080c73c8881', # 'gEfiVariableArchProtocolGuid'\r
'665e3ff5-46cc-11d4-9a38-0090273fc14d' # 'gEfiWatchdogTimerArchProtocolGuid'\r
- ]\r
- )\r
+ }\r
\r
OpcodePriority = {\r
DEPEX_OPCODE_AND : 1,\r
\r
## Simply optimize the dependency expression by removing duplicated operands\r
def Optimize(self):\r
- ValidOpcode = list(set(self.OpcodeList))\r
- if len(ValidOpcode) != 1 or ValidOpcode[0] not in [DEPEX_OPCODE_AND, DEPEX_OPCODE_OR]:\r
+ OpcodeSet = set(self.OpcodeList)\r
+ # if there are isn't one in the set, return\r
+ if len(OpcodeSet) != 1:\r
+ return\r
+ Op = OpcodeSet.pop()\r
+ #if Op isn't either OR or AND, return\r
+ if Op not in [DEPEX_OPCODE_AND, DEPEX_OPCODE_OR]:\r
return\r
- Op = ValidOpcode[0]\r
NewOperand = []\r
AllOperand = set()\r
for Token in self.PostfixNotation:\r
# don't generate depex if all operands are architecture protocols\r
if self.ModuleType in [SUP_MODULE_UEFI_DRIVER, SUP_MODULE_DXE_DRIVER, SUP_MODULE_DXE_RUNTIME_DRIVER, SUP_MODULE_DXE_SAL_DRIVER, SUP_MODULE_DXE_SMM_DRIVER, SUP_MODULE_MM_STANDALONE] and \\r
Op == DEPEX_OPCODE_AND and \\r
- self.ArchProtocols == set([GuidStructureStringToGuidString(Guid) for Guid in AllOperand]):\r
+ self.ArchProtocols == set(GuidStructureStringToGuidString(Guid) for Guid in AllOperand):\r
self.PostfixNotation = []\r
return\r
\r
os.utime(Option.OutputFile, None)\r
else:\r
Dpx.Generate()\r
- except BaseException, X:\r
+ except BaseException as X:\r
EdkLogger.quiet("")\r
if Option is not None and Option.debug is not None:\r
EdkLogger.quiet(traceback.format_exc())\r