Skip to content

Commit 08ee76e

Browse files
committed
Fix a couple memory leaks
1 parent b7212d3 commit 08ee76e

File tree

2 files changed

+27
-6
lines changed

2 files changed

+27
-6
lines changed

src/RageSurface_Load_XPM.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,11 @@ RageSurface *RageSurface_Load_XPM( char * const *xpm, RString &error )
7777

7878
for( int y = 0; y < height; ++y )
7979
{
80-
CheckLine();
80+
if (xpm[line] == NULL) {
81+
error = "short file";
82+
delete img;
83+
return NULL;
84+
}
8185
const RString row = xpm[line++];
8286
if( (int) row.size() != width*color_length )
8387
{

src/arch/LoadingWindow/LoadingWindow.cpp

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,37 @@ LoadingWindow *LoadingWindow::Create()
2121
RString Driver;
2222
LoadingWindow *ret = NULL;
2323

24-
for( unsigned i = 0; ret == NULL && i < DriversToTry.size(); ++i )
24+
for (unsigned i = 0; ret == NULL && i < DriversToTry.size(); ++i)
2525
{
2626
Driver = DriversToTry[i];
2727

2828
#ifdef USE_LOADING_WINDOW_MACOSX
29-
if( !DriversToTry[i].CompareNoCase("MacOSX") ) ret = new LoadingWindow_MacOSX;
29+
if (!DriversToTry[i].CompareNoCase("MacOSX")) {
30+
if (ret != nullptr)
31+
delete ret;
32+
ret = new LoadingWindow_MacOSX;
33+
}
3034
#endif
3135
#ifdef USE_LOADING_WINDOW_GTK
32-
if( !DriversToTry[i].CompareNoCase("Gtk") ) ret = new LoadingWindow_Gtk;
36+
if (!DriversToTry[i].CompareNoCase("Gtk")) {
37+
if (ret != nullptr)
38+
delete ret;
39+
ret = new LoadingWindow_Gtk;
40+
}
3341
#endif
3442
#ifdef USE_LOADING_WINDOW_WIN32
35-
if( !DriversToTry[i].CompareNoCase("Win32") ) ret = new LoadingWindow_Win32;
43+
if (!DriversToTry[i].CompareNoCase("Win32")) {
44+
if (ret != nullptr)
45+
delete ret;
46+
ret = new LoadingWindow_Win32;
47+
}
48+
3649
#endif
37-
if( !DriversToTry[i].CompareNoCase("Null") ) ret = new LoadingWindow_Null;
50+
if( !DriversToTry[i].CompareNoCase("Null") ) {
51+
if (ret != nullptr)
52+
delete ret;
53+
ret = new LoadingWindow_Null;
54+
}
3855

3956
if( ret == NULL )
4057
continue;

0 commit comments

Comments
 (0)