Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14035
6f19259b-4bc3-4df7-8a09-
765794883524
{\r
EFI_IFR_ONE_OF OpCode;\r
UINTN Position;\r
{\r
EFI_IFR_ONE_OF OpCode;\r
UINTN Position;\r
\r
ASSERT (OptionsOpCodeHandle != NULL);\r
ASSERT ((QuestionFlags & (~(EFI_IFR_FLAG_READ_ONLY | EFI_IFR_FLAG_CALLBACK | EFI_IFR_FLAG_RESET_REQUIRED | EFI_IFR_FLAG_OPTIONS_ONLY))) == 0);\r
\r
ASSERT (OptionsOpCodeHandle != NULL);\r
ASSERT ((QuestionFlags & (~(EFI_IFR_FLAG_READ_ONLY | EFI_IFR_FLAG_CALLBACK | EFI_IFR_FLAG_RESET_REQUIRED | EFI_IFR_FLAG_OPTIONS_ONLY))) == 0);\r
OpCode.Question.Flags = QuestionFlags;\r
OpCode.Flags = OneOfFlags;\r
\r
OpCode.Question.Flags = QuestionFlags;\r
OpCode.Flags = OneOfFlags;\r
\r
+ Length = OFFSET_OF (EFI_IFR_ONE_OF, data);\r
+ Length += (1 << (OneOfFlags & EFI_IFR_NUMERIC_SIZE)) * 3;\r
+\r
Position = InternalHiiOpCodeHandlePosition (OpCodeHandle);\r
Position = InternalHiiOpCodeHandlePosition (OpCodeHandle);\r
- InternalHiiCreateOpCodeExtended (OpCodeHandle, &OpCode, EFI_IFR_ONE_OF_OP, sizeof (OpCode), 0, 1);\r
+ InternalHiiCreateOpCodeExtended (OpCodeHandle, &OpCode, EFI_IFR_ONE_OF_OP, Length, 0, 1);\r
InternalHiiAppendOpCodes (OpCodeHandle, OptionsOpCodeHandle);\r
if (DefaultsOpCodeHandle != NULL) {\r
InternalHiiAppendOpCodes (OpCodeHandle, DefaultsOpCodeHandle);\r
InternalHiiAppendOpCodes (OpCodeHandle, OptionsOpCodeHandle);\r
if (DefaultsOpCodeHandle != NULL) {\r
InternalHiiAppendOpCodes (OpCodeHandle, DefaultsOpCodeHandle);\r