[Spice-devel] [PATCH spice 02/17] wrap XGetAtomName

Hans de Goede hdegoede at redhat.com
Mon Oct 4 03:34:53 PDT 2010


XGetAtomName() throws X11 errors when called on a None atom, so wrap
it catching the None case.
---
 client/x11/platform.cpp |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/client/x11/platform.cpp b/client/x11/platform.cpp
index 302b751..f73f651 100644
--- a/client/x11/platform.cpp
+++ b/client/x11/platform.cpp
@@ -173,6 +173,14 @@ static uint32_t get_clipboard_format(uint32_t type) {
     return iter->format;
 }
 
+static const char *atom_name(Atom atom)
+{
+    if (atom == None)
+        return "None";
+
+    return XGetAtomName(x_display, atom);
+}
+
 NamedPipe::ListenerRef NamedPipe::create(const char *name, ListenerInterface& listener_interface)
 {
     ASSERT(main_loop && main_loop->is_same_thread(pthread_self()));
@@ -2399,7 +2407,7 @@ static void root_win_proc(XEvent& event)
         
         uint32_t type = get_clipboard_type(selection_request->target);
         if (!type) {
-            LOG_INFO("Unsupported selection type %s", XGetAtomName(x_display, selection_request->target));
+            LOG_INFO("Unsupported selection type %s", atom_name(selection_request->target));
             send_selection_notify(None);
             break;
         }
-- 
1.7.2.2



More information about the Spice-devel mailing list