mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-20 11:05:54 +00:00
A better way to convert between uint160 and uint256 types.
This commit is contained in:
@@ -36,4 +36,18 @@ bool u160ToHuman(uint160& buf, std::string& retStr)
|
||||
{
|
||||
retStr=EncodeBase58(buf.begin(),buf.end());
|
||||
return(true);
|
||||
}
|
||||
}
|
||||
|
||||
uint160 uint256::to160() const
|
||||
{
|
||||
uint160 m;
|
||||
memcpy(&m, this, sizeof(uint160));
|
||||
return m;
|
||||
}
|
||||
|
||||
uint256 uint160::to256() const
|
||||
{
|
||||
uint256 m;
|
||||
memcpy(&m, this, sizeof(this));
|
||||
return m;
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ AccountState::pointer Ledger::getAccountState(const uint160& accountID)
|
||||
std::cerr << "Ledger:getAccountState(" << accountID.GetHex() << ")" << std::endl;
|
||||
#endif
|
||||
ScopedLock l(mTransactionMap->Lock());
|
||||
SHAMapItem::pointer item=mAccountStateMap->peekItem(uint160to256(accountID));
|
||||
SHAMapItem::pointer item=mAccountStateMap->peekItem(accountID.to256());
|
||||
if(!item)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
@@ -81,7 +81,7 @@ AccountState::pointer Ledger::getAccountState(const uint160& accountID)
|
||||
uint64 Ledger::getBalance(const uint160& accountID)
|
||||
{
|
||||
ScopedLock l(mTransactionMap->Lock());
|
||||
SHAMapItem::pointer item=mAccountStateMap->peekItem(uint160to256(accountID));
|
||||
SHAMapItem::pointer item=mAccountStateMap->peekItem(accountID.to256());
|
||||
if(!item) return 0;
|
||||
return AccountState(item->getData()).getBalance();
|
||||
}
|
||||
|
||||
@@ -178,7 +178,7 @@ SHAMapItem::SHAMapItem(const uint256& tag, const std::vector<unsigned char>& dat
|
||||
{ ; }
|
||||
|
||||
SHAMapItem::SHAMapItem(const uint160& tag, const std::vector<unsigned char>& data)
|
||||
: mTag(uint160to256(tag)), mData(data)
|
||||
: mTag(tag.to256()), mData(data)
|
||||
{ ; }
|
||||
|
||||
SHAMapItem::pointer SHAMap::peekFirstItem()
|
||||
|
||||
4
SHAMap.h
4
SHAMap.h
@@ -278,8 +278,8 @@ public:
|
||||
SHAMapItem::pointer peekNextItem(const uint256&);
|
||||
SHAMapItem::pointer peekPrevItem(const uint256&);
|
||||
|
||||
SHAMapItem::pointer peekPrevItem(const uint160& u) { return peekPrevItem(uint160to256(u)); }
|
||||
SHAMapItem::pointer peekNextItem(const uint160& u) { return peekNextItem(uint160to256(u)); }
|
||||
SHAMapItem::pointer peekPrevItem(const uint160& u) { return peekPrevItem(u.to256()); }
|
||||
SHAMapItem::pointer peekNextItem(const uint160& u) { return peekNextItem(u.to256()); }
|
||||
|
||||
// comparison/sync functions
|
||||
void getMissingNodes(std::vector<SHAMapNode>& nodeHashes, int max);
|
||||
|
||||
25
uint256.h
25
uint256.h
@@ -468,6 +468,8 @@ public:
|
||||
else
|
||||
*this = 0;
|
||||
}
|
||||
|
||||
uint256 to256() const;
|
||||
};
|
||||
|
||||
inline bool operator==(const uint160& a, uint64 b) { return (base_uint160)a == b; }
|
||||
@@ -582,6 +584,8 @@ public:
|
||||
else
|
||||
*this = 0;
|
||||
}
|
||||
|
||||
uint160 to160() const;
|
||||
};
|
||||
|
||||
|
||||
@@ -634,27 +638,6 @@ 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; }
|
||||
|
||||
static uint256 uint160to256(const uint160& u)
|
||||
{
|
||||
uint256 m;
|
||||
memcpy(&m, &u, sizeof(u));
|
||||
return m;
|
||||
}
|
||||
|
||||
static uint160 uint256to160(const uint256& u)
|
||||
{
|
||||
uint160 m;
|
||||
memcpy(&m, &u, sizeof(m));
|
||||
return m;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
inline int Testuint256AdHoc(std::vector<std::string> vArg)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user