|
From: <lg...@us...> - 2010-01-29 02:56:55
|
Revision: 1826
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=1826&view=rev
Author: lgao4
Date: 2010-01-29 02:56:49 +0000 (Fri, 29 Jan 2010)
Log Message:
-----------
Add check for the invalid negative PCD value setting.
Modified Paths:
--------------
trunk/BaseTools/Source/Python/AutoGen/GenC.py
Modified: trunk/BaseTools/Source/Python/AutoGen/GenC.py
===================================================================
--- trunk/BaseTools/Source/Python/AutoGen/GenC.py 2010-01-29 02:54:50 UTC (rev 1825)
+++ trunk/BaseTools/Source/Python/AutoGen/GenC.py 2010-01-29 02:56:49 UTC (rev 1826)
@@ -968,39 +968,43 @@
else:
ValueNumber = int (Value)
if Pcd.DatumType == 'UINT64':
- if abs (ValueNumber) >= 0x10000000000000000:
+ if ValueNumber < 0:
EdkLogger.error("build", AUTOGEN_ERROR,
+ "PCD can't be set to negative value for datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, Pcd.TokenCName),
+ ExtraData="[%s]" % str(Info))
+ elif ValueNumber >= 0x10000000000000000:
+ EdkLogger.error("build", AUTOGEN_ERROR,
"Too large PCD value for datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, Pcd.TokenCName),
ExtraData="[%s]" % str(Info))
- if ValueNumber < 0:
- ValueNumber = 0x10000000000000000 + ValueNumber
- Value = str (ValueNumber)
if not Value.endswith('ULL'):
Value += 'ULL'
elif Pcd.DatumType == 'UINT32':
- if abs (ValueNumber) >= 0x100000000:
+ if ValueNumber < 0:
EdkLogger.error("build", AUTOGEN_ERROR,
+ "PCD can't be set to negative value for datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, Pcd.TokenCName),
+ ExtraData="[%s]" % str(Info))
+ elif ValueNumber >= 0x100000000:
+ EdkLogger.error("build", AUTOGEN_ERROR,
"Too large PCD value for datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, Pcd.TokenCName),
ExtraData="[%s]" % str(Info))
+ elif Pcd.DatumType == 'UINT16':
if ValueNumber < 0:
- ValueNumber = 0x100000000 + ValueNumber
- Value = str (ValueNumber)
- elif Pcd.DatumType == 'UINT16':
- if abs (ValueNumber) >= 0x10000:
EdkLogger.error("build", AUTOGEN_ERROR,
+ "PCD can't be set to negative value for datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, Pcd.TokenCName),
+ ExtraData="[%s]" % str(Info))
+ elif ValueNumber >= 0x10000:
+ EdkLogger.error("build", AUTOGEN_ERROR,
"Too large PCD value for datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, Pcd.TokenCName),
ExtraData="[%s]" % str(Info))
+ elif Pcd.DatumType == 'UINT8':
if ValueNumber < 0:
- ValueNumber = 0x10000 + ValueNumber
- Value = str (ValueNumber)
- elif Pcd.DatumType == 'UINT8':
- if abs (ValueNumber) >= 0x100:
EdkLogger.error("build", AUTOGEN_ERROR,
+ "PCD can't be set to negative value for datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, Pcd.TokenCName),
+ ExtraData="[%s]" % str(Info))
+ elif ValueNumber >= 0x100:
+ EdkLogger.error("build", AUTOGEN_ERROR,
"Too large PCD value for datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, Pcd.TokenCName),
ExtraData="[%s]" % str(Info))
- if ValueNumber < 0:
- ValueNumber = 0x100 + ValueNumber
- Value = str (ValueNumber)
if Pcd.DatumType == 'VOID*':
if Pcd.MaxDatumSize == None or Pcd.MaxDatumSize == '':
EdkLogger.error("build", AUTOGEN_ERROR,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|