summaryrefslogtreecommitdiff
path: root/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.c
diff options
context:
space:
mode:
Diffstat (limited to 'MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.c')
-rw-r--r--MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.c19
1 files changed, 5 insertions, 14 deletions
diff --git a/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.c b/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.c
index 67052b20b3..746c27180f 100644
--- a/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.c
+++ b/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.c
@@ -1749,8 +1749,6 @@ ConSplitterGrowBuffer (
IN OUT VOID **Buffer
)
{
- UINTN NewSize;
- UINTN OldSize;
VOID *Ptr;
//
@@ -1758,23 +1756,16 @@ ConSplitterGrowBuffer (
// copy the old buffer's content to the new-size buffer,
// then free the old buffer.
//
- OldSize = *Count * SizeOfCount;
*Count += CONSOLE_SPLITTER_CONSOLES_ALLOC_UNIT;
- NewSize = *Count * SizeOfCount;
-
- Ptr = AllocateZeroPool (NewSize);
+ Ptr = ReallocatePool (
+ SizeOfCount * ((*Count) - CONSOLE_SPLITTER_CONSOLES_ALLOC_UNIT),
+ SizeOfCount * (*Count),
+ *Buffer
+ );
if (Ptr == NULL) {
return EFI_OUT_OF_RESOURCES;
}
-
- CopyMem (Ptr, *Buffer, OldSize);
-
- if (*Buffer != NULL) {
- FreePool (*Buffer);
- }
-
*Buffer = Ptr;
-
return EFI_SUCCESS;
}