mirror of https://gitee.com/openkylin/qemu.git
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:
parent
6979a813f3
commit
937470bb54
|
@ -244,9 +244,10 @@ void qio_task_abort(QIOTask *task,
|
||||||
* @task: the task struct
|
* @task: the task struct
|
||||||
*
|
*
|
||||||
* Get the source object associated with the background
|
* Get the source object associated with the background
|
||||||
* task. This returns a new reference to the object,
|
* task. The caller does not own a reference on the
|
||||||
* which the caller must released with object_unref()
|
* returned Object, and so should call object_ref()
|
||||||
* when no longer required.
|
* if it wants to keep the object pointer outside the
|
||||||
|
* lifetime of the QIOTask object.
|
||||||
*
|
*
|
||||||
* Returns: the source object
|
* Returns: the source object
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -168,7 +168,6 @@ static int qio_channel_socket_connect_worker(QIOTask *task,
|
||||||
addr,
|
addr,
|
||||||
errp);
|
errp);
|
||||||
|
|
||||||
object_unref(OBJECT(ioc));
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -231,7 +230,6 @@ static int qio_channel_socket_listen_worker(QIOTask *task,
|
||||||
addr,
|
addr,
|
||||||
errp);
|
errp);
|
||||||
|
|
||||||
object_unref(OBJECT(ioc));
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -309,7 +307,6 @@ static int qio_channel_socket_dgram_worker(QIOTask *task,
|
||||||
data->remoteAddr,
|
data->remoteAddr,
|
||||||
errp);
|
errp);
|
||||||
|
|
||||||
object_unref(OBJECT(ioc));
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -200,8 +200,6 @@ static gboolean qio_channel_tls_handshake_io(QIOChannel *ioc,
|
||||||
qio_channel_tls_handshake_task(
|
qio_channel_tls_handshake_task(
|
||||||
tioc, task);
|
tioc, task);
|
||||||
|
|
||||||
object_unref(OBJECT(tioc));
|
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -156,6 +156,5 @@ void qio_task_abort(QIOTask *task,
|
||||||
|
|
||||||
Object *qio_task_get_source(QIOTask *task)
|
Object *qio_task_get_source(QIOTask *task)
|
||||||
{
|
{
|
||||||
object_ref(task->source);
|
|
||||||
return task->source;
|
return task->source;
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,7 +76,6 @@ static void test_task_complete(void)
|
||||||
g_assert(obj == src);
|
g_assert(obj == src);
|
||||||
|
|
||||||
object_unref(obj);
|
object_unref(obj);
|
||||||
object_unref(src);
|
|
||||||
|
|
||||||
g_assert(data.source == obj);
|
g_assert(data.source == obj);
|
||||||
g_assert(data.err == NULL);
|
g_assert(data.err == NULL);
|
||||||
|
|
Loading…
Reference in New Issue