[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v1 2/8] io: stop incrementing reference in qio_task_g
From: |
Daniel P. Berrange |
Subject: |
[Qemu-devel] [PULL v1 2/8] io: stop incrementing reference in qio_task_get_source |
Date: |
Mon, 23 Jan 2017 14:26:23 +0000 |
Incrementing the reference in qio_task_get_source is
not necessary, since we're not running concurrently
with any other code touching the QIOTask. This
minimizes chances of further memory leaks.
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Daniel P. Berrange <address@hidden>
---
include/io/task.h | 7 ++++---
io/channel-socket.c | 3 ---
io/channel-tls.c | 2 --
io/task.c | 1 -
tests/test-io-task.c | 1 -
5 files changed, 4 insertions(+), 10 deletions(-)
diff --git a/include/io/task.h b/include/io/task.h
index 42028cb..c268eb0 100644
--- a/include/io/task.h
+++ b/include/io/task.h
@@ -244,9 +244,10 @@ void qio_task_abort(QIOTask *task,
* @task: the task struct
*
* Get the source object associated with the background
- * task. This returns a new reference to the object,
- * which the caller must released with object_unref()
- * when no longer required.
+ * task. The caller does not own a reference on the
+ * returned Object, and so should call object_ref()
+ * if it wants to keep the object pointer outside the
+ * lifetime of the QIOTask object.
*
* Returns: the source object
*/
diff --git a/io/channel-socket.c b/io/channel-socket.c
index d7e03f6..45df819 100644
--- a/io/channel-socket.c
+++ b/io/channel-socket.c
@@ -168,7 +168,6 @@ static int qio_channel_socket_connect_worker(QIOTask *task,
addr,
errp);
- object_unref(OBJECT(ioc));
return ret;
}
@@ -231,7 +230,6 @@ static int qio_channel_socket_listen_worker(QIOTask *task,
addr,
errp);
- object_unref(OBJECT(ioc));
return ret;
}
@@ -309,7 +307,6 @@ static int qio_channel_socket_dgram_worker(QIOTask *task,
data->remoteAddr,
errp);
- object_unref(OBJECT(ioc));
return ret;
}
diff --git a/io/channel-tls.c b/io/channel-tls.c
index d24dc8c..cf3bcca 100644
--- a/io/channel-tls.c
+++ b/io/channel-tls.c
@@ -200,8 +200,6 @@ static gboolean qio_channel_tls_handshake_io(QIOChannel
*ioc,
qio_channel_tls_handshake_task(
tioc, task);
- object_unref(OBJECT(tioc));
-
return FALSE;
}
diff --git a/io/task.c b/io/task.c
index c7f97a9..a763990 100644
--- a/io/task.c
+++ b/io/task.c
@@ -156,6 +156,5 @@ void qio_task_abort(QIOTask *task,
Object *qio_task_get_source(QIOTask *task)
{
- object_ref(task->source);
return task->source;
}
diff --git a/tests/test-io-task.c b/tests/test-io-task.c
index e091c12..024eb58 100644
--- a/tests/test-io-task.c
+++ b/tests/test-io-task.c
@@ -76,7 +76,6 @@ static void test_task_complete(void)
g_assert(obj == src);
object_unref(obj);
- object_unref(src);
g_assert(data.source == obj);
g_assert(data.err == NULL);
--
2.9.3
- [Qemu-devel] [PULL v1 0/8] Merge io/ 2017-01-23, Daniel P. Berrange, 2017/01/23
- [Qemu-devel] [PULL v1 1/8] sockets: add ability to disable DNS resolution for InetSocketAddress, Daniel P. Berrange, 2017/01/23
- [Qemu-devel] [PULL v1 2/8] io: stop incrementing reference in qio_task_get_source,
Daniel P. Berrange <=
- [Qemu-devel] [PULL v1 4/8] io: add ability to associate an opaque "result" with with a task, Daniel P. Berrange, 2017/01/23
- [Qemu-devel] [PULL v1 3/8] io: fix typo in docs for QIOTask, Daniel P. Berrange, 2017/01/23
- [Qemu-devel] [PULL v1 5/8] io: add ability to associate an error with a task, Daniel P. Berrange, 2017/01/23
- [Qemu-devel] [PULL v1 7/8] io: remove Error parameter from QIOTask thread worker, Daniel P. Berrange, 2017/01/23
- [Qemu-devel] [PULL v1 6/8] io: change the QIOTask callback signature, Daniel P. Berrange, 2017/01/23
- [Qemu-devel] [PULL v1 8/8] io: introduce a DNS resolver API, Daniel P. Berrange, 2017/01/23
- Re: [Qemu-devel] [PULL v1 0/8] Merge io/ 2017-01-23, no-reply, 2017/01/23
- Re: [Qemu-devel] [PULL v1 0/8] Merge io/ 2017-01-23, Peter Maydell, 2017/01/23