소스 검색

LibGUI/FileIconProvider: Return s_file_icon when stat() fails

Previously when using icon_for_path(), without specifying t_mode, on an
anonymous file it would return an empty Icon causing problems down the
line. Instead return the s_file_icon when stat fails.
Marcus Nilsson 4 년 전
부모
커밋
5a8cc85328
1개의 변경된 파일1개의 추가작업 그리고 3개의 파일을 삭제
  1. 1 3
      Userland/Libraries/LibGUI/FileIconProvider.cpp

+ 1 - 3
Userland/Libraries/LibGUI/FileIconProvider.cpp

@@ -122,7 +122,7 @@ Icon FileIconProvider::icon_for_path(const String& path)
 {
 {
     struct stat stat;
     struct stat stat;
     if (::stat(path.characters(), &stat) < 0)
     if (::stat(path.characters(), &stat) < 0)
-        return {};
+        return s_file_icon;
     return icon_for_path(path, stat.st_mode);
     return icon_for_path(path, stat.st_mode);
 }
 }
 
 
@@ -225,8 +225,6 @@ Icon FileIconProvider::icon_for_path(const String& path, mode_t mode)
             target_path = Core::File::real_path_for(String::formatted("{}/{}", LexicalPath(path).dirname(), raw_symlink_target));
             target_path = Core::File::real_path_for(String::formatted("{}/{}", LexicalPath(path).dirname(), raw_symlink_target));
         }
         }
         auto target_icon = icon_for_path(target_path);
         auto target_icon = icon_for_path(target_path);
-        if (target_icon.sizes().is_empty())
-            return s_symlink_icon;
 
 
         Icon generated_icon;
         Icon generated_icon;
         for (auto size : target_icon.sizes()) {
         for (auto size : target_icon.sizes()) {