io: stop incrementing reference in qio_task_get_source

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 <eblake@redhat.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrange 2016-08-11 18:11:04 +01:00
parent 6979a813f3
commit 937470bb54
5 changed files with 4 additions and 10 deletions

View File

@ -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
*/

View File

@ -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;
}

View File

@ -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;
}

View File

@ -156,6 +156,5 @@ void qio_task_abort(QIOTask *task,
Object *qio_task_get_source(QIOTask *task)
{
object_ref(task->source);
return task->source;
}

View File

@ -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);