Author: suokko
Date: Thu Jun 12 12:34:38 2008
New Revision: 27114
URL: http://svn.gna.org/viewcvs/wesnoth?rev=27114&view=rev
Log:
Fixed valgrind warning about unitialized varaibles in image.cpp
Fixed loadscreen memory leak
Modified:
trunk/src/game.cpp
trunk/src/image.cpp
trunk/src/loadscreen.cpp
trunk/src/loadscreen.hpp
trunk/src/play_controller.cpp
Modified: trunk/src/game.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/game.cpp?rev=27114&r1=27113&r2=27114&view=diff
==============================================================================
--- trunk/src/game.cpp (original)
+++ trunk/src/game.cpp Thu Jun 12 12:34:38 2008
@@ -2521,7 +2521,7 @@
loadscreen::global_loadscreen->set_progress(100, _("Loading title
screen."));
delete loadscreen::global_loadscreen;
- loadscreen::global_loadscreen = NULL;
+ loadscreen::global_loadscreen = 0;
LOG_CONFIG << "time elapsed: "<< (SDL_GetTicks() - start_ticks) << "
ms\n";
Modified: trunk/src/image.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/image.cpp?rev=27114&r1=27113&r2=27114&view=diff
==============================================================================
--- trunk/src/image.cpp (original)
+++ trunk/src/image.cpp Thu Jun 12 12:34:38 2008
@@ -212,32 +212,44 @@
}
locator::value::value() :
- type_(NONE)
+ type_(NONE), filename_(), loc_(), modifications_(),
+ center_x_(0), center_y_(0)
+
{}
locator::value::value(const char *filename) :
- type_(FILE), filename_(filename)
+ type_(FILE), filename_(filename), loc_(), modifications_(),
+ center_x_(0), center_y_(0)
+
{
}
locator::value::value(const char *filename, const std::string& modifications) :
- type_(SUB_FILE), filename_(filename), modifications_(modifications)
+ type_(SUB_FILE), filename_(filename), loc_(), modifications_(modifications),
+ center_x_(0), center_y_(0)
+
{
}
locator::value::value(const std::string& filename) :
- type_(FILE), filename_(filename)
+ type_(FILE), filename_(filename), loc_(), modifications_(),
+ center_x_(0), center_y_(0)
+
{
}
locator::value::value(const std::string& filename, const std::string&
modifications) :
- type_(SUB_FILE), filename_(filename), modifications_(modifications)
+ type_(SUB_FILE), filename_(filename), loc_(), modifications_(modifications),
+ center_x_(0), center_y_(0)
+
{
}
locator::value::value(const std::string& filename, const gamemap::location&
loc, const std::string& modifications) :
- type_(SUB_FILE), filename_(filename), loc_(loc),
modifications_(modifications)
+ type_(SUB_FILE), filename_(filename), loc_(loc),
modifications_(modifications),
+ center_x_(0), center_y_(0)
+
{
}
Modified: trunk/src/loadscreen.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/loadscreen.cpp?rev=27114&r1=27113&r2=27114&view=diff
==============================================================================
--- trunk/src/loadscreen.cpp (original)
+++ trunk/src/loadscreen.cpp Thu Jun 12 12:34:38 2008
@@ -23,16 +23,20 @@
#include "filesystem.hpp"
#include <iostream>
+#include <cassert>
#include <SDL_image.h>
#define MIN_PERCENTAGE 0
#define MAX_PERCENTAGE 100
+loadscreen::global_loadscreen_manager*
loadscreen::global_loadscreen_manager::manager = 0;
+
loadscreen::global_loadscreen_manager::global_loadscreen_manager(CVideo&
screen)
- : owns(global_loadscreen == NULL)
+ : owns(global_loadscreen == 0)
{
if(owns) {
+ manager = this;
global_loadscreen = new loadscreen(screen);
global_loadscreen->clear_screen();
}
@@ -40,10 +44,18 @@
loadscreen::global_loadscreen_manager::~global_loadscreen_manager()
{
- if(owns && global_loadscreen) {
+ reset();
+}
+
+void loadscreen::global_loadscreen_manager::reset()
+{
+ if(owns) {
+ owns = false;
+ manager = 0;
+ assert(global_loadscreen);
global_loadscreen->clear_screen();
delete global_loadscreen;
- global_loadscreen = NULL;
+ global_loadscreen = 0;
}
}
Modified: trunk/src/loadscreen.hpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/loadscreen.hpp?rev=27114&r1=27113&r2=27114&view=diff
==============================================================================
--- trunk/src/loadscreen.hpp (original)
+++ trunk/src/loadscreen.hpp Thu Jun 12 12:34:38 2008
@@ -27,6 +27,7 @@
#include <iostream>
#include <string>
+#include <cassert>
class loadscreen {
public:
@@ -66,7 +67,11 @@
struct global_loadscreen_manager {
explicit global_loadscreen_manager(CVideo& screen);
~global_loadscreen_manager();
-
+ static global_loadscreen_manager& get()
+ { assert(manager); return *manager; }
+ void reset();
+private:
+ static global_loadscreen_manager* manager;
bool owns;
};
private:
Modified: trunk/src/play_controller.cpp
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/src/play_controller.cpp?rev=27114&r1=27113&r2=27114&view=diff
==============================================================================
--- trunk/src/play_controller.cpp (original)
+++ trunk/src/play_controller.cpp Thu Jun 12 12:34:38 2008
@@ -68,7 +68,7 @@
}
void play_controller::init(CVideo& video, bool is_replay){
- loadscreen::global_loadscreen_manager loadscreen_manager(video);
+ loadscreen::global_loadscreen_manager& loadscreen_manager =
loadscreen::global_loadscreen_manager::get();
// If the recorder has no event, adds an "game start" event
// to the recorder, whose only goal is to initialize the RNG
@@ -145,7 +145,7 @@
init_managers();
loadscreen::global_loadscreen->set_progress(100, _("Starting game"));
- loadscreen::global_loadscreen = NULL;
+ loadscreen_manager.reset();
}
void play_controller::init_managers(){
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits