diff --git a/Engine/source/core/volume.cpp b/Engine/source/core/volume.cpp index 63da6baef..6aac41454 100644 --- a/Engine/source/core/volume.cpp +++ b/Engine/source/core/volume.cpp @@ -579,6 +579,9 @@ bool MountSystem::copyFile(const Path& source, const Path& destination, bool noO } FileRef sourceFile = openFile(source, FS::File::AccessMode::Read); + if (!sourceFile) + return false; + const U64 sourceFileSize = sourceFile->getSize(); void* writeBuffer = dMalloc(sourceFileSize); diff --git a/Engine/source/gui/controls/guiPopUpCtrlEx.cpp b/Engine/source/gui/controls/guiPopUpCtrlEx.cpp index fe9b20fa0..e9a732a53 100644 --- a/Engine/source/gui/controls/guiPopUpCtrlEx.cpp +++ b/Engine/source/gui/controls/guiPopUpCtrlEx.cpp @@ -1386,6 +1386,9 @@ bool GuiPopUpMenuCtrlEx::onKeyDown(const GuiEvent &event) //------------------------------------------------------------------------------ void GuiPopUpMenuCtrlEx::onAction() { + if (!mActive) + return; + GuiControl *canCtrl = getParent(); addChildren(); diff --git a/Engine/source/platformWin32/winVolume.cpp b/Engine/source/platformWin32/winVolume.cpp index 0271ff96b..4da70d0c7 100644 --- a/Engine/source/platformWin32/winVolume.cpp +++ b/Engine/source/platformWin32/winVolume.cpp @@ -89,7 +89,10 @@ static String _BuildFileName(const String& prefix,const Path& path) // internal path name. String file = prefix; file = Path::Join(file, '/', path.getPath()); - file = Path::Join(file, '/', path.getFileName()); + if (path.getFileName().isEmpty() && path.getExtension().isNotEmpty()) //weird, filename-less file, so handle it slightly special-case + file += String("/"); + else + file = Path::Join(file, '/', path.getFileName()); file = Path::Join(file, '.', path.getExtension()); return file; }