mirror of
https://github.com/luanti-org/luanti.git
synced 2025-07-22 17:18:39 +00:00
Reserve vectors before pushing and other code quality changes (#11161)
This commit is contained in:
parent
3e1904fa8c
commit
f0bad0e2ba
20 changed files with 106 additions and 108 deletions
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
@ -151,7 +148,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;
|
||||
}
|
||||
|
@ -164,7 +161,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;
|
||||
}
|
||||
|
@ -178,7 +175,7 @@ public:
|
|||
|
||||
MutexAutoLock lock(m_mutex);
|
||||
|
||||
T t = m_queue.front();
|
||||
T t = std::move(m_queue.front());
|
||||
m_queue.pop_front();
|
||||
return t;
|
||||
}
|
||||
|
@ -188,7 +185,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;
|
||||
}
|
||||
|
@ -204,7 +201,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;
|
||||
}
|
||||
|
@ -218,7 +215,7 @@ public:
|
|||
|
||||
MutexAutoLock lock(m_mutex);
|
||||
|
||||
T t = m_queue.back();
|
||||
T t = std::move(m_queue.back());
|
||||
m_queue.pop_back();
|
||||
return t;
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue