summaryrefslogtreecommitdiff
path: root/src/itemstackmetadata.cpp
diff options
context:
space:
mode:
authorJesse McDonald <nybble41@gmail.com>2017-06-27 05:34:11 -0500
committerLoïc Blot <nerzhul@users.noreply.github.com>2017-06-27 12:34:11 +0200
commit85d7b18d851504e6d9f637c4373cf896b1ce8e4c (patch)
treeb275c8a3097cc2be557e870e8478f71ca264cb8f /src/itemstackmetadata.cpp
parentd7343b6c930d22857f858929ea684acbbeefe482 (diff)
downloadminetest-85d7b18d851504e6d9f637c4373cf896b1ce8e4c.tar.gz
minetest-85d7b18d851504e6d9f637c4373cf896b1ce8e4c.tar.bz2
minetest-85d7b18d851504e6d9f637c4373cf896b1ce8e4c.zip
Fix for empty key/value when reading item string with wear but no metadata (#6058)
Diffstat (limited to 'src/itemstackmetadata.cpp')
-rw-r--r--src/itemstackmetadata.cpp22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/itemstackmetadata.cpp b/src/itemstackmetadata.cpp
index c3d602245..65829fd68 100644
--- a/src/itemstackmetadata.cpp
+++ b/src/itemstackmetadata.cpp
@@ -28,16 +28,18 @@ void ItemStackMetadata::deSerialize(std::istream &is)
m_stringvars.clear();
- if (!in.empty() && in[0] == DESERIALIZE_START) {
- Strfnd fnd(in);
- fnd.to(1);
- while (!fnd.at_end()) {
- std::string name = fnd.next(DESERIALIZE_KV_DELIM_STR);
- std::string var = fnd.next(DESERIALIZE_PAIR_DELIM_STR);
- m_stringvars[name] = var;
+ if (!in.empty()) {
+ if (in[0] == DESERIALIZE_START) {
+ Strfnd fnd(in);
+ fnd.to(1);
+ while (!fnd.at_end()) {
+ std::string name = fnd.next(DESERIALIZE_KV_DELIM_STR);
+ std::string var = fnd.next(DESERIALIZE_PAIR_DELIM_STR);
+ m_stringvars[name] = var;
+ }
+ } else {
+ // BACKWARDS COMPATIBILITY
+ m_stringvars[""] = in;
}
- } else {
- // BACKWARDS COMPATIBILITY
- m_stringvars[""] = in;
}
}