Reduced the number of explicit retain/release method calls on love objects. Less chance of bugs!

This commit is contained in:
Alex Szpakowski
2014-08-07 14:53:17 -03:00
parent a0fff798aa
commit d59c76a55f
38 changed files with 194 additions and 247 deletions
+4 -10
View File
@@ -48,9 +48,6 @@ Window::Window()
Window::~Window()
{
if (curMode.icon)
curMode.icon->release();
if (window)
SDL_DestroyWindow(window);
@@ -185,8 +182,8 @@ bool Window::setWindow(int width, int height, WindowSettings *settings)
}
// Make sure the window keeps any previously set icon.
if (window && curMode.icon)
setIcon(curMode.icon);
if (window && curMode.icon.get())
setIcon(curMode.icon.get());
}
if (!window)
@@ -563,10 +560,7 @@ bool Window::setIcon(love::image::ImageData *imgd)
if (!imgd)
return false;
imgd->retain();
if (curMode.icon)
curMode.icon->release();
curMode.icon = imgd;
curMode.icon.set(imgd);
if (!window)
return false;
@@ -607,7 +601,7 @@ bool Window::setIcon(love::image::ImageData *imgd)
love::image::ImageData *Window::getIcon()
{
return curMode.icon;
return curMode.icon.get();
}
void Window::minimize()
+1 -1
View File
@@ -114,7 +114,7 @@ private:
int width;
int height;
WindowSettings settings;
love::image::ImageData *icon;
Object::StrongRef<love::image::ImageData> icon;
} curMode;