+ ASSERT (ParentStatement != NULL);\r
+ if (ParentStatement->Operand == EFI_IFR_ORDERED_LIST_OP && ((((EFI_IFR_ONE_OF_OPTION *) OpCodeData)->Flags & (EFI_IFR_OPTION_DEFAULT | EFI_IFR_OPTION_DEFAULT_MFG)) != 0)) {\r
+ //\r
+ // It's keep the default value for ordered list opcode.\r
+ //\r
+ CurrentDefault = AllocateZeroPool (sizeof (QUESTION_DEFAULT));\r
+ ASSERT (CurrentDefault != NULL);\r
+ CurrentDefault->Signature = QUESTION_DEFAULT_SIGNATURE;\r
+\r
+ CurrentDefault->Value.Type = EFI_IFR_TYPE_BUFFER;\r
+ if ((((EFI_IFR_ONE_OF_OPTION *) OpCodeData)->Flags & EFI_IFR_OPTION_DEFAULT) != 0) {\r
+ CurrentDefault->DefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;\r
+ } else {\r
+ CurrentDefault->DefaultId = EFI_HII_DEFAULT_CLASS_MANUFACTURING;\r
+ }\r
+\r
+ CurrentDefault->Value.BufferLen = (UINT16) (OpCodeLength - OFFSET_OF (EFI_IFR_ONE_OF_OPTION, Value));\r
+ CurrentDefault->Value.Buffer = AllocateCopyPool (CurrentDefault->Value.BufferLen, &((EFI_IFR_ONE_OF_OPTION *) OpCodeData)->Value);\r
+ ASSERT (CurrentDefault->Value.Buffer != NULL);\r
+\r
+ //\r
+ // Insert to Default Value list of current Question\r
+ //\r
+ InsertTailList (&ParentStatement->DefaultListHead, &CurrentDefault->Link);\r
+ break;\r
+ }\r
+\r