From: Alexander Mikhaylenko Date: Mon, 6 Mar 2023 01:36:16 +0000 (+0400) Subject: widget: Use the correct template in dispose_template() X-Git-Tag: archive/raspbian/4.12.3+ds-1+rpi1~1^2^2^2~22^2~5^2~53^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=9b3fb66bd4568c05f4bd10bda7f6cc1d2ed6919e;p=gtk4.git widget: Use the correct template in dispose_template() In derivable classes, the widget's class can be different from the one dispose_template() was called for, which can lead to failing the template != NULL check at best, undefined behavior at worst. Since we already pass the correct GType into the function, just use that instead. --- diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 21f666c601..102d7851e6 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -11128,7 +11128,8 @@ gtk_widget_dispose_template (GtkWidget *widget, g_return_if_fail (GTK_IS_WIDGET (widget)); g_return_if_fail (g_type_name (widget_type) != NULL); - GtkWidgetTemplate *template = GTK_WIDGET_GET_CLASS (widget)->priv->template; + GObjectClass *object_class = g_type_class_peek (widget_type); + GtkWidgetTemplate *template = GTK_WIDGET_CLASS (object_class)->priv->template; g_return_if_fail (template != NULL); /* Tear down the automatic child data */