[vdagent-win PATCH v4 13/19] Use destructor instead of cleanup function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



More C++ style.
Also avoids missing cleanup calls.

Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx>
---
 vdagent/vdagent.cpp | 16 +++-------------
 1 file changed, 3 insertions(+), 13 deletions(-)

diff --git a/vdagent/vdagent.cpp b/vdagent/vdagent.cpp
index e9bd77d..91e5f36 100644
--- a/vdagent/vdagent.cpp
+++ b/vdagent/vdagent.cpp
@@ -116,7 +116,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);
@@ -223,6 +222,7 @@ VDAgent::VDAgent()
 
 VDAgent::~VDAgent()
 {
+    close_vio_serial();
     CloseHandle(_stop_event);
     CloseHandle(_control_event);
     delete _log;
@@ -258,6 +258,8 @@ bool VDAgent::run()
     HANDLE event_thread;
     WNDCLASS wcls;
 
+    close_vio_serial();
+
     if (!ProcessIdToSessionId(GetCurrentProcessId(), &session_id)) {
         vd_printf("ProcessIdToSessionId failed %lu", GetLastError());
         return false;
@@ -282,7 +284,6 @@ 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;
         }
     }
@@ -290,7 +291,6 @@ bool VDAgent::run()
         _control_event = CreateEvent(NULL, FALSE, FALSE, NULL);
     if (!_control_event) {
         vd_printf("CreateEvent() failed: %lu", GetLastError());
-        cleanup();
         return false;
     }
     ResetEvent(_control_event);
@@ -303,7 +303,6 @@ bool VDAgent::run()
     wcls.lpszClassName = VD_AGENT_WINCLASS_NAME;
     if (!RegisterClass(&wcls)) {
         vd_printf("RegisterClass() failed: %lu", GetLastError());
-        cleanup();
         return false;
     }
     _desktop_layout.reset(new DesktopLayout());
@@ -311,20 +310,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);
@@ -338,15 +334,9 @@ bool VDAgent::run()
     }
     vd_printf("Agent stopped");
     CloseHandle(event_thread);
-    cleanup();
     return true;
 }
 
-void VDAgent::cleanup()
-{
-    close_vio_serial();
-}
-
 void VDAgent::set_control_event(control_command_t control_command)
 {
     MutexLocker lock(_control_mutex);
-- 
2.17.1

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux Virtualization]     [Linux Virtualization]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]