Skip to content
Snippets Groups Projects
Unverified Commit 00b48a14 authored by Dmitriy A. Gerasimov's avatar Dmitriy A. Gerasimov Committed by GitHub
Browse files

Merge pull request #7 from cellframe/feature-2313

fixed a few memory leaks
parents 0188ea0f ac80a7f4
No related branches found
No related tags found
No related merge requests found
...@@ -137,7 +137,10 @@ void dap_db_driver_deinit(void) ...@@ -137,7 +137,10 @@ void dap_db_driver_deinit(void)
// deinit driver // deinit driver
if(s_drv_callback.deinit) if(s_drv_callback.deinit)
s_drv_callback.deinit(); s_drv_callback.deinit();
if(s_used_driver){
DAP_DELETE(s_used_driver);
s_used_driver = NULL;
}
} }
dap_store_obj_t* dap_store_obj_copy(dap_store_obj_t *a_store_obj, size_t a_store_count) dap_store_obj_t* dap_store_obj_copy(dap_store_obj_t *a_store_obj, size_t a_store_count)
...@@ -478,13 +481,13 @@ int dap_chain_global_db_driver_appy(pdap_store_obj_t a_store_obj, size_t a_store ...@@ -478,13 +481,13 @@ int dap_chain_global_db_driver_appy(pdap_store_obj_t a_store_obj, size_t a_store
if(s_drv_callback.apply_store_obj) if(s_drv_callback.apply_store_obj)
for(size_t i = 0; i < a_store_count; i++) { for(size_t i = 0; i < a_store_count; i++) {
dap_store_obj_t *l_obj = dap_store_obj_copy(a_store_obj + i, 1); dap_store_obj_t *l_store_obj_cur = a_store_obj + i;
assert(l_obj); assert(l_store_obj_cur);
if(!s_drv_callback.apply_store_obj(a_store_obj)) { if(!s_drv_callback.apply_store_obj(l_store_obj_cur)) {
//log_it(L_INFO, "Write item Ok %s/%s\n", l_obj->group, l_obj->key); //log_it(L_INFO, "Write item Ok %s/%s\n", l_obj->group, l_obj->key);
} }
else { else {
log_it(L_ERROR, "Can't write item %s/%s\n", l_obj->group, l_obj->key); log_it(L_ERROR, "Can't write item %s/%s\n", l_store_obj_cur->group, l_store_obj_cur->key);
l_ret -= 1; l_ret -= 1;
} }
} }
......
...@@ -144,6 +144,7 @@ sqlite3* dap_db_driver_sqlite_open(const char *a_filename_utf8, int a_flags, cha ...@@ -144,6 +144,7 @@ sqlite3* dap_db_driver_sqlite_open(const char *a_filename_utf8, int a_flags, cha
int l_rc = sqlite3_open_v2(a_filename_utf8, &l_db, a_flags | SQLITE_OPEN_FULLMUTEX, NULL); int l_rc = sqlite3_open_v2(a_filename_utf8, &l_db, a_flags | SQLITE_OPEN_FULLMUTEX, NULL);
// if unable to open the database file // if unable to open the database file
if(l_rc == SQLITE_CANTOPEN) { if(l_rc == SQLITE_CANTOPEN) {
sqlite3_close(l_db);
// try to create database // try to create database
l_rc = sqlite3_open_v2(a_filename_utf8, &l_db, a_flags | SQLITE_OPEN_FULLMUTEX | SQLITE_OPEN_CREATE, NULL); l_rc = sqlite3_open_v2(a_filename_utf8, &l_db, a_flags | SQLITE_OPEN_FULLMUTEX | SQLITE_OPEN_CREATE, NULL);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment