mirror of
https://github.com/love2d/love.git
synced 2026-08-15 15:51:12 +02:00
Replaced the EXCEPT_GUARD macro for converting love exceptions into Lua errors with the new luax_catchexcept function, which takes lambda function arguments.
This commit is contained in:
@@ -87,7 +87,7 @@ CompressedData::Format CompressedData::getFormat() const
|
||||
void CompressedData::checkMipmapLevelExists(int miplevel) const
|
||||
{
|
||||
if (miplevel < 0 || miplevel >= (int) dataImages.size())
|
||||
throw love::Exception("Mipmap level %d does not exist", miplevel);
|
||||
throw love::Exception("Mipmap level %d does not exist", miplevel + 1);
|
||||
}
|
||||
|
||||
bool CompressedData::getConstant(const char *in, CompressedData::Format &out)
|
||||
|
||||
@@ -37,7 +37,7 @@ int w_CompressedData_getWidth(lua_State *L)
|
||||
int miplevel = luaL_optinteger(L, 2, 1);
|
||||
int width = 0;
|
||||
|
||||
EXCEPT_GUARD(width = t->getWidth(miplevel >= 1 ? miplevel - 1 : 0);)
|
||||
luax_catchexcept(L, [&](){ width = t->getWidth(miplevel - 1); });
|
||||
|
||||
lua_pushinteger(L, width);
|
||||
return 1;
|
||||
@@ -49,7 +49,7 @@ int w_CompressedData_getHeight(lua_State *L)
|
||||
int miplevel = luaL_optinteger(L, 2, 1);
|
||||
int height = 0;
|
||||
|
||||
EXCEPT_GUARD(height = t->getHeight(miplevel >= 1 ? miplevel - 1 : 0);)
|
||||
luax_catchexcept(L, [&](){ height = t->getHeight(miplevel - 1); });
|
||||
|
||||
lua_pushinteger(L, height);
|
||||
return 1;
|
||||
@@ -61,10 +61,11 @@ int w_CompressedData_getDimensions(lua_State *L)
|
||||
int miplevel = luaL_optinteger(L, 2, 1);
|
||||
int width = 0, height = 0;
|
||||
|
||||
EXCEPT_GUARD(
|
||||
width = t->getWidth(miplevel >= 1 ? miplevel - 1 : 0);
|
||||
height = t->getHeight(miplevel >= 1 ? miplevel - 1 : 0);
|
||||
)
|
||||
luax_catchexcept(L, [&]()
|
||||
{
|
||||
width = t->getWidth(miplevel - 1);
|
||||
height = t->getHeight(miplevel - 1);
|
||||
});
|
||||
|
||||
lua_pushinteger(L, width);
|
||||
lua_pushinteger(L, height);
|
||||
|
||||
@@ -45,7 +45,7 @@ int w_newImageData(lua_State *L)
|
||||
return luaL_error(L, "Invalid image size.");
|
||||
|
||||
ImageData *t = nullptr;
|
||||
EXCEPT_GUARD(t = instance->newImageData(w, h);)
|
||||
luax_catchexcept(L, [&](){ t = instance->newImageData(w, h); });
|
||||
|
||||
luax_pushtype(L, "ImageData", IMAGE_IMAGE_DATA_T, t);
|
||||
return 1;
|
||||
@@ -55,7 +55,10 @@ int w_newImageData(lua_State *L)
|
||||
love::filesystem::FileData *data = love::filesystem::luax_getFileData(L, 1);
|
||||
|
||||
ImageData *t = nullptr;
|
||||
EXCEPT_GUARD_FINALLY(t = instance->newImageData(data);, data->release();)
|
||||
luax_catchexcept(L,
|
||||
[&]() { t = instance->newImageData(data); },
|
||||
[&]() { data->release(); }
|
||||
);
|
||||
|
||||
luax_pushtype(L, "ImageData", IMAGE_IMAGE_DATA_T, t);
|
||||
return 1;
|
||||
@@ -66,7 +69,10 @@ int w_newCompressedData(lua_State *L)
|
||||
love::filesystem::FileData *data = love::filesystem::luax_getFileData(L, 1);
|
||||
|
||||
CompressedData *t = nullptr;
|
||||
EXCEPT_GUARD_FINALLY(t = instance->newCompressedData(data);, data->release();)
|
||||
luax_catchexcept(L,
|
||||
[&]() { t = instance->newCompressedData(data); },
|
||||
[&]() { data->release(); }
|
||||
);
|
||||
|
||||
luax_pushtype(L, "CompressedData", IMAGE_COMPRESSED_DATA_T, t);
|
||||
return 1;
|
||||
@@ -102,7 +108,7 @@ extern "C" int luaopen_love_image(lua_State *L)
|
||||
{
|
||||
if (instance == nullptr)
|
||||
{
|
||||
EXCEPT_GUARD(instance = new love::image::magpie::Image();)
|
||||
luax_catchexcept(L, [&](){ instance = new love::image::magpie::Image(); });
|
||||
}
|
||||
else
|
||||
instance->retain();
|
||||
|
||||
@@ -62,7 +62,7 @@ int w_ImageData_getPixel(lua_State *L)
|
||||
int y = luaL_checkint(L, 3);
|
||||
pixel c;
|
||||
|
||||
EXCEPT_GUARD(c = t->getPixel(x, y);)
|
||||
luax_catchexcept(L, [&](){ c = t->getPixel(x, y); });
|
||||
|
||||
lua_pushnumber(L, c.r);
|
||||
lua_pushnumber(L, c.g);
|
||||
@@ -98,7 +98,7 @@ int w_ImageData_setPixel(lua_State *L)
|
||||
c.a = (unsigned char)luaL_optinteger(L, 7, 255);
|
||||
}
|
||||
|
||||
EXCEPT_GUARD(t->setPixel(x, y, c);)
|
||||
luax_catchexcept(L, [&](){ t->setPixel(x, y, c); });
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -261,7 +261,7 @@ int w_ImageData_encode(lua_State *L)
|
||||
return luaL_error(L, "Invalid image format '%s'.", fmt);
|
||||
}
|
||||
|
||||
EXCEPT_GUARD(t->encode(file, format);)
|
||||
luax_catchexcept(L, [&](){ t->encode(file, format); });
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user