X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=Tools%2FSource%2FGenBuild%2Forg%2Ftianocore%2Fbuild%2Fpcd%2Faction%2FCollectPCDAction.java;h=f9de63fc0d208173a1e1ba686027e418ed80f449;hp=92f320bc3557a07979f3ac3b7bd4fd5060db3495;hb=6c4dc2267a9c87d40ff6bfc042e13b3e838df26e;hpb=ec763458292c3b747b8a7b36464f07cb9a402e37 diff --git a/Tools/Source/GenBuild/org/tianocore/build/pcd/action/CollectPCDAction.java b/Tools/Source/GenBuild/org/tianocore/build/pcd/action/CollectPCDAction.java index 92f320bc35..f9de63fc0d 100644 --- a/Tools/Source/GenBuild/org/tianocore/build/pcd/action/CollectPCDAction.java +++ b/Tools/Source/GenBuild/org/tianocore/build/pcd/action/CollectPCDAction.java @@ -1530,7 +1530,11 @@ public class CollectPCDAction { pcdType = Token.getpcdTypeFromString(pcdBuildData.getItemType().toString()); datumType = Token.getdatumTypeFromString(pcdBuildData.getDatumType().toString()); tokenNumber = Integer.decode(pcdBuildData.getToken().toString()); - datum = pcdBuildData.getValue(); + if (pcdBuildData.getValue() != null) { + datum = pcdBuildData.getValue().toString(); + } else { + datum = null; + } maxDatumSize = pcdBuildData.getMaxDatumSize(); if ((pcdType == Token.PCD_TYPE.FEATURE_FLAG) && @@ -2128,6 +2132,7 @@ public class CollectPCDAction { boolean hasSkuId0 = false; Token.PCD_TYPE pcdType = Token.PCD_TYPE.UNKNOWN; int tokenNumber = 0; + String hiiDefaultValue = null; List skuInfoList = null; DynamicPcdBuildDefinitions.PcdBuildData dynamicInfo = null; @@ -2198,10 +2203,10 @@ public class CollectPCDAction { // Judge whether is DefaultGroup at first, because most case is DefautlGroup. // if (skuInfoList.get(index).getValue() != null) { - skuInstance.value.setValue(skuInfoList.get(index).getValue()); + skuInstance.value.setValue(skuInfoList.get(index).getValue().toString()); if ((exceptionString = verifyDatum(token.cName, null, - skuInfoList.get(index).getValue(), + skuInfoList.get(index).getValue().toString(), token.datumType, token.datumSize)) != null) { throw new EntityException(exceptionString); @@ -2215,7 +2220,7 @@ public class CollectPCDAction { // if (datum != null) { if ((skuInstance.id == 0) && - !datum.equalsIgnoreCase(skuInfoList.get(index).getValue())) { + !datum.toString().equalsIgnoreCase(skuInfoList.get(index).getValue().toString())) { exceptionString = "[FPD file error] For dynamic PCD " + token.cName + ", the value in module " + moduleName + " is " + datum.toString() + " but the "+ "value of sku 0 data in is " + skuInstance.value.value + ". They are must be same!"+ " or you could not define value for a dynamic PCD in every !"; @@ -2255,10 +2260,16 @@ public class CollectPCDAction { if (exceptionString != null) { throw new EntityException(exceptionString); } + + if (skuInfoList.get(index).getHiiDefaultValue() != null) { + hiiDefaultValue = skuInfoList.get(index).getHiiDefaultValue().toString(); + } else { + hiiDefaultValue = null; + } if ((exceptionString = verifyDatum(token.cName, null, - skuInfoList.get(index).getHiiDefaultValue(), + hiiDefaultValue, token.datumType, token.datumSize)) != null) { throw new EntityException(exceptionString); @@ -2275,7 +2286,7 @@ public class CollectPCDAction { skuInstance.value.setHiiData(skuInfoList.get(index).getVariableName(), translateSchemaStringToUUID(skuInfoList.get(index).getVariableGuid().toString()), skuInfoList.get(index).getVariableOffset(), - skuInfoList.get(index).getHiiDefaultValue()); + skuInfoList.get(index).getHiiDefaultValue().toString()); token.skuData.add(skuInstance); continue; }