From 7758a899f0a8c7d86eb05b8fe4b85c36dcddd7fb Mon Sep 17 00:00:00 2001 From: "pavel.uhanov" <pavel.uhanov@demlabs.net> Date: Mon, 18 Sep 2023 07:48:27 +0000 Subject: [PATCH] feature-9026_fix --- dap-sdk | 2 +- modules/chain/dap_chain_ledger.c | 43 ++++++++------- modules/channel/chain/dap_stream_ch_chain.c | 10 ++-- .../consensus/dag-poa/dap_chain_cs_dag_poa.c | 10 ++-- .../consensus/esbocs/dap_chain_cs_esbocs.c | 54 +++++++------------ modules/consensus/none/dap_chain_cs_none.c | 3 +- modules/net/dap_chain_node_cli_cmd.c | 2 +- modules/type/dag/dap_chain_cs_dag.c | 7 +-- 8 files changed, 61 insertions(+), 70 deletions(-) diff --git a/dap-sdk b/dap-sdk index 19c0dd72cb..d9fd506ebc 160000 --- a/dap-sdk +++ b/dap-sdk @@ -1 +1 @@ -Subproject commit 19c0dd72cb192c0baabc45fc2ae57df0e15aedb8 +Subproject commit d9fd506ebcc6ed80ca4e818e0febadf0cbd56bac diff --git a/modules/chain/dap_chain_ledger.c b/modules/chain/dap_chain_ledger.c index c13c700f1d..ee5b136f28 100644 --- a/modules/chain/dap_chain_ledger.c +++ b/modules/chain/dap_chain_ledger.c @@ -2225,7 +2225,7 @@ static void s_threshold_emission_free(dap_ledger_t *a_ledger){ * @param a_values * @param a_arg */ -static void s_load_cache_gdb_loaded_balances_callback(dap_global_db_context_t *a_global_db_context, +static bool s_load_cache_gdb_loaded_balances_callback(dap_global_db_context_t *a_global_db_context, int a_rc, const char *a_group, const size_t a_values_total, const size_t a_values_count, dap_global_db_obj_t *a_values, void *a_arg) @@ -2236,13 +2236,13 @@ static void s_load_cache_gdb_loaded_balances_callback(dap_global_db_context_t *a dap_ledger_wallet_balance_t *l_balance_item = DAP_NEW_Z(dap_ledger_wallet_balance_t); if (!l_balance_item) { log_it(L_CRITICAL, "Memory allocation error"); - return; + return false; } l_balance_item->key = DAP_NEW_Z_SIZE(char, strlen(a_values[i].key) + 1); if (!l_balance_item->key) { log_it(L_CRITICAL, "Memory allocation error"); DAP_DEL_Z(l_balance_item); - return; + return false; } strcpy(l_balance_item->key, a_values[i].key); char *l_ptr = strchr(l_balance_item->key, ' '); @@ -2261,6 +2261,7 @@ static void s_load_cache_gdb_loaded_balances_callback(dap_global_db_context_t *a l_ledger_pvt->load_end = true; pthread_cond_broadcast( &l_ledger_pvt->load_cond ); pthread_mutex_unlock( &l_ledger_pvt->load_mutex ); + return true; } /** @@ -2275,7 +2276,7 @@ static void s_load_cache_gdb_loaded_balances_callback(dap_global_db_context_t *a * @param a_values * @param a_arg */ -static void s_load_cache_gdb_loaded_spent_txs_callback(dap_global_db_context_t *a_global_db_context, +static bool s_load_cache_gdb_loaded_spent_txs_callback(dap_global_db_context_t *a_global_db_context, int a_rc, const char *a_group, const size_t a_values_total, const size_t a_values_count, dap_global_db_obj_t *a_values, void *a_arg) @@ -2287,16 +2288,17 @@ static void s_load_cache_gdb_loaded_spent_txs_callback(dap_global_db_context_t * dap_chain_ledger_tx_spent_item_t *l_tx_spent_item = DAP_NEW_Z(dap_chain_ledger_tx_spent_item_t); if ( !l_tx_spent_item ) { log_it(L_CRITICAL, "Memory allocation error"); - return; + return false; } dap_chain_hash_fast_from_str(a_values[i].key, &l_tx_spent_item->tx_hash_fast); l_tx_spent_item->cache_data = *(typeof(l_tx_spent_item->cache_data)*)a_values[i].value; HASH_ADD(hh, l_ledger_pvt->spent_items, tx_hash_fast, sizeof(dap_chain_hash_fast_t), l_tx_spent_item); } - char * l_gdb_group = dap_chain_ledger_get_gdb_group(l_ledger, DAP_CHAIN_LEDGER_BALANCES_STR); + char *l_gdb_group = dap_chain_ledger_get_gdb_group(l_ledger, DAP_CHAIN_LEDGER_BALANCES_STR); dap_global_db_get_all(l_gdb_group, 0, s_load_cache_gdb_loaded_balances_callback, l_ledger); DAP_DELETE(l_gdb_group); + return true; } /** @@ -2311,7 +2313,7 @@ static void s_load_cache_gdb_loaded_spent_txs_callback(dap_global_db_context_t * * @param a_values * @param a_arg */ -static void s_load_cache_gdb_loaded_txs_callback(dap_global_db_context_t *a_global_db_context, +static bool s_load_cache_gdb_loaded_txs_callback(dap_global_db_context_t *a_global_db_context, int a_rc, const char *a_group, const size_t a_values_total, const size_t a_values_count, dap_global_db_obj_t *a_values, void *a_arg) @@ -2322,14 +2324,14 @@ static void s_load_cache_gdb_loaded_txs_callback(dap_global_db_context_t *a_glob dap_chain_ledger_tx_item_t *l_tx_item = DAP_NEW_Z(dap_chain_ledger_tx_item_t); if ( !l_tx_item ) { log_it(L_CRITICAL, "Memory allocation error"); - return; + return false; } dap_chain_hash_fast_from_str(a_values[i].key, &l_tx_item->tx_hash_fast); l_tx_item->tx = DAP_NEW_Z_SIZE(dap_chain_datum_tx_t, a_values[i].value_len - sizeof(l_tx_item->cache_data)); if ( !l_tx_item->tx ) { DAP_DELETE(l_tx_item); log_it(L_CRITICAL, "Memory allocation error"); - return; + return false; } memcpy(&l_tx_item->cache_data, a_values[i].value, sizeof(l_tx_item->cache_data)); memcpy(l_tx_item->tx, a_values[i].value + sizeof(l_tx_item->cache_data), a_values[i].value_len - sizeof(l_tx_item->cache_data)); @@ -2340,9 +2342,10 @@ static void s_load_cache_gdb_loaded_txs_callback(dap_global_db_context_t *a_glob char *l_gdb_group = dap_chain_ledger_get_gdb_group(l_ledger, DAP_CHAIN_LEDGER_SPENT_TXS_STR); dap_global_db_get_all(l_gdb_group, 0, s_load_cache_gdb_loaded_spent_txs_callback, l_ledger); DAP_DELETE(l_gdb_group); + return true; } -static void s_load_cache_gdb_loaded_stake_lock_callback(dap_global_db_context_t *a_global_db_context, +static bool s_load_cache_gdb_loaded_stake_lock_callback(dap_global_db_context_t *a_global_db_context, int a_rc, const char *a_group, const size_t a_values_total, const size_t a_values_count, dap_global_db_obj_t *a_values, void *a_arg) @@ -2366,6 +2369,7 @@ static void s_load_cache_gdb_loaded_stake_lock_callback(dap_global_db_context_t char* l_gdb_group = dap_chain_ledger_get_gdb_group(l_ledger, DAP_CHAIN_LEDGER_TXS_STR); dap_global_db_get_all(l_gdb_group, 0, s_load_cache_gdb_loaded_txs_callback, l_ledger); DAP_DELETE(l_gdb_group); + return true; } @@ -2382,7 +2386,7 @@ static void s_load_cache_gdb_loaded_stake_lock_callback(dap_global_db_context_t * @param a_arg * @return Always true thats means to clear up a_values */ -static void s_load_cache_gdb_loaded_emissions_callback(dap_global_db_context_t *a_global_db_context, +static bool s_load_cache_gdb_loaded_emissions_callback(dap_global_db_context_t *a_global_db_context, int a_rc, const char *a_group, const size_t a_values_total, const size_t a_values_count, dap_global_db_obj_t *a_values, void *a_arg) @@ -2404,7 +2408,7 @@ static void s_load_cache_gdb_loaded_emissions_callback(dap_global_db_context_t * dap_chain_ledger_token_emission_item_t *l_emission_item = DAP_NEW_Z(dap_chain_ledger_token_emission_item_t); if ( !l_emission_item ) { log_it(L_CRITICAL, "Memory allocation error"); - return; + return false; } dap_chain_hash_fast_from_str(a_values[i].key, &l_emission_item->datum_token_emission_hash); l_emission_item->tx_used_out = *(dap_hash_fast_t*)a_values[i].value; @@ -2418,6 +2422,7 @@ static void s_load_cache_gdb_loaded_emissions_callback(dap_global_db_context_t * char* l_gdb_group = dap_chain_ledger_get_gdb_group(l_ledger, DAP_CHAIN_LEDGER_STAKE_LOCK_STR); dap_global_db_get_all(l_gdb_group, 0, s_load_cache_gdb_loaded_stake_lock_callback, l_ledger); DAP_DELETE(l_gdb_group); + return true; } @@ -2433,14 +2438,14 @@ static void s_load_cache_gdb_loaded_emissions_callback(dap_global_db_context_t * * @param a_values * @param a_arg */ -static void s_load_cache_gdb_loaded_tokens_callback(dap_global_db_context_t *a_global_db_context, +static bool s_load_cache_gdb_loaded_tokens_callback(dap_global_db_context_t *a_global_db_context, int a_rc, const char *a_group, const size_t a_values_total, const size_t a_values_count, dap_global_db_obj_t *a_values, void *a_arg) { - dap_ledger_t * l_ledger = (dap_ledger_t*) a_arg; - dap_ledger_private_t * l_ledger_pvt = PVT(l_ledger); - if( a_rc != 0){ + dap_ledger_t *l_ledger = (dap_ledger_t *) a_arg; + dap_ledger_private_t *l_ledger_pvt = PVT(l_ledger); + if(a_rc) { log_it(L_NOTICE, "No ledger cache found"); pthread_mutex_lock(&l_ledger_pvt->load_mutex); l_ledger_pvt->load_end = true; @@ -2470,6 +2475,7 @@ static void s_load_cache_gdb_loaded_tokens_callback(dap_global_db_context_t *a_g char *l_gdb_group = dap_chain_ledger_get_gdb_group(l_ledger, DAP_CHAIN_LEDGER_EMISSIONS_STR); dap_global_db_get_all(l_gdb_group, 0, s_load_cache_gdb_loaded_emissions_callback, l_ledger); DAP_DELETE(l_gdb_group); + return true; } /** @@ -2741,10 +2747,9 @@ int dap_chain_ledger_token_emission_add_check(dap_ledger_t *a_ledger, byte_t *a_ bool s_chain_ledger_token_address_check(dap_chain_addr_t * a_addrs, dap_chain_datum_token_emission_t *a_token_emission, size_t a_addrs_count) { // if l_addrs is empty - nothing to check - if (!a_addrs) - return true; + dap_return_val_if_pass(!a_addrs, true); - for(size_t n=0; n<a_addrs_count;n++ ){ + for(size_t n = 0; n < a_addrs_count; n++ ){ dap_chain_addr_t l_addr = a_addrs[n]; if (memcmp(&l_addr,&a_token_emission->hdr.address,sizeof(dap_chain_addr_t))==0) return true; diff --git a/modules/channel/chain/dap_stream_ch_chain.c b/modules/channel/chain/dap_stream_ch_chain.c index 27efe47aee..580886dc17 100644 --- a/modules/channel/chain/dap_stream_ch_chain.c +++ b/modules/channel/chain/dap_stream_ch_chain.c @@ -114,7 +114,7 @@ static bool s_sync_out_gdb_proc_callback(dap_proc_thread_t *a_thread, void *a_ar static bool s_sync_in_chains_callback(dap_proc_thread_t *a_thread, void *a_arg); static bool s_gdb_in_pkt_proc_callback(dap_proc_thread_t *a_thread, void *a_arg); -static void s_gdb_in_pkt_proc_set_raw_callback(dap_global_db_context_t *a_global_db_context, +static bool s_gdb_in_pkt_proc_set_raw_callback(dap_global_db_context_t *a_global_db_context, int a_rc, const char *a_group, const size_t a_values_total, const size_t a_values_count, dap_store_obj_t *a_values, void *a_arg); @@ -775,21 +775,21 @@ static bool s_gdb_in_pkt_proc_callback(dap_proc_thread_t *a_thread, void *a_arg) * @param a_values * @param a_arg */ -static void s_gdb_in_pkt_proc_set_raw_callback(dap_global_db_context_t *a_global_db_context, +static bool s_gdb_in_pkt_proc_set_raw_callback(dap_global_db_context_t *a_global_db_context, int a_rc, const char *a_group, const size_t a_values_total, const size_t a_values_count, dap_store_obj_t *a_values, void *a_arg) { - struct sync_request *l_sync_req = (struct sync_request*) a_arg; - if( a_rc != 0){ + if(a_rc){ debug_if(s_debug_more, L_ERROR, "Can't save GlobalDB request, code %d", a_rc); dap_worker_exec_callback_inter(a_global_db_context->queue_worker_callback_input[l_sync_req->worker->id], s_gdb_in_pkt_error_worker_callback, l_sync_req); - }else{ + } else { debug_if(s_debug_more, L_DEBUG, "Added new GLOBAL_DB synchronization record"); DAP_DELETE(l_sync_req); } + return true; } diff --git a/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c b/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c index 234d30b296..846181534b 100644 --- a/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c +++ b/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c @@ -422,7 +422,7 @@ static int s_callback_new(dap_chain_t * a_chain, dap_config_t * a_chain_cfg) * @param a_values * @param a_arg */ -static void s_poa_round_check_callback_round_clean(dap_global_db_context_t *a_global_db_context, +static bool s_poa_round_check_callback_round_clean(dap_global_db_context_t *a_global_db_context, int a_rc, const char *a_group, const size_t a_values_total, const size_t a_values_count, dap_global_db_obj_t *a_values, void *a_arg) @@ -459,6 +459,7 @@ static void s_poa_round_check_callback_round_clean(dap_global_db_context_t *a_gl } } } + return true; } /** @@ -580,13 +581,13 @@ static dap_chain_cs_dag_event_round_item_t *s_round_event_choose_dup(dap_list_t * @param a_is_pinned * @param a_arg */ -static void s_callback_round_event_to_chain_callback_get_round_item(dap_global_db_context_t *a_global_db_context, +static bool s_callback_round_event_to_chain_callback_get_round_item(dap_global_db_context_t *a_global_db_context, int a_rc, const char *a_group, const size_t a_values_total, const size_t a_values_count, dap_store_obj_t *a_values, void *a_arg) { - if (a_rc != DAP_GLOBAL_DB_RC_SUCCESS) - return; + if (a_rc != DAP_GLOBAL_DB_RC_SUCCESS) + return false; struct round_timer_arg *l_arg = (struct round_timer_arg *)a_arg; dap_chain_cs_dag_t *l_dag = l_arg->dag; uint64_t l_round_id = l_arg->round_id; @@ -640,6 +641,7 @@ static void s_callback_round_event_to_chain_callback_get_round_item(dap_global_d } dap_list_free(l_dups_list); + return true; } /** diff --git a/modules/consensus/esbocs/dap_chain_cs_esbocs.c b/modules/consensus/esbocs/dap_chain_cs_esbocs.c index 5605042ed3..dcf4657c70 100644 --- a/modules/consensus/esbocs/dap_chain_cs_esbocs.c +++ b/modules/consensus/esbocs/dap_chain_cs_esbocs.c @@ -307,9 +307,7 @@ static void s_session_db_serialize(dap_global_db_context_t *a_context, void *a_a uint64_t l_limit_time = l_time_store_lim_hours ? dap_nanotime_now() - dap_nanotime_from_sec(l_time_store_lim_hours * 3600) : 0; size_t l_objs_count = 0; dap_global_db_pkt_t *l_pkt = 0; - dap_db_iter_t *l_iter = dap_global_db_driver_iter_create(l_sync_group); - dap_store_obj_t *l_objs = dap_global_db_get_all_raw_unsafe(a_context, l_iter, &l_objs_count); - dap_global_db_driver_iter_delete(l_iter); + dap_store_obj_t *l_objs = dap_global_db_get_all_raw_unsafe(a_context, l_sync_group, &l_objs_count); for (size_t i = 0; i < l_objs_count; i++) { dap_store_obj_t *it = l_objs + i; if (l_notify_item->ttl && it->timestamp < l_limit_time) { @@ -339,9 +337,7 @@ static void s_session_db_serialize(dap_global_db_context_t *a_context, void *a_a char *l_del_sync_group = dap_strdup_printf("%s.del", l_sync_group); l_objs_count = 0; - l_iter = dap_global_db_driver_iter_create(l_sync_group); - l_objs = dap_global_db_get_all_raw_unsafe(a_context, l_iter, &l_objs_count); - dap_global_db_driver_iter_delete(l_iter); + l_objs = dap_global_db_get_all_raw_unsafe(a_context, l_sync_group, &l_objs_count); DAP_DELETE(l_del_sync_group); for (size_t i = 0; i < l_objs_count; i++) { @@ -1499,7 +1495,7 @@ typedef struct fee_serv_param dap_chain_t * chain; }fee_serv_param_t; -static void s_check_db_callback_fee_collect (UNUSED_ARG dap_global_db_context_t *a_global_db_context, +static bool s_check_db_callback_fee_collect (UNUSED_ARG dap_global_db_context_t *a_global_db_context, UNUSED_ARG int a_rc, UNUSED_ARG const char *a_group, UNUSED_ARG const size_t a_values_total, const size_t a_values_count, dap_global_db_obj_t *a_values, void *a_arg) @@ -1516,46 +1512,36 @@ static void s_check_db_callback_fee_collect (UNUSED_ARG dap_global_db_context_t dap_list_t *l_block_list = NULL; log_it(L_MSG, "Fee collector start work"); l_block_cache = dap_chain_block_cs_cache_get_by_hash(l_blocks, &l_arg->block_hash); - if(!l_block_cache) - { + if(!l_block_cache) { log_it(L_WARNING, "The block_cache is empty"); - return; + return false; } dap_ledger_t *l_ledger = dap_chain_net_by_id(l_chain->net_id)->pub.ledger; dap_list_t *l_list_used_out = dap_chain_block_get_list_tx_cond_outs_with_val(l_ledger, l_block_cache, &l_value_out_block); - if(!l_list_used_out) - { + if(!l_list_used_out) { log_it(L_WARNING, "There aren't any fee in this block"); - return; + return false; } dap_list_free_full(l_list_used_out, NULL); l_block_list = dap_list_append(l_block_list, l_block_cache); - if(!a_values_count) - { - if(compare256(l_value_out_block,l_arg->fee_need_cfg) == 1) - { + if(!a_values_count){ + if(compare256(l_value_out_block,l_arg->fee_need_cfg) == 1) { char *l_hash_tx = dap_chain_mempool_tx_coll_fee_create(l_arg->key_from, l_arg->a_addr_to, l_block_list, l_arg->value_fee, "hex"); - if(l_hash_tx) - { + if(l_hash_tx) { log_it(L_NOTICE, "Fee collect transaction successfully created, hash=%s\n",l_hash_tx); dap_global_db_del(s_block_fee_group, NULL, NULL, NULL); DAP_DELETE(l_hash_tx); } - } - else - { + } else { res = dap_global_db_set(s_block_fee_group,l_block_cache->block_hash_str,&l_value_out_block,sizeof(uint256_t),false,NULL,NULL); if(res) log_it(L_WARNING, "Unable to write data to database"); else log_it(L_NOTICE, "The block was successfully added to the database"); } - } - else - { - for(size_t i=0;i<a_values_count;i++) - { + } else { + for(size_t i=0;i<a_values_count;i++) { dap_hash_fast_t block_hash; dap_chain_hash_fast_from_hex_str(a_values[i].key,&block_hash); dap_chain_block_cache_t *block_cache = dap_chain_block_cs_cache_get_by_hash(l_blocks, &block_hash); @@ -1563,19 +1549,15 @@ static void s_check_db_callback_fee_collect (UNUSED_ARG dap_global_db_context_t SUM_256_256(*(uint256_t*)a_values[i].value,l_value_gdb,&l_value_gdb); } SUM_256_256(l_value_out_block,l_value_gdb,&l_value_total); - if(compare256(l_value_total,l_arg->fee_need_cfg) == 1) - { + if(compare256(l_value_total,l_arg->fee_need_cfg) == 1) { char *l_hash_tx = dap_chain_mempool_tx_coll_fee_create(l_arg->key_from, l_arg->a_addr_to, l_block_list, l_arg->value_fee, "hex"); - if(l_hash_tx) - { + if(l_hash_tx) { dap_global_db_del(s_block_fee_group, NULL, NULL, NULL); log_it(L_NOTICE, "Fee collect transaction successfully created, hash=%s\n",l_hash_tx); DAP_DELETE(l_hash_tx); } - } - else - { + } else { res = dap_global_db_set(s_block_fee_group,l_block_cache->block_hash_str,&l_value_out_block,sizeof(uint256_t),false,NULL,NULL); if(res) log_it(L_WARNING, "Unable to write data to database"); @@ -1586,7 +1568,7 @@ static void s_check_db_callback_fee_collect (UNUSED_ARG dap_global_db_context_t dap_list_free(l_block_list); DAP_DEL_Z(l_arg->a_addr_to); DAP_DELETE(l_arg); - return; + return true; } static void s_session_round_finish(dap_chain_esbocs_session_t *a_session, dap_chain_esbocs_store_t *l_store) @@ -1669,7 +1651,7 @@ static void s_session_round_finish(dap_chain_esbocs_session_t *a_session, dap_ch tmp->fee_need_cfg = PVT(a_session->esbocs)->fee_coll_set; tmp->key_from = PVT(a_session->esbocs)->blocks_sign_key; - dap_global_db_get_all(s_block_fee_group, 0, s_check_db_callback_fee_collect,tmp); + dap_global_db_get_all(s_block_fee_group, 0, s_check_db_callback_fee_collect, tmp); } } diff --git a/modules/consensus/none/dap_chain_cs_none.c b/modules/consensus/none/dap_chain_cs_none.c index 7680827628..6a8f04291b 100644 --- a/modules/consensus/none/dap_chain_cs_none.c +++ b/modules/consensus/none/dap_chain_cs_none.c @@ -299,7 +299,7 @@ const char* dap_chain_gdb_get_group(dap_chain_t * a_chain) * @param a_values * @param a_arg */ -static void s_ledger_load_callback(UNUSED_ARG dap_global_db_context_t *a_global_db_context, +static bool s_ledger_load_callback(UNUSED_ARG dap_global_db_context_t *a_global_db_context, UNUSED_ARG int a_rc, UNUSED_ARG const char *a_group, UNUSED_ARG const size_t a_values_total, const size_t a_values_count, dap_global_db_obj_t *a_values, void *a_arg) @@ -322,6 +322,7 @@ static void s_ledger_load_callback(UNUSED_ARG dap_global_db_context_t *a_global_ l_gdb_pvt->is_load_mode = false; pthread_cond_broadcast(&l_gdb_pvt->load_cond); pthread_mutex_unlock(&l_gdb_pvt->load_mutex); + return true; } /** diff --git a/modules/net/dap_chain_node_cli_cmd.c b/modules/net/dap_chain_node_cli_cmd.c index f21791c944..0ebf1f9b49 100644 --- a/modules/net/dap_chain_node_cli_cmd.c +++ b/modules/net/dap_chain_node_cli_cmd.c @@ -2200,7 +2200,7 @@ int l_arg_index = 1, l_rc, cmd_num = CMD_NONE; // wallet info case CMD_WALLET_INFO: { dap_ledger_t *l_ledger = NULL; - if (l_wallet_name && l_addr_str || !l_wallet_name && !l_addr_str) { + if ((l_wallet_name && l_addr_str) || (!l_wallet_name && !l_addr_str)) { dap_cli_server_cmd_set_reply_text(a_str_reply, "You should use either the -w or -addr option for the wallet info command."); dap_string_free(l_string_ret, true); return -1; diff --git a/modules/type/dag/dap_chain_cs_dag.c b/modules/type/dag/dap_chain_cs_dag.c index d8b94156fd..74c84fba9a 100644 --- a/modules/type/dag/dap_chain_cs_dag.c +++ b/modules/type/dag/dap_chain_cs_dag.c @@ -199,20 +199,21 @@ static void s_history_callback_round_notify(dap_global_db_context_t *a_context, } } -static void s_dag_rounds_events_iter(dap_global_db_context_t *a_context, +static bool s_dag_rounds_events_iter(dap_global_db_context_t *a_context, int a_rc, const char *a_group, const size_t a_values_current, const size_t a_values_count, dap_store_obj_t *a_values, void *a_arg) { UNUSED(a_group); UNUSED(a_values_current); - if (a_rc != DAP_GLOBAL_DB_RC_SUCCESS) - return; + dap_return_val_if_pass(a_rc != DAP_GLOBAL_DB_RC_SUCCESS, false); + for (size_t i = 0; i < a_values_count; i++) { dap_store_obj_t *l_obj_cur = a_values + i; l_obj_cur->type = DAP_DB$K_OPTYPE_ADD; s_history_callback_round_notify(a_context, a_values + i, a_arg); } + return true; } static void s_timer_process_callback(void *a_arg) -- GitLab