diff --git a/src/driver/fb_window.cpp b/src/driver/fb_window.cpp index d5afeb0af..3fa7dbdd9 100644 --- a/src/driver/fb_window.cpp +++ b/src/driver/fb_window.cpp @@ -4,6 +4,7 @@ * abstract fb_window class - d-box2 linux project * * (C) 2003 by thegoodguy + * (C) 2009-2012 Stefan Seyfried * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -34,7 +35,7 @@ class CPrivateData { public: CFrameBuffer * frameBuffer; - fb_pixel_t * Background; + fb_pixel_t * Background; }; CFBWindow::CFBWindow(const int _x, const int _y, const int _dx, const int _dy) @@ -51,7 +52,7 @@ CFBWindow::CFBWindow(const int _x, const int _y, const int _dx, const int _dy) realy = ((CPrivateData *)private_data)->frameBuffer->scaleX(_dy); ((CPrivateData *)private_data)->Background = new fb_pixel_t [realx * realy]; if (((CPrivateData *)private_data)->Background != NULL) - ((CPrivateData *)private_data)->frameBuffer->SaveScreen(_x, _y, _dx, _dy, (fb_pixel_t *)((CPrivateData *)private_data)->Background); + ((CPrivateData *)private_data)->frameBuffer->SaveScreen(_x, _y, _dx, _dy, ((CPrivateData *)private_data)->Background); } @@ -60,9 +61,8 @@ CFBWindow::~CFBWindow(void) if (private_data != NULL) { if (((CPrivateData *)private_data)->Background != NULL) - ((CPrivateData *)private_data)->frameBuffer->RestoreScreen(x, y, dx, dy, (fb_pixel_t *)((CPrivateData *)private_data)->Background); - - delete ((CPrivateData *)private_data)->Background; + ((CPrivateData *)private_data)->frameBuffer->RestoreScreen(x, y, dx, dy, ((CPrivateData *)private_data)->Background); + delete[] ((CPrivateData *)private_data)->Background; delete ((CPrivateData *)private_data); private_data = NULL; }