[Bf-blender-cvs] [84fde382e43] master: Fix T85689: Assume Win32 Volumes are Valid

Harley Acheson noreply at git.blender.org
Wed Mar 30 20:11:22 CEST 2022


Commit: 84fde382e43cff6407bfa3587fec9bd570cf9123
Author: Harley Acheson
Date:   Wed Mar 30 11:10:15 2022 -0700
Branches: master
https://developer.blender.org/rB84fde382e43cff6407bfa3587fec9bd570cf9123

Fix T85689: Assume Win32 Volumes are Valid

Skip validation when inserting items into the Win32 "Volumes" list.
This fixes some long hangs when launching Blender with disconnected
network shares.

See D14506 for more details.

Differential Revision: https://developer.blender.org/D14506

Reviewed by Brecht Van Lommel

===================================================================

M	source/blender/editors/include/ED_fileselect.h
M	source/blender/editors/space_file/fsmenu.c

===================================================================

diff --git a/source/blender/editors/include/ED_fileselect.h b/source/blender/editors/include/ED_fileselect.h
index 6a207a6e453..c367072e6e7 100644
--- a/source/blender/editors/include/ED_fileselect.h
+++ b/source/blender/editors/include/ED_fileselect.h
@@ -216,6 +216,8 @@ typedef enum FSMenuInsert {
   FS_INSERT_FIRST = (1 << 2),
   /** just append to preserve delivered order */
   FS_INSERT_LAST = (1 << 3),
+  /** Do not validate the link when inserted. */
+  FS_INSERT_NO_VALIDATE = (1 << 4),
 } FSMenuInsert;
 
 struct FSMenu;
diff --git a/source/blender/editors/space_file/fsmenu.c b/source/blender/editors/space_file/fsmenu.c
index ae0e5b23d55..65354591034 100644
--- a/source/blender/editors/space_file/fsmenu.c
+++ b/source/blender/editors/space_file/fsmenu.c
@@ -463,7 +463,12 @@ void fsmenu_insert_entry(struct FSMenu *fsmenu,
 
   ED_fsmenu_entry_set_icon(fsm_iter, icon);
 
-  fsmenu_entry_refresh_valid(fsm_iter);
+  if (flag & FS_INSERT_NO_VALIDATE) {
+    fsm_iter->valid = true;
+  }
+  else {
+    fsmenu_entry_refresh_valid(fsm_iter);
+  }
 
   if (fsm_prev) {
     if (flag & FS_INSERT_FIRST) {
@@ -689,7 +694,12 @@ void fsmenu_read_system(struct FSMenu *fsmenu, int read_bookmarks)
             break;
         }
 
-        fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, tmps, name, icon, FS_INSERT_SORTED);
+        fsmenu_insert_entry(fsmenu,
+                            FS_CATEGORY_SYSTEM,
+                            tmps,
+                            name,
+                            icon,
+                            FS_INSERT_SORTED | FS_INSERT_NO_VALIDATE);
       }
     }



More information about the Bf-blender-cvs mailing list