Browse Source

Merge pull request #60424 from timothyqiu/fa-unref

Close `FileAccess` before accessing it with `DirAccess`
Rémi Verschelde 3 years ago
parent
commit
68ee730774
2 changed files with 6 additions and 0 deletions
  1. 4 0
      core/io/resource_format_binary.cpp
  2. 2 0
      scene/resources/resource_format_text.cpp

+ 4 - 0
core/io/resource_format_binary.cpp

@@ -1153,6 +1153,8 @@ Error ResourceFormatLoaderBinary::rename_dependencies(const String &p_path, cons
 	uint32_t ver_format = f->get_32();
 
 	if (ver_format < FORMAT_VERSION_CAN_RENAME_DEPS) {
+		fw.unref();
+
 		{
 			Ref<DirAccess> da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
 			da->remove(p_path + ".depren");
@@ -1295,6 +1297,8 @@ Error ResourceFormatLoaderBinary::rename_dependencies(const String &p_path, cons
 		return ERR_CANT_CREATE;
 	}
 
+	fw.unref();
+
 	Ref<DirAccess> da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
 	da->remove(p_path);
 	da->rename(p_path + ".depren", p_path);

+ 2 - 0
scene/resources/resource_format_text.cpp

@@ -898,6 +898,8 @@ Error ResourceLoaderText::rename_dependencies(Ref<FileAccess> p_f, const String
 		return ERR_CANT_CREATE;
 	}
 
+	fw.unref();
+
 	Ref<DirAccess> da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
 	da->remove(p_path);
 	da->rename(p_path + ".depren", p_path);