Browse Source

putil: fix asserts when model-cache-dir cannot be created

Fixes #790
rdb 5 years ago
parent
commit
1c357f32ca
2 changed files with 9 additions and 4 deletions
  1. 1 2
      panda/src/express/virtualFileSystem.cxx
  2. 8 2
      panda/src/putil/bamCache.cxx

+ 1 - 2
panda/src/express/virtualFileSystem.cxx

@@ -497,8 +497,7 @@ make_directory_full(const Filename &filename) {
   // Now make the last one, and check the return value.
   PT(VirtualFile) result = do_get_file(filename, OF_make_directory);
   _lock.unlock();
-  nassertr_always(result != nullptr, false);
-  return result->is_directory();
+  return (result != nullptr) ? result->is_directory() : false;
 }
 
 /**

+ 8 - 2
panda/src/putil/bamCache.cxx

@@ -133,10 +133,16 @@ set_root(const Filename &root) {
   delete _index;
   _index = new BamCacheIndex;
   _index_stale_since = 0;
+
+  if (!vfs->is_directory(_root)) {
+    util_cat.error()
+      << "Unable to make directory " << _root << ", caching disabled.\n";
+    _active = false;
+    return;
+  }
+
   read_index();
   check_cache_size();
-
-  nassertv(vfs->is_directory(_root));
 }
 
 /**