Re: [Widelands-dev] [Merge] lp:~widelands-dev/widelands/00_private_inheritance into lp:widelands

2017-07-05 Thread SirVer
This was the cleanup I originally intended to do when I ran into doc issues and 
failing tests in the lint suite.

These are all refactorings to make the code smell better.
-- 
https://code.launchpad.net/~widelands-dev/widelands/00_private_inheritance/+merge/326886
Your team Widelands Developers is requested to review the proposed merge of 
lp:~widelands-dev/widelands/00_private_inheritance into lp:widelands.

___
Mailing list: https://launchpad.net/~widelands-dev
Post to : widelands-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~widelands-dev
More help   : https://help.launchpad.net/ListHelp


[Widelands-dev] [Merge] lp:~widelands-dev/widelands/00_private_inheritance into lp:widelands

2017-07-05 Thread SirVer
SirVer has proposed merging lp:~widelands-dev/widelands/00_private_inheritance 
into lp:widelands.

Commit message:
- Replace private inheritance with composition everywhere.
- Add a lint to forbid private inheritance.
- Use std::unique_ptr<> in more places to signify passing or having ownership.
- Replace SyncCallback through a std::function.


Requested reviews:
  Widelands Developers (widelands-dev)

For more details, see:
https://code.launchpad.net/~widelands-dev/widelands/00_private_inheritance/+merge/326886
-- 
Your team Widelands Developers is requested to review the proposed merge of 
lp:~widelands-dev/widelands/00_private_inheritance into lp:widelands.
=== added file 'cmake/codecheck/rules/do_not_use_private_inheritance'
--- cmake/codecheck/rules/do_not_use_private_inheritance	1970-01-01 00:00:00 +
+++ cmake/codecheck/rules/do_not_use_private_inheritance	2017-07-05 19:31:35 +
@@ -0,0 +1,21 @@
+#!/usr/bin/python
+
+"""
+strdup isn't available on win32
+"""
+
+error_msg = 'Do not use strdup/strndup. Use std::string instead.'
+
+regexp = r'\bstrn?dup\s*\('
+
+allowed = [
+'y = std::string(x)',
+
+'y = new char[strlen(x)+1]',
+'std::copy(x, x+strlen(x)+1, y)',
+]
+
+forbidden = [
+'y = strdup(x)',
+'y = strndup(x)',
+]

=== modified file 'src/game_io/game_loader.cc'
--- src/game_io/game_loader.cc	2017-01-25 18:55:59 +
+++ src/game_io/game_loader.cc	2017-07-05 19:31:35 +
@@ -19,6 +19,8 @@
 
 #include "game_io/game_loader.h"
 
+#include 
+
 #include 
 #include 
 
@@ -122,8 +124,8 @@
 	iterate_players_existing_const(p, nr_players, game_, player) {
 		const MessageQueue& messages = player->messages();
 		for (const auto& temp_message : messages) {
-			Message* message = temp_message.second;
-			MessageId message_id = temp_message.first;
+			const std::unique_ptr& message = temp_message.second;
+			const MessageId message_id = temp_message.first;
 
 			// Renew MapObject connections
 			if (message->serial() > 0) {

=== modified file 'src/logic/cmd_luacoroutine.cc'
--- src/logic/cmd_luacoroutine.cc	2017-01-25 18:55:59 +
+++ src/logic/cmd_luacoroutine.cc	2017-07-05 19:31:35 +
@@ -19,6 +19,8 @@
 
 #include "logic/cmd_luacoroutine.h"
 
+#include 
+
 #include 
 
 #include "base/log.h"
@@ -51,11 +53,11 @@
 		log("%s\n", e.what());
 		log("Send message to all players and pause game\n");
 		for (int i = 1; i <= game.map().get_nrplayers(); i++) {
-			Widelands::Message& msg = *new Widelands::Message(
+			std::unique_ptrmsg(new Widelands::Message(
 			   Message::Type::kGameLogic, game.get_gametime(), "Coroutine",
 			   "images/ui_basic/menu_help.png", "Lua Coroutine Failed",
-			   (boost::format("%s") % e.what()).str());
-			game.player(i).add_message(game, msg, true);
+			   (boost::format("%s") % e.what()).str()));
+			game.player(i).add_message(game, std::move(msg), true);
 		}
 		game.game_controller()->set_desired_speed(0);
 	}

=== modified file 'src/logic/map_objects/tribes/building.cc'
--- src/logic/map_objects/tribes/building.cc	2017-06-26 15:09:21 +
+++ src/logic/map_objects/tribes/building.cc	2017-07-05 19:31:35 +
@@ -772,13 +772,14 @@
 	width % img % owner().get_playercolor().hex_value() % UI_FONT_SIZE_MESSAGE % description)
 	  .str();
 
-	Message* msg =
-	   new Message(msgtype, game.get_gametime(), title, icon_filename, heading, rt_description,
-	   get_position(), (link_to_building_lifetime ? serial_ : 0));
+	std::unique_ptr msg(new Message(msgtype, game.get_gametime(), title, icon_filename,
+	 heading, rt_description, get_position(),
+	 (link_to_building_lifetime ? serial_ : 0)));
 
-	if (throttle_time)
-		owner().add_message_with_timeout(game, *msg, throttle_time, throttle_radius);
-	else
-		owner().add_message(game, *msg);
+	if (throttle_time) {
+		owner().add_message_with_timeout(game, std::move(msg), throttle_time, throttle_radius);
+	} else {
+		owner().add_message(game, std::move(msg));
+	}
 }
 }

=== modified file 'src/logic/map_objects/tribes/ship.cc'
--- src/logic/map_objects/tribes/ship.cc	2017-07-01 15:36:36 +
+++ src/logic/map_objects/tribes/ship.cc	2017-07-05 19:31:35 +
@@ -1068,10 +1068,9 @@
 	picture % UI_FONT_SIZE_MESSAGE % description)
 	  .str();
 
-	Message* msg = new Message(Message::Type::kSeafaring, game.get_gametime(), title, picture,
-	   heading, rt_description, get_position(), serial_);
-
-	get_owner()->add_message(game, *msg);
+	get_owner()->add_message(game, std::unique_ptr(new Message(
+	  Message::Type::kSeafaring, game.get_gametime(), title, picture,
+	  heading, rt_description, get_position(), serial_)));
 }
 
 /*

=== modified file 'src/logic/map_objects/tribes/soldier.cc'
--- src/logic/map_objects/tribes/soldier.cc	2017-07-03 19:24:02 +
+++ src/logic/map_objects/tribes/soldier.cc	2017-07-05 19:31:35 +
@

[Widelands-dev] [Merge] lp:~widelands-dev/widelands/00_private_inheritance into lp:widelands

2017-07-05 Thread bunnybot
Continuous integration builds have changed state:

Travis build 2432. State: failed. Details: 
https://travis-ci.org/widelands/widelands/builds/250492535.
Appveyor build 2259. State: failed. Details: 
https://ci.appveyor.com/project/widelands-dev/widelands/build/_widelands_dev_widelands_00_private_inheritance-2259.
-- 
https://code.launchpad.net/~widelands-dev/widelands/00_private_inheritance/+merge/326886
Your team Widelands Developers is requested to review the proposed merge of 
lp:~widelands-dev/widelands/00_private_inheritance into lp:widelands.

___
Mailing list: https://launchpad.net/~widelands-dev
Post to : widelands-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~widelands-dev
More help   : https://help.launchpad.net/ListHelp


[Widelands-dev] [Merge] lp:~widelands-dev/widelands/00_private_inheritance into lp:widelands

2017-07-05 Thread bunnybot
Continuous integration builds have changed state:

Travis build 2433. State: passed. Details: 
https://travis-ci.org/widelands/widelands/builds/250558716.
Appveyor build 2260. State: success. Details: 
https://ci.appveyor.com/project/widelands-dev/widelands/build/_widelands_dev_widelands_00_private_inheritance-2260.
-- 
https://code.launchpad.net/~widelands-dev/widelands/00_private_inheritance/+merge/326886
Your team Widelands Developers is requested to review the proposed merge of 
lp:~widelands-dev/widelands/00_private_inheritance into lp:widelands.

___
Mailing list: https://launchpad.net/~widelands-dev
Post to : widelands-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~widelands-dev
More help   : https://help.launchpad.net/ListHelp