优化离线语音助手内存泄漏 847/1
authorpenglei <1624952103@qq.com>
Sat, 31 Aug 2024 08:13:44 +0000 (16:13 +0800)
committerpenglei <1624952103@qq.com>
Sat, 31 Aug 2024 08:13:44 +0000 (16:13 +0800)
code/sdk/application/wearable/fd230app/nativeui/offlinevoice/src/VocassistView.cpp

index ab6637d..3991d21 100644 (file)
@@ -13,6 +13,7 @@
 #include "VocassistModel.h"\r
 #include "VocassistView.h"\r
 #include "VocassistPresenter.h"\r
+#include "uicomponents/UIComponents.h"\r
 \r
 static constexpr uint16_t SWITCH_MAP_NUM = 16;\r
 static constexpr uint16_t ANI_X = 84;\r
@@ -147,6 +148,14 @@ VoiceAssistance::~VoiceAssistance()
     callwordContext = nullptr;\r
     delete workFrame;\r
     workFrame = nullptr;\r
+\r
+    (void)memset_s(storPicPathBuf, sizeof(storPicPathBuf), 0, sizeof(storPicPathBuf));\r
+    for (int i = 0; i < ANI_TOTAL_NUM; i++) {\r
+        sprintf_s(storPicPathBuf[i], sizeof(storPicPathBuf[i]),\r
+                RES_PATH"/VOICE_ASSISTANT_%02d.bin", i + 1);\r
+        ImageCacheManager::GetInstance().UnloadSingleRes((const char *)storPicPathBuf[i]);\r
+\r
+    }\r
 }\r
 \r
 VoiceAssistance *VoiceAssistance::GetInstance()\r
@@ -165,12 +174,12 @@ void VoiceAssistance::InitImageAnimatorSource(void)
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Splice failed!!");\r
             return;\r
         }\r
-        imageAnimatorInfo[i].imagePath = (const char *)storPicPathBuf[i];\r
+        imageAnimatorInfo[i].imageInfo = ImageCacheManager::GetInstance().LoadSingleRes((const char *)storPicPathBuf[i]);\r
         imageAnimatorInfo[i].pos.x = ANI_X;\r
         imageAnimatorInfo[i].pos.y = ANI_Y;\r
         imageAnimatorInfo[i].width = ANI_SL;\r
         imageAnimatorInfo[i].height = ANI_SL;\r
-        imageAnimatorInfo[i].imageType = IMG_SRC_FILE_PATH;\r
+        imageAnimatorInfo[i].imageType = IMG_SRC_IMAGE_INFO;\r
     }\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[VoiceAssistView] VoiceAssistanceInitImageAnimatorSource success!!");\r
 }\r