diff options
author | Paweł Bylica <pawel.bylica@imapp.pl> | 2015-05-28 14:56:21 +0800 |
---|---|---|
committer | Paweł Bylica <pawel.bylica@imapp.pl> | 2015-05-28 14:56:21 +0800 |
commit | ecd5108afcaeceb52a7b2276beefced575fca5c4 (patch) | |
tree | ef76e7b44b926a4cc9ca0d480458ea75ad115035 /libsolidity/solidityExecutionFramework.h | |
parent | d2bc79b9eaec10e22d3c266dbbf40a767e67d764 (diff) | |
download | dexon-solidity-ecd5108afcaeceb52a7b2276beefced575fca5c4.tar.gz dexon-solidity-ecd5108afcaeceb52a7b2276beefced575fca5c4.tar.zst dexon-solidity-ecd5108afcaeceb52a7b2276beefced575fca5c4.zip |
Change the way execution results are collected.
Changes handling ExecutionResult by Executive. From now execution results are collected on if a storage for results (ExecutionResult) is provided to an Executiove instance up front. This change allow better output management for calls - VM interface improved.
Diffstat (limited to 'libsolidity/solidityExecutionFramework.h')
-rw-r--r-- | libsolidity/solidityExecutionFramework.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libsolidity/solidityExecutionFramework.h b/libsolidity/solidityExecutionFramework.h index 0f80e9f5..ea277421 100644 --- a/libsolidity/solidityExecutionFramework.h +++ b/libsolidity/solidityExecutionFramework.h @@ -135,6 +135,8 @@ protected: { m_state.addBalance(m_sender, _value); // just in case eth::Executive executive(m_state, eth::LastHashes(), 0); + eth::ExecutionResult res; + executive.setResultRef(res); eth::Transaction t = _isCreation ? eth::Transaction(_value, m_gasPrice, m_gas, _data, 0, KeyPair::create().sec()) : eth::Transaction(_value, m_gasPrice, m_gas, m_contractAddress, _data, 0, KeyPair::create().sec()); bytes transactionRLP = t.rlp(); @@ -161,7 +163,7 @@ protected: m_state.noteSending(m_sender); executive.finalize(); m_gasUsed = executive.gasUsed(); - m_output = executive.out().toVector(); + m_output = std::move(res.output); // FIXME: Looks like Framework needs ExecutiveResult embedded m_logs = executive.logs(); } |