git-svn-id: svn://db.shs.com.ru/pip@641 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user