Build type information on first use (load-time), instead of using a hardcoded list

--HG--
branch : dynamiccore2
This commit is contained in:
Bart van Strien
2016-11-13 16:38:57 +01:00
parent 452a8a877e
commit c761202486
192 changed files with 734 additions and 614 deletions
+13 -13
View File
@@ -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;