ONE_OF_OPTION_MAP_ENTRY *OneOfOptionMapEntry;\r
EFI_IFR_GUID_CLASS *Class;\r
EFI_IFR_GUID_SUBCLASS *SubClass;\r
+ UINT8 OneOfType;\r
+ EFI_IFR_ONE_OF *OneOfOpcode;\r
+\r
+ //\r
+ // Set to a invalid value.\r
+ //\r
+ OneOfType = (UINT8) -1;\r
\r
\r
Status = HiiLibExportPackageLists (ThunkContext->UefiHiiHandle, &List, &Size);\r
InsertTailList (QuestionIdMapEntryListHead, &IdMapEntry->Link);\r
}\r
\r
+ if (OpCode->OpCode == EFI_IFR_ONE_OF_OP) {\r
+ OneOfOpcode = (EFI_IFR_ONE_OF *) OpCode;\r
+ OneOfType = OneOfOpcode->Flags & EFI_IFR_NUMERIC_SIZE;\r
+ }\r
+\r
break;\r
\r
case EFI_IFR_GUID_OP:\r
\r
OneOfOptionMap->Signature = ONE_OF_OPTION_MAP_SIGNATURE;\r
OneOfOptionMap->QuestionId = OptionMap->QuestionId;\r
- OneOfOptionMap->ValueType = EFI_IFR_TYPE_NUM_SIZE_8;\r
+\r
+ //\r
+ // Make sure OneOfType is initialized.\r
+ //\r
+ ASSERT (OneOfType != (UINT8) -1);\r
+ OneOfOptionMap->ValueType = OneOfType;\r
InitializeListHead (&OneOfOptionMap->OneOfOptionMapEntryListHead);\r
OneOfOptinMapEntryListHead = &OneOfOptionMap->OneOfOptionMapEntryListHead;\r
InsertTailList (&ThunkContext->OneOfOptionMapListHead, &OneOfOptionMap->Link);\r