digital_signal/pulse_reader: allow parameters for free to be NULL

This commit is contained in:
g3gg0.de
2022-12-29 22:36:30 +01:00
parent a5293c5638
commit 581e61b6c6
2 changed files with 14 additions and 0 deletions

View File

@@ -71,6 +71,10 @@ DigitalSignal* digital_signal_alloc(uint32_t max_edges_cnt) {
void digital_signal_free(DigitalSignal* signal) { void digital_signal_free(DigitalSignal* signal) {
furi_assert(signal); furi_assert(signal);
if(!signal) {
return;
}
free(signal->edge_timings); free(signal->edge_timings);
free(signal->reload_reg_buff); free(signal->reload_reg_buff);
free(signal->internals); free(signal->internals);
@@ -298,6 +302,10 @@ DigitalSequence* digital_sequence_alloc(uint32_t size, const GpioPin* gpio) {
void digital_sequence_free(DigitalSequence* sequence) { void digital_sequence_free(DigitalSequence* sequence) {
furi_assert(sequence); furi_assert(sequence);
if(!sequence) {
return;
}
free(sequence->signals); free(sequence->signals);
free(sequence->sequence); free(sequence->sequence);
free(sequence); free(sequence);

View File

@@ -117,6 +117,12 @@ void pulse_reader_set_pull(PulseReader* signal, GpioPull pull) {
} }
void pulse_reader_free(PulseReader* signal) { void pulse_reader_free(PulseReader* signal) {
furi_assert(signal);
if(!signal) {
return;
}
free(signal->timer_buffer); free(signal->timer_buffer);
free(signal->gpio_buffer); free(signal->gpio_buffer);
free(signal); free(signal);