Skip to content

Commit 97717e6

Browse files
committed
Merge branch 'fix_lua_vfs_crash' into 'master'
Fix crash on LuaManager::clear triggered by vfs (#8370) Closes #8370 See merge request OpenMW/openmw!4559
2 parents 82307d4 + 1bb3198 commit 97717e6

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

apps/openmw/mwlua/vfsbindings.cpp

+6-6
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ namespace MWLua
6868
Log(Debug::Verbose) << "Read a large data chunk (" << size << " bytes) from '" << file.mFileName << "'.";
6969
}
7070

71-
sol::object readFile(sol::this_state lua, FileHandle& file)
71+
sol::object readFile(lua_State* lua, FileHandle& file)
7272
{
7373
std::ostringstream os;
7474
if (file.mFilePtr && file.mFilePtr->peek() != EOF)
@@ -79,7 +79,7 @@ namespace MWLua
7979
return sol::make_object<std::string>(lua, std::move(result));
8080
}
8181

82-
sol::object readLineFromFile(sol::this_state lua, FileHandle& file)
82+
sol::object readLineFromFile(lua_State* lua, FileHandle& file)
8383
{
8484
std::string result;
8585
if (file.mFilePtr && std::getline(*file.mFilePtr, result))
@@ -91,7 +91,7 @@ namespace MWLua
9191
return sol::nil;
9292
}
9393

94-
sol::object readNumberFromFile(sol::this_state lua, Files::IStreamPtr& file)
94+
sol::object readNumberFromFile(lua_State* lua, Files::IStreamPtr& file)
9595
{
9696
double number = 0;
9797
if (file && *file >> number)
@@ -100,7 +100,7 @@ namespace MWLua
100100
return sol::nil;
101101
}
102102

103-
sol::object readCharactersFromFile(sol::this_state lua, FileHandle& file, size_t count)
103+
sol::object readCharactersFromFile(lua_State* lua, FileHandle& file, size_t count)
104104
{
105105
if (count <= 0 && file.mFilePtr->peek() != EOF)
106106
return sol::make_object<std::string>(lua, std::string());
@@ -189,7 +189,7 @@ namespace MWLua
189189

190190
return seek(lua, self, std::ios_base::cur, off);
191191
});
192-
handle["lines"] = [](sol::this_state lua, sol::object self) {
192+
handle["lines"] = [](sol::this_main_state lua, sol::main_object self) {
193193
if (!self.is<FileHandle*>())
194194
throw std::runtime_error("self should be a file handle");
195195
return sol::as_function([lua, self]() -> sol::object {
@@ -199,7 +199,7 @@ namespace MWLua
199199
});
200200
};
201201

202-
api["lines"] = [vfs](sol::this_state lua, std::string_view fileName) {
202+
api["lines"] = [vfs](sol::this_main_state lua, std::string_view fileName) {
203203
auto normalizedName = VFS::Path::normalizeFilename(fileName);
204204
return sol::as_function(
205205
[lua, file = FileHandle(vfs->getNormalized(normalizedName), normalizedName)]() mutable {

0 commit comments

Comments
 (0)