IN EFI_SHELL_FILE_INFO **FileList\r
)\r
{\r
+ EFI_STATUS Status;\r
+ EFI_SHELL_FILE_INFO *Duplicates;\r
EFI_SHELL_FILE_INFO *ShellFileListItem;\r
EFI_SHELL_FILE_INFO *ShellFileListItem2;\r
EFI_SHELL_FILE_INFO *TempNode;\r
if (FileList == NULL || *FileList == NULL) {\r
return (EFI_INVALID_PARAMETER);\r
}\r
+\r
+ Status = ShellSortFileList (\r
+ FileList,\r
+ &Duplicates,\r
+ ShellSortFileListByFullName\r
+ );\r
+ if (!EFI_ERROR (Status)) {\r
+ EfiShellFreeFileList (&Duplicates);\r
+ return EFI_SUCCESS;\r
+ }\r
+ //\r
+ // Fall back to the slow method that needs no extra memory, and so cannot\r
+ // fail.\r
+ //\r
for ( ShellFileListItem = (EFI_SHELL_FILE_INFO*)GetFirstNode(&(*FileList)->Link)\r
; !IsNull(&(*FileList)->Link, &ShellFileListItem->Link)\r
; ShellFileListItem = (EFI_SHELL_FILE_INFO*)GetNextNode(&(*FileList)->Link, &ShellFileListItem->Link)\r