Commit: 21a2b73a1e0eff0f48fe93161779bd71f8f141f7
Author: Bastien Montagne
Date:   Tue Feb 17 19:11:47 2015 +0100
Branches: master
https://developer.blender.org/rB21a2b73a1e0eff0f48fe93161779bd71f8f141f7

Fix T43684 (again!): Mighty Windows thinks it’s perfectly sensible to block 
everyone during 5 seconds for a mere stat() call on "A:\" path...

For now, just always consider those floppy entries ("A:\" and "B:\") as 
valid... sigh.

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

M       source/blender/editors/space_file/fsmenu.c

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

diff --git a/source/blender/editors/space_file/fsmenu.c 
b/source/blender/editors/space_file/fsmenu.c
index f717573..0cbb31b 100644
--- a/source/blender/editors/space_file/fsmenu.c
+++ b/source/blender/editors/space_file/fsmenu.c
@@ -219,6 +219,20 @@ void ED_fsmenu_entry_set_name(struct FSMenuEntry *fsentry, 
const char *name)
 void fsmenu_entry_refresh_valid(struct FSMenuEntry *fsentry)
 {
        if (fsentry->path && fsentry->path[0]) {
+               /* XXX Special case, always consider those as valid.
+                *     Thanks to Windows, which can spend five seconds to 
perform a mere stat() call on those paths...
+                *     See T43684.
+                */
+               const char *exceptions[] = {"A:\\", "B:\\", NULL};
+               const size_t exceptions_len[] = {strlen(exceptions[0]), 
strlen(exceptions[1]), 0};
+               int i;
+
+               for (i = 0; exceptions[i]; i++) {
+                       if (STREQLEN(fsentry->path, exceptions[i], 
exceptions_len[i])) {
+                               fsentry->valid = true;
+                               return;
+                       }
+               }
                fsentry->valid = BLI_is_dir(fsentry->path);
        }
        else {

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to