From 5b94fe6342605bc9606b1938ac13a56573a2d33a Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Fri, 10 Nov 2017 14:53:36 +0100 Subject: [PATCH] stylecontext: Make first property name explicit Insist that a first non-NULL property is passed to gtk_style_context_get(). This is in particular relevant because of dropping the state argument since GTK3, and code like gtk_style_context_get (context, state, "font", &font); would keep compiling without warnings without this change. --- gtk/gtkstylecontext.c | 12 +++++++++--- gtk/gtkstylecontext.h | 2 ++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/gtk/gtkstylecontext.c b/gtk/gtkstylecontext.c index 02955e9c9e..f70bc3a8b6 100644 --- a/gtk/gtkstylecontext.c +++ b/gtk/gtkstylecontext.c @@ -749,6 +749,7 @@ gtk_style_context_get_property (GtkStyleContext *context, /** * gtk_style_context_get_valist: * @context: a #GtkStyleContext + * @first_property_name: Name of the first property * @args: va_list of property name/return location pairs, followed by %NULL * * Retrieves several style property values from @context for a given state. @@ -765,13 +766,15 @@ gtk_style_context_get_property (GtkStyleContext *context, */ void gtk_style_context_get_valist (GtkStyleContext *context, + const char *first_property_name, va_list args) { const gchar *property_name; g_return_if_fail (GTK_IS_STYLE_CONTEXT (context)); + g_return_if_fail (first_property_name != NULL); - property_name = va_arg (args, const gchar *); + property_name = first_property_name; while (property_name) { @@ -799,6 +802,7 @@ gtk_style_context_get_valist (GtkStyleContext *context, /** * gtk_style_context_get: * @context: a #GtkStyleContext + * @first_property_name: Name of the first property * @...: property name /return value pairs, followed by %NULL * * Retrieves several style property values from @context for a @@ -816,14 +820,16 @@ gtk_style_context_get_valist (GtkStyleContext *context, */ void gtk_style_context_get (GtkStyleContext *context, + const char *first_property_name, ...) { va_list args; g_return_if_fail (GTK_IS_STYLE_CONTEXT (context)); + g_return_if_fail (first_property_name != NULL); - va_start (args, context); - gtk_style_context_get_valist (context, args); + va_start (args, first_property_name); + gtk_style_context_get_valist (context, first_property_name, args); va_end (args); } diff --git a/gtk/gtkstylecontext.h b/gtk/gtkstylecontext.h index 58da54d132..0b58d5e2f0 100644 --- a/gtk/gtkstylecontext.h +++ b/gtk/gtkstylecontext.h @@ -1005,9 +1005,11 @@ void gtk_style_context_get_property (GtkStyleContext *context, GValue *value); GDK_AVAILABLE_IN_ALL void gtk_style_context_get_valist (GtkStyleContext *context, + const char *first_property_name, va_list args); GDK_AVAILABLE_IN_ALL void gtk_style_context_get (GtkStyleContext *context, + const char *first_property_name, ...) G_GNUC_NULL_TERMINATED; GDK_AVAILABLE_IN_ALL