mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
virConnectCloseCallbackData: fix connection object refcount
We have reference to connection object in virConnectCloseCallbackData object thus we have to refcount it. Obviously we have problems in dispose and call functions. Let's fix it. Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
This commit is contained in:
parent
24dbb69f21
commit
a16cd9a6eb
@ -180,6 +180,7 @@ virConnectCloseCallbackDataDispose(void *obj)
|
|||||||
|
|
||||||
if (cb->freeCallback)
|
if (cb->freeCallback)
|
||||||
cb->freeCallback(cb->opaque);
|
cb->freeCallback(cb->opaque);
|
||||||
|
virObjectUnref(cb->conn);
|
||||||
|
|
||||||
virObjectUnlock(cb);
|
virObjectUnlock(cb);
|
||||||
}
|
}
|
||||||
@ -226,6 +227,7 @@ void virConnectCloseCallbackDataUnregister(virConnectCloseCallbackDataPtr close,
|
|||||||
close->freeCallback(close->opaque);
|
close->freeCallback(close->opaque);
|
||||||
close->freeCallback = NULL;
|
close->freeCallback = NULL;
|
||||||
virObjectUnref(close->conn);
|
virObjectUnref(close->conn);
|
||||||
|
close->conn = NULL;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
|
|
||||||
@ -248,6 +250,8 @@ void virConnectCloseCallbackDataCall(virConnectCloseCallbackDataPtr close,
|
|||||||
close->freeCallback(close->opaque);
|
close->freeCallback(close->opaque);
|
||||||
close->callback = NULL;
|
close->callback = NULL;
|
||||||
close->freeCallback = NULL;
|
close->freeCallback = NULL;
|
||||||
|
virObjectUnref(close->conn);
|
||||||
|
close->conn = NULL;
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
virObjectUnlock(close);
|
virObjectUnlock(close);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user