diff --git a/libraries/chain/chain_controller.cpp b/libraries/chain/chain_controller.cpp index 7cb528d17a2..36bfe571f9c 100644 --- a/libraries/chain/chain_controller.cpp +++ b/libraries/chain/chain_controller.cpp @@ -990,7 +990,8 @@ typename T::Processed chain_controller::process_transaction( const T& trx, int d auto& output = ptrx.output[i]; process_message(trx, trx.messages[i].code, trx.messages[i], output); if (output.inline_transaction.valid() ) { - output.inline_transaction = process_transaction(PendingInlineTransaction(*output.inline_transaction), depth + 1, start_time); + const Transaction& trx = *output.inline_transaction; + output.inline_transaction = process_transaction(PendingInlineTransaction(trx), depth + 1, start_time); } } diff --git a/libraries/chain/include/eos/chain/transaction.hpp b/libraries/chain/include/eos/chain/transaction.hpp index d57f4e3fc17..347ab888b6a 100644 --- a/libraries/chain/include/eos/chain/transaction.hpp +++ b/libraries/chain/include/eos/chain/transaction.hpp @@ -167,14 +167,15 @@ namespace eos { namespace chain { struct PendingInlineTransaction : public types::Transaction { typedef types::Transaction super; - using super::super; + using super::super; typedef InlineTransaction Processed; }; struct MessageOutput; struct InlineTransaction : public types::Transaction { - explicit InlineTransaction( const PendingInlineTransaction& t ):Transaction(t){} + explicit InlineTransaction( const types::Transaction& t ):types::Transaction((const types::Transaction& )t){} + explicit InlineTransaction( const PendingInlineTransaction& t ):types::Transaction((const types::Transaction& )t){} InlineTransaction(){} vector output;