[PATCH weston v3 4/8] compositor: remove the weston_config field in weston_compositor

Giulio Camuffo giuliocamuffo at gmail.com
Thu Jun 2 18:48:11 UTC 2016


The config can now be retrieved with a new function defined in weston.h,
wet_get_config(weston_compositor*).

Signed-off-by: Giulio Camuffo <giuliocamuffo at gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
Reviewed-by: Quentin Glidic <sardemff7+git at sardemff7.net>
---

v3: renamed the new function to wet_get_config

 desktop-shell/shell.c      | 2 +-
 ivi-shell/hmi-controller.c | 6 +++---
 ivi-shell/ivi-shell.c      | 3 ++-
 src/cms-static.c           | 3 ++-
 src/compositor.h           | 1 -
 src/libinput-device.c      | 4 +++-
 src/main.c                 | 9 +++++++--
 src/text-backend.c         | 3 ++-
 src/weston.h               | 3 +++
 xwayland/launcher.c        | 5 +++--
 10 files changed, 26 insertions(+), 13 deletions(-)

diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index ec71cd1..b1fb2fa 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -640,7 +640,7 @@ shell_configuration(struct desktop_shell *shell)
 	int ret;
 	int allow_zap;
 
-	section = weston_config_get_section(shell->compositor->config,
+	section = weston_config_get_section(wet_get_config(shell->compositor),
 					    "shell", NULL, NULL);
 	ret = asprintf(&client, "%s/%s", weston_config_get_libexec_dir(),
 		       WESTON_SHELL_CLIENT);
diff --git a/ivi-shell/hmi-controller.c b/ivi-shell/hmi-controller.c
index 094682c..77278ee 100644
--- a/ivi-shell/hmi-controller.c
+++ b/ivi-shell/hmi-controller.c
@@ -678,7 +678,7 @@ static struct hmi_server_setting *
 hmi_server_setting_create(struct weston_compositor *ec)
 {
 	struct hmi_server_setting *setting = MEM_ALLOC(sizeof(*setting));
-	struct weston_config *config = ec->config;
+	struct weston_config *config = wet_get_config(ec);
 	struct weston_config_section *shell_section = NULL;
 
 	shell_section = weston_config_get_section(config, "ivi-shell",
@@ -1140,7 +1140,7 @@ ivi_hmi_controller_add_launchers(struct hmi_controller *hmi_ctrl,
 	if (0 == y_count)
 		y_count  = 1;
 
-	config = hmi_ctrl->compositor->config;
+	config = wet_get_config(hmi_ctrl->compositor);
 	if (!config)
 		return;
 
@@ -1881,7 +1881,7 @@ initialize(struct hmi_controller *hmi_ctrl)
 		uint32_t *dest;
 	};
 
-	struct weston_config *config = hmi_ctrl->compositor->config;
+	struct weston_config *config = wet_get_config(hmi_ctrl->compositor);
 	struct weston_config_section *section = NULL;
 	int result = 0;
 	int i = 0;
diff --git a/ivi-shell/ivi-shell.c b/ivi-shell/ivi-shell.c
index 59ffe0c..c1af78c 100644
--- a/ivi-shell/ivi-shell.c
+++ b/ivi-shell/ivi-shell.c
@@ -46,6 +46,7 @@
 #include "ivi-layout-export.h"
 #include "ivi-layout-shell.h"
 #include "shared/helpers.h"
+#include "weston.h"
 
 /* Representation of ivi_surface protocol object. */
 struct ivi_shell_surface
@@ -416,7 +417,7 @@ ivi_shell_setting_create(struct ivi_shell_setting *dest,
 			 int *argc, char *argv[])
 {
 	int result = 0;
-	struct weston_config *config = compositor->config;
+	struct weston_config *config = wet_get_config(compositor);
 	struct weston_config_section *section;
 
 	const struct weston_option ivi_shell_options[] = {
diff --git a/src/cms-static.c b/src/cms-static.c
index 0273ee3..a6bbfd4 100644
--- a/src/cms-static.c
+++ b/src/cms-static.c
@@ -31,6 +31,7 @@
 #include "compositor.h"
 #include "cms-helper.h"
 #include "shared/helpers.h"
+#include "weston.h"
 
 struct cms_static {
 	struct weston_compositor	*ec;
@@ -49,7 +50,7 @@ cms_output_created(struct cms_static *cms, struct weston_output *o)
 
 	if (o->name == NULL)
 		return;
-	s = weston_config_get_section(cms->ec->config,
+	s = weston_config_get_section(wet_get_config(cms->ec),
 				      "output", "name", o->name);
 	if (s == NULL)
 		return;
diff --git a/src/compositor.h b/src/compositor.h
index 4b006af..4600ae3 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -726,7 +726,6 @@ struct weston_compositor {
 
 	struct wl_display *wl_display;
 	struct weston_shell_interface shell_interface;
-	struct weston_config *config;
 
 	/* surface signals */
 	struct wl_signal create_surface_signal;
diff --git a/src/libinput-device.c b/src/libinput-device.c
index c5d3fd1..2126084 100644
--- a/src/libinput-device.c
+++ b/src/libinput-device.c
@@ -39,6 +39,7 @@
 #include "compositor.h"
 #include "libinput-device.h"
 #include "shared/helpers.h"
+#include "weston.h"
 
 void
 evdev_led_update(struct evdev_device *device, enum weston_led weston_leds)
@@ -528,10 +529,11 @@ configure_device(struct evdev_device *device)
 {
 	struct weston_compositor *compositor = device->seat->compositor;
 	struct weston_config_section *s;
+	struct weston_config *config = wet_get_config(compositor);
 	int enable_tap;
 	int enable_tap_default;
 
-	s = weston_config_get_section(compositor->config,
+	s = weston_config_get_section(config,
 				      "libinput", NULL, NULL);
 
 	if (libinput_device_config_tap_get_finger_count(device->device) > 0) {
diff --git a/src/main.c b/src/main.c
index 91b951c..f0ff9a0 100644
--- a/src/main.c
+++ b/src/main.c
@@ -331,6 +331,12 @@ log_uname(void)
 						usys.version, usys.machine);
 }
 
+WL_EXPORT struct weston_config *
+wet_get_config(struct weston_compositor *compositor)
+{
+	return weston_compositor_get_user_data(compositor);
+}
+
 static const char xdg_error_message[] =
 	"fatal: environment variable XDG_RUNTIME_DIR is not set.\n";
 
@@ -846,7 +852,7 @@ drm_configure_output(struct weston_compositor *c,
 		     const char *name,
 		     struct weston_drm_backend_output_config *config)
 {
-	struct weston_config *wc = weston_compositor_get_user_data(c);
+	struct weston_config *wc = wet_get_config(c);
 	struct weston_config_section *section;
 	char *s;
 	int scale;
@@ -1515,7 +1521,6 @@ int main(int argc, char *argv[])
 		goto out;
 	}
 
-	ec->config = config;
 	if (weston_compositor_init_config(ec, config) < 0)
 		goto out;
 
diff --git a/src/text-backend.c b/src/text-backend.c
index 743cbc4..0c000ba 100644
--- a/src/text-backend.c
+++ b/src/text-backend.c
@@ -1026,11 +1026,12 @@ handle_seat_created(struct wl_listener *listener, void *data)
 static void
 text_backend_configuration(struct text_backend *text_backend)
 {
+	struct weston_config *config = wet_get_config(text_backend->compositor);
 	struct weston_config_section *section;
 	char *client;
 	int ret;
 
-	section = weston_config_get_section(text_backend->compositor->config,
+	section = weston_config_get_section(config,
 					    "input-method", NULL, NULL);
 	ret = asprintf(&client, "%s/weston-keyboard",
 		       weston_config_get_libexec_dir());
diff --git a/src/weston.h b/src/weston.h
index f2bc1ac..ea42166 100644
--- a/src/weston.h
+++ b/src/weston.h
@@ -57,6 +57,9 @@ weston_client_start(struct weston_compositor *compositor, const char *path);
 void
 weston_watch_process(struct weston_process *process);
 
+struct weston_config *
+wet_get_config(struct weston_compositor *compositor);
+
 #ifdef  __cplusplus
 }
 #endif
diff --git a/xwayland/launcher.c b/xwayland/launcher.c
index db5e1d0..4fd2553 100644
--- a/xwayland/launcher.c
+++ b/xwayland/launcher.c
@@ -37,7 +37,7 @@
 
 #include "xwayland.h"
 #include "shared/helpers.h"
-
+#include "weston.h"
 
 static int
 handle_sigusr1(int signal_number, void *data)
@@ -60,6 +60,7 @@ weston_xserver_handle_event(int listen_fd, uint32_t mask, void *data)
 	char display[8], s[8], abstract_fd[8], unix_fd[8], wm_fd[8];
 	int sv[2], wm[2], fd;
 	char *xserver = NULL;
+	struct weston_config *config = wet_get_config(wxs->compositor);
 	struct weston_config_section *section;
 
 	if (socketpair(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0, sv) < 0) {
@@ -98,7 +99,7 @@ weston_xserver_handle_event(int listen_fd, uint32_t mask, void *data)
 			goto fail;
 		snprintf(wm_fd, sizeof wm_fd, "%d", fd);
 
-		section = weston_config_get_section(wxs->compositor->config,
+		section = weston_config_get_section(config,
 						    "xwayland", NULL, NULL);
 		weston_config_section_get_string(section, "path",
 						 &xserver, XSERVER_PATH);
-- 
2.8.3



More information about the wayland-devel mailing list