mirror of
https://github.com/love2d/love.git
synced 2026-08-19 12:14:20 +02:00
Error if getting/setting out-of-range samples (issue #674)
This commit is contained in:
@@ -161,7 +161,7 @@ void SoundData::setSample(int i, float sample)
|
|||||||
{
|
{
|
||||||
// Check range.
|
// Check range.
|
||||||
if (i < 0 || i >= size/(bits/8))
|
if (i < 0 || i >= size/(bits/8))
|
||||||
return;
|
throw love::Exception("Attempt to set out-of-range sample!");
|
||||||
|
|
||||||
if (bits == 16)
|
if (bits == 16)
|
||||||
{
|
{
|
||||||
@@ -180,7 +180,7 @@ float SoundData::getSample(int i) const
|
|||||||
{
|
{
|
||||||
// Check range.
|
// Check range.
|
||||||
if (i < 0 || i >= size/(bits/8))
|
if (i < 0 || i >= size/(bits/8))
|
||||||
return 0;
|
throw love::Exception("Attempt to get out-of-range sample!");
|
||||||
|
|
||||||
if (bits == 16)
|
if (bits == 16)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -72,7 +72,14 @@ int w_SoundData_setSample(lua_State *L)
|
|||||||
SoundData *sd = luax_checksounddata(L, 1);
|
SoundData *sd = luax_checksounddata(L, 1);
|
||||||
int i = (int)lua_tointeger(L, 2);
|
int i = (int)lua_tointeger(L, 2);
|
||||||
float sample = (float)lua_tonumber(L, 3);
|
float sample = (float)lua_tonumber(L, 3);
|
||||||
sd->setSample(i, sample);
|
try
|
||||||
|
{
|
||||||
|
sd->setSample(i, sample);
|
||||||
|
}
|
||||||
|
catch (love::Exception &e)
|
||||||
|
{
|
||||||
|
return luaL_error(L, "%s", e.what());
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,7 +87,14 @@ int w_SoundData_getSample(lua_State *L)
|
|||||||
{
|
{
|
||||||
SoundData *sd = luax_checksounddata(L, 1);
|
SoundData *sd = luax_checksounddata(L, 1);
|
||||||
int i = (int)lua_tointeger(L, 2);
|
int i = (int)lua_tointeger(L, 2);
|
||||||
lua_pushnumber(L, sd->getSample(i));
|
try
|
||||||
|
{
|
||||||
|
lua_pushnumber(L, sd->getSample(i));
|
||||||
|
}
|
||||||
|
catch (love::Exception &e)
|
||||||
|
{
|
||||||
|
return luaL_error(L, "%s", e.what());
|
||||||
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user