From: mdkinney Date: Sat, 3 Jun 2006 21:51:12 +0000 (+0000) Subject: 1) Add support for %p to print pointers X-Git-Tag: edk2-stable201903~25328 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=1d580c14473896b5b593a7f60a21f532008265d0;ds=sidebyside 1) Add support for %p to print pointers 2) Fix %d,%x,%X to pull values off the vararg stack using (int) and (unsigned int) types to resolve compatibility issues with X64 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@408 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/MdePkg/Library/BasePrintLib/PrintLib.c b/MdePkg/Library/BasePrintLib/PrintLib.c index f2c7ee5807..84dceb6e85 100644 --- a/MdePkg/Library/BasePrintLib/PrintLib.c +++ b/MdePkg/Library/BasePrintLib/PrintLib.c @@ -235,6 +235,10 @@ BasePrintLibVSPrint ( // Handle each argument type // switch (FormatCharacter) { + case 'p': + if (sizeof (VOID *) > 4) { + Flags |= LONG_TYPE; + } case 'X': Flags |= PREFIX_ZERO; // @@ -247,7 +251,7 @@ BasePrintLibVSPrint ( // case 'd': if ((Flags & LONG_TYPE) == 0) { - Value = (VA_ARG (Marker, INTN)); + Value = (VA_ARG (Marker, int)); } else { Value = VA_ARG (Marker, INT64); } @@ -275,7 +279,7 @@ BasePrintLibVSPrint ( Radix = 16; Comma = FALSE; if ((Flags & LONG_TYPE) == 0 && Value < 0) { - Value = (UINTN)Value; + Value = (unsigned int)Value; } } //