mirror of https://github.com/acidanthera/audk.git
Safely use MDE StrSize(), instead of its own function calculating string size, because the IPF global pointer conversion issue has been solved.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2582 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
537249cee4
commit
34e0daf37d
|
@ -59,39 +59,6 @@ ReleaseLockOnlyAtBootTime (
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
A temparaty function that returns the size of a Null-terminated Unicode
|
|
||||||
string in bytes, including the Null terminator.
|
|
||||||
|
|
||||||
This function returns the size, in bytes, of the Null-terminated Unicode
|
|
||||||
string specified by String. It duplicates the functionality of StrSize()
|
|
||||||
in MDE library, but avoids using PCD, because IPF currently cannot convert
|
|
||||||
address of global variable for runtime.
|
|
||||||
|
|
||||||
If String is NULL, then ASSERT().
|
|
||||||
If String is not aligned on a 16-bit boundary, then ASSERT().
|
|
||||||
|
|
||||||
@param String Pointer to a Null-terminated Unicode string.
|
|
||||||
|
|
||||||
@return The size of String.
|
|
||||||
|
|
||||||
**/
|
|
||||||
STATIC
|
|
||||||
UINTN
|
|
||||||
StrSizeOfVariableName (
|
|
||||||
IN CONST CHAR16 *String
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UINTN Length;
|
|
||||||
|
|
||||||
ASSERT (String != NULL);
|
|
||||||
ASSERT (((UINTN) String & 0x01) == 0);
|
|
||||||
|
|
||||||
for (Length = 0; *String != L'\0'; String++, Length++);
|
|
||||||
|
|
||||||
return (Length + 1) * sizeof (*String);
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC
|
STATIC
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
|
@ -868,7 +835,7 @@ Returns:
|
||||||
//
|
//
|
||||||
Status = EFI_WRITE_PROTECTED;
|
Status = EFI_WRITE_PROTECTED;
|
||||||
goto Done;
|
goto Done;
|
||||||
} else if (sizeof (VARIABLE_HEADER) + StrSizeOfVariableName (VariableName) + DataSize > MAX_VARIABLE_SIZE) {
|
} else if (sizeof (VARIABLE_HEADER) + StrSize (VariableName) + DataSize > MAX_VARIABLE_SIZE) {
|
||||||
//
|
//
|
||||||
// The size of the VariableName, including the Unicode Null in bytes plus
|
// The size of the VariableName, including the Unicode Null in bytes plus
|
||||||
// the DataSize is limited to maximum size of MAX_VARIABLE_SIZE (1024) bytes.
|
// the DataSize is limited to maximum size of MAX_VARIABLE_SIZE (1024) bytes.
|
||||||
|
@ -977,7 +944,7 @@ Returns:
|
||||||
//
|
//
|
||||||
NextVariable->Reserved = 0;
|
NextVariable->Reserved = 0;
|
||||||
VarNameOffset = sizeof (VARIABLE_HEADER);
|
VarNameOffset = sizeof (VARIABLE_HEADER);
|
||||||
VarNameSize = StrSizeOfVariableName (VariableName);
|
VarNameSize = StrSize (VariableName);
|
||||||
CopyMem (
|
CopyMem (
|
||||||
(UINT8 *) ((UINTN) NextVariable + VarNameOffset),
|
(UINT8 *) ((UINTN) NextVariable + VarNameOffset),
|
||||||
VariableName,
|
VariableName,
|
||||||
|
|
Loading…
Reference in New Issue