amend 5d0303b - fix editor summary leak

This commit is contained in:
Robin Gareus 2014-10-11 13:36:52 +02:00
parent 8ca546ec88
commit e19e6dc73a
2 changed files with 8 additions and 8 deletions

View File

@ -62,6 +62,11 @@ EditorSummary::EditorSummary (Editor* e)
set_flags (get_flags() | Gtk::CAN_FOCUS);
}
EditorSummary::~EditorSummary ()
{
cairo_surface_destroy (_image);
}
/** Handle a size allocation.
* @param alloc GTK allocation.
*/
@ -102,14 +107,8 @@ EditorSummary::set_session (Session* s)
void
EditorSummary::render_background_image ()
{
int stride;
unsigned char *data;
if (_image) {
free (cairo_image_surface_get_data (_image));
}
stride = cairo_format_stride_for_width (CAIRO_FORMAT_RGB24, get_width ());
data = (unsigned char*) malloc (stride * get_height ());
_image = cairo_image_surface_create_for_data (data, CAIRO_FORMAT_RGB24, get_width (), get_height (), stride);
cairo_surface_destroy (_image); // passing NULL is safe
_image = cairo_image_surface_create (CAIRO_FORMAT_RGB24, get_width (), get_height ());
cairo_t* cr = cairo_create (_image);

View File

@ -36,6 +36,7 @@ class EditorSummary : public CairoWidget, public EditorComponent, public ARDOUR:
{
public:
EditorSummary (Editor *);
~EditorSummary ();
void set_session (ARDOUR::Session *);
void set_overlays_dirty ();