aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/tizen/system.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2016-03-20 14:55:41 -0400
committerPaul Gilbert2016-03-20 14:55:41 -0400
commit3c852cc240221785598023de56e5a71a0d8806fa (patch)
treec2a64b811586e4e9d8a4d5baa04d5c4f9d23bd08 /backends/platform/tizen/system.cpp
parentea54e6244e75c609e6886ba210f80fb22c479d3f (diff)
parent509a00109e79156e91c062f145ac3aa86ec8584e (diff)
downloadscummvm-rg350-3c852cc240221785598023de56e5a71a0d8806fa.tar.gz
scummvm-rg350-3c852cc240221785598023de56e5a71a0d8806fa.tar.bz2
scummvm-rg350-3c852cc240221785598023de56e5a71a0d8806fa.zip
Merge branch 'master' into titanic
Diffstat (limited to 'backends/platform/tizen/system.cpp')
-rw-r--r--backends/platform/tizen/system.cpp49
1 files changed, 27 insertions, 22 deletions
diff --git a/backends/platform/tizen/system.cpp b/backends/platform/tizen/system.cpp
index a235456670..1820a28791 100644
--- a/backends/platform/tizen/system.cpp
+++ b/backends/platform/tizen/system.cpp
@@ -81,36 +81,41 @@ struct TizenSaveFileManager : public DefaultSaveFileManager {
};
bool TizenSaveFileManager::removeSavefile(const Common::String &filename) {
- Common::String savePathName = getSavePath();
+ // Assure the savefile name cache is up-to-date.
+ assureCached(getSavePath());
+ if (getError().getCode() != Common::kNoError)
+ return false;
- checkPath(Common::FSNode(savePathName));
- if (getError().getCode() != Common::kNoError) {
+ // Obtain node if exists.
+ SaveFileCache::const_iterator file = _saveFileCache.find(filename);
+ if (file == _saveFileCache.end()) {
return false;
- }
+ } else {
+ const Common::FSNode fileNode = file->_value;
+ // Remove from cache, this invalidates the 'file' iterator.
+ _saveFileCache.erase(file);
+ file = _saveFileCache.end();
- // recreate FSNode since checkPath may have changed/created the directory
- Common::FSNode savePath(savePathName);
- Common::FSNode file = savePath.getChild(filename);
+ String unicodeFileName;
+ StringUtil::Utf8ToString(fileNode.getPath().c_str(), unicodeFileName);
- String unicodeFileName;
- StringUtil::Utf8ToString(file.getPath().c_str(), unicodeFileName);
+ switch (Tizen::Io::File::Remove(unicodeFileName)) {
+ case E_SUCCESS:
+ return true;
- switch (Tizen::Io::File::Remove(unicodeFileName)) {
- case E_SUCCESS:
- return true;
+ case E_ILLEGAL_ACCESS:
+ setError(Common::kWritePermissionDenied, "Search or write permission denied: " +
+ file.getName());
+ break;
- case E_ILLEGAL_ACCESS:
- setError(Common::kWritePermissionDenied, "Search or write permission denied: " +
- file.getName());
- break;
+ default:
+ setError(Common::kPathDoesNotExist, "removeSavefile: '" + file.getName() +
+ "' does not exist or path is invalid");
+ break;
+ }
- default:
- setError(Common::kPathDoesNotExist, "removeSavefile: '" + file.getName() +
- "' does not exist or path is invalid");
- break;
+ return false;
}
-
- return false;
}
//