>>\r
L:OrderedList << OLObj.SetLineNo(L->getLine()); >>\r
vfrQuestionHeader[OLObj] ","\r
- << OLObj.SetMaxContainers ((UINT8)_GET_CURRQEST_VARSIZE()); >>\r
+ << OLObj.SetMaxContainers ((UINT8) _GET_CURRQEST_ARRAY_SIZE()); >>\r
{\r
MaxContainers "=" M:Number "," << OLObj.SetMaxContainers (_STOU8(M->getText())); >>\r
}\r
\r
UINT8 _GET_CURRQEST_DATATYPE ();\r
UINT32 _GET_CURRQEST_VARSIZE ();\r
+ UINT32 _GET_CURRQEST_ARRAY_SIZE();\r
\r
public:\r
VOID _PCATCH (IN INTN, IN INTN, IN ANTLRTokenPtr, IN CHAR8 *);\r
return mCurrQestVarInfo;\r
}\r
\r
+UINT32\r
+EfiVfrParser::_GET_CURRQEST_ARRAY_SIZE (\r
+ VOID\r
+ )\r
+{\r
+ UINT8 Size = 1;\r
+\r
+ switch (mCurrQestVarInfo.mVarType) {\r
+ case EFI_IFR_TYPE_NUM_SIZE_8:\r
+ Size = 1;\r
+ break;\r
+\r
+ case EFI_IFR_TYPE_NUM_SIZE_16:\r
+ Size = 2;\r
+ break;\r
+\r
+ case EFI_IFR_TYPE_NUM_SIZE_32:\r
+ Size = 4;\r
+ break;\r
+\r
+ case EFI_IFR_TYPE_NUM_SIZE_64:\r
+ Size = 8;\r
+ break;\r
+\r
+ default:\r
+ break;\r
+ }\r
+\r
+ return (mCurrQestVarInfo.mVarTotalSize / Size);\r
+}\r
+\r
UINT8\r
EfiVfrParser::_GET_CURRQEST_DATATYPE (\r
VOID\r