aboutsummaryrefslogtreecommitdiff
path: root/src/script/script.h
diff options
context:
space:
mode:
authorWladimir J. van der Laan <[email protected]>2015-12-01 10:00:04 +0100
committerWladimir J. van der Laan <[email protected]>2015-12-01 10:22:14 +0100
commit327291af02d05e09188713d882bf68ac708c1077 (patch)
treefd6e45cfb3d11beb185c3d1da556a075c924b165 /src/script/script.h
parentMerge pull request #7096 (diff)
parentPrevector type (diff)
downloaddiscoin-327291af02d05e09188713d882bf68ac708c1077.tar.xz
discoin-327291af02d05e09188713d882bf68ac708c1077.zip
Merge pull request #6914
114b581 Prevector type (Pieter Wuille)
Diffstat (limited to 'src/script/script.h')
-rw-r--r--src/script/script.h14
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);
}
};