diff --git a/dap-sdk/core/include/dap_common.h b/dap-sdk/core/include/dap_common.h index 4d48891061d004bdb4f3195df3c44e56efdcc0fd..ee1b595c5b0bf212ba7503b81f80452645c06995 100755 --- a/dap-sdk/core/include/dap_common.h +++ b/dap-sdk/core/include/dap_common.h @@ -98,6 +98,8 @@ typedef uint8_t byte_t; #define DAP_ALFREE(a) _dap_aligned_free(a, b) #define DAP_NEW( a ) DAP_CAST_REINT(a, malloc(sizeof(a)) ) #define DAP_NEW_SIZE(a, b) DAP_CAST_REINT(a, malloc(b) ) + #define DAP_NEW_S( a ) DAP_CAST_REINT(a, alloca(sizeof(a)) ) + #define DAP_NEW_S_SIZE(a, b) DAP_CAST_REINT(a, alloca(b) ) #define DAP_NEW_Z( a ) DAP_CAST_REINT(a, calloc(1,sizeof(a))) #define DAP_NEW_Z_SIZE(a, b) DAP_CAST_REINT(a, calloc(1,b)) #define DAP_REALLOC(a, b) realloc(a,b) diff --git a/modules/net/dap_chain_node_cli_cmd.c b/modules/net/dap_chain_node_cli_cmd.c index 619343a5be22fe23fdd7c12299131e974767aff6..e8f3bbcea090ab0d45724d8fa37bcbedc6e8da4b 100644 --- a/modules/net/dap_chain_node_cli_cmd.c +++ b/modules/net/dap_chain_node_cli_cmd.c @@ -2146,7 +2146,7 @@ int com_mempool_proc(int argc, char ** argv, void *arg_func, char ** a_str_reply } size_t l_objs_processed = 0; - bool l_procecced[l_objs_size]; + int * l_procecced = DAP_NEW_Z_SIZE(int,l_objs_size); for(size_t i = 0; i < l_objs_size; i++) { int l_is_processed = l_chain->callback_datums_pool_proc(l_chain, l_datums + i, 1); //l_datums_size l_objs_processed += l_is_processed; @@ -2173,6 +2173,7 @@ int com_mempool_proc(int argc, char ** argv, void *arg_func, char ** a_str_reply dap_string_append_printf(l_str_tmp, "%s.%s: %d records not processed\n", l_net->pub.name, l_chain->name, l_datums_size - l_objs_processed); dap_chain_global_db_objs_delete(l_objs, l_objs_size); + DAP_DELETE( l_procecced); } else { dap_string_append_printf(l_str_tmp, "%s.%s: No records in mempool\n", l_net->pub.name, l_chain ? l_chain->name : "[no chain]");