[Spice-devel] [vdagent-win PATCH v2 7/9] Use destructor instead of cleanup function
Frediano Ziglio
fziglio at redhat.com
Wed Jun 27 13:57:13 UTC 2018
More C++ style.
Also avoids missing cleanup calls.
Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
vdagent/vdagent.cpp | 22 +++++-----------------
1 file changed, 5 insertions(+), 17 deletions(-)
diff --git a/vdagent/vdagent.cpp b/vdagent/vdagent.cpp
index 8294ea7..c3ebfc3 100644
--- a/vdagent/vdagent.cpp
+++ b/vdagent/vdagent.cpp
@@ -115,7 +115,6 @@ private:
void load_display_setting();
bool send_announce_capabilities(bool request);
void cleanup_in_msg();
- void cleanup();
bool has_capability(unsigned int capability) const {
return VD_AGENT_HAS_CAPABILITY(_client_caps.begin(), _client_caps.size(),
capability);
@@ -225,6 +224,11 @@ VDAgent::VDAgent()
VDAgent::~VDAgent()
{
+ FreeLibrary(_user_lib);
+ CloseHandle(_stop_event);
+ CloseHandle(_control_event);
+ CloseHandle(_vio_serial);
+ delete _desktop_layout;
delete _log;
}
@@ -282,14 +286,12 @@ bool VDAgent::run()
(PCLIPBOARD_OP)GetProcAddress(_user_lib, "RemoveClipboardFormatListener");
if (!_add_clipboard_listener || !_remove_clipboard_listener) {
vd_printf("GetProcAddress failed %lu", GetLastError());
- cleanup();
return false;
}
}
_control_event = CreateEvent(NULL, FALSE, FALSE, NULL);
if (!_control_event) {
vd_printf("CreateEvent() failed: %lu", GetLastError());
- cleanup();
return false;
}
_stop_event = OpenEvent(SYNCHRONIZE, FALSE, VD_AGENT_STOP_EVENT);
@@ -298,7 +300,6 @@ bool VDAgent::run()
wcls.lpszClassName = VD_AGENT_WINCLASS_NAME;
if (!RegisterClass(&wcls)) {
vd_printf("RegisterClass() failed: %lu", GetLastError());
- cleanup();
return false;
}
_desktop_layout = new DesktopLayout();
@@ -306,20 +307,17 @@ bool VDAgent::run()
vd_printf("No QXL devices!");
}
if (!init_vio_serial()) {
- cleanup();
return false;
}
if (!ReadFileEx(_vio_serial, _read_buf, sizeof(VDIChunk), &_read_overlapped, read_completion) &&
GetLastError() != ERROR_IO_PENDING) {
vd_printf("vio_serial read error %lu", GetLastError());
- cleanup();
return false;
}
_running = true;
event_thread = CreateThread(NULL, 0, event_thread_proc, this, 0, &event_thread_id);
if (!event_thread) {
vd_printf("CreateThread() failed: %lu", GetLastError());
- cleanup();
return false;
}
send_announce_capabilities(true);
@@ -333,19 +331,9 @@ bool VDAgent::run()
}
vd_printf("Agent stopped");
CloseHandle(event_thread);
- cleanup();
return true;
}
-void VDAgent::cleanup()
-{
- FreeLibrary(_user_lib);
- CloseHandle(_stop_event);
- CloseHandle(_control_event);
- CloseHandle(_vio_serial);
- delete _desktop_layout;
-}
-
void VDAgent::set_control_event(int control_command)
{
MutexLocker lock(_control_mutex);
--
2.17.1
More information about the Spice-devel
mailing list