diff --git a/src/bitmap.cpp b/src/bitmap.cpp index ff7c4eb..46396fb 100644 --- a/src/bitmap.cpp +++ b/src/bitmap.cpp @@ -645,6 +645,9 @@ SDL_Surface *Bitmap::megaSurface() void Bitmap::ensureNonMega() { + if (isDisposed()) + return; + GUARD_MEGA; } diff --git a/src/plane.cpp b/src/plane.cpp index 862e52a..11fd261 100644 --- a/src/plane.cpp +++ b/src/plane.cpp @@ -105,7 +105,8 @@ void Plane::setBitmap(Bitmap *value) { GUARD_DISPOSED; - value->ensureNonMega(); + if (value) + value->ensureNonMega(); p->bitmap = value; } diff --git a/src/sprite.cpp b/src/sprite.cpp index a5a48aa..59ad1db 100644 --- a/src/sprite.cpp +++ b/src/sprite.cpp @@ -152,7 +152,8 @@ void Sprite::setBitmap(Bitmap *bitmap) if (p->bitmap == bitmap) return; - bitmap->ensureNonMega(); + if (bitmap) + bitmap->ensureNonMega(); p->bitmap = bitmap; *p->srcRect = bitmap->rect(); diff --git a/src/window.cpp b/src/window.cpp index 01d5586..83a95d6 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -715,7 +715,8 @@ void Window::setWindowskin(Bitmap *value) { GUARD_DISPOSED; - value->ensureNonMega(); + if (value) + value->ensureNonMega(); p->windowskin = value; }