From 3842b0ef8dd79f6cb731c9a2d824774216cadff1 Mon Sep 17 00:00:00 2001 From: Arthur Britto Date: Thu, 17 May 2012 20:32:22 -0700 Subject: [PATCH] Add suport for name spaces to uint160extend256. --- src/uint256.h | 2 +- src/utils.cpp | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/uint256.h b/src/uint256.h index d526040996..6c19c5868a 100644 --- a/src/uint256.h +++ b/src/uint256.h @@ -709,7 +709,7 @@ inline const uint256 operator|(const uint256& a, const uint256& b) { return (b inline const uint256 operator+(const uint256& a, const uint256& b) { return (base_uint256)a + (base_uint256)b; } inline const uint256 operator-(const uint256& a, const uint256& b) { return (base_uint256)a - (base_uint256)b; } -uint256 uint160extend256(const uint160& uSource); +uint256 uint160extend256(const uint160& uSource, uint uNamespace); inline int Testuint256AdHoc(std::vector vArg) { diff --git a/src/utils.cpp b/src/utils.cpp index 3ae809de7e..ca6240cc2d 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -1,11 +1,14 @@ #include "utils.h" #include "uint256.h" -uint256 uint160extend256(const uint160& uSource) +// XXX Assume little-endian. +uint256 uint160extend256(const uint160& uSource, uint uNamespace) { uint256 uResult; - memcpy(uResult.begin() + (uResult.size() - uSource.size()), uSource.begin(), uSource.size()); + // Place right justified: in most significant bits. + memcpy(uResult.end() - uSource.size(), uSource.begin(), uSource.size()); + uResult.begin()[uResult.size() - uSource.size() - 1] = uNamespace; return uResult; }