aboutsummaryrefslogtreecommitdiffstats
path: root/src/db/SimpleDatabasePlugin.cxx
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/db/SimpleDatabasePlugin.cxx18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/db/SimpleDatabasePlugin.cxx b/src/db/SimpleDatabasePlugin.cxx
index e7ea7a62d..31d4213a5 100644
--- a/src/db/SimpleDatabasePlugin.cxx
+++ b/src/db/SimpleDatabasePlugin.cxx
@@ -26,20 +26,21 @@
#include "DatabaseSave.hxx"
#include "DatabaseLock.hxx"
#include "DatabaseError.hxx"
-#include "TextFile.hxx"
+#include "fs/TextFile.hxx"
#include "ConfigData.hxx"
#include "fs/FileSystem.hxx"
#include "util/Error.hxx"
#include "util/Domain.hxx"
#include "Log.hxx"
-#include <sys/types.h>
#include <errno.h>
static constexpr Domain simple_db_domain("simple_db");
Database *
-SimpleDatabase::Create(const config_param &param, Error &error)
+SimpleDatabase::Create(gcc_unused EventLoop &loop,
+ gcc_unused DatabaseListener &listener,
+ const config_param &param, Error &error)
{
SimpleDatabase *db = new SimpleDatabase();
if (!db->Configure(param, error)) {
@@ -72,7 +73,7 @@ SimpleDatabase::Check(Error &error) const
assert(!path.IsNull());
/* Check if the file exists */
- if (!CheckAccess(path, F_OK)) {
+ if (!CheckAccess(path)) {
/* If the file doesn't exist, we can't check if we can write
* it, so we are going to try to get the directory path, and
* see if we can write a file in that */
@@ -95,6 +96,7 @@ SimpleDatabase::Check(Error &error) const
return false;
}
+#ifndef WIN32
/* Check if we can write to the directory */
if (!CheckAccess(dirPath, X_OK | W_OK)) {
const int e = errno;
@@ -103,7 +105,7 @@ SimpleDatabase::Check(Error &error) const
dirPath_utf8.c_str());
return false;
}
-
+#endif
return true;
}
@@ -122,12 +124,14 @@ SimpleDatabase::Check(Error &error) const
return false;
}
+#ifndef WIN32
/* And check that we can write to it */
if (!CheckAccess(path, R_OK | W_OK)) {
error.FormatErrno("Can't open db file \"%s\" for reading/writing",
path_utf8.c_str());
return false;
}
+#endif
return true;
}
@@ -166,7 +170,7 @@ SimpleDatabase::Open(Error &error)
#endif
if (!Load(error)) {
- root->Free();
+ delete root;
LogError(error);
error.Clear();
@@ -186,7 +190,7 @@ SimpleDatabase::Close()
assert(root != nullptr);
assert(borrowed_song_count == 0);
- root->Free();
+ delete root;
}
Song *