Don't allow a SerializerIterator to bind to a temporary Serializer. This was causing a bunch

of deserialization bugs.
This commit is contained in:
JoelKatz
2012-10-17 06:07:18 -07:00
parent a568f6ff26
commit 305b037f59
6 changed files with 18 additions and 15 deletions

View File

@@ -404,12 +404,12 @@ void SHAMapTreeNode::addRaw(Serializer& s, SHANodeFormat format)
if (format == snfPREFIX)
{
s.add32(sHP_LeafNode);
mItem->addRaw(s);
s.addRaw(mItem->peekData());
s.add256(mItem->getTag());
}
else
{
mItem->addRaw(s);
s.addRaw(mItem->peekData());
s.add256(mItem->getTag());
s.add8(1);
}
@@ -419,11 +419,11 @@ void SHAMapTreeNode::addRaw(Serializer& s, SHANodeFormat format)
if (format == snfPREFIX)
{
s.add32(sHP_TransactionID);
mItem->addRaw(s);
s.addRaw(mItem->peekData());
}
else
{
mItem->addRaw(s);
s.addRaw(mItem->peekData());
s.add8(0);
}
}
@@ -432,12 +432,12 @@ void SHAMapTreeNode::addRaw(Serializer& s, SHANodeFormat format)
if (format == snfPREFIX)
{
s.add32(sHP_TransactionNode);
mItem->addRaw(s);
s.addRaw(mItem->peekData());
s.add256(mItem->getTag());
}
else
{
mItem->addRaw(s);
s.addRaw(mItem->peekData());
s.add256(mItem->getTag());
s.add8(4);
}