Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revert interface change of abi_serializer for tester #742

Merged
merged 2 commits into from
Feb 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions libraries/chain/abi_serializer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -70,14 +70,14 @@ namespace eosio { namespace chain {
);
}

abi_serializer::abi_serializer( abi_def&& abi, const yield_function_t& yield ) {
abi_serializer::abi_serializer( abi_def abi, const yield_function_t& yield ) {
configure_built_in_types();
set_abi(std::move(abi), yield);
}

abi_serializer::abi_serializer( abi_def&& abi, const fc::microseconds& max_serialization_time) {
abi_serializer::abi_serializer( const abi_def& abi, const fc::microseconds& max_serialization_time) {
configure_built_in_types();
set_abi(std::move(abi), create_yield_function(max_serialization_time));
set_abi(abi, create_yield_function(max_serialization_time));
}

void abi_serializer::add_specialized_unpack_pack( const string& name,
Expand Down Expand Up @@ -128,7 +128,7 @@ namespace eosio { namespace chain {
built_in_types.emplace("extended_asset", pack_unpack<extended_asset>());
}

void abi_serializer::set_abi(abi_def&& abi, const yield_function_t& yield) {
void abi_serializer::set_abi(abi_def abi, const yield_function_t& yield) {
impl::abi_traverse_context ctx(yield);

EOS_ASSERT(starts_with(abi.version, "eosio::abi/1."), unsupported_abi_version_exception, "ABI has an unsupported version");
Expand Down Expand Up @@ -188,8 +188,8 @@ namespace eosio { namespace chain {
validate(ctx);
}

void abi_serializer::set_abi(abi_def&& abi, const fc::microseconds& max_serialization_time) {
return set_abi(std::move(abi), create_yield_function(max_serialization_time));
void abi_serializer::set_abi(const abi_def& abi, const fc::microseconds& max_serialization_time) {
return set_abi(abi, create_yield_function(max_serialization_time));
}

bool abi_serializer::is_builtin_type(const std::string_view& type)const {
Expand Down
8 changes: 4 additions & 4 deletions libraries/chain/include/eosio/chain/abi_serializer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,12 @@ struct abi_serializer {
using yield_function_t = fc::optional_delegate<void(size_t)>;

abi_serializer(){ configure_built_in_types(); }
abi_serializer( abi_def&& abi, const yield_function_t& yield );
abi_serializer( abi_def abi, const yield_function_t& yield );
[[deprecated("use the overload with yield_function_t[=create_yield_function(max_serialization_time)]")]]
abi_serializer( abi_def&& abi, const fc::microseconds& max_serialization_time );
void set_abi( abi_def&& abi, const yield_function_t& yield );
abi_serializer( const abi_def& abi, const fc::microseconds& max_serialization_time );
void set_abi( abi_def abi, const yield_function_t& yield );
[[deprecated("use the overload with yield_function_t[=create_yield_function(max_serialization_time)]")]]
void set_abi( abi_def&& abi, const fc::microseconds& max_serialization_time);
void set_abi(const abi_def& abi, const fc::microseconds& max_serialization_time);

/// @return string_view of `t` or internal string type
std::string_view resolve_type(const std::string_view& t)const;
Expand Down
2 changes: 1 addition & 1 deletion plugins/chain_plugin/chain_plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1697,7 +1697,7 @@ read_only::get_producers_result
read_only::get_producers( const read_only::get_producers_params& params, const fc::time_point& deadline ) const try {
abi_def abi = eosio::chain_apis::get_abi(db, config::system_account_name);
const auto table_type = get_table_type(abi, "producers"_n);
const abi_serializer abis{ std::move(abi), abi_serializer::create_yield_function( abi_serializer_max_time ) };
const abi_serializer abis{ abi_def(abi), abi_serializer::create_yield_function( abi_serializer_max_time ) };
greg7mdp marked this conversation as resolved.
Show resolved Hide resolved
EOS_ASSERT(table_type == KEYi64, chain::contract_table_query_exception, "Invalid table type ${type} for table producers", ("type",table_type));

const auto& d = db.db();
Expand Down