summaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/util')
-rw-r--r--src/util/areastore.cpp9
-rw-r--r--src/util/container.h23
-rw-r--r--src/util/enriched_string.cpp10
-rw-r--r--src/util/enriched_string.h34
4 files changed, 38 insertions, 38 deletions
diff --git a/src/util/areastore.cpp b/src/util/areastore.cpp
index cea526336..67bfef0c0 100644
--- a/src/util/areastore.cpp
+++ b/src/util/areastore.cpp
@@ -96,16 +96,15 @@ void AreaStore::deserialize(std::istream &is)
u16 num_areas = readU16(is);
std::vector<Area> areas;
+ areas.reserve(num_areas);
for (u32 i = 0; i < num_areas; ++i) {
Area a(U32_MAX);
a.minedge = readV3S16(is);
a.maxedge = readV3S16(is);
u16 data_len = readU16(is);
- char *data = new char[data_len];
- is.read(data, data_len);
- a.data = std::string(data, data_len);
- areas.emplace_back(a);
- delete [] data;
+ a.data = std::string(data_len, '\0');
+ is.read(&a.data[0], data_len);
+ areas.emplace_back(std::move(a));
}
bool read_ids = is.good(); // EOF for old formats
diff --git a/src/util/container.h b/src/util/container.h
index ea8c27bf8..001066563 100644
--- a/src/util/container.h
+++ b/src/util/container.h
@@ -90,8 +90,7 @@ public:
bool get(const Key &name, Value *result) const
{
MutexAutoLock lock(m_mutex);
- typename std::map<Key, Value>::const_iterator n =
- m_values.find(name);
+ auto n = m_values.find(name);
if (n == m_values.end())
return false;
if (result)
@@ -103,11 +102,9 @@ public:
{
MutexAutoLock lock(m_mutex);
std::vector<Value> result;
- for (typename std::map<Key, Value>::const_iterator
- it = m_values.begin();
- it != m_values.end(); ++it){
+ result.reserve(m_values.size());
+ for (auto it = m_values.begin(); it != m_values.end(); ++it)
result.push_back(it->second);
- }
return result;
}
@@ -136,7 +133,7 @@ public:
return m_queue.empty();
}
- void push_back(T t)
+ void push_back(const T &t)
{
MutexAutoLock lock(m_mutex);
m_queue.push_back(t);
@@ -158,7 +155,7 @@ public:
if (m_signal.wait(wait_time_max_ms)) {
MutexAutoLock lock(m_mutex);
- T t = m_queue.front();
+ T t = std::move(m_queue.front());
m_queue.pop_front();
return t;
}
@@ -171,7 +168,7 @@ public:
if (m_signal.wait(wait_time_max_ms)) {
MutexAutoLock lock(m_mutex);
- T t = m_queue.front();
+ T t = std::move(m_queue.front());
m_queue.pop_front();
return t;
}
@@ -185,7 +182,7 @@ public:
MutexAutoLock lock(m_mutex);
- T t = m_queue.front();
+ T t = std::move(m_queue.front());
m_queue.pop_front();
return t;
}
@@ -195,7 +192,7 @@ public:
if (m_signal.wait(wait_time_max_ms)) {
MutexAutoLock lock(m_mutex);
- T t = m_queue.back();
+ T t = std::move(m_queue.back());
m_queue.pop_back();
return t;
}
@@ -211,7 +208,7 @@ public:
if (m_signal.wait(wait_time_max_ms)) {
MutexAutoLock lock(m_mutex);
- T t = m_queue.back();
+ T t = std::move(m_queue.back());
m_queue.pop_back();
return t;
}
@@ -225,7 +222,7 @@ public:
MutexAutoLock lock(m_mutex);
- T t = m_queue.back();
+ T t = std::move(m_queue.back());
m_queue.pop_back();
return t;
}
diff --git a/src/util/enriched_string.cpp b/src/util/enriched_string.cpp
index 762d094eb..b1f95215e 100644
--- a/src/util/enriched_string.cpp
+++ b/src/util/enriched_string.cpp
@@ -65,12 +65,14 @@ void EnrichedString::operator=(const wchar_t *str)
addAtEnd(translate_string(std::wstring(str)), m_default_color);
}
-void EnrichedString::addAtEnd(const std::wstring &s, const SColor &initial_color)
+void EnrichedString::addAtEnd(const std::wstring &s, SColor initial_color)
{
SColor color(initial_color);
bool use_default = (m_default_length == m_string.size() &&
color == m_default_color);
+ m_colors.reserve(m_colors.size() + s.size());
+
size_t i = 0;
while (i < s.length()) {
if (s[i] != L'\x1b') {
@@ -200,12 +202,6 @@ const std::wstring &EnrichedString::getString() const
return m_string;
}
-void EnrichedString::setDefaultColor(const irr::video::SColor &color)
-{
- m_default_color = color;
- updateDefaultColor();
-}
-
void EnrichedString::updateDefaultColor()
{
sanity_check(m_default_length <= m_colors.size());
diff --git a/src/util/enriched_string.h b/src/util/enriched_string.h
index c8a095887..16a0eef74 100644
--- a/src/util/enriched_string.h
+++ b/src/util/enriched_string.h
@@ -23,18 +23,22 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <vector>
#include <SColor.h>
+using namespace irr;
+
class EnrichedString {
public:
EnrichedString();
EnrichedString(const std::wstring &s,
- const irr::video::SColor &color = irr::video::SColor(255, 255, 255, 255));
+ const video::SColor &color = video::SColor(255, 255, 255, 255));
EnrichedString(const wchar_t *str,
- const irr::video::SColor &color = irr::video::SColor(255, 255, 255, 255));
+ const video::SColor &color = video::SColor(255, 255, 255, 255));
EnrichedString(const std::wstring &string,
- const std::vector<irr::video::SColor> &colors);
- void clear();
+ const std::vector<video::SColor> &colors);
void operator=(const wchar_t *str);
- void addAtEnd(const std::wstring &s, const irr::video::SColor &color);
+
+ void clear();
+
+ void addAtEnd(const std::wstring &s, video::SColor color);
// Adds the character source[i] at the end.
// An EnrichedString should always be able to be copied
@@ -49,12 +53,16 @@ public:
EnrichedString operator+(const EnrichedString &other) const;
void operator+=(const EnrichedString &other);
const wchar_t *c_str() const;
- const std::vector<irr::video::SColor> &getColors() const;
+ const std::vector<video::SColor> &getColors() const;
const std::wstring &getString() const;
- void setDefaultColor(const irr::video::SColor &color);
+ inline void setDefaultColor(video::SColor color)
+ {
+ m_default_color = color;
+ updateDefaultColor();
+ }
void updateDefaultColor();
- inline const irr::video::SColor &getDefaultColor() const
+ inline const video::SColor &getDefaultColor() const
{
return m_default_color;
}
@@ -80,11 +88,11 @@ public:
{
return m_has_background;
}
- inline irr::video::SColor getBackground() const
+ inline video::SColor getBackground() const
{
return m_background;
}
- inline void setBackground(const irr::video::SColor &color)
+ inline void setBackground(video::SColor color)
{
m_background = color;
m_has_background = true;
@@ -92,10 +100,10 @@ public:
private:
std::wstring m_string;
- std::vector<irr::video::SColor> m_colors;
+ std::vector<video::SColor> m_colors;
bool m_has_background;
- irr::video::SColor m_default_color;
- irr::video::SColor m_background;
+ video::SColor m_default_color;
+ video::SColor m_background;
// This variable defines the length of the default-colored text.
// Change this to a std::vector if an "end coloring" tag is wanted.
size_t m_default_length = 0;