digital_signal: fix memory leak

This commit is contained in:
g3gg0.de
2023-01-16 10:49:01 +01:00
parent e1c92269f7
commit 34d9fa4529

View File

@@ -292,7 +292,7 @@ void digital_sequence_alloc_sequence(DigitalSequence* sequence, uint32_t size) {
DigitalSequence* digital_sequence_alloc(uint32_t size, const GpioPin* gpio) { DigitalSequence* digital_sequence_alloc(uint32_t size, const GpioPin* gpio) {
furi_assert(gpio); furi_assert(gpio);
DigitalSequence* sequence = malloc(sizeof(DigitalSequence)); DigitalSequence* sequence = malloc(sizeof(DigitalSequence));
sequence->gpio = gpio; sequence->gpio = gpio;
@@ -313,6 +313,7 @@ void digital_sequence_free(DigitalSequence* sequence) {
free(sequence->signals); free(sequence->signals);
free(sequence->sequence); free(sequence->sequence);
free(sequence->signals_prolonged);
free(sequence); free(sequence);
} }
@@ -333,7 +334,7 @@ void digital_sequence_set_signal(
void digital_sequence_set_sendtime(DigitalSequence* sequence, uint32_t send_time) { void digital_sequence_set_sendtime(DigitalSequence* sequence, uint32_t send_time) {
furi_assert(sequence); furi_assert(sequence);
sequence->send_time = send_time; sequence->send_time = send_time;
sequence->send_time_active = true; 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)) { while(prev_remain == LL_DMA_GetDataLength(DMA1, LL_DMA_CHANNEL_2)) {
if(DWT->CYCCNT - prev_timer > wait_ticks) { if(DWT->CYCCNT - prev_timer > wait_ticks) {
restart_needed = true; restart_needed = true;
break; break;
} }
} }
@@ -411,7 +412,7 @@ static bool digital_sequence_send_signal(DigitalSequence* sequence, DigitalSigna
DigitalSignal* digital_sequence_bake(DigitalSequence* sequence) { DigitalSignal* digital_sequence_bake(DigitalSequence* sequence) {
furi_assert(sequence); furi_assert(sequence);
uint32_t edges = 0; uint32_t edges = 0;
for(uint32_t pos = 0; pos < sequence->sequence_used; pos++) { for(uint32_t pos = 0; pos < sequence->sequence_used; pos++) {