import re\r
import traceback\r
from Common.LongFilePathSupport import OpenLongFilePath as open\r
-from StringIO import StringIO\r
+from io import BytesIO\r
from struct import pack\r
from Common.BuildToolError import *\r
from Common.Misc import SaveFileOnChange\r
from Common.Misc import GuidStructureStringToGuidString\r
+from Common.Misc import GuidStructureByteArrayToGuidString\r
+from Common.Misc import GuidStringToGuidStructureString\r
from Common import EdkLogger as EdkLogger\r
from Common.BuildVersion import gBUILD_VERSION\r
from Common.DataType import *\r
def __init__(self, Expression, ModuleType, Optimize=False):\r
self.ModuleType = ModuleType\r
self.Phase = gType2Phase[ModuleType]\r
- if type(Expression) == type([]):\r
+ if isinstance(Expression, type([])):\r
self.ExpressionString = " ".join(Expression)\r
self.TokenList = Expression\r
else:\r
def GetGuidValue(self, Guid):\r
GuidValueString = Guid.replace("{", "").replace("}", "").replace(" ", "")\r
GuidValueList = GuidValueString.split(",")\r
+ if len(GuidValueList) != 11 and len(GuidValueList) == 16:\r
+ GuidValueString = GuidStringToGuidStructureString(GuidStructureByteArrayToGuidString(Guid))\r
+ GuidValueString = GuidValueString.replace("{", "").replace("}", "").replace(" ", "")\r
+ GuidValueList = GuidValueString.split(",")\r
if len(GuidValueList) != 11:\r
EdkLogger.error("GenDepex", PARSER_ERROR, "Invalid GUID value string or opcode: %s" % Guid)\r
return pack("1I2H8B", *(int(value, 16) for value in GuidValueList))\r
# @retval False If file exists and is not changed.\r
#\r
def Generate(self, File=None):\r
- Buffer = StringIO()\r
+ Buffer = BytesIO()\r
if len(self.PostfixNotation) == 0:\r
return False\r
\r