From 130ade1e15dddcd4e70d92b2c7d8051e04f7c85c Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Thu, 1 Nov 2012 02:49:41 -0700 Subject: [PATCH] Small cleanups, optimizations, and a new helper function. --- src/Serializer.cpp | 13 +++++++++++-- src/Serializer.h | 3 ++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/Serializer.cpp b/src/Serializer.cpp index 8b67d3b657..016c6e2a6b 100644 --- a/src/Serializer.cpp +++ b/src/Serializer.cpp @@ -305,7 +305,7 @@ uint256 Serializer::getSHA512Half(const unsigned char *data, int len) uint256 Serializer::getSHA512Half(const std::string& strData) { - return getSHA512Half(reinterpret_cast(strData.c_str()), strData.size()); + return getSHA512Half(reinterpret_cast(strData.data()), strData.size()); } uint256 Serializer::getPrefixHash(uint32 prefix, const unsigned char *data, int len) @@ -367,7 +367,16 @@ int Serializer::addVL(const std::vector& vector) int Serializer::addVL(const void *ptr, int len) { int ret = addRaw(encodeVL(len)); - if (len) addRaw(ptr, len); + if (len) + addRaw(ptr, len); + return ret; +} + +int Serializer::addVL(const std::string& string) +{ + int ret = addRaw(string.size()); + if (!string.empty()) + addRaw(string.data(), string.size()); return ret; } diff --git a/src/Serializer.h b/src/Serializer.h index fc1f1df491..7b7b67fe25 100644 --- a/src/Serializer.h +++ b/src/Serializer.h @@ -44,6 +44,7 @@ public: int addZeros(size_t uBytes); int addVL(const std::vector &vector); + int addVL(const std::string& string); int addVL(const void *ptr, int len); int addTaggedList(const std::list&); int addTaggedList(const std::vector&); @@ -87,7 +88,7 @@ public: static uint256 getPrefixHash(uint32 prefix, const std::vector& data) { return getPrefixHash(prefix, &(data.front()), data.size()); } static uint256 getPrefixHash(uint32 prefix, const std::string& strData) - { return getPrefixHash(prefix, reinterpret_cast(strData.c_str()), strData.size()); } + { return getPrefixHash(prefix, reinterpret_cast(strData.data()), strData.size()); } // totality functions const std::vector& peekData() const { return mData; }