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

@@ -811,7 +811,7 @@ InitializeBM (
//
Ptr = AllocateZeroPool (sizeof (BM_LOAD_CONTEXT) + sizeof (BM_FILE_CONTEXT) + sizeof (BM_HANDLE_CONTEXT) + sizeof (BM_MENU_ENTRY));
if (Ptr == NULL) {
SafeFreePool (BmmCallbackInfo);
FreePool (BmmCallbackInfo);
return EFI_OUT_OF_RESOURCES;
}
@@ -917,8 +917,8 @@ InitializeBM (
gUpdateData.BufferSize = UPDATE_DATA_SIZE;
gUpdateData.Data = AllocateZeroPool (UPDATE_DATA_SIZE);
if (gUpdateData.Data == NULL) {
SafeFreePool (BmmCallbackInfo->LoadContext);
SafeFreePool (BmmCallbackInfo);
FreePool (BmmCallbackInfo->LoadContext);
FreePool (BmmCallbackInfo);
return EFI_OUT_OF_RESOURCES;
}
@@ -1020,9 +1020,9 @@ InitializeBM (
FreeAllMenu ();
SafeFreePool (BmmCallbackInfo->LoadContext);
SafeFreePool (BmmCallbackInfo);
SafeFreePool (gUpdateData.Data);
FreePool (BmmCallbackInfo->LoadContext);
FreePool (BmmCallbackInfo);
FreePool (gUpdateData.Data);
gUpdateData.Data = NULL;
return Status;
@@ -1205,7 +1205,7 @@ CleanUpStringDepository (
CurrentListNode = StringDepository->ListHead;
for (NodeIndex = 0; NodeIndex < StringDepository->TotalNodeNumber; NodeIndex++) {
NextListNode = CurrentListNode->Next;
SafeFreePool (CurrentListNode);
FreePool (CurrentListNode);
CurrentListNode = NextListNode;
}
@@ -1214,7 +1214,7 @@ CleanUpStringDepository (
//
// Release string depository.
//
SafeFreePool (FileOptionStrDepository);
FreePool (FileOptionStrDepository);
}
/**