**/\r
\r
#include "stdio.h"\r
+#include "assert.h"\r
#include "VfrFormPkg.h"\r
\r
/*\r
)\r
{\r
if (mKey != NULL) {\r
- delete mKey;\r
+ delete[] mKey;\r
}\r
mAddr = NULL;\r
mLen = 0;\r
mLineNo = 0;\r
if (mMsg != NULL) {\r
- delete mMsg;\r
+ delete[] mMsg;\r
}\r
mNext = NULL;\r
}\r
}\r
BufferStart = new CHAR8[BufferSize];\r
if (BufferStart == NULL) {\r
+ delete Node;\r
return;\r
}\r
BufferEnd = BufferStart + BufferSize;\r
\r
InserPositionNode = GetBinBufferNodeForAddr(InserPositionAddr);\r
InsertOpcodeNode = GetBinBufferNodeForAddr(InsertOpcodeAddr);\r
+ assert (InserPositionNode != NULL);\r
+ assert (InsertOpcodeNode != NULL);\r
\r
if (InserPositionNode == InsertOpcodeNode) {\r
//\r
// Insert the last restore data node.\r
//\r
TmpNode = GetNodeBefore (InsertOpcodeNode);\r
+ assert (TmpNode != NULL);\r
+\r
if (TmpNode == InserPositionNode) {\r
NewRestoreNodeBegin->mNext = NewRestoreNodeEnd;\r
} else {\r
mBufferNodeQueueTail = NewLastEndNode;\r
} else if (mBufferNodeQueueTail->mBufferFree - mBufferNodeQueueTail->mBufferStart == 2) {\r
TmpNode = GetNodeBefore(mBufferNodeQueueTail);\r
+ assert (TmpNode != NULL);\r
+\r
TmpNode->mNext = NewRestoreNodeBegin;\r
if (NewRestoreNodeEnd != NULL) {\r
NewRestoreNodeEnd->mNext = mBufferNodeQueueTail;\r
CHAR8 FName[MAX_NAME_LEN];\r
CHAR8 *SName;\r
CHAR8 *NewStr;\r
- UINT32 ShrinkSize;\r
+ UINT32 ShrinkSize = 0;\r
EFI_VFR_RETURN_CODE ReturnCode;\r
EFI_VFR_VARSTORE_TYPE VarStoreType = EFI_VFR_VARSTORE_INVALID;\r
- EFI_VARSTORE_ID VarStoreId = EFI_VARSTORE_ID_INVALID;\r
\r
//\r
// Declare all questions as Numeric in DisableIf True\r
strcpy (NewStr, SName);\r
strcat (NewStr, VarStr + strlen (FName));\r
ReturnCode = lCVfrVarDataTypeDB.GetDataFieldInfo (NewStr, Info.mInfo.mVarOffset, Info.mVarType, Info.mVarTotalSize);\r
- delete NewStr;\r
+ delete[] NewStr;\r
}\r
} else {\r
ReturnCode = VFR_RETURN_UNSUPPORTED;\r
SIfrRecord *pAdjustNode, *pNodeBeforeAdjust;\r
SIfrRecord *pNodeBeforeDynamic;\r
\r
+ pPreNode = NULL;\r
pAdjustNode = NULL;\r
pNodeBeforeDynamic = NULL;\r
OpcodeOffset = 0;\r
//\r
// Check the nodes whether exist.\r
//\r
- if (pNodeBeforeDynamic == NULL || pAdjustNode == NULL) {\r
+ if (pNodeBeforeDynamic == NULL || pAdjustNode == NULL || pNodeBeforeAdjust == NULL) {\r
return FALSE;\r
}\r
\r
// Base on the original offset info to update the record list.\r
//\r
if (!IfrAdjustDynamicOpcodeInRecords(CreateOpcodeAfterParsingVfr)) {\r
- gCVfrErrorHandle.PrintMsg (0, "Error", "Can not find the adjust offset in the record.");\r
+ gCVfrErrorHandle.PrintMsg (0, (CHAR8 *)"Error", (CHAR8 *)"Can not find the adjust offset in the record.");\r
}\r
\r
//\r
EFI_QUESTION_ID QuestionId;\r
UINT32 StackCount;\r
UINT32 QuestionScope;\r
- UINT32 OpcodeOffset;\r
CHAR8 ErrorMsg[MAX_STRING_LEN] = {0, };\r
EFI_VFR_RETURN_CODE Status;\r
\r
// Point to the first expression opcode.\r
//\r
pSNode = pDefaultNode->mNext;\r
+ pENode = NULL;\r
ScopeCount++;\r
//\r
// Get opcode number behind the EFI_IFR_DEFAULT_2 until reach its END opcode (including the END opcode of EFI_IFR_DEFAULT_2)\r
pSNode = pSNode->mNext;\r
OpcodeCount++;\r
}\r
+\r
+ assert (pSNode);\r
+ assert (pENode);\r
+\r
//\r
// Record the offset of node which need to be adjust, will move the new created default opcode to this offset.\r
//\r
while (pSNode != NULL && pSNode->mNext != NULL && OpcodeNumber-- != 0) {\r
pOpHead = (EFI_IFR_OP_HEADER *) pSNode->mIfrBinBuf;\r
Obj = new CIfrObj (pOpHead->OpCode, NULL, pSNode->mBinBufLen, FALSE);\r
+ assert (Obj != NULL);\r
Obj->SetLineNo (pSNode->mLineNo);\r
ObjBinBuf = Obj->GetObjBinAddr();\r
memcpy (ObjBinBuf, pSNode->mIfrBinBuf, (UINTN)pSNode->mBinBufLen);\r
mObjBinBuf = ((DelayEmit == FALSE) && (gCreateOp == TRUE)) ? gCFormPkg.IfrBinBufferGet (mObjBinLen) : new CHAR8[EFI_IFR_MAX_LENGTH];\r
mRecordIdx = (gCreateOp == TRUE) ? gCIfrRecordInfoDB.IfrRecordRegister (0xFFFFFFFF, mObjBinBuf, mObjBinLen, mPkgOffset) : EFI_IFR_RECORDINFO_IDX_INVALUD;\r
\r
+ assert (mObjBinBuf != NULL);\r
+\r
if (IfrObj != NULL) {\r
*IfrObj = mObjBinBuf;\r
}\r