From: luozheng <1732036298@qq.com> Date: Thu, 3 Oct 2024 11:20:04 +0000 (+0800) Subject: 解决闹钟主界面内存泄漏问题 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=4b7f04882ee84ba2f9e1753e8b3e10fb2d81f330;p=mirrors%2FFD230.git 解决闹钟主界面内存泄漏问题 --- diff --git a/code/sdk/application/wearable/fd230app/nativeui/alarm/include/MainAlarmView.h b/code/sdk/application/wearable/fd230app/nativeui/alarm/include/MainAlarmView.h index f6ff00df6..3cb345791 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/alarm/include/MainAlarmView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/alarm/include/MainAlarmView.h @@ -93,6 +93,7 @@ private: bool reflashStatus{false}; UILabelExt * TitleLabelExt_{nullptr}; UILabelButtonExt * AddButton_{nullptr}; + UICheckBox::OnChangeListener *statusListener{nullptr}; #define ALARM_DELETE_IMAGE "/user/res/Alarm/alarm_delete.bin" }; diff --git a/code/sdk/application/wearable/fd230app/nativeui/alarm/src/MainAlarmView.cpp b/code/sdk/application/wearable/fd230app/nativeui/alarm/src/MainAlarmView.cpp index 519af3e41..f94c0a00f 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/alarm/src/MainAlarmView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/alarm/src/MainAlarmView.cpp @@ -99,6 +99,16 @@ MainAlarmView::~MainAlarmView() delete newTimeView; newTimeView = nullptr; } + if(maxClockView) + { + delete maxClockView; + maxClockView = nullptr; + } + if(statusListener) + { + delete statusListener; + statusListener = nullptr; + } if(nullptr != TitleLabelExt_) { delete TitleLabelExt_; @@ -312,11 +322,12 @@ UIViewGroup * MainAlarmView::NewClockCtlExt(int16_t alarmNum, uint8_t index) // statusButton[alarmNum]->SetStyle(STYLE_BACKGROUND_OPA, alarmNum); // statusButton[alarmNum]->SetStyle(STYLE_BACKGROUND_COLOR, 0xff29b862); // statusButton[alarmNum]->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE); - UICheckBox::OnChangeListener *statusListener{nullptr}; - statusListener = new AlarmStatusBtnChangeListener(reinterpret_cast(statusButton[alarmNum])); - if (statusListener == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainAlarmView::NewStatusButton statusListener nullptr!"); - return nullptr; + if(statusListener == nullptr){ + statusListener = new AlarmStatusBtnChangeListener(reinterpret_cast(statusButton[alarmNum])); + if (statusListener == nullptr) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainAlarmView::NewStatusButton statusListener nullptr!"); + return nullptr; + } } statusButton[alarmNum]->SetOnChangeListener((UICheckBox::OnChangeListener *)statusListener); /* ----------------------------------- Add ---------------------------------- */