Merge pull request #4953

dbbb3ce cryptonote: don't serialize for blob size if already known (moneromooo-monero)
This commit is contained in:
luigi1111 2018-12-31 16:26:22 -06:00
commit 61c0083105
No known key found for this signature in database
GPG Key ID: F4ACA0183641E010
1 changed files with 13 additions and 5 deletions

View File

@ -380,11 +380,19 @@ namespace cryptonote
//---------------------------------------------------------------
uint64_t get_transaction_weight(const transaction &tx)
{
std::ostringstream s;
binary_archive<true> a(s);
::serialization::serialize(a, const_cast<transaction&>(tx));
const cryptonote::blobdata blob = s.str();
return get_transaction_weight(tx, blob.size());
size_t blob_size;
if (tx.is_blob_size_valid())
{
blob_size = tx.blob_size;
}
else
{
std::ostringstream s;
binary_archive<true> a(s);
::serialization::serialize(a, const_cast<transaction&>(tx));
blob_size = s.str().size();
}
return get_transaction_weight(tx, blob_size);
}
//---------------------------------------------------------------
bool get_tx_fee(const transaction& tx, uint64_t & fee)