Browse Source

Modernize various files

* range-based for loops
* emplace_back instead of push_back
* code style
* C++ headers instead of C headers
* Default operators
* empty stl function
Loic Blot 6 years ago
parent
commit
55ab4264dc

+ 37 - 37
src/face_position_cache.cpp

@@ -40,39 +40,39 @@ const std::vector<v3s16> &FacePositionCache::generateFacePosition(u16 d)
 	cache[d] = std::vector<v3s16>();
 	std::vector<v3s16> &c = cache[d];
 	if (d == 0) {
-		c.push_back(v3s16(0,0,0));
+		c.emplace_back(0,0,0);
 		return c;
 	}
 	if (d == 1) {
 		// This is an optimized sequence of coordinates.
-		c.push_back(v3s16( 0, 1, 0)); // Top
-		c.push_back(v3s16( 0, 0, 1)); // Back
-		c.push_back(v3s16(-1, 0, 0)); // Left
-		c.push_back(v3s16( 1, 0, 0)); // Right
-		c.push_back(v3s16( 0, 0,-1)); // Front
-		c.push_back(v3s16( 0,-1, 0)); // Bottom
+		c.emplace_back(0, 1, 0); // Top
+		c.emplace_back(0, 0, 1); // Back
+		c.emplace_back(-1, 0, 0); // Left
+		c.emplace_back(1, 0, 0); // Right
+		c.emplace_back(0, 0,-1); // Front
+		c.emplace_back(0,-1, 0); // Bottom
 		// 6
-		c.push_back(v3s16(-1, 0, 1)); // Back left
-		c.push_back(v3s16( 1, 0, 1)); // Back right
-		c.push_back(v3s16(-1, 0,-1)); // Front left
-		c.push_back(v3s16( 1, 0,-1)); // Front right
-		c.push_back(v3s16(-1,-1, 0)); // Bottom left
-		c.push_back(v3s16( 1,-1, 0)); // Bottom right
-		c.push_back(v3s16( 0,-1, 1)); // Bottom back
-		c.push_back(v3s16( 0,-1,-1)); // Bottom front
-		c.push_back(v3s16(-1, 1, 0)); // Top left
-		c.push_back(v3s16( 1, 1, 0)); // Top right
-		c.push_back(v3s16( 0, 1, 1)); // Top back
-		c.push_back(v3s16( 0, 1,-1)); // Top front
+		c.emplace_back(-1, 0, 1); // Back left
+		c.emplace_back(1, 0, 1); // Back right
+		c.emplace_back(-1, 0,-1); // Front left
+		c.emplace_back(1, 0,-1); // Front right
+		c.emplace_back(-1,-1, 0); // Bottom left
+		c.emplace_back(1,-1, 0); // Bottom right
+		c.emplace_back(0,-1, 1); // Bottom back
+		c.emplace_back(0,-1,-1); // Bottom front
+		c.emplace_back(-1, 1, 0); // Top left
+		c.emplace_back(1, 1, 0); // Top right
+		c.emplace_back(0, 1, 1); // Top back
+		c.emplace_back(0, 1,-1); // Top front
 		// 18
-		c.push_back(v3s16(-1, 1, 1)); // Top back-left
-		c.push_back(v3s16( 1, 1, 1)); // Top back-right
-		c.push_back(v3s16(-1, 1,-1)); // Top front-left
-		c.push_back(v3s16( 1, 1,-1)); // Top front-right
-		c.push_back(v3s16(-1,-1, 1)); // Bottom back-left
-		c.push_back(v3s16( 1,-1, 1)); // Bottom back-right
-		c.push_back(v3s16(-1,-1,-1)); // Bottom front-left
-		c.push_back(v3s16( 1,-1,-1)); // Bottom front-right
+		c.emplace_back(-1, 1, 1); // Top back-left
+		c.emplace_back(1, 1, 1); // Top back-right
+		c.emplace_back(-1, 1,-1); // Top front-left
+		c.emplace_back(1, 1,-1); // Top front-right
+		c.emplace_back(-1,-1, 1); // Bottom back-left
+		c.emplace_back(1,-1, 1); // Bottom back-right
+		c.emplace_back(-1,-1,-1); // Bottom front-left
+		c.emplace_back(1,-1,-1); // Bottom front-right
 		// 26
 		return c;
 	}
@@ -81,20 +81,20 @@ const std::vector<v3s16> &FacePositionCache::generateFacePosition(u16 d)
 	for (s16 y = 0; y <= d - 1; y++) {
 		// Left and right side, including borders
 		for (s16 z =- d; z <= d; z++) {
-			c.push_back(v3s16( d, y, z));
-			c.push_back(v3s16(-d, y, z));
+			c.emplace_back(d, y, z);
+			c.emplace_back(-d, y, z);
 			if (y != 0) {
-				c.push_back(v3s16( d, -y, z));
-				c.push_back(v3s16(-d, -y, z));
+				c.emplace_back(d, -y, z);
+				c.emplace_back(-d, -y, z);
 			}
 		}
 		// Back and front side, excluding borders
 		for (s16 x = -d + 1; x <= d - 1; x++) {
-			c.push_back(v3s16(x, y, d));
-			c.push_back(v3s16(x, y, -d));
+			c.emplace_back(x, y, d);
+			c.emplace_back(x, y, -d);
 			if (y != 0) {
-				c.push_back(v3s16(x, -y, d));
-				c.push_back(v3s16(x, -y, -d));
+				c.emplace_back(x, -y, d);
+				c.emplace_back(x, -y, -d);
 			}
 		}
 	}
@@ -103,8 +103,8 @@ const std::vector<v3s16> &FacePositionCache::generateFacePosition(u16 d)
 	// -d < x < d, y = +-d, -d < z < d
 	for (s16 x = -d; x <= d; x++)
 	for (s16 z = -d; z <= d; z++) {
-		c.push_back(v3s16(x, -d, z));
-		c.push_back(v3s16(x, d, z));
+		c.emplace_back(x, -d, z);
+		c.emplace_back(x, d, z);
 	}
 	return c;
 }

+ 1 - 1
src/filecache.cpp

@@ -26,7 +26,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include <string>
 #include <iostream>
 #include <fstream>
-#include <stdlib.h>
+#include <cstdlib>
 
 bool FileCache::loadByPath(const std::string &path, std::ostream &os)
 {

+ 35 - 41
src/filesys.cpp

@@ -20,9 +20,9 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "filesys.h"
 #include "util/string.h"
 #include <iostream>
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
+#include <cstdio>
+#include <cstring>
+#include <cerrno>
 #include <fstream>
 #include "log.h"
 #include "config.h"
@@ -246,7 +246,7 @@ std::vector<DirListNode> GetDirListing(const std::string &pathstring)
 			If so, try stat().
 		*/
 		if(isdir == -1) {
-			struct stat statbuf;
+			struct stat statbuf{};
 			if (stat((pathstring + "/" + node.name).c_str(), &statbuf))
 				continue;
 			isdir = ((statbuf.st_mode & S_IFDIR) == S_IFDIR);
@@ -262,22 +262,20 @@ std::vector<DirListNode> GetDirListing(const std::string &pathstring)
 bool CreateDir(const std::string &path)
 {
 	int r = mkdir(path.c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
-	if(r == 0)
-	{
+	if (r == 0) {
 		return true;
 	}
-	else
-	{
-		// If already exists, return true
-		if(errno == EEXIST)
-			return true;
-		return false;
-	}
+
+	// If already exists, return true
+	if (errno == EEXIST)
+		return true;
+	return false;
+
 }
 
 bool PathExists(const std::string &path)
 {
-	struct stat st;
+	struct stat st{};
 	return (stat(path.c_str(),&st) == 0);
 }
 
@@ -288,7 +286,7 @@ bool IsPathAbsolute(const std::string &path)
 
 bool IsDir(const std::string &path)
 {
-	struct stat statbuf;
+	struct stat statbuf{};
 	if(stat(path.c_str(), &statbuf))
 		return false; // Actually error; but certainly not a directory
 	return ((statbuf.st_mode & S_IFDIR) == S_IFDIR);
@@ -347,19 +345,19 @@ bool RecursiveDelete(const std::string &path)
 
 bool DeleteSingleFileOrEmptyDirectory(const std::string &path)
 {
-	if(IsDir(path)){
+	if (IsDir(path)) {
 		bool did = (rmdir(path.c_str()) == 0);
-		if(!did)
-			errorstream<<"rmdir errno: "<<errno<<": "<<strerror(errno)
-					<<std::endl;
-		return did;
-	} else {
-		bool did = (unlink(path.c_str()) == 0);
-		if(!did)
-			errorstream<<"unlink errno: "<<errno<<": "<<strerror(errno)
-					<<std::endl;
+		if (!did)
+			errorstream << "rmdir errno: " << errno << ": " << strerror(errno)
+					<< std::endl;
 		return did;
 	}
+
+	bool did = (unlink(path.c_str()) == 0);
+	if (!did)
+		errorstream << "unlink errno: " << errno << ": " << strerror(errno)
+				<< std::endl;
+	return did;
 }
 
 std::string TempPath()
@@ -385,8 +383,7 @@ std::string TempPath()
 void GetRecursiveSubPaths(const std::string &path, std::vector<std::string> &dst)
 {
 	std::vector<DirListNode> content = GetDirListing(path);
-	for(unsigned int  i=0; i<content.size(); i++){
-		const DirListNode &n = content[i];
+	for (const auto &n : content) {
 		std::string fullpath = path + DIR_DELIM + n.name;
 		dst.push_back(fullpath);
 		if (n.dir) {
@@ -414,15 +411,13 @@ bool RecursiveDeleteContent(const std::string &path)
 {
 	infostream<<"Removing content of \""<<path<<"\""<<std::endl;
 	std::vector<DirListNode> list = GetDirListing(path);
-	for(unsigned int i=0; i<list.size(); i++)
-	{
-		if(trim(list[i].name) == "." || trim(list[i].name) == "..")
+	for (const DirListNode &dln : list) {
+		if(trim(dln.name) == "." || trim(dln.name) == "..")
 			continue;
-		std::string childpath = path + DIR_DELIM + list[i].name;
+		std::string childpath = path + DIR_DELIM + dln.name;
 		bool r = RecursiveDelete(childpath);
-		if(r == false)
-		{
-			errorstream<<"Removing \""<<childpath<<"\" failed"<<std::endl;
+		if(!r) {
+			errorstream << "Removing \"" << childpath << "\" failed" << std::endl;
 			return false;
 		}
 	}
@@ -510,10 +505,10 @@ bool CopyDir(const std::string &source, const std::string &target)
 		bool retval = true;
 		std::vector<DirListNode> content = fs::GetDirListing(source);
 
-		for(unsigned int i=0; i < content.size(); i++){
-			std::string sourcechild = source + DIR_DELIM + content[i].name;
-			std::string targetchild = target + DIR_DELIM + content[i].name;
-			if(content[i].dir){
+		for (const auto &dln : content) {
+			std::string sourcechild = source + DIR_DELIM + dln.name;
+			std::string targetchild = target + DIR_DELIM + dln.name;
+			if(dln.dir){
 				if(!fs::CopyDir(sourcechild, targetchild)){
 					retval = false;
 				}
@@ -526,9 +521,8 @@ bool CopyDir(const std::string &source, const std::string &target)
 		}
 		return retval;
 	}
-	else {
-		return false;
-	}
+
+	return false;
 }
 
 bool PathStartsWith(const std::string &path, const std::string &prefix)

+ 2 - 2
src/filesys.h

@@ -26,12 +26,12 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #ifdef _WIN32 // WINDOWS
 #define DIR_DELIM "\\"
 #define DIR_DELIM_CHAR '\\'
-#define FILESYS_CASE_INSENSITIVE 1
+#define FILESYS_CASE_INSENSITIVE true
 #define PATH_DELIM ";"
 #else // POSIX
 #define DIR_DELIM "/"
 #define DIR_DELIM_CHAR '/'
-#define FILESYS_CASE_INSENSITIVE 0
+#define FILESYS_CASE_INSENSITIVE false
 #define PATH_DELIM ":"
 #endif
 

+ 7 - 16
src/fontengine.h

@@ -21,9 +21,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 
 #include <map>
 #include <vector>
-#include "IGUIFont.h"
-#include "IGUISkin.h"
-#include "IGUIEnvironment.h"
+#include "util/basic_macros.h"
+#include <IGUIFont.h>
+#include <IGUISkin.h>
+#include <IGUIEnvironment.h>
 #include "settings.h"
 
 #define FONT_SIZE_UNSPECIFIED 0xFFFFFFFF
@@ -81,17 +82,6 @@ public:
 	void readSettings();
 
 private:
-	/** disable copy constructor */
-	FontEngine() :
-		m_settings(NULL),
-		m_env(NULL),
-		m_font_cache(),
-		m_currentMode(FM_Standard),
-		m_lastMode(),
-		m_lastSize(0),
-		m_lastFont(NULL)
-	{};
-
 	/** update content of font cache in case of a setting change made it invalid */
 	void updateFontCache();
 
@@ -108,10 +98,10 @@ private:
 	void cleanCache();
 
 	/** pointer to settings for registering callbacks or reading config */
-	Settings* m_settings;
+	Settings* m_settings = nullptr;
 
 	/** pointer to irrlicht gui environment */
-	gui::IGUIEnvironment* m_env;
+	gui::IGUIEnvironment* m_env = nullptr;
 
 	/** internal storage for caching fonts of different size */
 	std::map<unsigned int, irr::gui::IGUIFont*> m_font_cache[FM_MaxMode];
@@ -131,6 +121,7 @@ private:
 	/** last font returned */
 	irr::gui::IGUIFont* m_lastFont = nullptr;
 
+	DISABLE_CLASS_COPY(FontEngine);
 };
 
 /** interface to access main font engine*/

+ 3 - 4
src/genericobject.cpp

@@ -109,10 +109,9 @@ std::string gob_cmd_update_armor_groups(const ItemGroupList &armor_groups)
 	std::ostringstream os(std::ios::binary);
 	writeU8(os, GENERIC_CMD_UPDATE_ARMOR_GROUPS);
 	writeU16(os, armor_groups.size());
-	for(ItemGroupList::const_iterator i = armor_groups.begin();
-			i != armor_groups.end(); ++i){
-		os<<serializeString(i->first);
-		writeS16(os, i->second);
+	for (const auto &armor_group : armor_groups) {
+		os<<serializeString(armor_group.first);
+		writeS16(os, armor_group.second);
 	}
 	return os.str();
 }

+ 2 - 2
src/gettext.cpp

@@ -18,9 +18,9 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 */
 
 #include <string>
-#include <string.h>
+#include <cstring>
 #include <iostream>
-#include <stdlib.h>
+#include <cstdlib>
 #include "gettext.h"
 #include "util/string.h"
 #include "log.h"

+ 2 - 2
src/guiMainMenu.h

@@ -26,7 +26,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 
 struct MainMenuDataForScript {
 
-	MainMenuDataForScript() {}
+	MainMenuDataForScript() = default;
 
 	// Whether the server has requested a reconnect
 	bool reconnect_requested = false;
@@ -51,5 +51,5 @@ struct MainMenuData {
 	// Data to be passed to the script
 	MainMenuDataForScript script_data;
 
-	MainMenuData() {}
+	MainMenuData() = default;
 };

+ 2 - 2
src/guiPathSelectMenu.cpp

@@ -67,7 +67,7 @@ void GUIFileSelectMenu::drawMenu()
 
 void GUIFileSelectMenu::acceptInput()
 {
-	if ((m_text_dst != 0) && (this->m_formname != "")) {
+	if (m_text_dst && !m_formname.empty()) {
 		StringMap fields;
 		if (m_accepted) {
 			std::string path;
@@ -82,7 +82,7 @@ void GUIFileSelectMenu::acceptInput()
 		} else {
 			fields[m_formname + "_canceled"] = m_formname;
 		}
-		this->m_text_dst->gotText(fields);
+		m_text_dst->gotText(fields);
 	}
 	quitMenu();
 }

+ 1 - 1
src/guiTable.cpp

@@ -22,7 +22,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include <queue>
 #include <sstream>
 #include <utility>
-#include <string.h>
+#include <cstring>
 #include <IGUISkin.h>
 #include <IGUIFont.h>
 #include <IGUIScrollBar.h>

+ 7 - 9
src/guiscalingfilter.cpp

@@ -20,7 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "imagefilters.h"
 #include "settings.h"
 #include "util/numeric.h"
-#include <stdio.h>
+#include <cstdio>
 #include "client/renderingengine.h"
 
 /* Maintain a static cache to store the images that correspond to textures
@@ -51,16 +51,14 @@ void guiScalingCache(io::path key, video::IVideoDriver *driver, video::IImage *v
 // Manually clear the cache, e.g. when switching to different worlds.
 void guiScalingCacheClear()
 {
-	for (std::map<io::path, video::IImage *>::iterator it = g_imgCache.begin();
-			it != g_imgCache.end(); ++it) {
-		if (it->second)
-			it->second->drop();
+	for (auto &it : g_imgCache) {
+		if (it.second)
+			it.second->drop();
 	}
 	g_imgCache.clear();
-	for (std::map<io::path, video::ITexture *>::iterator it = g_txrCache.begin();
-			it != g_txrCache.end(); ++it) {
-		if (it->second)
-			RenderingEngine::get_video_driver()->removeTexture(it->second);
+	for (auto &it : g_txrCache) {
+		if (it.second)
+			RenderingEngine::get_video_driver()->removeTexture(it.second);
 	}
 	g_txrCache.clear();
 }

+ 1 - 1
src/guiscalingfilter.h

@@ -46,5 +46,5 @@ video::ITexture *guiScalingImageButton(video::IVideoDriver *driver, video::IText
  */
 void draw2DImageFilterScaled(video::IVideoDriver *driver, video::ITexture *txr,
 		const core::rect<s32> &destrect, const core::rect<s32> &srcrect,
-		const core::rect<s32> *cliprect = 0, const video::SColor *const colors = 0,
+		const core::rect<s32> *cliprect = 0, video::SColor *const colors = 0,
 		bool usealpha = false);