From de70ac3e36ff3187961182c5c52fdc6df21f007b Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Tue, 29 Dec 2020 20:59:51 +0100 Subject: [PATCH] Tweaks --- Source/Engine/Content/Content.cpp | 8 ++++-- .../Engine/Platform/Win32/Win32FileSystem.cpp | 27 +++++++------------ 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/Source/Engine/Content/Content.cpp b/Source/Engine/Content/Content.cpp index ed2fba1dc..7870f4e1c 100644 --- a/Source/Engine/Content/Content.cpp +++ b/Source/Engine/Content/Content.cpp @@ -580,11 +580,15 @@ bool Content::RenameAsset(const StringView& oldPath, const StringView& newPath) return true; } - // Check if is create + // Ensure asset is ready for renaming if (oldAsset) { // Wait for data loaded - oldAsset->WaitForLoaded(); + if (oldAsset->WaitForLoaded()) + { + LOG(Error, "Failed to load asset '{0}'.", oldAsset->ToString()); + return true; + } // Unload // Don't unload asset fully, only release ref to file, don't call OnUnload so managed asset and all refs will remain alive diff --git a/Source/Engine/Platform/Win32/Win32FileSystem.cpp b/Source/Engine/Platform/Win32/Win32FileSystem.cpp index f4e41e35f..04db319d3 100644 --- a/Source/Engine/Platform/Win32/Win32FileSystem.cpp +++ b/Source/Engine/Platform/Win32/Win32FileSystem.cpp @@ -41,11 +41,8 @@ bool Win32FileSystem::CreateDirectory(const StringView& path) } else { - // Specified directory name already exists as a file or directory - const bool isDirectoryOrJunction = - ((fileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0) || - ((fileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) != 0); - if (!isDirectoryOrJunction) + // Special case if directory name already exists as a file or directory + if (!((fileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0 || (fileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) != 0)) { return true; } @@ -74,7 +71,7 @@ bool Win32FileSystem::DeleteDirectory(const String& path, bool deleteContents) do { // Check if it isn't a special case - if (((StringUtils::Compare(info.cFileName, TEXT(".")) == 0) || (StringUtils::Compare(info.cFileName, TEXT("..")) == 0))) + if (StringUtils::Compare(info.cFileName, TEXT(".")) == 0 || StringUtils::Compare(info.cFileName, TEXT("..")) == 0) continue; // Check if its a directory of a file @@ -110,19 +107,17 @@ bool Win32FileSystem::DeleteDirectory(const String& path, bool deleteContents) // Check if still exists const int32 result = GetFileAttributesW(*path); - return (result != 0xFFFFFFFF && (result & FILE_ATTRIBUTE_DIRECTORY)); + return result != 0xFFFFFFFF && result & FILE_ATTRIBUTE_DIRECTORY; } bool Win32FileSystem::DirectoryExists(const StringView& path) { - // Check if exists const int32 result = GetFileAttributesW(*path); - return (result != 0xFFFFFFFF && (result & FILE_ATTRIBUTE_DIRECTORY)); + return result != 0xFFFFFFFF && result & FILE_ATTRIBUTE_DIRECTORY; } bool Win32FileSystem::DirectoryGetFiles(Array& results, const String& path, const Char* searchPattern, DirectorySearchOption option) { - // Check if use only top directory if (option == DirectorySearchOption::TopDirectoryOnly) return getFilesFromDirectoryTop(results, path, searchPattern); return getFilesFromDirectoryAll(results, path, searchPattern); @@ -143,7 +138,7 @@ bool Win32FileSystem::GetChildDirectories(Array& results, const String& do { // Check if it isn't a special case - if (((StringUtils::Compare(info.cFileName, TEXT(".")) == 0) || (StringUtils::Compare(info.cFileName, TEXT("..")) == 0))) + if (StringUtils::Compare(info.cFileName, TEXT(".")) == 0 || StringUtils::Compare(info.cFileName, TEXT("..")) == 0) continue; // Check if its a directory of a file @@ -161,7 +156,7 @@ bool Win32FileSystem::GetChildDirectories(Array& results, const String& bool Win32FileSystem::FileExists(const StringView& path) { const uint32 result = GetFileAttributesW(*path); - return (result != 0xFFFFFFFF && !(result & FILE_ATTRIBUTE_DIRECTORY)); + return result != 0xFFFFFFFF && !(result & FILE_ATTRIBUTE_DIRECTORY); } bool Win32FileSystem::DeleteFile(const StringView& path) @@ -182,13 +177,12 @@ uint64 Win32FileSystem::GetFileSize(const StringView& path) return li.QuadPart; } } - return 0; } bool Win32FileSystem::IsReadOnly(const StringView& path) { - uint32 result = GetFileAttributesW(*path); + const uint32 result = GetFileAttributesW(*path); if (result != 0xFFFFFFFF) { return !!(result & FILE_ATTRIBUTE_READONLY); @@ -220,7 +214,6 @@ bool Win32FileSystem::MoveFile(const StringView& dst, const StringView& src, boo return MoveFileExW(*src, *tmp, MOVEFILE_REPLACE_EXISTING) == 0 || MoveFileExW(*tmp, *dst, flags) == 0; } - // Move file return MoveFileExW(*src, *dst, flags) == 0; } @@ -278,7 +271,7 @@ bool Win32FileSystem::getFilesFromDirectoryTop(Array& results, const Str do { // Check if it isn't a special case - if (((StringUtils::Compare(info.cFileName, TEXT(".")) == 0) || (StringUtils::Compare(info.cFileName, TEXT("..")) == 0))) + if (StringUtils::Compare(info.cFileName, TEXT(".")) == 0 || StringUtils::Compare(info.cFileName, TEXT("..")) == 0) continue; // Check if its a directory or a file @@ -315,7 +308,7 @@ bool Win32FileSystem::getFilesFromDirectoryAll(Array& results, const Str do { // Check if it isn't a special case - if ((StringUtils::Compare(info.cFileName, TEXT(".")) == 0) || (StringUtils::Compare(info.cFileName, TEXT("..")) == 0)) + if (StringUtils::Compare(info.cFileName, TEXT(".")) == 0 || StringUtils::Compare(info.cFileName, TEXT("..")) == 0) continue; // Check if its a directory or a file