aboutsummaryrefslogtreecommitdiff
path: root/backends/fs/morphos/abox-fs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backends/fs/morphos/abox-fs.cpp')
-rw-r--r--backends/fs/morphos/abox-fs.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/backends/fs/morphos/abox-fs.cpp b/backends/fs/morphos/abox-fs.cpp
index 70234740d3..38e84b2547 100644
--- a/backends/fs/morphos/abox-fs.cpp
+++ b/backends/fs/morphos/abox-fs.cpp
@@ -51,7 +51,7 @@ class ABoxFilesystemNode : public AbstractFilesystemNode {
virtual bool isDirectory() const { return _isDirectory; }
virtual String path() const { return _path; }
- virtual AbstractFSList listDir(ListMode mode) const;
+ virtual bool listDir(AbstractFSList &list, ListMode mode) const;
static AbstractFSList listRoot();
virtual AbstractFilesystemNode *parent() const;
virtual AbstractFilesystemNode *child(const String &name) const;
@@ -129,10 +129,8 @@ ABoxFilesystemNode::~ABoxFilesystemNode()
}
}
-AbstractFSList ABoxFilesystemNode::listDir(ListMode mode) const
+bool ABoxFilesystemNode::listDir(AbstractFSList &myList, ListMode mode) const
{
- AbstractFSList myList;
-
if (!_isValid)
error("listDir() called on invalid node");
@@ -142,7 +140,8 @@ AbstractFSList ABoxFilesystemNode::listDir(ListMode mode) const
if (_lock == NULL)
{
/* This is the root node */
- return listRoot();
+ myList = listRoot();
+ return true;
}
/* "Normal" file system directory */
@@ -151,7 +150,7 @@ AbstractFSList ABoxFilesystemNode::listDir(ListMode mode) const
if (fib == NULL)
{
warning("Failed to allocate memory for FileInfoBlock");
- return myList;
+ return false;
}
if (Examine(_lock, fib) != DOSFALSE)
@@ -189,7 +188,7 @@ AbstractFSList ABoxFilesystemNode::listDir(ListMode mode) const
FreeDosObject(DOS_FIB, fib);
- return myList;
+ return tree;
}
AbstractFilesystemNode *ABoxFilesystemNode::parent() const