From 34d9fa452964b4c2b93b2f38ec84bd1f5f3f567d Mon Sep 17 00:00:00 2001 From: "g3gg0.de" Date: Mon, 16 Jan 2023 10:49:01 +0100 Subject: [PATCH] digital_signal: fix memory leak --- lib/digital_signal/digital_signal.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/digital_signal/digital_signal.c b/lib/digital_signal/digital_signal.c index e07235ece..91f5b2173 100644 --- a/lib/digital_signal/digital_signal.c +++ b/lib/digital_signal/digital_signal.c @@ -292,7 +292,7 @@ void digital_sequence_alloc_sequence(DigitalSequence* sequence, uint32_t size) { DigitalSequence* digital_sequence_alloc(uint32_t size, const GpioPin* gpio) { furi_assert(gpio); - + DigitalSequence* sequence = malloc(sizeof(DigitalSequence)); sequence->gpio = gpio; @@ -313,6 +313,7 @@ void digital_sequence_free(DigitalSequence* sequence) { free(sequence->signals); free(sequence->sequence); + free(sequence->signals_prolonged); free(sequence); } @@ -333,7 +334,7 @@ void digital_sequence_set_signal( void digital_sequence_set_sendtime(DigitalSequence* sequence, uint32_t send_time) { furi_assert(sequence); - + sequence->send_time = send_time; sequence->send_time_active = true; } @@ -365,7 +366,7 @@ static void digital_signal_update_dma(DigitalSignal* signal) { while(prev_remain == LL_DMA_GetDataLength(DMA1, LL_DMA_CHANNEL_2)) { if(DWT->CYCCNT - prev_timer > wait_ticks) { restart_needed = true; - break; + break; } } @@ -411,7 +412,7 @@ static bool digital_sequence_send_signal(DigitalSequence* sequence, DigitalSigna DigitalSignal* digital_sequence_bake(DigitalSequence* sequence) { furi_assert(sequence); - + uint32_t edges = 0; for(uint32_t pos = 0; pos < sequence->sequence_used; pos++) {