Reviewed-by: Bob Feng <[email protected]>
-----Original Message-----
From: Zhao, ZhiqiangX
Sent: Thursday, October 18, 2018 1:09 PM
To: [email protected]
Cc: Zhao, ZhiqiangX <[email protected]>; Gao, Liming
<[email protected]>; Zhu, Yonghong <[email protected]>; Feng, Bob C
<[email protected]>
Subject: [PATCH V2] BaseTools: Convert "Unicode string" to "byte array" if
value type diff
V2:
Fixed 3 typo.
Use startswith(('L"',"L'")) to check if a string is Unicode string.
Use a set PcdValueTypeSet instead of a list PcdValueTypeList to save memory.
V1:
For the same one VOID* pcd, if the default value type of one SKU is "Unicode
string", the other SKUs are "OtherVOID*"(ASCII string or byte array),Then
convert "Unicode string" to "byte array".
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: ZhiqiangX Zhao <[email protected]>
Cc: Liming Gao <[email protected]>
Cc: Yonghong Zhu <[email protected]>
Cc: Bob Feng <[email protected]>
---
BaseTools/Source/Python/Workspace/DscBuildData.py | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py
b/BaseTools/Source/Python/Workspace/DscBuildData.py
index 7854e71db6..9b9ace9b56 100644
--- a/BaseTools/Source/Python/Workspace/DscBuildData.py
+++ b/BaseTools/Source/Python/Workspace/DscBuildData.py
@@ -2877,6 +2877,15 @@ class DscBuildData(PlatformBuildClassObject):
elif TAB_DEFAULT in pcd.SkuInfoList and TAB_COMMON in
pcd.SkuInfoList:
del pcd.SkuInfoList[TAB_COMMON]
+ #For the same one VOID* pcd, if the default value type of one SKU is
"Unicode string",
+ #the other SKUs are "OtherVOID*"(ASCII string or byte array),Then
convert "Unicode string" to "byte array".
+ for pcd in Pcds.values():
+ PcdValueTypeSet = set()
+ for sku in pcd.SkuInfoList.values():
+ PcdValueTypeSet.add("UnicodeString" if
sku.DefaultValue.startswith(('L"',"L'")) else "OtherVOID*")
+ if len(PcdValueTypeSet) > 1:
+ for sku in pcd.SkuInfoList.values():
+ sku.DefaultValue = StringToArray(sku.DefaultValue)
+ if sku.DefaultValue.startswith(('L"',"L'")) else sku.DefaultValue
map(self.FilterSkuSettings, Pcds.values())
return Pcds
--
2.14.1.windows.1
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel