From aa2e1536cbad90542d40b8ef7e42290a8bf8aed2 Mon Sep 17 00:00:00 2001 From: qwang12 Date: Mon, 28 Jul 2008 05:36:44 +0000 Subject: [PATCH] Optimize GetUnicodeStringTextOrSize's inner loop to call ReadUnalign16 instead of CompareMem and remove a unnecessary local variable. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5580 6f19259b-4bc3-4df7-8a09-765794883524 --- MdeModulePkg/Universal/HiiDatabaseDxe/String.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/String.c b/MdeModulePkg/Universal/HiiDatabaseDxe/String.c index 9850cba8e0..57b887d8a6 100644 --- a/MdeModulePkg/Universal/HiiDatabaseDxe/String.c +++ b/MdeModulePkg/Universal/HiiDatabaseDxe/String.c @@ -163,15 +163,13 @@ GetUnicodeStringTextOrSize ( ) { UINTN StringSize; - CHAR16 Zero; UINT8 *StringPtr; ASSERT (StringSrc != NULL && BufferSize != NULL); - ZeroMem (&Zero, sizeof (CHAR16)); StringSize = sizeof (CHAR16); StringPtr = StringSrc; - while (CompareMem (StringPtr, &Zero, sizeof (CHAR16)) != 0) { + while (ReadUnaligned16 ((UINT16 *) StringPtr) != 0) { StringSize += sizeof (CHAR16); StringPtr += sizeof (CHAR16); }