/**\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
\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