#include "Shell.h"\r
#include "FileHandleInternal.h"\r
\r
+#define MEM_WRITE_REALLOC_OVERHEAD 1024\r
+\r
/**\r
File style interface for console (Open). \r
\r
{\r
if (ShellInfoObject.ShellInitSettings.BitUnion.Bits.NoConsoleOut) {\r
return (EFI_UNSUPPORTED);\r
- } else {\r
- return (gST->ConOut->OutputString(gST->ConOut, Buffer));\r
}\r
+ if (*((CHAR16 *)Buffer) == gUnicodeFileTag) {\r
+ return (gST->ConOut->OutputString(gST->ConOut, (CHAR16 *)Buffer + 1));\r
+ }\r
+ return (gST->ConOut->OutputString(gST->ConOut, Buffer));\r
}\r
\r
/**\r
TabLinePos = (EFI_SHELL_FILE_INFO*)GetFirstNode(&FoundFileList->Link);\r
InTabScrolling = TRUE;\r
} else {\r
- FreePool(FoundFileList);\r
- FoundFileList = NULL;\r
+ ShellInfoObject.NewEfiShellProtocol->FreeFileList (&FoundFileList);\r
}\r
}\r
}\r
// if this was used it should be deallocated by now...\r
// prevent memory leaks...\r
//\r
+ if (FoundFileList != NULL) {\r
+ ShellInfoObject.NewEfiShellProtocol->FreeFileList (&FoundFileList);\r
+ }\r
ASSERT(FoundFileList == NULL);\r
\r
return Status;\r
// Unicode\r
//\r
if ((UINTN)(MemFile->Position + (*BufferSize)) > (UINTN)(MemFile->BufferSize)) {\r
- MemFile->Buffer = ReallocatePool((UINTN)(MemFile->BufferSize), (UINTN)(MemFile->BufferSize) + (*BufferSize) + 10, MemFile->Buffer);\r
- MemFile->BufferSize += (*BufferSize) + 10;\r
+ MemFile->Buffer = ReallocatePool((UINTN)(MemFile->BufferSize), (UINTN)(MemFile->BufferSize) + (*BufferSize) + MEM_WRITE_REALLOC_OVERHEAD, MemFile->Buffer);\r
+ MemFile->BufferSize += (*BufferSize) + MEM_WRITE_REALLOC_OVERHEAD;\r
}\r
CopyMem(((UINT8*)MemFile->Buffer) + MemFile->Position, Buffer, *BufferSize);\r
MemFile->Position += (*BufferSize);\r
}\r
AsciiSPrint(AsciiBuffer, *BufferSize, "%S", Buffer);\r
if ((UINTN)(MemFile->Position + AsciiStrSize(AsciiBuffer)) > (UINTN)(MemFile->BufferSize)) {\r
- MemFile->Buffer = ReallocatePool((UINTN)(MemFile->BufferSize), (UINTN)(MemFile->BufferSize) + AsciiStrSize(AsciiBuffer) + 10, MemFile->Buffer);\r
- MemFile->BufferSize += AsciiStrSize(AsciiBuffer) + 10;\r
+ MemFile->Buffer = ReallocatePool((UINTN)(MemFile->BufferSize), (UINTN)(MemFile->BufferSize) + AsciiStrSize(AsciiBuffer) + MEM_WRITE_REALLOC_OVERHEAD, MemFile->Buffer);\r
+ MemFile->BufferSize += AsciiStrSize(AsciiBuffer) + MEM_WRITE_REALLOC_OVERHEAD;\r
}\r
CopyMem(((UINT8*)MemFile->Buffer) + MemFile->Position, AsciiBuffer, AsciiStrSize(AsciiBuffer));\r
MemFile->Position += (*BufferSize / sizeof(CHAR16));\r