Merge lp:~widelands-dev/widelands/bug-memleak-net-ui into lp:widelands

Proposed by Notabilis
Status: Merged
Merged at revision: 8976
Proposed branch: lp:~widelands-dev/widelands/bug-memleak-net-ui
Merge into: lp:widelands
Diff against target: 44 lines (+6/-6)
1 file modified
src/network/gameclient.cc (+6/-6)
To merge this branch: bzr merge lp:~widelands-dev/widelands/bug-memleak-net-ui
Reviewer Review Type Date Requested Status
Widelands Developers Pending
Review via email: mp+362945@code.launchpad.net

Commit message

Fixing memory leak in network UI.

Description of the change

The leak is reported to me after joining and starting a (localhost) LAN game.

To post a comment you must log in.
Revision history for this message
bunnybot (widelandsofficial) wrote :

Continuous integration builds have changed state:

Travis build 4452. State: passed. Details: https://travis-ci.org/widelands/widelands/builds/491252462.
Appveyor build 4240. State: success. Details: https://ci.appveyor.com/project/widelands-dev/widelands/build/_widelands_dev_widelands_bug_memleak_net_ui-4240.

Revision history for this message
GunChleoc (gunchleoc) wrote :

Memory leak and fix confirmed. Code LGTM :)

@bunnybot merge

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/network/gameclient.cc'
2--- src/network/gameclient.cc 2018-12-13 07:24:01 +0000
3+++ src/network/gameclient.cc 2019-02-10 13:34:15 +0000
4@@ -173,8 +173,8 @@
5 game.set_write_syncstream(g_options.pull_section("global").get_bool("write_syncstreams", true));
6
7 try {
8- UI::ProgressWindow* loader_ui = new UI::ProgressWindow();
9- d->modal = loader_ui;
10+ std::unique_ptr<UI::ProgressWindow> loader_ui(new UI::ProgressWindow());
11+ d->modal = loader_ui.get();
12 std::vector<std::string> tipstext;
13 tipstext.push_back("general_game");
14 tipstext.push_back("multiplayer");
15@@ -182,7 +182,7 @@
16 tipstext.push_back(get_players_tribe());
17 } catch (NoTribe) {
18 }
19- GameTips tips(*loader_ui, tipstext);
20+ GameTips tips(*loader_ui.get(), tipstext);
21
22 loader_ui->step(_("Preparing game"));
23
24@@ -199,9 +199,9 @@
25 game.set_ibase(igb);
26 igb->set_chat_provider(*this);
27 if (!d->settings.savegame) { // new map
28- game.init_newgame(loader_ui, d->settings);
29+ game.init_newgame(loader_ui.get(), d->settings);
30 } else { // savegame
31- game.init_savegame(loader_ui, d->settings);
32+ game.init_savegame(loader_ui.get(), d->settings);
33 }
34 d->time.reset(game.get_gametime());
35 d->lasttimestamp = game.get_gametime();
36@@ -209,7 +209,7 @@
37
38 d->modal = igb;
39 game.run(
40- loader_ui,
41+ loader_ui.get(),
42 d->settings.savegame ?
43 Widelands::Game::Loaded :
44 d->settings.scenario ? Widelands::Game::NewMPScenario : Widelands::Game::NewNonScenario,

Subscribers

People subscribed via source and target branches

to status/vote changes: