/**\r
Free resources of a Statement.\r
\r
+ @param FormSet Pointer of the FormSet\r
@param Statement Pointer of the Statement\r
\r
**/\r
VOID\r
DestroyStatement (\r
+ IN FORM_BROWSER_FORMSET *FormSet,\r
IN OUT FORM_BROWSER_STATEMENT *Statement\r
)\r
{\r
if (Statement->BufferValue != NULL) {\r
FreePool (Statement->BufferValue);\r
}\r
+ if (Statement->Operand == EFI_IFR_STRING_OP || Statement->Operand == EFI_IFR_PASSWORD_OP) {\r
+ DeleteString(Statement->HiiValue.Value.string, FormSet->HiiHandle);\r
+ }\r
}\r
\r
\r
/**\r
Free resources of a Form.\r
\r
+ @param FormSet Pointer of the FormSet\r
@param Form Pointer of the Form.\r
\r
**/\r
VOID\r
DestroyForm (\r
- IN OUT FORM_BROWSER_FORM *Form\r
+ IN FORM_BROWSER_FORMSET *FormSet,\r
+ IN OUT FORM_BROWSER_FORM *Form\r
)\r
{\r
LIST_ENTRY *Link;\r
Statement = FORM_BROWSER_STATEMENT_FROM_LINK (Link);\r
RemoveEntryList (&Statement->Link);\r
\r
- DestroyStatement (Statement);\r
+ DestroyStatement (FormSet, Statement);\r
}\r
\r
//\r
Form = FORM_BROWSER_FORM_FROM_LINK (Link);\r
RemoveEntryList (&Form->Link);\r
\r
- DestroyForm (Form);\r
+ DestroyForm (FormSet, Form);\r
}\r
}\r
\r
break;\r
\r
case EFI_IFR_TYPE_DATE:\r
- ExpressionOpCode->ValueWidth = sizeof (EFI_IFR_DATE);\r
+ ExpressionOpCode->ValueWidth = (UINT8) sizeof (EFI_IFR_DATE);\r
break;\r
\r
case EFI_IFR_TYPE_TIME:\r
- ExpressionOpCode->ValueWidth = sizeof (EFI_IFR_TIME);\r
+ ExpressionOpCode->ValueWidth = (UINT8) sizeof (EFI_IFR_TIME);\r
break;\r
\r
case EFI_IFR_TYPE_OTHER:\r
CurrentStatement->Minimum = ((EFI_IFR_NUMERIC *) OpCodeData)->data.u8.MinValue;\r
CurrentStatement->Maximum = ((EFI_IFR_NUMERIC *) OpCodeData)->data.u8.MaxValue;\r
CurrentStatement->Step = ((EFI_IFR_NUMERIC *) OpCodeData)->data.u8.Step;\r
- CurrentStatement->StorageWidth = sizeof (UINT8);\r
+ CurrentStatement->StorageWidth = (UINT16) sizeof (UINT8);\r
Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;\r
break;\r
\r
CopyMem (&CurrentStatement->Minimum, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u16.MinValue, sizeof (UINT16));\r
CopyMem (&CurrentStatement->Maximum, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u16.MaxValue, sizeof (UINT16));\r
CopyMem (&CurrentStatement->Step, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u16.Step, sizeof (UINT16));\r
- CurrentStatement->StorageWidth = sizeof (UINT16);\r
+ CurrentStatement->StorageWidth = (UINT16) sizeof (UINT16);\r
Value->Type = EFI_IFR_TYPE_NUM_SIZE_16;\r
break;\r
\r
CopyMem (&CurrentStatement->Minimum, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u32.MinValue, sizeof (UINT32));\r
CopyMem (&CurrentStatement->Maximum, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u32.MaxValue, sizeof (UINT32));\r
CopyMem (&CurrentStatement->Step, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u32.Step, sizeof (UINT32));\r
- CurrentStatement->StorageWidth = sizeof (UINT32);\r
+ CurrentStatement->StorageWidth = (UINT16) sizeof (UINT32);\r
Value->Type = EFI_IFR_TYPE_NUM_SIZE_32;\r
break;\r
\r
CopyMem (&CurrentStatement->Minimum, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u64.MinValue, sizeof (UINT64));\r
CopyMem (&CurrentStatement->Maximum, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u64.MaxValue, sizeof (UINT64));\r
CopyMem (&CurrentStatement->Step, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u64.Step, sizeof (UINT64));\r
- CurrentStatement->StorageWidth = sizeof (UINT64);\r
+ CurrentStatement->StorageWidth = (UINT16) sizeof (UINT64);\r
Value->Type = EFI_IFR_TYPE_NUM_SIZE_64;\r
break;\r
\r
ASSERT(CurrentStatement != NULL);\r
\r
CurrentStatement->Flags = ((EFI_IFR_CHECKBOX *) OpCodeData)->Flags;\r
- CurrentStatement->StorageWidth = sizeof (BOOLEAN);\r
+ CurrentStatement->StorageWidth = (UINT16) sizeof (BOOLEAN);\r
CurrentStatement->HiiValue.Type = EFI_IFR_TYPE_BOOLEAN;\r
\r
InitializeRequestElement (FormSet, CurrentStatement);\r
\r
CurrentStatement->HiiValue.Type = EFI_IFR_TYPE_STRING;\r
CurrentStatement->BufferValue = AllocateZeroPool (CurrentStatement->StorageWidth + sizeof (CHAR16));\r
+ CurrentStatement->HiiValue.Value.string = NewString ((CHAR16*) CurrentStatement->BufferValue, FormSet->HiiHandle);\r
\r
InitializeRequestElement (FormSet, CurrentStatement);\r
break;\r
\r
CurrentStatement->HiiValue.Type = EFI_IFR_TYPE_STRING;\r
CurrentStatement->BufferValue = AllocateZeroPool ((CurrentStatement->StorageWidth + sizeof (CHAR16)));\r
+ CurrentStatement->HiiValue.Value.string = NewString ((CHAR16*) CurrentStatement->BufferValue, FormSet->HiiHandle);\r
\r
InitializeRequestElement (FormSet, CurrentStatement);\r
break;\r
CurrentStatement->HiiValue.Type = EFI_IFR_TYPE_DATE;\r
\r
if ((CurrentStatement->Flags & EFI_QF_DATE_STORAGE) == QF_DATE_STORAGE_NORMAL) {\r
- CurrentStatement->StorageWidth = sizeof (EFI_HII_DATE);\r
+ CurrentStatement->StorageWidth = (UINT16) sizeof (EFI_HII_DATE);\r
\r
InitializeRequestElement (FormSet, CurrentStatement);\r
} else {\r
CurrentStatement->HiiValue.Type = EFI_IFR_TYPE_TIME;\r
\r
if ((CurrentStatement->Flags & QF_TIME_STORAGE) == QF_TIME_STORAGE_NORMAL) {\r
- CurrentStatement->StorageWidth = sizeof (EFI_IFR_TIME);\r
+ CurrentStatement->StorageWidth = (UINT16) sizeof (EFI_IFR_TIME);\r
\r
InitializeRequestElement (FormSet, CurrentStatement);\r
} else {\r