[Spice-devel] [PATCH spice-gtk] Use designated struct initializer
Pavel Grunt
pgrunt at redhat.com
Fri Jul 7 14:26:33 UTC 2017
Silence -Wmissing-field-initializers warnings.
---
imo it also makes the code more readable (especially tests/session.c)
---
src/channel-display-gst.c | 3 +-
src/channel-main.c | 4 +-
src/channel-record.c | 16 +++--
src/spice-channel.c | 12 ++--
src/spice-gtk-session.c | 14 ++---
src/spice-pulse.c | 18 +++---
src/spice-session.c | 2 +-
tests/session.c | 156 +++++++++++++++++++++++++---------------------
8 files changed, 118 insertions(+), 107 deletions(-)
diff --git a/src/channel-display-gst.c b/src/channel-display-gst.c
index 9b79403..807ff85 100644
--- a/src/channel-display-gst.c
+++ b/src/channel-display-gst.c
@@ -306,7 +306,7 @@ static gboolean create_pipeline(SpiceGstDecoder *decoder)
gchar *desc;
gboolean auto_enabled;
guint opt;
- GstAppSinkCallbacks appsink_cbs = { NULL };
+ GstAppSinkCallbacks appsink_cbs = { .new_sample = new_sample };
GError *err = NULL;
GstBus *bus;
@@ -344,7 +344,6 @@ static gboolean create_pipeline(SpiceGstDecoder *decoder)
decoder->appsrc = GST_APP_SRC(gst_bin_get_by_name(GST_BIN(decoder->pipeline), "src"));
decoder->appsink = GST_APP_SINK(gst_bin_get_by_name(GST_BIN(decoder->pipeline), "sink"));
- appsink_cbs.new_sample = new_sample;
gst_app_sink_set_callbacks(decoder->appsink, &appsink_cbs, decoder, NULL);
bus = gst_pipeline_get_bus(GST_PIPELINE(decoder->pipeline));
gst_bus_add_watch(bus, handle_pipeline_message, decoder);
diff --git a/src/channel-main.c b/src/channel-main.c
index 4edd575..104b18a 100644
--- a/src/channel-main.c
+++ b/src/channel-main.c
@@ -1275,7 +1275,7 @@ static void agent_sync_audio_record(SpiceMainChannel *main_channel)
static void agent_display_config(SpiceMainChannel *channel)
{
SpiceMainChannelPrivate *c = channel->priv;
- VDAgentDisplayConfig config = { 0, };
+ VDAgentDisplayConfig config = { .flags = 0, .depth = 0};
if (c->display_disable_wallpaper) {
config.flags |= VD_AGENT_DISPLAY_CONFIG_FLAG_DISABLE_WALLPAPER;
@@ -2334,7 +2334,7 @@ static void main_migrate_connect(SpiceChannel *channel,
{
SpiceMainChannelPrivate *main_priv = SPICE_MAIN_CHANNEL(channel)->priv;
int reply_type = SPICE_MSGC_MAIN_MIGRATE_CONNECT_ERROR;
- spice_migrate mig = { 0, };
+ spice_migrate mig = { .from = NULL, };
SpiceMsgOut *out;
SpiceSession *session;
diff --git a/src/channel-record.c b/src/channel-record.c
index 9834e85..2023bb4 100644
--- a/src/channel-record.c
+++ b/src/channel-record.c
@@ -255,18 +255,18 @@ static void spice_record_channel_class_init(SpiceRecordChannelClass *klass)
static void spice_record_mode(SpiceRecordChannel *channel, uint32_t time,
uint32_t mode, uint8_t *data, uint32_t data_size)
{
- SpiceMsgcRecordMode m = {0, };
+ SpiceMsgcRecordMode m = {
+ .time = time,
+ .mode = mode,
+ .data = data,
+ .data_size = data_size,
+ };
SpiceMsgOut *msg;
g_return_if_fail(channel != NULL);
if (spice_channel_get_read_only(SPICE_CHANNEL(channel)))
return;
- m.mode = mode;
- m.time = time;
- m.data = data;
- m.data_size = data_size;
-
msg = spice_msg_out_new(SPICE_CHANNEL(channel), SPICE_MSGC_RECORD_MODE);
msg->marshallers->msgc_record_mode(msg->marshaller, &m);
spice_msg_out_send(msg);
@@ -317,7 +317,7 @@ void spice_record_send_data(SpiceRecordChannel *channel, gpointer data,
gsize bytes, uint32_t time)
{
SpiceRecordChannelPrivate *rc;
- SpiceMsgcRecordPacket p = {0, };
+ SpiceMsgcRecordPacket p = { .time = time };
g_return_if_fail(SPICE_IS_RECORD_CHANNEL(channel));
rc = channel->priv;
@@ -339,8 +339,6 @@ void spice_record_send_data(SpiceRecordChannel *channel, gpointer data,
if (rc->mode != SPICE_AUDIO_DATA_MODE_RAW)
encode_buf = g_alloca(SND_CODEC_MAX_COMPRESSED_BYTES);
- p.time = time;
-
while (bytes > 0) {
gsize n;
int frame_size;
diff --git a/src/spice-channel.c b/src/spice-channel.c
index 4c3db9d..3e88d7a 100644
--- a/src/spice-channel.c
+++ b/src/spice-channel.c
@@ -928,12 +928,17 @@ static void spice_channel_write_msg(SpiceChannel *channel, SpiceMsgOut *out)
#ifdef G_OS_UNIX
static ssize_t read_fd(int fd, int *msgfd)
{
- struct msghdr msg = { NULL, };
struct iovec iov[1];
union {
struct cmsghdr cmsg;
char control[CMSG_SPACE(sizeof(int))];
} msg_control;
+ struct msghdr msg = {
+ .msg_iov = iov,
+ .msg_iovlen = 1,
+ .msg_control = &msg_control,
+ .msg_controllen = sizeof(msg_control),
+ };
struct cmsghdr *cmsg;
ssize_t ret;
char c;
@@ -941,11 +946,6 @@ static ssize_t read_fd(int fd, int *msgfd)
iov[0].iov_base = &c;
iov[0].iov_len = 1;
- msg.msg_iov = iov;
- msg.msg_iovlen = 1;
- msg.msg_control = &msg_control;
- msg.msg_controllen = sizeof(msg_control);
-
ret = recvmsg(fd, &msg, 0);
if (ret > 0) {
for (cmsg = CMSG_FIRSTHDR(&msg);
diff --git a/src/spice-gtk-session.c b/src/spice-gtk-session.c
index e338ce6..edb6c7d 100644
--- a/src/spice-gtk-session.c
+++ b/src/spice-gtk-session.c
@@ -773,26 +773,26 @@ static void clipboard_get(GtkClipboard *clipboard,
{
g_return_if_fail(SPICE_IS_GTK_SESSION(user_data));
- RunInfo ri = { NULL, };
SpiceGtkSession *self = user_data;
SpiceGtkSessionPrivate *s = self->priv;
gboolean agent_connected = FALSE;
gulong clipboard_handler;
gulong agent_handler;
- int selection;
+ int selection = get_selection_from_clipboard(s, clipboard);
+ RunInfo ri = {
+ .selection_data = selection_data,
+ .info = info,
+ .selection = selection,
+ .self = self,
+ };
SPICE_DEBUG("clipboard get");
- selection = get_selection_from_clipboard(s, clipboard);
g_return_if_fail(selection != -1);
g_return_if_fail(info < SPICE_N_ELEMENTS(atom2agent));
g_return_if_fail(s->main != NULL);
- ri.selection_data = selection_data;
- ri.info = info;
ri.loop = g_main_loop_new(NULL, FALSE);
- ri.selection = selection;
- ri.self = self;
clipboard_handler = g_signal_connect(s->main, "main-clipboard-selection",
G_CALLBACK(clipboard_got_from_guest),
diff --git a/src/spice-pulse.c b/src/spice-pulse.c
index 5248bc3..519ca3d 100644
--- a/src/spice-pulse.c
+++ b/src/spice-pulse.c
@@ -359,7 +359,11 @@ static void create_playback(SpicePulse *pulse)
{
SpicePulsePrivate *p = pulse->priv;
pa_stream_flags_t flags;
- pa_buffer_attr buffer_attr = { 0, };
+ pa_buffer_attr buffer_attr = {
+ .maxlength = -1,
+ .prebuf = -1,
+ .minreq = -1,
+ };
g_return_if_fail(p != NULL);
g_return_if_fail(p->context != NULL);
@@ -373,10 +377,7 @@ static void create_playback(SpicePulse *pulse)
pa_stream_set_underflow_callback(p->playback.stream, stream_underflow_cb, pulse);
pa_stream_set_latency_update_callback(p->playback.stream, stream_update_latency_callback, pulse);
- buffer_attr.maxlength = -1;
buffer_attr.tlength = pa_usec_to_bytes(p->target_delay * PA_USEC_PER_MSEC, &p->playback.spec);
- buffer_attr.prebuf = -1;
- buffer_attr.minreq = -1;
flags = PA_STREAM_ADJUST_LATENCY | PA_STREAM_AUTO_TIMING_UPDATE;
if (pa_stream_connect_playback(p->playback.stream,
@@ -519,7 +520,11 @@ static void stream_read_callback(pa_stream *s, size_t length, void *data)
static void create_record(SpicePulse *pulse)
{
SpicePulsePrivate *p = pulse->priv;
- pa_buffer_attr buffer_attr = { 0, };
+ pa_buffer_attr buffer_attr = {
+ .maxlength = -1,
+ .prebuf = -1,
+ .minreq = -1,
+ };
pa_stream_flags_t flags;
g_return_if_fail(p != NULL);
@@ -534,10 +539,7 @@ static void create_record(SpicePulse *pulse)
pa_stream_set_state_callback(p->record.stream, stream_state_callback, pulse);
/* FIXME: we might want customizable latency */
- buffer_attr.maxlength = -1;
- buffer_attr.prebuf = -1;
buffer_attr.fragsize = buffer_attr.tlength = pa_usec_to_bytes(20 * PA_USEC_PER_MSEC, &p->record.spec);
- buffer_attr.minreq = (uint32_t) -1;
flags = PA_STREAM_ADJUST_LATENCY;
if (pa_stream_connect_record(p->record.stream, NULL, &buffer_attr, flags) < 0) {
diff --git a/src/spice-session.c b/src/spice-session.c
index 6f8cf5e..bdc6b43 100644
--- a/src/spice-session.c
+++ b/src/spice-session.c
@@ -2155,7 +2155,7 @@ GSocketConnection* spice_session_channel_open_host(SpiceSession *session, SpiceC
SpiceSessionPrivate *s = session->priv;
SpiceChannelPrivate *c = channel->priv;
- spice_open_host open_host = { 0, };
+ spice_open_host open_host = { .from = NULL, };
gchar *port, *endptr;
// FIXME: make open_host() cancellable
diff --git a/tests/session.c b/tests/session.c
index 7ed4a41..70dd300 100644
--- a/tests/session.c
+++ b/tests/session.c
@@ -192,42 +192,48 @@ static void test_session_uri_ipv4_good(void)
{
const TestCase tests[] = {
/* Arguments with empty value */
- { "5900", NULL,
- "localhost",
- NULL, NULL,
- "spice://localhost?port=5900&tls-port=",
- "spice://localhost?port=5900&" },
- { "5910", NULL,
- "localhost",
- "user", NULL,
- "spice://user@localhost?tls-port=&port=5910",
- "spice://localhost?port=5910&" },
- { NULL, "5920",
- "localhost",
- "user", "password",
- "spice://user@localhost?tls-port=5920&port=&password=password",
- "spice://localhost?tls-port=5920",
- "password may be visible in process listings"},
- { NULL, "5930",
- "localhost",
- NULL, NULL,
- "spice://localhost?port=&tls-port=5930",
- "spice://localhost?tls-port=5930" },
- { "42", NULL,
- "localhost",
- NULL, NULL,
- "spice://localhost:42",
- "spice://localhost?port=42&" },
- { "42", "5930",
- "localhost",
- NULL, NULL,
- "spice://localhost:42?tls-port=5930",
- "spice://localhost?port=42&tls-port=5930" },
- { "42", "5930",
- "127.0.0.1",
- NULL, NULL,
- "spice://127.0.0.1:42?tls-port=5930",
- "spice://127.0.0.1?port=42&tls-port=5930" },
+ {
+ .port = "5900",
+ .host = "localhost",
+ .uri_input = "spice://localhost?port=5900&tls-port=",
+ .uri_output = "spice://localhost?port=5900&",
+ },{
+ .port = "5910",
+ .host = "localhost",
+ .username = "user",
+ .uri_input = "spice://user@localhost?tls-port=&port=5910",
+ .uri_output = "spice://localhost?port=5910&",
+ },{
+ .tls_port = "5920",
+ .host = "localhost",
+ .username = "user",
+ .password = "password",
+ .uri_input = "spice://user@localhost?tls-port=5920&port=&password=password",
+ .uri_output = "spice://localhost?tls-port=5920",
+ .message = "password may be visible in process listings",
+ },{
+ .tls_port ="5930",
+ .host = "localhost",
+ .uri_input = "spice://localhost?port=&tls-port=5930",
+ .uri_output = "spice://localhost?tls-port=5930",
+ },{
+ .port = "42",
+ .host = "localhost",
+ .uri_input = "spice://localhost:42",
+ .uri_output ="spice://localhost?port=42&",
+ },{
+ .port = "42",
+ .tls_port = "5930",
+ .host = "localhost",
+ .uri_input ="spice://localhost:42?tls-port=5930",
+ .uri_output = "spice://localhost?port=42&tls-port=5930",
+ },{
+ .port = "42",
+ .tls_port = "5930",
+ .host = "127.0.0.1",
+ .uri_input = "spice://127.0.0.1:42?tls-port=5930",
+ .uri_output = "spice://127.0.0.1?port=42&tls-port=5930",
+ },
};
test_session_uri_good(tests, G_N_ELEMENTS(tests));
@@ -237,42 +243,48 @@ static void test_session_uri_ipv6_good(void)
{
const TestCase tests[] = {
/* Arguments with empty value */
- { "5900", NULL,
- "[2010:836B:4179::836B:4179]",
- NULL, NULL,
- "spice://[2010:836B:4179::836B:4179]?port=5900&tls-port=",
- "spice://[2010:836B:4179::836B:4179]?port=5900&" },
- { "5910", NULL,
- "[::192.9.5.5]",
- "user", NULL,
- "spice://user@[::192.9.5.5]?tls-port=&port=5910",
- "spice://[::192.9.5.5]?port=5910&" },
- { NULL, "5920",
- "[3ffe:2a00:100:7031::1]",
- "user", "password",
- "spice://user@[3ffe:2a00:100:7031::1]?tls-port=5920&port=&password=password",
- "spice://[3ffe:2a00:100:7031::1]?tls-port=5920",
- "password may be visible in process listings"},
- { NULL, "5930",
- "[1080:0:0:0:8:800:200C:417A]",
- NULL, NULL,
- "spice://[1080:0:0:0:8:800:200C:417A]?port=&tls-port=5930",
- "spice://[1080:0:0:0:8:800:200C:417A]?tls-port=5930" },
- { "42", NULL,
- "[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]",
- NULL, NULL,
- "spice://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:42",
- "spice://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]?port=42&" },
- { "42", "5930",
- "[::192.9.5.5]",
- NULL, NULL,
- "spice://[::192.9.5.5]:42?tls-port=5930",
- "spice://[::192.9.5.5]?port=42&tls-port=5930" },
- { "42", "5930",
- "[::FFFF:129.144.52.38]",
- NULL, NULL,
- "spice://[::FFFF:129.144.52.38]:42?tls-port=5930",
- "spice://[::FFFF:129.144.52.38]?port=42&tls-port=5930" },
+ {
+ .port = "5900",
+ .host = "[2010:836B:4179::836B:4179]",
+ .uri_input = "spice://[2010:836B:4179::836B:4179]?port=5900&tls-port=",
+ .uri_output = "spice://[2010:836B:4179::836B:4179]?port=5900&",
+ },{
+ .port = "5910",
+ .host = "[::192.9.5.5]",
+ .username = "user",
+ .uri_input = "spice://user@[::192.9.5.5]?tls-port=&port=5910",
+ .uri_output = "spice://[::192.9.5.5]?port=5910&",
+ },{
+ .tls_port = "5920",
+ .host = "[3ffe:2a00:100:7031::1]",
+ .username = "user",
+ .password = "password",
+ .uri_input = "spice://user@[3ffe:2a00:100:7031::1]?tls-port=5920&port=&password=password",
+ .uri_output = "spice://[3ffe:2a00:100:7031::1]?tls-port=5920",
+ .message = "password may be visible in process listings",
+ },{
+ .tls_port = "5930",
+ .host = "[1080:0:0:0:8:800:200C:417A]",
+ .uri_input = "spice://[1080:0:0:0:8:800:200C:417A]?port=&tls-port=5930",
+ .uri_output = "spice://[1080:0:0:0:8:800:200C:417A]?tls-port=5930",
+ },{
+ .port = "42",
+ .host = "[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]",
+ .uri_input = "spice://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:42",
+ .uri_output = "spice://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]?port=42&",
+ },{
+ .port = "42",
+ .tls_port = "5930",
+ .host = "[::192.9.5.5]",
+ .uri_input = "spice://[::192.9.5.5]:42?tls-port=5930",
+ .uri_output = "spice://[::192.9.5.5]?port=42&tls-port=5930",
+ },{
+ .port = "42",
+ .tls_port = "5930",
+ .host = "[::FFFF:129.144.52.38]",
+ .uri_input = "spice://[::FFFF:129.144.52.38]:42?tls-port=5930",
+ .uri_output = "spice://[::FFFF:129.144.52.38]?port=42&tls-port=5930",
+ },
};
test_session_uri_good(tests, G_N_ELEMENTS(tests));
--
2.13.0
More information about the Spice-devel
mailing list