From af072124e4f2f004f2200d765a72efb7c97c9aec Mon Sep 17 00:00:00 2001 From: darylm503 Date: Fri, 7 Jan 2011 23:00:16 +0000 Subject: Fix InternalMemScanMem* functions so that they return the pointer to the matched object, as specified, instead of the following object. Replaces the fix instituted in rev. 10821 with a more understandable, sustainable, and efficient fix that behaves the same regardless of compiler. Reviewed by two peers. Fixes HSD tracker 204556. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11237 6f19259b-4bc3-4df7-8a09-765794883524 --- MdePkg/Library/BaseMemoryLib/MemLibGeneric.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'MdePkg') diff --git a/MdePkg/Library/BaseMemoryLib/MemLibGeneric.c b/MdePkg/Library/BaseMemoryLib/MemLibGeneric.c index 1e3c4c3f13..a977c4aadc 100644 --- a/MdePkg/Library/BaseMemoryLib/MemLibGeneric.c +++ b/MdePkg/Library/BaseMemoryLib/MemLibGeneric.c @@ -162,9 +162,10 @@ InternalMemScanMem8 ( Pointer = (CONST UINT8*)Buffer; do { - if (*(Pointer++) == Value) { - return --Pointer; + if (*Pointer == Value) { + return Pointer; } + ++Pointer; } while (--Length != 0); return NULL; } @@ -192,9 +193,10 @@ InternalMemScanMem16 ( Pointer = (CONST UINT16*)Buffer; do { - if (*(Pointer++) == Value) { - return --Pointer; + if (*Pointer == Value) { + return Pointer; } + ++Pointer; } while (--Length != 0); return NULL; } @@ -222,9 +224,10 @@ InternalMemScanMem32 ( Pointer = (CONST UINT32*)Buffer; do { - if (*(Pointer++) == Value) { - return --Pointer; + if (*Pointer == Value) { + return Pointer; } + ++Pointer; } while (--Length != 0); return NULL; } @@ -252,9 +255,10 @@ InternalMemScanMem64 ( Pointer = (CONST UINT64*)Buffer; do { - if (*(Pointer++) == Value) { - return --Pointer; + if (*Pointer == Value) { + return Pointer; } + ++Pointer; } while (--Length != 0); return NULL; } -- cgit v1.2.3