[Spice-devel] [PATCH v3 3/5] Make CCD::load_api throw exception by its own

Frediano Ziglio fziglio at redhat.com
Thu Sep 1 14:54:07 UTC 2016


Avoid to use two way to handle errors.

Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
 vdagent/display_configuration.cpp | 19 +++++++------------
 vdagent/display_configuration.h   |  2 +-
 2 files changed, 8 insertions(+), 13 deletions(-)

diff --git a/vdagent/display_configuration.cpp b/vdagent/display_configuration.cpp
index 29a1030..6e7624b 100644
--- a/vdagent/display_configuration.cpp
+++ b/vdagent/display_configuration.cpp
@@ -691,12 +691,8 @@ CCD::CCD()
     ,_primary_detached(false)
     ,_path_state(PATH_UPDATED)
 {
-    if (load_api()) {
-        get_config_buffers();
-    }
-    else {
-        throw std::exception();
-    }
+    load_api();
+    get_config_buffers();
 }
 
 CCD::~CCD()
@@ -801,14 +797,13 @@ void CCD::debug_print_config(const char* prefix)
     }
 }
 
-bool CCD::load_api()
+void CCD::load_api()
 {
     HMODULE hModule = GetModuleHandle(L"user32.dll");
-    if(!hModule) {
-        return false;
+    if (!hModule) {
+        throw std::exception();
     }
 
-    bool bFound_all(false);
     do {
         if (!(_pfnGetDeviceInfo = (PDISPLAYCONFIG_GETDEVICEINFO)
             GetProcAddress(hModule, "DisplayConfigGetDeviceInfo"))) {
@@ -829,11 +824,11 @@ bool CCD::load_api()
             GetProcAddress(hModule, "SetDisplayConfig"))) {
             break;
         }
-        bFound_all = true;
+        return;
     }
     while(0);
 
-    return bFound_all;
+    throw std::exception();
 }
 
 bool CCD::get_config_buffers()
diff --git a/vdagent/display_configuration.h b/vdagent/display_configuration.h
index 7abf526..ef4f989 100644
--- a/vdagent/display_configuration.h
+++ b/vdagent/display_configuration.h
@@ -67,7 +67,7 @@ public:
     void debug_print_config(const char* prefix = NULL);
 
 private:
-    bool load_api();
+    void load_api();
     bool get_config_buffers();
     void free_config_buffers();
     bool is_device_path(LPCTSTR device_name, DISPLAYCONFIG_PATH_INFO* path);
-- 
2.7.4



More information about the Spice-devel mailing list