]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Base on the type field to generate oneof opcode.
authorydong10 <ydong10@6f19259b-4bc3-4df7-8a09-765794883524>
Sun, 6 Jan 2013 06:09:43 +0000 (06:09 +0000)
committerydong10 <ydong10@6f19259b-4bc3-4df7-8a09-765794883524>
Sun, 6 Jan 2013 06:09:43 +0000 (06:09 +0000)
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

MdeModulePkg/Library/UefiHiiLib/HiiLib.c

index 2135cf2b83a24e8ac4bee20ba9699b18ad73d2e1..02887bf76c7bb155d0bf944d641ba3e3dbd93913 100644 (file)
@@ -3123,6 +3123,7 @@ HiiCreateOneOfOpCode (
 {\r
   EFI_IFR_ONE_OF  OpCode;\r
   UINTN           Position;\r
+  UINTN           Length;\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
@@ -3136,8 +3137,11 @@ HiiCreateOneOfOpCode (
   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
-  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