Fixes for memory leak / optimization

This commit is contained in:
Rahul Tank
2024-02-20 11:18:11 +05:30
committed by Abhinav Kudnar
parent d29517c005
commit 768dbeb83c
6 changed files with 27 additions and 0 deletions
+2
View File
@@ -64,6 +64,8 @@ extern "C" {
* return appropriate error code otherwise
*/
int ble_hs_pvcy_rpa_config(uint8_t enable);
void ble_hs_resolv_deinit(void);
#endif
int ble_hs_pvcy_set_resolve_enabled(int enable);
+2
View File
@@ -1265,6 +1265,8 @@ ble_gatts_start(void)
goto done;
}
memset (ble_gatts_clt_cfgs, 0, sizeof *ble_gatts_clt_cfgs);
/* Fill the cache. */
idx = 0;
ha = NULL;
+6
View File
@@ -30,6 +30,8 @@
#include "nimble/nimble_port.h"
#endif
#include "host/ble_hs_pvcy.h"
#define BLE_HS_HCI_EVT_COUNT (MYNEWT_VAL(BLE_TRANSPORT_EVT_COUNT) + \
MYNEWT_VAL(BLE_TRANSPORT_EVT_DISCARDABLE_COUNT))
@@ -583,6 +585,7 @@ ble_hs_enqueue_hci_event(uint8_t *hci_evt)
ev = os_memblock_get(&ble_hs_hci_ev_pool);
if (ev && ble_hs_evq->eventq) {
memset (ev, 0, sizeof *ev);
ble_npl_event_init(ev, ble_hs_event_rx_hci_ev, hci_evt);
ble_npl_eventq_put(ble_hs_evq, ev);
} else {
@@ -886,4 +889,7 @@ ble_hs_deinit(void)
ble_npl_callout_deinit(&ble_hs_timer);
#if (MYNEWT_VAL(BLE_HOST_BASED_PRIVACY))
ble_hs_resolv_deinit();
#endif
}
+5
View File
@@ -767,4 +767,9 @@ void ble_hs_resolv_init(void)
NULL);
}
void ble_hs_resolv_deinit(void)
{
ble_npl_callout_stop(&g_ble_hs_resolv_data.rpa_timer);
ble_npl_callout_deinit(&g_ble_hs_resolv_data.rpa_timer);
}
#endif /* if MYNEWT_VAL(BLE_HOST_BASED_PRIVACY) */
+2
View File
@@ -233,6 +233,8 @@ nimble_port_stop(void)
ble_npl_sem_deinit(&ble_hs_stop_sem);
ble_npl_event_deinit(&ble_hs_ev_stop);
return ESP_OK;
}
@@ -1175,18 +1175,23 @@ _error:
#if SOC_ESP_NIMBLE_CONTROLLER
if(ble_freertos_ev_buf) {
free(ble_freertos_ev_buf);
ble_freertos_ev_buf = NULL;
}
if(ble_freertos_evq_buf) {
free(ble_freertos_evq_buf);
ble_freertos_evq_buf = NULL;
}
if(ble_freertos_co_buf) {
free(ble_freertos_co_buf);
ble_freertos_co_buf = NULL;
}
if(ble_freertos_sem_buf) {
free(ble_freertos_sem_buf);
ble_freertos_sem_buf = NULL;
}
if(ble_freertos_mutex_buf) {
free(ble_freertos_mutex_buf);
ble_freertos_mutex_buf = NULL;
}
return -1;
#else
@@ -1201,18 +1206,23 @@ void npl_freertos_mempool_deinit(void)
#if SOC_ESP_NIMBLE_CONTROLLER
if(ble_freertos_ev_buf) {
free(ble_freertos_ev_buf);
ble_freertos_ev_buf = NULL;
}
if(ble_freertos_evq_buf) {
free(ble_freertos_evq_buf);
ble_freertos_evq_buf = NULL;
}
if(ble_freertos_co_buf) {
free(ble_freertos_co_buf);
ble_freertos_co_buf = NULL;
}
if(ble_freertos_sem_buf) {
free(ble_freertos_sem_buf);
ble_freertos_sem_buf = NULL;
}
if(ble_freertos_mutex_buf) {
free(ble_freertos_mutex_buf);
ble_freertos_mutex_buf = NULL;
}
#endif
}