summaryrefslogtreecommitdiff
path: root/src/guichan
diff options
context:
space:
mode:
Diffstat (limited to 'src/guichan')
-rw-r--r--src/guichan/gui.cpp2
-rw-r--r--src/guichan/include/guichan/sdl/sdlpixel.hpp6
2 files changed, 8 insertions, 0 deletions
diff --git a/src/guichan/gui.cpp b/src/guichan/gui.cpp
index 3f5581424..1ade3f138 100644
--- a/src/guichan/gui.cpp
+++ b/src/guichan/gui.cpp
@@ -618,6 +618,7 @@ namespace gcn
{
Widget* widget = getWidgetAt(x, y);
+ //+++ possible nullpointer
if (mFocusHandler->getModalMouseInputFocused()
&& !widget->isModalMouseInputFocused())
{
@@ -631,6 +632,7 @@ namespace gcn
{
Widget* widget = mFocusHandler->getFocused();
+ //+++ possible nullpointer
while (widget->_getInternalFocusHandler()
&& widget->_getInternalFocusHandler()->getFocused())
{
diff --git a/src/guichan/include/guichan/sdl/sdlpixel.hpp b/src/guichan/include/guichan/sdl/sdlpixel.hpp
index 675b10fcd..809ae4649 100644
--- a/src/guichan/include/guichan/sdl/sdlpixel.hpp
+++ b/src/guichan/include/guichan/sdl/sdlpixel.hpp
@@ -60,6 +60,9 @@ namespace gcn
*/
inline const Color SDLgetPixel(SDL_Surface* surface, int x, int y)
{
+ if (!surface)
+ return Color(0, 0, 0, 0);
+
int bpp = surface->format->BytesPerPixel;
SDL_LockSurface(surface);
@@ -112,6 +115,9 @@ namespace gcn
inline void SDLputPixel(SDL_Surface* surface, int x, int y,
const Color& color)
{
+ if (!surface)
+ return;
+
int bpp = surface->format->BytesPerPixel;
SDL_LockSurface(surface);