mirror of
https://github.com/love2d/love.git
synced 2026-08-14 01:20:56 +02:00
Build type information on first use (load-time), instead of using a hardcoded list
--HG-- branch : dynamiccore2
This commit is contained in:
@@ -113,9 +113,9 @@ int w_mount(lua_State *L)
|
||||
{
|
||||
std::string archive;
|
||||
|
||||
if (luax_istype(L, 1, FILESYSTEM_DROPPED_FILE_ID))
|
||||
if (luax_istype(L, 1, DroppedFile::type))
|
||||
{
|
||||
DroppedFile *file = luax_totype<DroppedFile>(L, 1, FILESYSTEM_DROPPED_FILE_ID);
|
||||
DroppedFile *file = luax_totype<DroppedFile>(L, 1, DroppedFile::type);
|
||||
archive = file->getFilename();
|
||||
}
|
||||
else
|
||||
@@ -166,7 +166,7 @@ int w_newFile(lua_State *L)
|
||||
}
|
||||
}
|
||||
|
||||
luax_pushtype(L, FILESYSTEM_FILE_ID, t);
|
||||
luax_pushtype(L, File::type, t);
|
||||
t->release();
|
||||
return 1;
|
||||
}
|
||||
@@ -190,12 +190,12 @@ FileData *luax_getfiledata(lua_State *L, int idx)
|
||||
FileData *data = nullptr;
|
||||
File *file = nullptr;
|
||||
|
||||
if (lua_isstring(L, idx) || luax_istype(L, idx, FILESYSTEM_FILE_ID))
|
||||
if (lua_isstring(L, idx) || luax_istype(L, idx, File::type))
|
||||
{
|
||||
file = luax_getfile(L, idx);
|
||||
file->retain();
|
||||
}
|
||||
else if (luax_istype(L, idx, FILESYSTEM_FILE_DATA_ID))
|
||||
else if (luax_istype(L, idx, FileData::type))
|
||||
{
|
||||
data = luax_checkfiledata(L, idx);
|
||||
data->retain();
|
||||
@@ -220,7 +220,7 @@ FileData *luax_getfiledata(lua_State *L, int idx)
|
||||
|
||||
bool luax_cangetfiledata(lua_State *L, int idx)
|
||||
{
|
||||
return lua_isstring(L, idx) || luax_istype(L, idx, FILESYSTEM_FILE_ID) || luax_istype(L, idx, FILESYSTEM_FILE_DATA_ID);
|
||||
return lua_isstring(L, idx) || luax_istype(L, idx, File::type) || luax_istype(L, idx, FileData::type);
|
||||
}
|
||||
|
||||
int w_newFileData(lua_State *L)
|
||||
@@ -233,7 +233,7 @@ int w_newFileData(lua_State *L)
|
||||
luax_convobj(L, 1, "filesystem", "newFile");
|
||||
|
||||
// Get FileData from the File.
|
||||
if (luax_istype(L, 1, FILESYSTEM_FILE_ID))
|
||||
if (luax_istype(L, 1, File::type))
|
||||
{
|
||||
File *file = luax_checkfile(L, 1);
|
||||
|
||||
@@ -246,7 +246,7 @@ int w_newFileData(lua_State *L)
|
||||
{
|
||||
return luax_ioError(L, "%s", e.what());
|
||||
}
|
||||
luax_pushtype(L, FILESYSTEM_FILE_DATA_ID, data);
|
||||
luax_pushtype(L, FileData::type, data);
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
@@ -260,7 +260,7 @@ int w_newFileData(lua_State *L)
|
||||
FileData *t = nullptr;
|
||||
luax_catchexcept(L, [&](){ t = instance()->newFileData(str, length, filename); });
|
||||
|
||||
luax_pushtype(L, FILESYSTEM_FILE_DATA_ID, t);
|
||||
luax_pushtype(L, FileData::type, t);
|
||||
t->release();
|
||||
return 1;
|
||||
}
|
||||
@@ -398,9 +398,9 @@ static int w_write_or_append(lua_State *L, File::Mode mode)
|
||||
const char *input = 0;
|
||||
size_t len = 0;
|
||||
|
||||
if (luax_istype(L, 2, DATA_ID))
|
||||
if (luax_istype(L, 2, love::Data::type))
|
||||
{
|
||||
love::Data *data = luax_totype<love::Data>(L, 2, DATA_ID);
|
||||
love::Data *data = luax_totype<love::Data>(L, 2, love::Data::type);
|
||||
input = (const char *) data->getData();
|
||||
len = data->getSize();
|
||||
}
|
||||
@@ -474,7 +474,7 @@ int w_lines(lua_State *L)
|
||||
return luaL_error(L, "Could not open file.");
|
||||
}
|
||||
|
||||
luax_pushtype(L, FILESYSTEM_FILE_ID, file);
|
||||
luax_pushtype(L, File::type, file);
|
||||
file->release();
|
||||
}
|
||||
else
|
||||
@@ -810,7 +810,7 @@ extern "C" int luaopen_love_filesystem(lua_State *L)
|
||||
WrappedModule w;
|
||||
w.module = instance;
|
||||
w.name = "filesystem";
|
||||
w.type = MODULE_FILESYSTEM_ID;
|
||||
w.type = &Filesystem::type;
|
||||
w.functions = functions;
|
||||
w.types = types;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user