Reviewed-by: Liming Gao <[email protected]>

>-----Original Message-----
>From: Zhu, Yonghong
>Sent: Friday, June 23, 2017 2:44 PM
>To: [email protected]
>Cc: Gao, Liming <[email protected]>
>Subject: [Patch] BaseTools: report error HiiString in HII format PCD must not
>be empty
>
>Add a check that HiiString field in the HII format PCD entry must not
>be an empty string.
>
>Cc: Liming Gao <[email protected]>
>Contributed-under: TianoCore Contribution Agreement 1.0
>Signed-off-by: Yonghong Zhu <[email protected]>
>---
> BaseTools/Source/Python/Workspace/MetaFileParser.py | 7 +++++++
> 1 file changed, 7 insertions(+)
>
>diff --git a/BaseTools/Source/Python/Workspace/MetaFileParser.py
>b/BaseTools/Source/Python/Workspace/MetaFileParser.py
>index d094403..4a5311a 100644
>--- a/BaseTools/Source/Python/Workspace/MetaFileParser.py
>+++ b/BaseTools/Source/Python/Workspace/MetaFileParser.py
>@@ -1137,10 +1137,17 @@ class DscParser(MetaFileParser):
>         if len(ValueList) > 1 and ValueList[1] != TAB_VOID \
>                               and self._ItemType in 
> [MODEL_PCD_DYNAMIC_DEFAULT,
>MODEL_PCD_DYNAMIC_EX_DEFAULT]:
>             EdkLogger.error('Parser', FORMAT_INVALID, "The datum type '%s' of
>PCD is wrong" % ValueList[1],
>                             ExtraData=self._CurrentLine, File=self.MetaFile,
>Line=self._LineIndex + 1)
>
>+        # Validate the VariableName of DynamicHii and DynamicExHii for PCD
>Entry must not be an empty string
>+        if self._ItemType in [MODEL_PCD_DYNAMIC_HII,
>MODEL_PCD_DYNAMIC_EX_HII]:
>+            DscPcdValueList = GetSplitValueList(TokenList[1], 
>TAB_VALUE_SPLIT, 1)
>+            if 
>len(DscPcdValueList[0].replace('L','').replace('"','').strip()) == 0:
>+                EdkLogger.error('Parser', FORMAT_INVALID, "The VariableName
>field in the HII format PCD entry must not be an empty string",
>+                            ExtraData=self._CurrentLine, File=self.MetaFile,
>Line=self._LineIndex + 1)
>+
>         # if value are 'True', 'true', 'TRUE' or 'False', 'false', 'FALSE', 
> replace with
>integer 1 or 0.
>         DscPcdValueList = GetSplitValueList(TokenList[1], TAB_VALUE_SPLIT, 1)
>         if DscPcdValueList[0] in ['True', 'true', 'TRUE']:
>             self._ValueList[2] = TokenList[1].replace(DscPcdValueList[0], 
> '1', 1);
>         elif DscPcdValueList[0] in ['False', 'false', 'FALSE']:
>--
>2.6.1.windows.1

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

Reply via email to