Remove SafeFreePool from MemoryAllocationLib as this API's name is misleading. Its implementation only check if a pointer is NULL. If a garbage pointer is passed in, the gBS->FreePool will still ASSERT in debug build and return error code.

It is recommended that module writer should keep track how a pointer is allocated and free it after use.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6306 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qwang12
2008-10-30 07:32:46 +00:00
parent bb1d8ee669
commit 676df92c2c
27 changed files with 652 additions and 410 deletions

View File

@@ -467,7 +467,9 @@ EnableQuietBootEx (
// Currently only support BMP format.
//
if (Format != EfiBadgingFormatBMP) {
SafeFreePool (ImageData);
if (ImageData != NULL) {
FreePool (ImageData);
}
continue;
}
} else {
@@ -494,7 +496,9 @@ EnableQuietBootEx (
&Width
);
if (EFI_ERROR (Status)) {
SafeFreePool (ImageData);
if (ImageData != NULL) {
FreePool (ImageData);
}
if (Badging == NULL) {
return Status;
} else {
@@ -589,8 +593,12 @@ EnableQuietBootEx (
}
}
SafeFreePool (ImageData);
SafeFreePool (Blt);
if (ImageData != NULL) {
FreePool (ImageData);
}
if (Blt != NULL) {
FreePool (Blt);
}
if (Badging == NULL) {
break;
@@ -780,8 +788,8 @@ Print (
Blt->Image.Bitmap = AllocateZeroPool (Blt->Width * Blt->Height * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL));
if (Blt->Image.Bitmap == NULL) {
SafeFreePool (Blt);
SafeFreePool (Buffer);
FreePool (Blt);
FreePool (Buffer);
return EFI_OUT_OF_RESOURCES;
}
@@ -824,15 +832,23 @@ Print (
);
}
SafeFreePool (RowInfoArray);
SafeFreePool (Blt->Image.Bitmap);
if (RowInfoArray != NULL) {
FreePool (RowInfoArray);
}
if (Blt->Image.Bitmap != NULL) {
FreePool (Blt->Image.Bitmap);
}
} else {
Status = EFI_UNSUPPORTED;
}
Error:
SafeFreePool (Blt);
SafeFreePool (FontInfo);
if (Blt != NULL) {
FreePool (Blt);
}
if (FontInfo != NULL) {
FreePool (FontInfo);
}
FreePool (Buffer);
if (EFI_ERROR (Status)) {