git-svn-id: svn://db.shs.com.ru/pip@641 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5

This commit is contained in:
2018-10-08 10:14:57 +00:00
parent 989a8542f1
commit 8930c61072

View File

@@ -249,7 +249,7 @@ template <typename Key, typename T>
inline PIByteArray & operator <<(PIByteArray & s, const PIMap<Key, T> & v) { inline PIByteArray & operator <<(PIByteArray & s, const PIMap<Key, T> & v) {
s << int(v.pim_index.size_s()); s << int(v.pim_index.size_s());
for (uint i = 0; i < v.size(); ++i) for (uint i = 0; i < v.size(); ++i)
s << v.pim_index[i].index << v.pim_index[i].key; s << int(v.pim_index[i].index) << v.pim_index[i].key;
s << v.pim_content; s << v.pim_content;
return s; return s;
} }
@@ -269,9 +269,16 @@ template <typename Key, typename T>
inline PIByteArray & operator >>(PIByteArray & s, PIMap<Key, T> & v) { inline PIByteArray & operator >>(PIByteArray & s, PIMap<Key, T> & v) {
assert(s.size_s() >= 4); assert(s.size_s() >= 4);
int sz; s >> sz; v.pim_index.resize(sz); int sz; s >> sz; v.pim_index.resize(sz);
for (int i = 0; i < sz; ++i) int ind = 0;
s >> v.pim_index[i].index >> v.pim_index[i].key; for (int i = 0; i < sz; ++i) {
s >> ind >> v.pim_index[i].key;
v.pim_index[i].index = ind;
}
s >> v.pim_content; s >> v.pim_content;
if (v.pim_content.size_s() != v.pim_index.size_s()) {
piCout << "Warning: loaded invalid PIMap, clear";
v.clear();
}
return s; return s;
} }
template<typename T> template<typename T>