backend-rdp: use compositor wide struct xkb_context
authorStefan Agner <stefan@agner.ch>
Thu, 20 Jun 2019 20:45:49 +0000 (22:45 +0200)
committerSimon Ser <contact@emersion.fr>
Mon, 13 Jan 2020 14:22:30 +0000 (14:22 +0000)
Instead of allocating our own copy of struct xkb_context use the
compositor wide instance. This avoids leaking of a struct
xkb_context per connection as well.

Signed-off-by: Stefan Agner <stefan@agner.ch>
libweston/backend-rdp/rdp.c

index e2f59dc518b166d75c017eefaf0d16bd48ef27c4..6aec15d2f946fcb90f5c76845da2c8f35e7ed3ec 100644 (file)
@@ -963,7 +963,6 @@ xf_peer_activate(freerdp_peer* client)
        rdpSettings *settings;
        rdpPointerUpdate *pointer;
        struct rdp_peers_item *peersItem;
-       struct xkb_context *xkbContext;
        struct xkb_rule_names xkbRuleNames;
        struct xkb_keymap *keymap;
        struct weston_output *weston_output;
@@ -1047,13 +1046,8 @@ xf_peer_activate(freerdp_peer* client)
 
        keymap = NULL;
        if (xkbRuleNames.layout) {
-               xkbContext = xkb_context_new(0);
-               if (!xkbContext) {
-                       weston_log("unable to create a xkb_context\n");
-                       return FALSE;
-               }
-
-               keymap = xkb_keymap_new_from_names(xkbContext, &xkbRuleNames, 0);
+               keymap = xkb_keymap_new_from_names(b->compositor->xkb_context,
+                                                  &xkbRuleNames, 0);
        }
 
        if (settings->ClientHostname)