From 3a6c71cd73dfe2355c6e5f553783bf6082a8f25e Mon Sep 17 00:00:00 2001 From: Kevin Heifner Date: Fri, 1 Jun 2018 10:06:30 -0500 Subject: [PATCH] Change max_stack_buffer_size from 128 to 512 --- contracts/eosio.bios/eosio.bios.hpp | 2 +- contracts/eosio.msig/eosio.msig.cpp | 2 +- contracts/eosiolib/action.hpp | 2 +- contracts/eosiolib/dispatcher.hpp | 2 +- contracts/eosiolib/multi_index.hpp | 2 +- contracts/eosiolib/transaction.hpp | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/contracts/eosio.bios/eosio.bios.hpp b/contracts/eosio.bios/eosio.bios.hpp index 20b441014..99807d811 100644 --- a/contracts/eosio.bios/eosio.bios.hpp +++ b/contracts/eosio.bios/eosio.bios.hpp @@ -27,7 +27,7 @@ namespace eosio { (void)schedule; // schedule argument just forces the deserialization of the action data into vector (necessary check) require_auth( _self ); - constexpr size_t max_stack_buffer_size = 128; + constexpr size_t max_stack_buffer_size = 512; size_t size = action_data_size(); char* buffer = (char*)( max_stack_buffer_size < size ? malloc(size) : alloca(size) ); read_action_data( buffer, size ); diff --git a/contracts/eosio.msig/eosio.msig.cpp b/contracts/eosio.msig/eosio.msig.cpp index c911d30f4..9d04a1a98 100644 --- a/contracts/eosio.msig/eosio.msig.cpp +++ b/contracts/eosio.msig/eosio.msig.cpp @@ -17,7 +17,7 @@ void multisig::propose( account_name proposer, */ void multisig::propose() { - constexpr size_t max_stack_buffer_size = 128; + constexpr size_t max_stack_buffer_size = 512; size_t size = action_data_size(); char* buffer = (char*)( max_stack_buffer_size < size ? malloc(size) : alloca(size) ); read_action_data( buffer, size ); diff --git a/contracts/eosiolib/action.hpp b/contracts/eosiolib/action.hpp index 56f081ecf..e6963178e 100644 --- a/contracts/eosiolib/action.hpp +++ b/contracts/eosiolib/action.hpp @@ -44,7 +44,7 @@ namespace eosio { */ template T unpack_action_data() { - constexpr size_t max_stack_buffer_size = 128; + constexpr size_t max_stack_buffer_size = 512; size_t size = action_data_size(); char* buffer = (char*)( max_stack_buffer_size < size ? malloc(size) : alloca(size) ); read_action_data( buffer, size ); diff --git a/contracts/eosiolib/dispatcher.hpp b/contracts/eosiolib/dispatcher.hpp index 2c204c62e..d1ed3fbfb 100644 --- a/contracts/eosiolib/dispatcher.hpp +++ b/contracts/eosiolib/dispatcher.hpp @@ -42,7 +42,7 @@ namespace eosio { size_t size = action_data_size(); //using malloc/free here potentially is not exception-safe, although WASM doesn't support exceptions - constexpr size_t max_stack_buffer_size = 128; + constexpr size_t max_stack_buffer_size = 512; void* buffer = nullptr; if( size > 0 ) { buffer = max_stack_buffer_size < size ? malloc(size) : alloca(size); diff --git a/contracts/eosiolib/multi_index.hpp b/contracts/eosiolib/multi_index.hpp index fcfa5d4c9..4c1bd1f1b 100644 --- a/contracts/eosiolib/multi_index.hpp +++ b/contracts/eosiolib/multi_index.hpp @@ -136,7 +136,7 @@ class multi_index return (n & 0x000000000000000FULL) == 0; } - constexpr static size_t max_stack_buffer_size = 128; + constexpr static size_t max_stack_buffer_size = 512; static_assert( validate_table_name(TableName), "multi_index does not support table names with a length greater than 12"); diff --git a/contracts/eosiolib/transaction.hpp b/contracts/eosiolib/transaction.hpp index 16e327565..f0e9dafc4 100644 --- a/contracts/eosiolib/transaction.hpp +++ b/contracts/eosiolib/transaction.hpp @@ -76,7 +76,7 @@ namespace eosio { * @return the indicated action */ inline action get_action( uint32_t type, uint32_t index ) { - constexpr size_t max_stack_buffer_size = 128; + constexpr size_t max_stack_buffer_size = 512; int s = ::get_action( type, index, nullptr, 0 ); eosio_assert( s > 0, "get_action size failed" ); size_t size = static_cast(s); -- GitLab