[gimp/soc-2011-seamless-clone2] app: don't crash when adjusting quality during an export to jpeg
- From: Clayton Walker <claytonw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/soc-2011-seamless-clone2] app: don't crash when adjusting quality during an export to jpeg
- Date: Wed, 8 May 2013 15:23:02 +0000 (UTC)
commit bee1b1587f056419a4cfd7f24be8490a4842bef0
Author: Massimo Valentini <mvalentini src gnome org>
Date: Sat May 4 18:13:19 2013 +0200
app: don't crash when adjusting quality during an export to jpeg
with preview enabled
app/display/gimpcanvaslayerboundary.c | 17 +++++++++++++++++
1 files changed, 17 insertions(+), 0 deletions(-)
---
diff --git a/app/display/gimpcanvaslayerboundary.c b/app/display/gimpcanvaslayerboundary.c
index f34284e..d64d6e3 100644
--- a/app/display/gimpcanvaslayerboundary.c
+++ b/app/display/gimpcanvaslayerboundary.c
@@ -69,6 +69,7 @@ static void gimp_canvas_layer_boundary_get_property (GObject
guint property_id,
GValue *value,
GParamSpec *pspec);
+static void gimp_canvas_layer_boundary_finalize (GObject *object);
static void gimp_canvas_layer_boundary_draw (GimpCanvasItem *item,
cairo_t *cr);
static cairo_region_t * gimp_canvas_layer_boundary_get_extents (GimpCanvasItem *item);
@@ -90,6 +91,7 @@ gimp_canvas_layer_boundary_class_init (GimpCanvasLayerBoundaryClass *klass)
object_class->set_property = gimp_canvas_layer_boundary_set_property;
object_class->get_property = gimp_canvas_layer_boundary_get_property;
+ object_class->finalize = gimp_canvas_layer_boundary_finalize;
item_class->draw = gimp_canvas_layer_boundary_draw;
item_class->get_extents = gimp_canvas_layer_boundary_get_extents;
@@ -114,6 +116,17 @@ gimp_canvas_layer_boundary_init (GimpCanvasLayerBoundary *layer_boundary)
}
static void
+gimp_canvas_layer_boundary_finalize (GObject *object)
+{
+ GimpCanvasLayerBoundaryPrivate *private = GET_PRIVATE (object);
+
+ if (private->layer)
+ g_object_remove_weak_pointer (G_OBJECT (private->layer), (gpointer)&private->layer);
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static void
gimp_canvas_layer_boundary_set_property (GObject *object,
guint property_id,
const GValue *value,
@@ -124,7 +137,11 @@ gimp_canvas_layer_boundary_set_property (GObject *object,
switch (property_id)
{
case PROP_LAYER:
+ if (private->layer)
+ g_object_remove_weak_pointer (G_OBJECT (private->layer), (gpointer)&private->layer);
private->layer = g_value_get_object (value); /* don't ref */
+ if (private->layer)
+ g_object_add_weak_pointer (G_OBJECT (private->layer), (gpointer)&private->layer);
break;
case PROP_EDIT_MASK:
private->edit_mask = g_value_get_boolean (value);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]