From: Piotr Kosko
Date: Fri, 2 Oct 2020 10:19:32 +0000 (+0200)
Subject: [Common] Fixed possible memory leak
X-Git-Tag: submit/tizen/20201005.050422~1^2^2^2^2~1
X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d57530675d984f0ce4b0c2bc4e97d2f0fd6f4f40;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git
[Common] Fixed possible memory leak
[verification] Code compiles without errors
Change-Id: Ib8c7843461a575fd05d3b28e4db1fab35cc08ccb
---
diff --git a/src/common/task-queue.cpp b/src/common/task-queue.cpp
index 9bafdae4..f5202107 100644
--- a/src/common/task-queue.cpp
+++ b/src/common/task-queue.cpp
@@ -39,7 +39,10 @@ void* TaskQueue::WorkCallback(void* data) {
if (nullptr != d) {
d->work_callback_();
if (d->after_work_callback_) {
- g_idle_add(AfterWorkCallback, d);
+ if (!g_idle_add(AfterWorkCallback, d)) {
+ LoggerE("g_idle_add failed");
+ delete d;
+ }
}
}
return nullptr;
@@ -61,7 +64,10 @@ void TaskQueue::Queue(const std::function& work, const std::function& work) {
QueueData* d = new QueueData();
d->after_work_callback_ = work;
- g_idle_add(AfterWorkCallback, d);
+ if (!g_idle_add(AfterWorkCallback, d)) {
+ LoggerE("g_idle_add failed");
+ delete d;
+ }
}
} // namespace common
diff --git a/src/common/task-queue.h b/src/common/task-queue.h
index fb3300a3..94a97af4 100644
--- a/src/common/task-queue.h
+++ b/src/common/task-queue.h
@@ -114,7 +114,10 @@ void* TaskQueue::WorkCallback(void* data) {
QueueData* d = static_cast*>(data);
if (nullptr != d) {
d->work_callback_(d->data_);
- g_idle_add(AfterWorkCallback, d);
+ if (!g_idle_add(AfterWorkCallback, d)) {
+ LoggerE("g_idle_add failed");
+ delete d;
+ }
}
return nullptr;
}
@@ -142,7 +145,10 @@ void TaskQueue::Async(const std::function&)>& work
QueueData* d = new QueueData();
d->after_work_callback_ = work;
d->data_ = data;
- g_idle_add(AfterWorkCallback, d);
+ if (!g_idle_add(AfterWorkCallback, d)) {
+ LoggerE("g_idle_add failed");
+ delete d;
+ }
}
} // namespace common