From ee08658f55f55b9a4a37119cc82197a049c1a633 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Sun, 11 Apr 2021 12:29:54 +0200 Subject: [PATCH] implemented dtors --- common/gpio/GpioCookie.cpp | 6 +++++- linux/gpio/LinuxLibgpioIF.cpp | 3 +++ linux/rpi/GpioRPi.cpp | 12 ++++++------ 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/common/gpio/GpioCookie.cpp b/common/gpio/GpioCookie.cpp index 198822a..a32519f 100644 --- a/common/gpio/GpioCookie.cpp +++ b/common/gpio/GpioCookie.cpp @@ -42,4 +42,8 @@ GpioMap GpioCookie::getGpioMap() const { return gpioMap; } -GpioCookie::~GpioCookie() {} +GpioCookie::~GpioCookie() { + for(auto& config: gpioMap) { + delete(config.second); + } +} diff --git a/linux/gpio/LinuxLibgpioIF.cpp b/linux/gpio/LinuxLibgpioIF.cpp index 8617d39..b8151c6 100644 --- a/linux/gpio/LinuxLibgpioIF.cpp +++ b/linux/gpio/LinuxLibgpioIF.cpp @@ -12,6 +12,9 @@ LinuxLibgpioIF::LinuxLibgpioIF(object_id_t objectId) : SystemObject(objectId) { } LinuxLibgpioIF::~LinuxLibgpioIF() { + for(auto& config: gpioMap) { + delete(config.second); + } } ReturnValue_t LinuxLibgpioIF::addGpios(GpioCookie* gpioCookie) { diff --git a/linux/rpi/GpioRPi.cpp b/linux/rpi/GpioRPi.cpp index 68127cf..64b6fca 100644 --- a/linux/rpi/GpioRPi.cpp +++ b/linux/rpi/GpioRPi.cpp @@ -11,14 +11,14 @@ ReturnValue_t gpio::createRpiGpioConfig(GpioCookie* cookie, gpioId_t gpioId, int return HasReturnvaluesIF::RETURN_FAILED; } - GpiodRegular config; + GpiodRegular* config = new GpiodRegular(); /* Default chipname for Raspberry Pi. There is still gpiochip1 for expansion, but most users will not need this */ - config.chipname = "gpiochip0"; + config->chipname = "gpiochip0"; - config.consumer = consumer; - config.direction = direction; - config.initValue = initValue; + config->consumer = consumer; + config->direction = direction; + config->initValue = initValue; /* Sanity check for the BCM pins before assigning it */ if(bcmPin > 27) { @@ -31,7 +31,7 @@ ReturnValue_t gpio::createRpiGpioConfig(GpioCookie* cookie, gpioId_t gpioId, int #endif /* FSFW_VERBOSE_LEVEL >= 1 */ return HasReturnvaluesIF::RETURN_FAILED; } - config.lineNum = bcmPin; + config->lineNum = bcmPin; cookie->addGpio(gpioId, config); return HasReturnvaluesIF::RETURN_OK; }