Browse Source

Clean up some hacky love.filesystem code.

--HG--
branch : minor
Alex Szpakowski 5 years ago
parent
commit
d9ec1d8aa4

+ 7 - 3
src/modules/filesystem/physfs/File.cpp

@@ -32,11 +32,15 @@ namespace love
 namespace filesystem
 {
 
-extern bool hack_setupWriteDirectory();
-
 namespace physfs
 {
 
+static bool setupWriteDirectory()
+{
+	auto fs = Module::getInstance<love::filesystem::Filesystem>(Module::M_FILESYSTEM);
+	return fs != nullptr && fs->setupWriteDirectory();
+}
+
 File::File(const std::string &filename)
 	: filename(filename)
 	, file(nullptr)
@@ -65,7 +69,7 @@ bool File::open(Mode mode)
 		throw love::Exception("Could not open file %s. Does not exist.", filename.c_str());
 
 	// Check whether the write directory is set.
-	if ((mode == MODE_APPEND || mode == MODE_WRITE) && (PHYSFS_getWriteDir() == nullptr) && !hack_setupWriteDirectory())
+	if ((mode == MODE_APPEND || mode == MODE_WRITE) && (PHYSFS_getWriteDir() == nullptr) && !setupWriteDirectory())
 		throw love::Exception("Could not set write directory.");
 
 	// File already open?

+ 0 - 7
src/modules/filesystem/wrap_Filesystem.cpp

@@ -45,13 +45,6 @@ namespace filesystem
 
 #define instance() (Module::getInstance<Filesystem>(Module::M_FILESYSTEM))
 
-bool hack_setupWriteDirectory()
-{
-	if (instance() != 0)
-		return instance()->setupWriteDirectory();
-	return false;
-}
-
 int w_init(lua_State *L)
 {
 	const char *arg0 = luaL_checkstring(L, 1);

+ 0 - 1
src/modules/filesystem/wrap_Filesystem.h

@@ -45,7 +45,6 @@ File *luax_getfile(lua_State *L, int idx);
 Data *luax_getdata(lua_State *L, int idx);
 bool luax_cangetdata(lua_State *L, int idx);
 
-bool hack_setupWriteDirectory();
 int loader(lua_State *L);
 int extloader(lua_State *L);
 extern "C" LOVE_EXPORT int luaopen_love_filesystem(lua_State *L);