monitor-config-utils: Use g_list_copy_deep() to clone lists
It makes things a bit more easy to follow. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3596>
This commit is contained in:
parent
b8394c68f5
commit
e5827ea06b
@ -26,56 +26,52 @@
|
|||||||
#include "core/boxes-private.h"
|
#include "core/boxes-private.h"
|
||||||
#include "meta/meta-monitor-manager.h"
|
#include "meta/meta-monitor-manager.h"
|
||||||
|
|
||||||
static GList *
|
static MetaMonitorConfig *
|
||||||
meta_clone_monitor_config_list (GList *monitor_configs_in)
|
meta_monitor_config_copy (MetaMonitorConfig *monitor_config)
|
||||||
{
|
{
|
||||||
MetaMonitorConfig *monitor_config_in;
|
MetaMonitorConfig *new_monitor_config;
|
||||||
MetaMonitorConfig *monitor_config_out;
|
|
||||||
GList *monitor_configs_out = NULL;
|
|
||||||
GList *l;
|
|
||||||
|
|
||||||
for (l = monitor_configs_in; l; l = l->next)
|
new_monitor_config = g_new0 (MetaMonitorConfig, 1);
|
||||||
{
|
*new_monitor_config = (MetaMonitorConfig) {
|
||||||
monitor_config_in = l->data;
|
.monitor_spec = meta_monitor_spec_clone (monitor_config->monitor_spec),
|
||||||
monitor_config_out = g_new0 (MetaMonitorConfig, 1);
|
.mode_spec = g_memdup2 (monitor_config->mode_spec,
|
||||||
*monitor_config_out = (MetaMonitorConfig) {
|
|
||||||
.monitor_spec = meta_monitor_spec_clone (monitor_config_in->monitor_spec),
|
|
||||||
.mode_spec = g_memdup2 (monitor_config_in->mode_spec,
|
|
||||||
sizeof (MetaMonitorModeSpec)),
|
sizeof (MetaMonitorModeSpec)),
|
||||||
.enable_underscanning = monitor_config_in->enable_underscanning,
|
.enable_underscanning = monitor_config->enable_underscanning,
|
||||||
.has_max_bpc = monitor_config_in->has_max_bpc,
|
.has_max_bpc = monitor_config->has_max_bpc,
|
||||||
.max_bpc = monitor_config_in->max_bpc
|
.max_bpc = monitor_config->max_bpc
|
||||||
};
|
};
|
||||||
monitor_configs_out =
|
|
||||||
g_list_append (monitor_configs_out, monitor_config_out);
|
return new_monitor_config;
|
||||||
}
|
}
|
||||||
|
|
||||||
return monitor_configs_out;
|
static GList *
|
||||||
|
meta_clone_monitor_config_list (GList *monitor_configs)
|
||||||
|
{
|
||||||
|
return g_list_copy_deep (monitor_configs,
|
||||||
|
(GCopyFunc) meta_monitor_config_copy,
|
||||||
|
NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
static MetaLogicalMonitorConfig *
|
||||||
|
meta_logical_monitor_config_copy (MetaLogicalMonitorConfig *logical_monitor_config)
|
||||||
|
{
|
||||||
|
MetaLogicalMonitorConfig *new_logical_monitor_config;
|
||||||
|
|
||||||
|
new_logical_monitor_config =
|
||||||
|
g_memdup2 (logical_monitor_config,
|
||||||
|
sizeof (MetaLogicalMonitorConfig));
|
||||||
|
new_logical_monitor_config->monitor_configs =
|
||||||
|
meta_clone_monitor_config_list (logical_monitor_config->monitor_configs);
|
||||||
|
|
||||||
|
return new_logical_monitor_config;
|
||||||
}
|
}
|
||||||
|
|
||||||
GList *
|
GList *
|
||||||
meta_clone_logical_monitor_config_list (GList *logical_monitor_configs_in)
|
meta_clone_logical_monitor_config_list (GList *logical_monitor_configs)
|
||||||
{
|
{
|
||||||
MetaLogicalMonitorConfig *logical_monitor_config_in;
|
return g_list_copy_deep (logical_monitor_configs,
|
||||||
MetaLogicalMonitorConfig *logical_monitor_config_out;
|
(GCopyFunc) meta_logical_monitor_config_copy,
|
||||||
GList *logical_monitor_configs_out = NULL;
|
NULL);
|
||||||
GList *l;
|
|
||||||
|
|
||||||
for (l = logical_monitor_configs_in; l; l = l->next)
|
|
||||||
{
|
|
||||||
logical_monitor_config_in = l->data;
|
|
||||||
|
|
||||||
logical_monitor_config_out =
|
|
||||||
g_memdup2 (logical_monitor_config_in,
|
|
||||||
sizeof (MetaLogicalMonitorConfig));
|
|
||||||
logical_monitor_config_out->monitor_configs =
|
|
||||||
meta_clone_monitor_config_list (logical_monitor_config_in->monitor_configs);
|
|
||||||
|
|
||||||
logical_monitor_configs_out =
|
|
||||||
g_list_append (logical_monitor_configs_out, logical_monitor_config_out);
|
|
||||||
}
|
|
||||||
|
|
||||||
return logical_monitor_configs_out;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static GList *
|
static GList *
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
#include "backends/meta-monitor-manager-private.h"
|
#include "backends/meta-monitor-manager-private.h"
|
||||||
|
|
||||||
GList * meta_clone_logical_monitor_config_list (GList *logical_monitor_configs_in);
|
GList * meta_clone_logical_monitor_config_list (GList *logical_monitor_configs);
|
||||||
|
|
||||||
gboolean meta_verify_logical_monitor_config_list (GList *logical_monitor_configs,
|
gboolean meta_verify_logical_monitor_config_list (GList *logical_monitor_configs,
|
||||||
MetaLogicalMonitorLayoutMode layout_mode,
|
MetaLogicalMonitorLayoutMode layout_mode,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user