diff options
| author | Pieter Wuille <[email protected]> | 2015-10-29 07:11:24 +0100 |
|---|---|---|
| committer | Pieter Wuille <[email protected]> | 2015-11-13 18:15:20 +0100 |
| commit | 114b5812f6283f2325fc31e186b26c6d76f9551a (patch) | |
| tree | 6c04a7ee882b7d8a291bb9507ddd5cf17e23f704 /src/script/script.h | |
| parent | Merge pull request #6983 (diff) | |
| download | discoin-114b5812f6283f2325fc31e186b26c6d76f9551a.tar.xz discoin-114b5812f6283f2325fc31e186b26c6d76f9551a.zip | |
Prevector type
Diffstat (limited to 'src/script/script.h')
| -rw-r--r-- | src/script/script.h | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/script/script.h b/src/script/script.h index a38d33a18..3650957fc 100644 --- a/src/script/script.h +++ b/src/script/script.h @@ -7,6 +7,7 @@ #define BITCOIN_SCRIPT_SCRIPT_H #include "crypto/common.h" +#include "prevector.h" #include <assert.h> #include <climits> @@ -354,8 +355,10 @@ private: int64_t m_value; }; +typedef prevector<28, unsigned char> CScriptBase; + /** Serialized script, used inside transaction inputs and outputs */ -class CScript : public std::vector<unsigned char> +class CScript : public CScriptBase { protected: CScript& push_int64(int64_t n) @@ -376,9 +379,10 @@ protected: } public: CScript() { } - CScript(const CScript& b) : std::vector<unsigned char>(b.begin(), b.end()) { } - CScript(const_iterator pbegin, const_iterator pend) : std::vector<unsigned char>(pbegin, pend) { } - CScript(const unsigned char* pbegin, const unsigned char* pend) : std::vector<unsigned char>(pbegin, pend) { } + CScript(const CScript& b) : CScriptBase(b.begin(), b.end()) { } + CScript(const_iterator pbegin, const_iterator pend) : CScriptBase(pbegin, pend) { } + CScript(std::vector<unsigned char>::const_iterator pbegin, std::vector<unsigned char>::const_iterator pend) : CScriptBase(pbegin, pend) { } + CScript(const unsigned char* pbegin, const unsigned char* pend) : CScriptBase(pbegin, pend) { } CScript& operator+=(const CScript& b) { @@ -611,7 +615,7 @@ public: void clear() { // The default std::vector::clear() does not release memory. - std::vector<unsigned char>().swap(*this); + CScriptBase().swap(*this); } }; |