mirror of
https://github.com/espressif/esp-nimble.git
synced 2026-08-29 21:30:01 +00:00
Fixes for memory leak / optimization
This commit is contained in:
committed by
Abhinav Kudnar
parent
d29517c005
commit
768dbeb83c
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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) */
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user