From 69b5d6fa3d49d0e2bc95b0096c98dd1b5305f0a5 Mon Sep 17 00:00:00 2001 From: Joost Peters Date: Sun, 28 May 2006 22:02:38 +0000 Subject: [PATCH] fix PSPFilesystemNode::parent() + some minor cleanup svn-id: r22727 --- backends/fs/psp/psp_fs.cpp | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/backends/fs/psp/psp_fs.cpp b/backends/fs/psp/psp_fs.cpp index 5172444d4a3..893e4b73101 100644 --- a/backends/fs/psp/psp_fs.cpp +++ b/backends/fs/psp/psp_fs.cpp @@ -31,6 +31,8 @@ #include #include +#define ROOT_PATH "ms0:/" + /* * Implementation of the ScummVM file system API based on PSPSDK API. @@ -41,7 +43,6 @@ protected: String _displayName; bool _isDirectory; bool _isValid; - bool _isPseudoRoot; String _path; public: @@ -70,8 +71,7 @@ PSPFilesystemNode::PSPFilesystemNode() { _isDirectory = true; _displayName = "Root"; _isValid = true; - _path = "ms0:/"; - _isPseudoRoot = true; + _path = ROOT_PATH; } PSPFilesystemNode::PSPFilesystemNode(const Common::String &p, bool verify) { @@ -110,7 +110,6 @@ bool PSPFilesystemNode::listDir(AbstractFSList &myList, ListMode mode) const { PSPFilesystemNode entry; entry._isValid = true; - entry._isPseudoRoot = false; entry._displayName = dir.d_name; entry._path = _path; entry._path += dir.d_name; @@ -146,20 +145,16 @@ const char *lastPathComponent(const Common::String &str) { } AbstractFilesystemNode *PSPFilesystemNode::parent() const { - assert(_isValid || _isPseudoRoot); - if (_isPseudoRoot) + assert(_isValid); + + if (_path == ROOT_PATH) return 0; - PSPFilesystemNode *p = new PSPFilesystemNode(); - if (_path.size() > 5) { - const char *start = _path.c_str(); - const char *end = lastPathComponent(_path); - - p->_path = String(start, end - start); - p->_isValid = true; - p->_isDirectory = true; - p->_displayName = lastPathComponent(p->_path); - p->_isPseudoRoot = false; - } + + const char *start = _path.c_str(); + const char *end = lastPathComponent(_path); + + PSPFilesystemNode *p = new PSPFilesystemNode(String(start, end - start), false); + return p; }