mirror of https://github.com/acidanthera/audk.git
update error handling to use less ASSERT.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11053 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
a12e31e680
commit
ff51746bd4
|
@ -331,7 +331,8 @@ GetHandleListByProtocol (
|
|||
@param[in] ProtocolGuids A NULL terminated list of protocol GUIDs.
|
||||
|
||||
@retval NULL A memory allocation failed.
|
||||
@return A NULL terminated list of handles.
|
||||
@retval NULL ProtocolGuids was NULL.
|
||||
@return A NULL terminated list of EFI_HANDLEs.
|
||||
**/
|
||||
EFI_HANDLE*
|
||||
EFIAPI
|
||||
|
|
|
@ -1105,7 +1105,9 @@ ParseHandleDatabaseForChildControllers(
|
|||
BOOLEAN Found;
|
||||
EFI_HANDLE *HandleBufferForReturn;
|
||||
|
||||
ASSERT (MatchingHandleCount != NULL);
|
||||
if (MatchingHandleCount == NULL) {
|
||||
return (EFI_INVALID_PARAMETER);
|
||||
}
|
||||
|
||||
Status = PARSE_HANDLE_DATABASE_UEFI_DRIVERS (
|
||||
ControllerHandle,
|
||||
|
@ -1116,10 +1118,13 @@ ParseHandleDatabaseForChildControllers(
|
|||
return Status;
|
||||
}
|
||||
|
||||
HandleBufferForReturn = GetHandleListByProtocol(&gEfiDriverBindingProtocolGuid);
|
||||
//
|
||||
// Get a buffer big enough for all the controllers.
|
||||
//
|
||||
HandleBufferForReturn = GetHandleListByProtocol(&gEfiDevicePathProtocolGuid);
|
||||
if (HandleBufferForReturn == NULL) {
|
||||
FreePool (DriverBindingHandleBuffer);
|
||||
return Status;
|
||||
return (EFI_NOT_FOUND);
|
||||
}
|
||||
|
||||
*MatchingHandleCount = 0;
|
||||
|
@ -1361,7 +1366,8 @@ GetHandleListByProtocol (
|
|||
@param[in] ProtocolGuids A NULL terminated list of protocol GUIDs.
|
||||
|
||||
@retval NULL A memory allocation failed.
|
||||
@return A NULL terminated list of handles.
|
||||
@retval NULL ProtocolGuids was NULL.
|
||||
@return A NULL terminated list of EFI_HANDLEs.
|
||||
**/
|
||||
EFI_HANDLE*
|
||||
EFIAPI
|
||||
|
@ -1397,7 +1403,6 @@ GetHandleListByProtocolList (
|
|||
}
|
||||
|
||||
HandleList = AllocateZeroPool(TotalSize);
|
||||
ASSERT(HandleList != NULL);
|
||||
if (HandleList == NULL) {
|
||||
return (NULL);
|
||||
}
|
||||
|
@ -1405,16 +1410,16 @@ GetHandleListByProtocolList (
|
|||
Size = 0;
|
||||
for (GuidWalker = ProtocolGuids ; GuidWalker != NULL && *GuidWalker != NULL ; GuidWalker++){
|
||||
TempSize = TotalSize - Size;
|
||||
Status = gBS->LocateHandle(ByProtocol, (EFI_GUID*)(*GuidWalker), NULL, &TempSize, HandleList+((TotalSize - Size)/sizeof(EFI_HANDLE)));
|
||||
Status = gBS->LocateHandle(ByProtocol, (EFI_GUID*)(*GuidWalker), NULL, &TempSize, HandleList+(Size/sizeof(EFI_HANDLE)));
|
||||
|
||||
//
|
||||
// Allow for missing protocols... Only update the 'used' size upon success.
|
||||
//
|
||||
if (!EFI_ERROR(Status)) {
|
||||
Size = TempSize;
|
||||
Size += TempSize;
|
||||
}
|
||||
}
|
||||
HandleList[(TotalSize/sizeof(EFI_HANDLE))-1] = NULL;
|
||||
ASSERT(HandleList[(TotalSize/sizeof(EFI_HANDLE))-1] == NULL);
|
||||
|
||||
for (HandleWalker1 = HandleList ; HandleWalker1 != NULL && *HandleWalker1 != NULL ; HandleWalker1++) {
|
||||
for (HandleWalker2 = HandleWalker1 + 1; HandleWalker2 != NULL && *HandleWalker2 != NULL ; HandleWalker2++) {
|
||||
|
|
|
@ -1171,7 +1171,8 @@ ConvertShellHandleToEfiFileProtocol(
|
|||
@param[in] Handle The pointer to EFI_FILE_PROTOCOL to convert.
|
||||
@param[in] Path The path to the file for verification.
|
||||
|
||||
@return a SHELL_FILE_HANDLE representing the same file.
|
||||
@return A SHELL_FILE_HANDLE representing the same file.
|
||||
@retval NULL There was not enough memory.
|
||||
**/
|
||||
SHELL_FILE_HANDLE
|
||||
EFIAPI
|
||||
|
@ -1185,11 +1186,18 @@ ConvertEfiFileProtocolToShellHandle(
|
|||
|
||||
if (Path != NULL) {
|
||||
Buffer = AllocateZeroPool(sizeof(SHELL_COMMAND_FILE_HANDLE));
|
||||
ASSERT(Buffer != NULL);
|
||||
if (Buffer == NULL) {
|
||||
return (NULL);
|
||||
}
|
||||
NewNode = AllocatePool(sizeof(BUFFER_LIST));
|
||||
ASSERT(NewNode != NULL);
|
||||
if (NewNode == NULL) {
|
||||
return (NULL);
|
||||
}
|
||||
Buffer->FileHandle = (EFI_FILE_PROTOCOL*)Handle;
|
||||
Buffer->Path = StrnCatGrow(&Buffer->Path, NULL, Path, 0);
|
||||
if (Buffer->Path == NULL) {
|
||||
return (NULL);
|
||||
}
|
||||
NewNode->Buffer = Buffer;
|
||||
|
||||
InsertHeadList(&mFileHandleList.Link, &NewNode->Link);
|
||||
|
@ -1244,8 +1252,10 @@ ShellFileHandleRemove(
|
|||
; Node = (BUFFER_LIST*)GetNextNode(&mFileHandleList.Link, &Node->Link)
|
||||
){
|
||||
if ((Node->Buffer) && (((SHELL_COMMAND_FILE_HANDLE *)Node->Buffer)->FileHandle == Handle)){
|
||||
SHELL_FREE_NON_NULL(((SHELL_COMMAND_FILE_HANDLE *)Node->Buffer)->Path);
|
||||
RemoveEntryList(&Node->Link);
|
||||
SHELL_FREE_NON_NULL(((SHELL_COMMAND_FILE_HANDLE *)Node->Buffer)->Path);
|
||||
SHELL_FREE_NON_NULL(Node->Buffer);
|
||||
SHELL_FREE_NON_NULL(Node);
|
||||
return (TRUE);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue