mirror of
https://github.com/love2d/love.git
synced 2026-08-16 16:20:42 +02:00
Fixed a memory leak in love.graphics.newText.
This commit is contained in:
@@ -352,7 +352,7 @@ Message *Event::convert(const SDL_Event &e) const
|
||||
Proxy proxy;
|
||||
proxy.object = new love::filesystem::DroppedFile(e.drop.file);
|
||||
proxy.type = FILESYSTEM_DROPPED_FILE_ID;
|
||||
vargs.push_back(new Variant(FILESYSTEM_DROPPED_FILE_ID, &proxy));
|
||||
vargs.push_back(new Variant(proxy.type, &proxy));
|
||||
msg = new Message("filedropped", vargs);
|
||||
proxy.object->release();
|
||||
}
|
||||
@@ -406,7 +406,7 @@ Message *Event::convertJoystickEvent(const SDL_Event &e) const
|
||||
if (!proxy.object)
|
||||
break;
|
||||
|
||||
vargs.push_back(new Variant(JOYSTICK_JOYSTICK_ID, (void *) &proxy));
|
||||
vargs.push_back(new Variant(proxy.type, (void *) &proxy));
|
||||
vargs.push_back(new Variant((double)(e.jbutton.button+1)));
|
||||
msg = new Message((e.type == SDL_JOYBUTTONDOWN) ?
|
||||
"joystickpressed" : "joystickreleased",
|
||||
@@ -419,7 +419,7 @@ Message *Event::convertJoystickEvent(const SDL_Event &e) const
|
||||
if (!proxy.object)
|
||||
break;
|
||||
|
||||
vargs.push_back(new Variant(JOYSTICK_JOYSTICK_ID, (void *) &proxy));
|
||||
vargs.push_back(new Variant(proxy.type, (void *) &proxy));
|
||||
vargs.push_back(new Variant((double)(e.jaxis.axis+1)));
|
||||
float value = joystick::Joystick::clampval(e.jaxis.value / 32768.0f);
|
||||
vargs.push_back(new Variant((double) value));
|
||||
@@ -435,7 +435,7 @@ Message *Event::convertJoystickEvent(const SDL_Event &e) const
|
||||
if (!proxy.object)
|
||||
break;
|
||||
|
||||
vargs.push_back(new Variant(JOYSTICK_JOYSTICK_ID, (void *) &proxy));
|
||||
vargs.push_back(new Variant(proxy.type, (void *) &proxy));
|
||||
vargs.push_back(new Variant((double)(e.jhat.hat+1)));
|
||||
vargs.push_back(new Variant(txt, strlen(txt)));
|
||||
msg = new Message("joystickhat", vargs);
|
||||
@@ -453,7 +453,7 @@ Message *Event::convertJoystickEvent(const SDL_Event &e) const
|
||||
if (!proxy.object)
|
||||
break;
|
||||
|
||||
vargs.push_back(new Variant(JOYSTICK_JOYSTICK_ID, (void *) &proxy));
|
||||
vargs.push_back(new Variant(proxy.type, (void *) &proxy));
|
||||
vargs.push_back(new Variant(txt, strlen(txt)));
|
||||
msg = new Message(e.type == SDL_CONTROLLERBUTTONDOWN ?
|
||||
"gamepadpressed" : "gamepadreleased", vargs);
|
||||
@@ -469,7 +469,7 @@ Message *Event::convertJoystickEvent(const SDL_Event &e) const
|
||||
if (!proxy.object)
|
||||
break;
|
||||
|
||||
vargs.push_back(new Variant(JOYSTICK_JOYSTICK_ID, (void *) &proxy));
|
||||
vargs.push_back(new Variant(proxy.type, (void *) &proxy));
|
||||
|
||||
vargs.push_back(new Variant(txt, strlen(txt)));
|
||||
float value = joystick::Joystick::clampval(e.caxis.value / 32768.0f);
|
||||
@@ -483,7 +483,7 @@ Message *Event::convertJoystickEvent(const SDL_Event &e) const
|
||||
proxy.type = JOYSTICK_JOYSTICK_ID;
|
||||
if (proxy.object)
|
||||
{
|
||||
vargs.push_back(new Variant(JOYSTICK_JOYSTICK_ID, (void *) &proxy));
|
||||
vargs.push_back(new Variant(proxy.type, (void *) &proxy));
|
||||
msg = new Message("joystickadded", vargs);
|
||||
}
|
||||
break;
|
||||
@@ -494,7 +494,7 @@ Message *Event::convertJoystickEvent(const SDL_Event &e) const
|
||||
if (proxy.object)
|
||||
{
|
||||
joymodule->removeJoystick((joystick::Joystick *) proxy.object);
|
||||
vargs.push_back(new Variant(JOYSTICK_JOYSTICK_ID, (void *) &proxy));
|
||||
vargs.push_back(new Variant(proxy.type, (void *) &proxy));
|
||||
msg = new Message("joystickremoved", vargs);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -632,6 +632,7 @@ int w_newText(lua_State *L)
|
||||
}
|
||||
|
||||
luax_pushtype(L, GRAPHICS_TEXT_ID, t);
|
||||
t->release();
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -146,7 +146,7 @@ void Mouse::getPosition(double &x, double &y) const
|
||||
|
||||
void Mouse::setPosition(double x, double y)
|
||||
{
|
||||
love::window::Window *window = love::window::sdl::Window::getSingleton();
|
||||
window::Window *window = Module::getInstance<window::Window>(Module::M_WINDOW);
|
||||
|
||||
SDL_Window *handle = nullptr;
|
||||
if (window)
|
||||
@@ -196,14 +196,14 @@ bool Mouse::isVisible() const
|
||||
|
||||
void Mouse::setGrabbed(bool grab)
|
||||
{
|
||||
love::window::Window *window = love::window::sdl::Window::getSingleton();
|
||||
window::Window *window = Module::getInstance<window::Window>(Module::M_WINDOW);
|
||||
if (window)
|
||||
window->setMouseGrab(grab);
|
||||
}
|
||||
|
||||
bool Mouse::isGrabbed() const
|
||||
{
|
||||
love::window::Window *window = love::window::sdl::Window::getSingleton();
|
||||
window::Window *window = Module::getInstance<window::Window>(Module::M_WINDOW);
|
||||
if (window)
|
||||
return window->isMouseGrabbed();
|
||||
else
|
||||
|
||||
@@ -172,8 +172,7 @@ public:
|
||||
virtual int showMessageBox(const MessageBoxData &data) = 0;
|
||||
|
||||
//virtual static Window *createSingleton() = 0;
|
||||
//virtual static Window *getSingleton() = 0;
|
||||
// No virtual statics, of course, but you are supposed to implement these statics.
|
||||
// No virtual statics, of course, but you are supposed to implement this static.
|
||||
|
||||
static bool getConstant(const char *in, Setting &out);
|
||||
static bool getConstant(Setting in, const char *&out);
|
||||
|
||||
@@ -970,11 +970,6 @@ love::window::Window *Window::createSingleton()
|
||||
return singleton;
|
||||
}
|
||||
|
||||
love::window::Window *Window::getSingleton()
|
||||
{
|
||||
return singleton;
|
||||
}
|
||||
|
||||
const char *Window::getName() const
|
||||
{
|
||||
return "love.window.sdl";
|
||||
|
||||
@@ -101,7 +101,6 @@ public:
|
||||
int showMessageBox(const MessageBoxData &data);
|
||||
|
||||
static love::window::Window *createSingleton();
|
||||
static love::window::Window *getSingleton();
|
||||
|
||||
const char *getName() const;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user