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:
Nikolay Shirokovskiy 2016-02-17 15:14:55 +03:00 committed by Daniel P. Berrange
parent 24dbb69f21
commit a16cd9a6eb

View File

@ -180,6 +180,7 @@ virConnectCloseCallbackDataDispose(void *obj)
if (cb->freeCallback)
cb->freeCallback(cb->opaque);
virObjectUnref(cb->conn);
virObjectUnlock(cb);
}
@ -226,6 +227,7 @@ void virConnectCloseCallbackDataUnregister(virConnectCloseCallbackDataPtr close,
close->freeCallback(close->opaque);
close->freeCallback = NULL;
virObjectUnref(close->conn);
close->conn = NULL;
cleanup:
@ -248,6 +250,8 @@ void virConnectCloseCallbackDataCall(virConnectCloseCallbackDataPtr close,
close->freeCallback(close->opaque);
close->callback = NULL;
close->freeCallback = NULL;
virObjectUnref(close->conn);
close->conn = NULL;
exit:
virObjectUnlock(close);