[colobot] 276/390: Better error logging in CResourceManager for further debugging #414
Didier Raboud
odyx at moszumanska.debian.org
Fri Jun 12 14:21:54 UTC 2015
This is an automated email from the git hooks/post-receive script.
odyx pushed a commit to branch upstream/latest
in repository colobot.
commit a60a4590b288d754ba911312f84e317bc46e19e5
Author: krzys-h <krzys_h at interia.pl>
Date: Thu Mar 19 19:55:22 2015 +0100
Better error logging in CResourceManager for further debugging #414
---
src/common/resources/resourcemanager.cpp | 37 ++++++++++++++------------------
1 file changed, 16 insertions(+), 21 deletions(-)
diff --git a/src/common/resources/resourcemanager.cpp b/src/common/resources/resourcemanager.cpp
index 24c3680..64cb4ee 100644
--- a/src/common/resources/resourcemanager.cpp
+++ b/src/common/resources/resourcemanager.cpp
@@ -40,8 +40,10 @@ CResourceManager::CResourceManager(const char *argv0)
{
if (!PHYSFS_init(argv0))
{
- CLogger::GetInstancePointer()->Error("Error while initializing physfs\n");
+ CLogger::GetInstancePointer()->Error("Error while initializing physfs: %s\n", PHYSFS_getLastError());
+ assert(false);
}
+ PHYSFS_permitSymbolicLinks(1);
}
@@ -51,7 +53,7 @@ CResourceManager::~CResourceManager()
{
if (!PHYSFS_deinit())
{
- CLogger::GetInstancePointer()->Error("Error while deinitializing physfs\n");
+ CLogger::GetInstancePointer()->Error("Error while deinitializing physfs: %s\n", PHYSFS_getLastError());
}
}
}
@@ -64,43 +66,37 @@ std::string CResourceManager::CleanPath(const std::string& path)
bool CResourceManager::AddLocation(const std::string &location, bool prepend)
{
- if (PHYSFS_isInit())
+ if (!PHYSFS_mount(location.c_str(), nullptr, prepend ? 0 : 1))
{
- if (!PHYSFS_mount(location.c_str(), nullptr, prepend ? 0 : 1))
- {
- CLogger::GetInstancePointer()->Error("Error while mounting \"%s\"\n", location.c_str());
- }
+ CLogger::GetInstancePointer()->Error("Error while mounting \"%s\": %s\n", location.c_str(), PHYSFS_getLastError());
+ return false;
}
- return false;
+ return true;
}
bool CResourceManager::RemoveLocation(const std::string &location)
{
- if (PHYSFS_isInit())
+ if (!PHYSFS_removeFromSearchPath(location.c_str()))
{
- if (!PHYSFS_removeFromSearchPath(location.c_str()))
- {
- CLogger::GetInstancePointer()->Error("Error while unmounting \"%s\"\n", location.c_str());
- }
+ CLogger::GetInstancePointer()->Error("Error while unmounting \"%s\": %s\n", location.c_str(), PHYSFS_getLastError());
+ return false;
}
- return false;
+ return true;
}
bool CResourceManager::SetSaveLocation(const std::string &location)
{
- if (PHYSFS_isInit())
+ if (!PHYSFS_setWriteDir(location.c_str()))
{
- if (!PHYSFS_setWriteDir(location.c_str()))
- {
- CLogger::GetInstancePointer()->Error("Error while setting save location to \"%s\"\n", location.c_str());
- }
+ CLogger::GetInstancePointer()->Error("Error while setting save location to \"%s\": %s\n", location.c_str(), PHYSFS_getLastError());
+ return false;
}
- return false;
+ return true;
}
std::string CResourceManager::GetSaveLocation()
@@ -127,7 +123,6 @@ SDL_RWops* CResourceManager::GetSDLFileHandler(const std::string &filename)
return nullptr;
}
- PHYSFS_permitSymbolicLinks(1);
PHYSFS_File *file = PHYSFS_openRead(CleanPath(filename).c_str());
if (!file)
{
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/colobot.git
More information about the Pkg-games-commits
mailing list