[SCM] calf/master: Fix cairo surface leak in line graph widget.

js at users.alioth.debian.org js at users.alioth.debian.org
Tue May 7 15:41:16 UTC 2013


The following commit has been merged in the master branch:
commit 045e27caeac466dd9ae725f31cae3cdc76d0e582
Author: Krzysztof Foltman <wdev at foltman.com>
Date:   Wed Sep 26 23:05:46 2012 +0100

    Fix cairo surface leak in line graph widget.

diff --git a/src/custom_ctl.cpp b/src/custom_ctl.cpp
index 61e67bc..898ff4d 100644
--- a/src/custom_ctl.cpp
+++ b/src/custom_ctl.cpp
@@ -479,6 +479,23 @@ calf_line_graph_class_init (CalfLineGraphClass *klass)
 }
 
 static void
+calf_line_graph_unrealize (GtkWidget *widget, CalfLineGraph *lg)
+{
+    if( lg->master_surface )
+        cairo_surface_destroy( lg->master_surface );
+    if( lg->cache_surface )
+        cairo_surface_destroy( lg->cache_surface );
+    if( lg->spec_surface )
+        cairo_surface_destroy( lg->spec_surface );
+    if( lg->specc_surface )
+        cairo_surface_destroy( lg->specc_surface );
+    lg->master_surface = NULL;
+    lg->cache_surface = NULL;
+    lg->spec_surface = NULL;
+    lg->specc_surface = NULL;
+}
+
+static void
 calf_line_graph_init (CalfLineGraph *self)
 {
     GtkWidget *widget = GTK_WIDGET(self);
@@ -490,6 +507,7 @@ calf_line_graph_init (CalfLineGraph *self)
     self->last_generation = 0;
     self->mode = 0;
     self->_spectrum = 0;
+    gtk_signal_connect(GTK_OBJECT(widget), "unrealize", G_CALLBACK(calf_line_graph_unrealize), (gpointer)self);
 }
 
 GtkWidget *

-- 
calf audio plugins packaging



More information about the pkg-multimedia-commits mailing list