]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/C/VfrCompile/VfrUtilityLib.h
VfrCompile: fix invalid comparison between pointer and integer
[mirror_edk2.git] / BaseTools / Source / C / VfrCompile / VfrUtilityLib.h
index 5faa1f40fdcfdfb480bfaba6d0fa1f01ad7eb916..59509c3fcceb46ac9107f1ee01928883bc44b9e6 100644 (file)
@@ -33,6 +33,8 @@ extern BOOLEAN  VfrCompatibleMode;
 #define EFI_BITS_PER_UINT32                (1 << EFI_BITS_SHIFT_PER_UINT32)\r
 \r
 #define BUFFER_SAFE_FREE(Buf)              do { if ((Buf) != NULL) { delete (Buf); } } while (0);\r
+#define ARRAY_SAFE_FREE(Buf)               do { if ((Buf) != NULL) { delete[] (Buf); } } while (0);\r
+\r
 \r
 class CVfrBinaryOutput {\r
 public:\r
@@ -53,6 +55,10 @@ struct SConfigInfo {
 \r
   SConfigInfo (IN UINT8, IN UINT16, IN UINT32, IN EFI_IFR_TYPE_VALUE);\r
   ~SConfigInfo (VOID);\r
+\r
+private:\r
+  SConfigInfo (IN CONST SConfigInfo&);             // Prevent copy-construction\r
+  SConfigInfo& operator= (IN CONST SConfigInfo&);  // Prevent assignment\r
 };\r
 \r
 struct SConfigItem {\r
@@ -66,6 +72,10 @@ public:
   SConfigItem (IN CHAR8 *, IN EFI_GUID *, IN CHAR8 *);\r
   SConfigItem (IN CHAR8 *, IN EFI_GUID *, IN CHAR8 *, IN UINT8, IN UINT16, IN UINT16, IN EFI_IFR_TYPE_VALUE);\r
   virtual ~SConfigItem ();\r
+\r
+private:\r
+  SConfigItem (IN CONST SConfigItem&);             // Prevent copy-construction\r
+  SConfigItem& operator= (IN CONST SConfigItem&);  // Prevent assignment\r
 };\r
 \r
 class CVfrBufferConfig {\r
@@ -88,6 +98,10 @@ public:
 #endif\r
   virtual VOID    Close (VOID);\r
   virtual VOID    OutputCFile (IN FILE *, IN CHAR8 *);\r
+\r
+private:\r
+  CVfrBufferConfig (IN CONST CVfrBufferConfig&);             // Prevent copy-construction\r
+  CVfrBufferConfig& operator= (IN CONST CVfrBufferConfig&);  // Prevent assignment\r
 };\r
 \r
 extern CVfrBufferConfig gCVfrBufferConfig;\r
@@ -139,7 +153,7 @@ struct SVfrPackStackNode {
 \r
   ~SVfrPackStackNode (VOID) {\r
     if (mIdentifier != NULL) {\r
-      delete mIdentifier;\r
+      delete[] mIdentifier;\r
     }\r
     mNext = NULL;\r
   }\r
@@ -155,6 +169,10 @@ struct SVfrPackStackNode {
       return FALSE;\r
     }\r
   }\r
+\r
+private:\r
+  SVfrPackStackNode (IN CONST SVfrPackStackNode&);             // Prevent copy-construction\r
+  SVfrPackStackNode& operator= (IN CONST SVfrPackStackNode&);  // Prevent assignment\r
 };\r
 \r
 class CVfrVarDataTypeDB {\r
@@ -208,6 +226,10 @@ public:
 #ifdef CVFR_VARDATATYPEDB_DEBUG\r
   VOID ParserDB ();\r
 #endif\r
+\r
+private:\r
+  CVfrVarDataTypeDB (IN CONST CVfrVarDataTypeDB&);             // Prevent copy-construction\r
+  CVfrVarDataTypeDB& operator= (IN CONST CVfrVarDataTypeDB&);  // Prevent assignment\r
 };\r
 \r
 extern CVfrVarDataTypeDB  gCVfrVarDataTypeDB;\r
@@ -249,6 +271,10 @@ public:
   SVfrVarStorageNode (IN EFI_GUID *, IN CHAR8 *, IN EFI_VARSTORE_ID, IN SVfrDataType *, IN BOOLEAN Flag = TRUE);\r
   SVfrVarStorageNode (IN CHAR8 *, IN EFI_VARSTORE_ID);\r
   ~SVfrVarStorageNode (VOID);\r
+\r
+private:\r
+  SVfrVarStorageNode (IN CONST SVfrVarStorageNode&);             // Prevent copy-construction\r
+  SVfrVarStorageNode& operator= (IN CONST SVfrVarStorageNode&);  // Prevent assignment\r
 };\r
 \r
 struct EFI_VARSTORE_INFO {\r
@@ -262,6 +288,7 @@ struct EFI_VARSTORE_INFO {
 \r
   EFI_VARSTORE_INFO (VOID);\r
   EFI_VARSTORE_INFO (IN EFI_VARSTORE_INFO &);\r
+  EFI_VARSTORE_INFO& operator=(IN CONST EFI_VARSTORE_INFO &);\r
   BOOLEAN operator == (IN EFI_VARSTORE_INFO *);\r
 };\r
 \r
@@ -329,6 +356,10 @@ public:
   EFI_VFR_RETURN_CODE GetNameVarStoreInfo (IN EFI_VARSTORE_INFO *, IN UINT32);\r
   EFI_VFR_RETURN_CODE AddBufferVarStoreFieldInfo (IN EFI_VARSTORE_INFO *);\r
   EFI_VFR_RETURN_CODE GetBufferVarStoreFieldInfo (IN OUT EFI_VARSTORE_INFO *);\r
+\r
+private:\r
+  CVfrDataStorage (IN CONST CVfrDataStorage&);             // Prevent copy-construction\r
+  CVfrDataStorage& operator= (IN CONST CVfrDataStorage&);  // Prevent assignment\r
 };\r
 \r
 extern CVfrDataStorage gCVfrDataStorage;\r
@@ -354,6 +385,10 @@ struct SVfrQuestionNode {
 \r
   SVfrQuestionNode (IN CHAR8 *, IN CHAR8 *, IN UINT32 BitMask = 0);\r
   ~SVfrQuestionNode ();\r
+\r
+private:\r
+  SVfrQuestionNode (IN CONST SVfrQuestionNode&);             // Prevent copy-construction\r
+  SVfrQuestionNode& operator= (IN CONST SVfrQuestionNode&);  // Prevent assignment\r
 };\r
 \r
 class CVfrQuestionDB {\r
@@ -387,6 +422,10 @@ public:
   VOID SetCompatibleMode (IN BOOLEAN Mode) {\r
     VfrCompatibleMode = Mode;\r
   }\r
+\r
+private:\r
+  CVfrQuestionDB (IN CONST CVfrQuestionDB&);             // Prevent copy-construction\r
+  CVfrQuestionDB& operator= (IN CONST CVfrQuestionDB&);  // Prevent assignment\r
 };\r
 \r
 struct SVfrDefaultStoreNode {\r
@@ -399,6 +438,10 @@ struct SVfrDefaultStoreNode {
 \r
   SVfrDefaultStoreNode (IN EFI_IFR_DEFAULTSTORE *, IN CHAR8 *, IN EFI_STRING_ID, IN UINT16);\r
   ~SVfrDefaultStoreNode();\r
+\r
+private:\r
+  SVfrDefaultStoreNode (IN CONST SVfrDefaultStoreNode&);             // Prevent copy-construction\r
+  SVfrDefaultStoreNode& operator= (IN CONST SVfrDefaultStoreNode&);  // Prevent assignment\r
 };\r
 \r
 class CVfrDefaultStore {\r
@@ -414,6 +457,10 @@ public:
   BOOLEAN             DefaultIdRegistered (IN UINT16);\r
   EFI_VFR_RETURN_CODE GetDefaultId (IN CHAR8 *, OUT UINT16 *);\r
   EFI_VFR_RETURN_CODE BufferVarStoreAltConfigAdd (IN EFI_VARSTORE_ID, IN EFI_VARSTORE_INFO &, IN CHAR8 *, IN EFI_GUID *, IN UINT8, IN EFI_IFR_TYPE_VALUE);\r
+\r
+private:\r
+  CVfrDefaultStore (IN CONST CVfrDefaultStore&);             // Prevent copy-construction\r
+  CVfrDefaultStore& operator= (IN CONST CVfrDefaultStore&);  // Prevent assignment\r
 };\r
 \r
 extern CVfrDefaultStore gCVfrDefaultStore;\r
@@ -428,6 +475,10 @@ struct SVfrRuleNode {
 \r
   SVfrRuleNode(IN CHAR8 *, IN UINT8);\r
   ~SVfrRuleNode();\r
+\r
+private:\r
+  SVfrRuleNode (IN CONST SVfrRuleNode&);             // Prevent copy-construction\r
+  SVfrRuleNode& operator= (IN CONST SVfrRuleNode&);  // Prevent assignment\r
 };\r
 \r
 class CVfrRulesDB {\r
@@ -441,6 +492,10 @@ public:
 \r
   VOID RegisterRule (IN CHAR8 *);\r
   UINT8 GetRuleId (IN CHAR8 *);\r
+\r
+private:\r
+  CVfrRulesDB (IN CONST CVfrRulesDB&);             // Prevent copy-construction\r
+  CVfrRulesDB& operator= (IN CONST CVfrRulesDB&);  // Prevent assignment\r
 };\r
 \r
 class CVfrStringDB {\r
@@ -475,6 +530,9 @@ public:
     IN EFI_STRING_ID StringId\r
     );\r
 \r
+private:\r
+  CVfrStringDB (IN CONST CVfrStringDB&);             // Prevent copy-construction\r
+  CVfrStringDB& operator= (IN CONST CVfrStringDB&);  // Prevent assignment\r
 };\r
 \r
 #endif\r