X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=BaseTools%2FSource%2FC%2FVfrCompile%2FVfrFormPkg.cpp;h=090ee13ef9da2e1b2402294d4d1908d50e5f8999;hb=5397bd425eba0cd00c5f76c8d35f328ca625db0e;hp=b8350623f2a06f8c6f3dc6855f43bec5e3018448;hpb=42c808d4cbc66605777dad18d800708f2c06f0c4;p=mirror_edk2.git diff --git a/BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp b/BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp index b8350623f2..090ee13ef9 100644 --- a/BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp +++ b/BaseTools/Source/C/VfrCompile/VfrFormPkg.cpp @@ -104,8 +104,13 @@ CFormPkg::CFormPkg ( SBufferNode *Node; mPkgLength = 0; + mBufferSize = 0; mBufferNodeQueueHead = NULL; + mBufferNodeQueueTail = NULL; mCurrBufferNode = NULL; + mReadBufferNode = NULL; + mReadBufferOffset = 0; + PendingAssignList = NULL; Node = new SBufferNode; if (Node == NULL) { @@ -839,7 +844,7 @@ CFormPkg::DeclarePendingQuestion ( // DisableIf CIfrDisableIf DIObj; DIObj.SetLineNo (LineNo); - *InsertOpcodeAddr = DIObj.GetObjBinAddr (); + *InsertOpcodeAddr = DIObj.GetObjBinAddr(); //TrueOpcode CIfrTrue TObj (LineNo); @@ -1920,7 +1925,7 @@ CIfrRecordInfoDB::IfrCreateDefaultForQuestion ( Obj = new CIfrObj (pOpHead->OpCode, NULL, pSNode->mBinBufLen, FALSE); assert (Obj != NULL); Obj->SetLineNo (pSNode->mLineNo); - ObjBinBuf = Obj->GetObjBinAddr(); + ObjBinBuf = Obj->GetObjBinAddr(); memcpy (ObjBinBuf, pSNode->mIfrBinBuf, (UINTN)pSNode->mBinBufLen); delete Obj; pSNode = pSNode->mNext; @@ -2421,6 +2426,7 @@ CIfrObj::CIfrObj ( mObjBinLen = (ObjBinLen == 0) ? gOpcodeSizesScopeTable[OpCode].mSize : ObjBinLen; mObjBinBuf = ((DelayEmit == FALSE) && (gCreateOp == TRUE)) ? gCFormPkg.IfrBinBufferGet (mObjBinLen) : new CHAR8[EFI_IFR_MAX_LENGTH]; mRecordIdx = (gCreateOp == TRUE) ? gCIfrRecordInfoDB.IfrRecordRegister (0xFFFFFFFF, mObjBinBuf, mObjBinLen, mPkgOffset) : EFI_IFR_RECORDINFO_IDX_INVALUD; + mLineNo = 0; assert (mObjBinBuf != NULL);