Null deref fixes / cleanups

This commit is contained in:
Jonas Kulla 2013-09-28 21:48:02 +02:00
parent 1737ec9af4
commit 2226927b08
3 changed files with 23 additions and 13 deletions

View File

@ -105,10 +105,12 @@ void Plane::setBitmap(Bitmap *value)
{ {
GUARD_DISPOSED; GUARD_DISPOSED;
if (value)
value->ensureNonMega();
p->bitmap = value; p->bitmap = value;
if (!value)
return;
value->ensureNonMega();
} }
void Plane::setOX(int value) void Plane::setOX(int value)

View File

@ -152,10 +152,13 @@ void Sprite::setBitmap(Bitmap *bitmap)
if (p->bitmap == bitmap) if (p->bitmap == bitmap)
return; return;
if (bitmap) p->bitmap = bitmap;
if (!bitmap)
return;
bitmap->ensureNonMega(); bitmap->ensureNonMega();
p->bitmap = bitmap;
*p->srcRect = bitmap->rect(); *p->srcRect = bitmap->rect();
p->onSrcRectChange(); p->onSrcRectChange();
p->quad.setPosRect(p->srcRect->toFloatRect()); p->quad.setPosRect(p->srcRect->toFloatRect());

View File

@ -717,23 +717,28 @@ void Window::setWindowskin(Bitmap *value)
{ {
GUARD_DISPOSED; GUARD_DISPOSED;
if (value)
value->ensureNonMega();
p->windowskin = value; p->windowskin = value;
if (!value)
return;
value->ensureNonMega();
} }
void Window::setContents(Bitmap *value) void Window::setContents(Bitmap *value)
{ {
GUARD_DISPOSED; GUARD_DISPOSED;
if (value) if (p->contents == value)
value->ensureNonMega(); return;
p->contents = value; p->contents = value;
p->controlsVertDirty = true; p->controlsVertDirty = true;
if (value) if (!value)
return;
value->ensureNonMega();
p->contentsQuad.setTexPosRect(value->rect(), value->rect()); p->contentsQuad.setTexPosRect(value->rect(), value->rect());
} }