[byzanz] Make recorder more resistant to weird disposing
- From: Benjamin Otte <otte src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [byzanz] Make recorder more resistant to weird disposing
- Date: Mon, 8 Feb 2010 17:18:04 +0000 (UTC)
commit 3022c201f8ff5001b17966678cb3a5c921e410b0
Author: Benjamin Otte <otte gnome org>
Date: Wed Sep 2 21:22:58 2009 +0200
Make recorder more resistant to weird disposing
Signals handlers are teh pain!
src/byzanzrecorder.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
---
diff --git a/src/byzanzrecorder.c b/src/byzanzrecorder.c
index 05e58bd..31675ec 100644
--- a/src/byzanzrecorder.c
+++ b/src/byzanzrecorder.c
@@ -127,7 +127,7 @@ byzanz_recorder_create_snapshot (ByzanzRecorder *recorder, const GdkRegion *inva
}
if (cairo_status (cr))
- g_print ("error capturing image: %s\n", cairo_status_to_string (cairo_status (cr)));
+ g_printerr ("error capturing image: %s\n", cairo_status_to_string (cairo_status (cr)));
cairo_destroy (cr);
surface = ensure_image_surface (surface, invalid);
@@ -146,8 +146,10 @@ byzanz_recorder_next_image (gpointer data)
{
ByzanzRecorder *recorder = data;
+ g_object_ref (recorder);
recorder->next_image_source = 0;
byzanz_recorder_snapshot (recorder);
+ g_object_unref (recorder);
return FALSE;
}
@@ -304,7 +306,8 @@ byzanz_recorder_dispose (GObject *object)
{
ByzanzRecorder *recorder = BYZANZ_RECORDER (object);
- g_sequence_free (recorder->layers);
+ g_sequence_remove_range (g_sequence_get_begin_iter (recorder->layers),
+ g_sequence_get_end_iter (recorder->layers));
G_OBJECT_CLASS (byzanz_recorder_parent_class)->dispose (object);
}
@@ -320,6 +323,7 @@ byzanz_recorder_finalize (GObject *object)
gdk_window_remove_filter (recorder->window,
byzanz_recorder_filter_events, recorder);
g_object_unref (recorder->window);
+ g_sequence_free (recorder->layers);
G_OBJECT_CLASS (byzanz_recorder_parent_class)->finalize (object);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]