fix problem sending the last cent with sub-cent fractional change

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@151 1a98c847-1fd6-4fd8-948a-caf3550aa51b
This commit is contained in:
s_nakamoto
2010-09-10 16:58:59 +00:00
parent 8555125a1a
commit 00728c24e7
3 changed files with 7 additions and 6 deletions

View File

@@ -2774,8 +2774,8 @@ void CallCPUID(int in, int& aret, int& cret)
asm (
"mov %2, %%eax; " // in into eax
"cpuid;"
"mov %%eax, %0;" // eax into ret
"mov %%ecx, %1;" // eax into ret
"mov %%eax, %0;" // eax into a
"mov %%ecx, %1;" // eax into c
:"=r"(a),"=r"(c) /* output */
:"r"(in) /* input */
:"%eax","%ecx" /* clobbered register */
@@ -3311,7 +3311,8 @@ bool CreateTransaction(CScript scriptPubKey, int64 nValue, CWalletTx& wtxNew, CK
wtxNew.vout.push_back(CTxOut(nValueOut, scriptPubKey));
// Fill a vout back to self with any change
if (nValueIn > nTotalValue)
int64 nChange = nValueIn - nTotalValue;
if (nChange >= CENT)
{
// Note: We use a new key here to keep it from being obvious which side is the change.
// The drawback is that by not reusing a previous key, the change may be lost if a
@@ -3330,7 +3331,7 @@ bool CreateTransaction(CScript scriptPubKey, int64 nValue, CWalletTx& wtxNew, CK
scriptChange.SetBitcoinAddress(keyRet.GetPubKey());
else
scriptChange << keyRet.GetPubKey() << OP_CHECKSIG;
wtxNew.vout.push_back(CTxOut(nValueIn - nTotalValue, scriptChange));
wtxNew.vout.push_back(CTxOut(nChange, scriptChange));
}
// Fill a vout to the payee