aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backends/fs/amigaos4/amigaos4-fs.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/backends/fs/amigaos4/amigaos4-fs.cpp b/backends/fs/amigaos4/amigaos4-fs.cpp
index d85d64a9bb..20b3cfc4c8 100644
--- a/backends/fs/amigaos4/amigaos4-fs.cpp
+++ b/backends/fs/amigaos4/amigaos4-fs.cpp
@@ -266,11 +266,11 @@ AmigaOSFilesystemNode::~AmigaOSFilesystemNode() {
}
bool AmigaOSFilesystemNode::exists() const {
+ ENTER();
if(_sPath.empty())
return false;
bool nodeExists = false;
- ENTER();
struct FileInfoBlock *fib = (struct FileInfoBlock *)IDOS->AllocDosObject(DOS_FIB, NULL);
if (!fib) {
@@ -281,17 +281,18 @@ bool AmigaOSFilesystemNode::exists() const {
BPTR pLock = IDOS->Lock((STRPTR)_sPath.c_str(), SHARED_LOCK);
if (pLock) {
- if (IDOS->Examine(pLock, fib) != DOSFALSE) {
+ if (IDOS->Examine(pLock, fib) != DOSFALSE)
nodeExists = true;
- }
IDOS->UnLock(pLock);
}
+ IDOS->FreeDosObject(DOS_FIB, fib);
LEAVE();
return nodeExists;
}
AbstractFilesystemNode *AmigaOSFilesystemNode::getChild(const String &n) const {
+ ENTER();
if (!_bIsDirectory) {
debug(6, "Not a directory");
return 0;
@@ -312,6 +313,7 @@ AbstractFilesystemNode *AmigaOSFilesystemNode::getChild(const String &n) const {
IDOS->UnLock(lock);
+ LEAVE();
return new AmigaOSFilesystemNode(newPath);
}