diff --git a/src/SerializedTypes.cpp b/src/SerializedTypes.cpp index 6bbb2b7122..6fc4183535 100644 --- a/src/SerializedTypes.cpp +++ b/src/SerializedTypes.cpp @@ -184,28 +184,19 @@ STAccount* STAccount::construct(SerializerIterator& u, const char *name) // Return a new object from a SerializerIterator. STVector256* STVector256::construct(SerializerIterator& u, const char *name) { - return new STVector256(name, u.getVL()); + std::vector data = u.getVL(); + std::vector value; + int count = data.size() / (256 / 8); + for(int i = 0; i < count; i++) + value.push_back(uint256(std::vector(data[i], data[i + (256 / 8)]))); + return new STVector256(name, value); } void STVector256::add(Serializer& s) const { - s.add32(mValue.size()); - BOOST_FOREACH(const uint256& v, mValue) - { - s.add256(v); - } -} - -void STVector256::setValue(const std::vector& vucData) -{ - Serializer s(vucData); - SerializerIterator it(s); - uint64 uSize = it.get32(); - uint64 uIndex = 0; - - mValue.resize(uSize); - while (uSize--) - mValue[uIndex++] = it.get256(); + int size = mValue.size(); + if (!size) s.addVL(NULL, 0); + s.addVL(mValue[0].begin(), mValue.size() & (256 / 8)); } // diff --git a/src/SerializedTypes.h b/src/SerializedTypes.h index ef98c5e2f5..f9f08690f8 100644 --- a/src/SerializedTypes.h +++ b/src/SerializedTypes.h @@ -615,8 +615,6 @@ public: STVector256(const char* n) : SerializedType(n) { ; } STVector256(const char* n, const std::vector& v) : SerializedType(n), mValue(v) { ; } STVector256(const std::vector& vector) : mValue(vector) { ; } - STVector256(const char* n, const std::vector& vucSerial) : SerializedType(n) - { setValue(vucSerial); } SerializedTypeID getSType() const { return STI_VECTOR256; } int getLength() const { return mValue.size()*(256/8)+(64/8); } @@ -634,7 +632,6 @@ public: void setValue(const STVector256& v) { mValue = v.mValue; } void setValue(const std::vector& v) { mValue = v; } - void setValue(const std::vector& vucData); }; #endif