Current check only compared string format of toke value.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yingke Liu <yingke.d....@intel.com>
---
 BaseTools/Source/Python/AutoGen/AutoGen.py | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py 
b/BaseTools/Source/Python/AutoGen/AutoGen.py
index ca7d5ab..7fb1a88 100644
--- a/BaseTools/Source/Python/AutoGen/AutoGen.py
+++ b/BaseTools/Source/Python/AutoGen/AutoGen.py
@@ -651,7 +651,7 @@ class WorkspaceAutoGen(AutoGen):
         for Pa in self.AutoGenObjectList:
             for Package in Pa.PackageList:
                 PcdList = Package.Pcds.values()
-                PcdList.sort(lambda x, y: cmp(x.TokenValue, y.TokenValue)) 
+                PcdList.sort(lambda x, y: cmp(int(x.TokenValue, 0), 
int(y.TokenValue, 0))) 
                 Count = 0
                 while (Count < len(PcdList) - 1) :
                     Item = PcdList[Count]
@@ -659,13 +659,13 @@ class WorkspaceAutoGen(AutoGen):
                     #
                     # Make sure in the same token space the TokenValue should 
be unique
                     #
-                    if (Item.TokenValue == ItemNext.TokenValue):
+                    if (int(Item.TokenValue, 0) == int(ItemNext.TokenValue, 
0)):
                         SameTokenValuePcdList = []
                         SameTokenValuePcdList.append(Item)
                         SameTokenValuePcdList.append(ItemNext)
                         RemainPcdListLength = len(PcdList) - Count - 2
                         for ValueSameCount in range(RemainPcdListLength):
-                            if PcdList[len(PcdList) - RemainPcdListLength + 
ValueSameCount].TokenValue == Item.TokenValue:
+                            if int(PcdList[len(PcdList) - RemainPcdListLength 
+ ValueSameCount].TokenValue, 0) == int(Item.TokenValue, 0):
                                 
SameTokenValuePcdList.append(PcdList[len(PcdList) - RemainPcdListLength + 
ValueSameCount])
                             else:
                                 break;
@@ -699,7 +699,7 @@ class WorkspaceAutoGen(AutoGen):
                     #
                     # Check PCDs with same TokenSpaceGuidCName.TokenCName have 
same token value as well.
                     #
-                    if (Item.TokenSpaceGuidCName == 
ItemNext.TokenSpaceGuidCName) and (Item.TokenCName == ItemNext.TokenCName) and 
(Item.TokenValue != ItemNext.TokenValue):
+                    if (Item.TokenSpaceGuidCName == 
ItemNext.TokenSpaceGuidCName) and (Item.TokenCName == ItemNext.TokenCName) and 
(int(Item.TokenValue, 0) != int(ItemNext.TokenValue, 0)):
                         EdkLogger.error(
                                     'build',
                                     FORMAT_INVALID,
-- 
1.9.5.msysgit.0


------------------------------------------------------------------------------
Monitor 25 network devices or servers for free with OpManager!
OpManager is web-based network management software that monitors 
network devices and physical & virtual servers, alerts via email & sms 
for fault. Monitor 25 devices for free with no restriction. Download now
http://ad.doubleclick.net/ddm/clk/292181274;119417398;o
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to