From 1b7d63cce90ce6d018df9359eeb972db05b15671 Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Fri, 1 Jun 2018 12:59:52 +0200 Subject: [PATCH] Use g_set_object() in a lot of places, and splrinkle some g_clear_object() --- app/core/gimp.c | 42 +------ app/core/gimpcontext.c | 169 ++++++++------------------ app/core/gimpdata.c | 4 +- app/core/gimpdrawable.c | 11 +- app/core/gimpimage-metadata.c | 7 +- app/core/gimpimage.c | 31 +---- app/core/gimpitem.c | 6 +- app/core/gimplayer.c | 10 +- app/core/gimppaintinfo.c | 11 +- app/core/gimptoolinfo.c | 11 +- app/gegl/gimpapplicator.c | 6 +- app/paint/gimpbrushcore.c | 12 +- app/tools/gimpcolortool.c | 17 +-- app/tools/gimpgradienttool.c | 22 +--- app/tools/tool_manager.c | 4 +- app/widgets/gimpcontainerview.c | 18 ++- app/widgets/gimppickablebutton.c | 22 ++-- app/widgets/gimpviewrenderer.c | 59 +++------ libgimpwidgets/gimpcolorarea.c | 5 +- libgimpwidgets/gimpcolorbutton.c | 10 +- libgimpwidgets/gimpcolorprofileview.c | 9 +- libgimpwidgets/gimpcolorscale.c | 5 +- libgimpwidgets/gimpcolorselect.c | 5 +- libgimpwidgets/gimppreview.c | 11 +- libgimpwidgets/gimppreviewarea.c | 5 +- modules/color-selector-cmyk.c | 20 ++- modules/color-selector-water.c | 5 +- modules/gimpcolorwheel.c | 5 +- 28 files changed, 129 insertions(+), 413 deletions(-) diff --git a/app/core/gimp.c b/app/core/gimp.c index 5530f5c135..e13b0884de 100644 --- a/app/core/gimp.c +++ b/app/core/gimp.c @@ -932,17 +932,10 @@ gimp_set_clipboard_image (Gimp *gimp, g_return_if_fail (GIMP_IS_GIMP (gimp)); g_return_if_fail (image == NULL || GIMP_IS_IMAGE (image)); - /* ref first, it could be the same as gimp->clipboard_image, but - * don't bail if equal because always we want the signal emission - */ - if (image) - g_object_ref (image); - g_clear_object (&gimp->clipboard_buffer); - g_clear_object (&gimp->clipboard_image); - - gimp->clipboard_image = image; + g_set_object (&gimp->clipboard_image, image); + /* we want the signal emission */ g_signal_emit (gimp, gimp_signals[CLIPBOARD_CHANGED], 0); } @@ -961,15 +954,10 @@ gimp_set_clipboard_buffer (Gimp *gimp, g_return_if_fail (GIMP_IS_GIMP (gimp)); g_return_if_fail (buffer == NULL || GIMP_IS_BUFFER (buffer)); - /* see above */ - if (buffer) - g_object_ref (buffer); - g_clear_object (&gimp->clipboard_image); - g_clear_object (&gimp->clipboard_buffer); - - gimp->clipboard_buffer = buffer; + g_set_object (&gimp->clipboard_buffer, buffer); + /* we want the signal emission */ g_signal_emit (gimp, gimp_signals[CLIPBOARD_CHANGED], 0); } @@ -1022,16 +1010,7 @@ gimp_set_default_context (Gimp *gimp, g_return_if_fail (GIMP_IS_GIMP (gimp)); g_return_if_fail (context == NULL || GIMP_IS_CONTEXT (context)); - if (context != gimp->default_context) - { - if (gimp->default_context) - g_object_unref (gimp->default_context); - - gimp->default_context = context; - - if (gimp->default_context) - g_object_ref (gimp->default_context); - } + g_set_object (&gimp->default_context, context); } GimpContext * @@ -1049,16 +1028,7 @@ gimp_set_user_context (Gimp *gimp, g_return_if_fail (GIMP_IS_GIMP (gimp)); g_return_if_fail (context == NULL || GIMP_IS_CONTEXT (context)); - if (context != gimp->user_context) - { - if (gimp->user_context) - g_object_unref (gimp->user_context); - - gimp->user_context = context; - - if (gimp->user_context) - g_object_ref (gimp->user_context); - } + g_set_object (&gimp->user_context, context); } GimpContext * diff --git a/app/core/gimpcontext.c b/app/core/gimpcontext.c index b4f79dab69..da55e09b46 100644 --- a/app/core/gimpcontext.c +++ b/app/core/gimpcontext.c @@ -2123,19 +2123,14 @@ gimp_context_real_set_tool (GimpContext *context, /* disconnect from the old tool's signals */ if (context->tool_info) - { - g_signal_handlers_disconnect_by_func (context->tool_info, - gimp_context_tool_dirty, - context); - g_object_unref (context->tool_info); - } + g_signal_handlers_disconnect_by_func (context->tool_info, + gimp_context_tool_dirty, + context); - context->tool_info = tool_info; + g_set_object (&context->tool_info, tool_info); if (tool_info) { - g_object_ref (tool_info); - g_signal_connect_object (tool_info, "name-changed", G_CALLBACK (gimp_context_tool_dirty), context, @@ -2250,19 +2245,14 @@ gimp_context_real_set_paint_info (GimpContext *context, /* disconnect from the old paint info's signals */ if (context->paint_info) - { - g_signal_handlers_disconnect_by_func (context->paint_info, - gimp_context_paint_info_dirty, - context); - g_object_unref (context->paint_info); - } + g_signal_handlers_disconnect_by_func (context->paint_info, + gimp_context_paint_info_dirty, + context); - context->paint_info = paint_info; + g_set_object (&context->paint_info, paint_info); if (paint_info) { - g_object_ref (paint_info); - g_signal_connect_object (paint_info, "name-changed", G_CALLBACK (gimp_context_paint_info_dirty), context, @@ -2608,19 +2598,14 @@ gimp_context_real_set_brush (GimpContext *context, /* disconnect from the old brush's signals */ if (context->brush) - { - g_signal_handlers_disconnect_by_func (context->brush, - gimp_context_brush_dirty, - context); - g_object_unref (context->brush); - } + g_signal_handlers_disconnect_by_func (context->brush, + gimp_context_brush_dirty, + context); - context->brush = brush; + g_set_object (&context->brush, brush); if (brush) { - g_object_ref (brush); - g_signal_connect_object (brush, "name-changed", G_CALLBACK (gimp_context_brush_dirty), context, @@ -2729,19 +2714,14 @@ gimp_context_real_set_dynamics (GimpContext *context, /* disconnect from the old dynamics' signals */ if (context->dynamics) - { - g_signal_handlers_disconnect_by_func (context->dynamics, - gimp_context_dynamics_dirty, - context); - g_object_unref (context->dynamics); - } + g_signal_handlers_disconnect_by_func (context->dynamics, + gimp_context_dynamics_dirty, + context); - context->dynamics = dynamics; + g_set_object (&context->dynamics, dynamics); if (dynamics) { - g_object_ref (dynamics); - g_signal_connect_object (dynamics, "name-changed", G_CALLBACK (gimp_context_dynamics_dirty), context, @@ -2853,19 +2833,14 @@ gimp_context_real_set_mybrush (GimpContext *context, /* disconnect from the old mybrush's signals */ if (context->mybrush) - { - g_signal_handlers_disconnect_by_func (context->mybrush, - gimp_context_mybrush_dirty, - context); - g_object_unref (context->mybrush); - } + g_signal_handlers_disconnect_by_func (context->mybrush, + gimp_context_mybrush_dirty, + context); - context->mybrush = brush; + g_set_object (&context->mybrush, brush); if (brush) { - g_object_ref (brush); - g_signal_connect_object (brush, "name-changed", G_CALLBACK (gimp_context_mybrush_dirty), context, @@ -2976,19 +2951,14 @@ gimp_context_real_set_pattern (GimpContext *context, /* disconnect from the old pattern's signals */ if (context->pattern) - { - g_signal_handlers_disconnect_by_func (context->pattern, - gimp_context_pattern_dirty, - context); - g_object_unref (context->pattern); - } + g_signal_handlers_disconnect_by_func (context->pattern, + gimp_context_pattern_dirty, + context); - context->pattern = pattern; + g_set_object (&context->pattern, pattern); if (pattern) { - g_object_ref (pattern); - g_signal_connect_object (pattern, "name-changed", G_CALLBACK (gimp_context_pattern_dirty), context, @@ -3099,19 +3069,14 @@ gimp_context_real_set_gradient (GimpContext *context, /* disconnect from the old gradient's signals */ if (context->gradient) - { - g_signal_handlers_disconnect_by_func (context->gradient, - gimp_context_gradient_dirty, - context); - g_object_unref (context->gradient); - } + g_signal_handlers_disconnect_by_func (context->gradient, + gimp_context_gradient_dirty, + context); - context->gradient = gradient; + g_set_object (&context->gradient, gradient); if (gradient) { - g_object_ref (gradient); - g_signal_connect_object (gradient, "name-changed", G_CALLBACK (gimp_context_gradient_dirty), context, @@ -3222,19 +3187,14 @@ gimp_context_real_set_palette (GimpContext *context, /* disconnect from the old palette's signals */ if (context->palette) - { - g_signal_handlers_disconnect_by_func (context->palette, - gimp_context_palette_dirty, - context); - g_object_unref (context->palette); - } + g_signal_handlers_disconnect_by_func (context->palette, + gimp_context_palette_dirty, + context); - context->palette = palette; + g_set_object (&context->palette, palette); if (palette) { - g_object_ref (palette); - g_signal_connect_object (palette, "name-changed", G_CALLBACK (gimp_context_palette_dirty), context, @@ -3338,19 +3298,14 @@ gimp_context_real_set_tool_preset (GimpContext *context, /* disconnect from the old tool preset's signals */ if (context->tool_preset) - { - g_signal_handlers_disconnect_by_func (context->tool_preset, - gimp_context_tool_preset_dirty, - context); - g_object_unref (context->tool_preset); - } + g_signal_handlers_disconnect_by_func (context->tool_preset, + gimp_context_tool_preset_dirty, + context); - context->tool_preset = tool_preset; + g_set_object (&context->tool_preset, tool_preset); if (tool_preset) { - g_object_ref (tool_preset); - g_signal_connect_object (tool_preset, "name-changed", G_CALLBACK (gimp_context_tool_preset_dirty), context, @@ -3494,19 +3449,14 @@ gimp_context_real_set_font (GimpContext *context, /* disconnect from the old font's signals */ if (context->font) - { - g_signal_handlers_disconnect_by_func (context->font, - gimp_context_font_dirty, - context); - g_object_unref (context->font); - } + g_signal_handlers_disconnect_by_func (context->font, + gimp_context_font_dirty, + context); - context->font = font; + g_set_object (&context->font, font); if (font) { - g_object_ref (font); - g_signal_connect_object (font, "name-changed", G_CALLBACK (gimp_context_font_dirty), context, @@ -3621,19 +3571,14 @@ gimp_context_real_set_buffer (GimpContext *context, /* disconnect from the old buffer's signals */ if (context->buffer) - { - g_signal_handlers_disconnect_by_func (context->buffer, - gimp_context_buffer_dirty, - context); - g_object_unref (context->buffer); - } + g_signal_handlers_disconnect_by_func (context->buffer, + gimp_context_buffer_dirty, + context); - context->buffer = buffer; + g_set_object (&context->buffer, buffer); if (buffer) { - g_object_ref (buffer); - g_signal_connect_object (buffer, "name-changed", G_CALLBACK (gimp_context_buffer_dirty), context, @@ -3747,19 +3692,14 @@ gimp_context_real_set_imagefile (GimpContext *context, /* disconnect from the old imagefile's signals */ if (context->imagefile) - { - g_signal_handlers_disconnect_by_func (context->imagefile, - gimp_context_imagefile_dirty, - context); - g_object_unref (context->imagefile); - } + g_signal_handlers_disconnect_by_func (context->imagefile, + gimp_context_imagefile_dirty, + context); - context->imagefile = imagefile; + g_set_object (&context->imagefile, imagefile); if (imagefile) { - g_object_ref (imagefile); - g_signal_connect_object (imagefile, "name-changed", G_CALLBACK (gimp_context_imagefile_dirty), context, @@ -3873,19 +3813,14 @@ gimp_context_real_set_template (GimpContext *context, /* disconnect from the old template's signals */ if (context->template) - { - g_signal_handlers_disconnect_by_func (context->template, - gimp_context_template_dirty, - context); - g_object_unref (context->template); - } + g_signal_handlers_disconnect_by_func (context->template, + gimp_context_template_dirty, + context); - context->template = template; + g_set_object (&context->template, template); if (template) { - g_object_ref (template); - g_signal_connect_object (template, "name-changed", G_CALLBACK (gimp_context_template_dirty), context, diff --git a/app/core/gimpdata.c b/app/core/gimpdata.c index f909ed899e..4a58f368e1 100644 --- a/app/core/gimpdata.c +++ b/app/core/gimpdata.c @@ -813,10 +813,8 @@ gimp_data_set_file (GimpData *data, if (private->internal) return; - if (private->file) - g_object_unref (private->file); + g_set_object (&private->file, file); - private->file = g_object_ref (file); private->writable = FALSE; private->deletable = FALSE; diff --git a/app/core/gimpdrawable.c b/app/core/gimpdrawable.c index 3d8f6caa5e..9d77e9b393 100644 --- a/app/core/gimpdrawable.c +++ b/app/core/gimpdrawable.c @@ -813,17 +813,10 @@ gimp_drawable_real_set_buffer (GimpDrawable *drawable, gimp_image_undo_push_drawable_mod (gimp_item_get_image (item), undo_desc, drawable, FALSE); - /* ref new before unrefing old, they might be the same */ - g_object_ref (buffer); - if (drawable->private->buffer) - { - old_has_alpha = gimp_drawable_has_alpha (drawable); + old_has_alpha = gimp_drawable_has_alpha (drawable); - g_object_unref (drawable->private->buffer); - } - - drawable->private->buffer = buffer; + g_set_object (&drawable->private->buffer, buffer); if (drawable->private->buffer_source_node) gegl_node_set (drawable->private->buffer_source_node, diff --git a/app/core/gimpimage-metadata.c b/app/core/gimpimage-metadata.c index 459dac19e0..b1cbee2c2a 100644 --- a/app/core/gimpimage-metadata.c +++ b/app/core/gimpimage-metadata.c @@ -61,17 +61,12 @@ gimp_image_set_metadata (GimpImage *image, if (push_undo) gimp_image_undo_push_image_metadata (image, NULL); - if (private->metadata) - g_object_unref (private->metadata); - - private->metadata = metadata; + g_set_object (&private->metadata, metadata); if (private->metadata) { gdouble xres, yres; - g_object_ref (private->metadata); - gimp_metadata_set_pixel_size (metadata, gimp_image_get_width (image), gimp_image_get_height (image)); diff --git a/app/core/gimpimage.c b/app/core/gimpimage.c index 2af10d8b64..22d40a52c2 100644 --- a/app/core/gimpimage.c +++ b/app/core/gimpimage.c @@ -2118,16 +2118,8 @@ gimp_image_set_imported_file (GimpImage *image, private = GIMP_IMAGE_GET_PRIVATE (image); - if (private->imported_file != file) + if (g_set_object (&private->imported_file, file)) { - if (private->imported_file) - g_object_unref (private->imported_file); - - private->imported_file = file; - - if (private->imported_file) - g_object_ref (private->imported_file); - gimp_object_name_changed (GIMP_OBJECT (image)); } } @@ -2151,16 +2143,8 @@ gimp_image_set_exported_file (GimpImage *image, private = GIMP_IMAGE_GET_PRIVATE (image); - if (private->exported_file != file) + if (g_set_object (&private->exported_file, file)) { - if (private->exported_file) - g_object_unref (private->exported_file); - - private->exported_file = file; - - if (private->exported_file) - g_object_ref (private->exported_file); - gimp_object_name_changed (GIMP_OBJECT (image)); } } @@ -2184,16 +2168,7 @@ gimp_image_set_save_a_copy_file (GimpImage *image, private = GIMP_IMAGE_GET_PRIVATE (image); - if (private->save_a_copy_file != file) - { - if (private->save_a_copy_file) - g_object_unref (private->save_a_copy_file); - - private->save_a_copy_file = file; - - if (private->save_a_copy_file) - g_object_ref (private->save_a_copy_file); - } + g_set_object (&private->save_a_copy_file, file); } static gchar * diff --git a/app/core/gimpitem.c b/app/core/gimpitem.c index 84685e74f7..b80cac04d3 100644 --- a/app/core/gimpitem.c +++ b/app/core/gimpitem.c @@ -2054,11 +2054,7 @@ gimp_item_set_parasites (GimpItem *item, private = GET_PRIVATE (item); - if (parasites != private->parasites) - { - g_object_unref (private->parasites); - private->parasites = g_object_ref (parasites); - } + g_set_object (&private->parasites, parasites); } /** diff --git a/app/core/gimplayer.c b/app/core/gimplayer.c index d5a461e43d..0b25e79f1f 100644 --- a/app/core/gimplayer.c +++ b/app/core/gimplayer.c @@ -2452,7 +2452,7 @@ gimp_layer_set_floating_sel_drawable (GimpLayer *layer, g_return_if_fail (GIMP_IS_LAYER (layer)); g_return_if_fail (drawable == NULL || GIMP_IS_DRAWABLE (drawable)); - if (layer->fs.drawable != drawable) + if (g_set_object (&layer->fs.drawable, drawable)) { if (layer->fs.segs) { @@ -2461,14 +2461,6 @@ gimp_layer_set_floating_sel_drawable (GimpLayer *layer, layer->fs.num_segs = 0; } - if (layer->fs.drawable) - g_object_unref (layer->fs.drawable); - - layer->fs.drawable = drawable; - - if (layer->fs.drawable) - g_object_ref (layer->fs.drawable); - g_object_notify (G_OBJECT (layer), "floating-selection"); } } diff --git a/app/core/gimppaintinfo.c b/app/core/gimppaintinfo.c index 313cc5672d..4a621b7755 100644 --- a/app/core/gimppaintinfo.c +++ b/app/core/gimppaintinfo.c @@ -130,16 +130,7 @@ gimp_paint_info_set_standard (Gimp *gimp, g_return_if_fail (GIMP_IS_GIMP (gimp)); g_return_if_fail (! paint_info || GIMP_IS_PAINT_INFO (paint_info)); - if (paint_info != gimp->standard_paint_info) - { - if (gimp->standard_paint_info) - g_object_unref (gimp->standard_paint_info); - - gimp->standard_paint_info = paint_info; - - if (gimp->standard_paint_info) - g_object_ref (gimp->standard_paint_info); - } + g_set_object (&gimp->standard_paint_info, paint_info); } GimpPaintInfo * diff --git a/app/core/gimptoolinfo.c b/app/core/gimptoolinfo.c index 2da88ffa10..7cc2970254 100644 --- a/app/core/gimptoolinfo.c +++ b/app/core/gimptoolinfo.c @@ -272,16 +272,7 @@ gimp_tool_info_set_standard (Gimp *gimp, g_return_if_fail (GIMP_IS_GIMP (gimp)); g_return_if_fail (! tool_info || GIMP_IS_TOOL_INFO (tool_info)); - if (tool_info != gimp->standard_tool_info) - { - if (gimp->standard_tool_info) - g_object_unref (gimp->standard_tool_info); - - gimp->standard_tool_info = tool_info; - - if (gimp->standard_tool_info) - g_object_ref (gimp->standard_tool_info); - } + g_set_object (&gimp->standard_tool_info, tool_info); } GimpToolInfo * diff --git a/app/gegl/gimpapplicator.c b/app/gegl/gimpapplicator.c index bc0e218607..78b58330ed 100644 --- a/app/gegl/gimpapplicator.c +++ b/app/gegl/gimpapplicator.c @@ -70,11 +70,7 @@ gimp_applicator_finalize (GObject *object) { GimpApplicator *applicator = GIMP_APPLICATOR (object); - if (applicator->node) - { - g_object_unref (applicator->node); - applicator->node = NULL; - } + g_clear_object (&applicator->node); G_OBJECT_CLASS (parent_class)->finalize (object); } diff --git a/app/paint/gimpbrushcore.c b/app/paint/gimpbrushcore.c index 3baa5b0875..f16f0f8d45 100644 --- a/app/paint/gimpbrushcore.c +++ b/app/paint/gimpbrushcore.c @@ -878,14 +878,12 @@ gimp_brush_core_real_set_brush (GimpBrushCore *core, gimp_brush_core_invalidate_cache, core); gimp_brush_end_use (core->main_brush); - g_clear_object (&core->main_brush); } - core->main_brush = brush; + g_set_object (&core->main_brush, brush); if (core->main_brush) { - g_object_ref (core->main_brush); gimp_brush_begin_use (core->main_brush); g_signal_connect (core->main_brush, "invalidate-preview", G_CALLBACK (gimp_brush_core_invalidate_cache), @@ -897,13 +895,7 @@ static void gimp_brush_core_real_set_dynamics (GimpBrushCore *core, GimpDynamics *dynamics) { - if (dynamics == core->dynamics) - return; - - g_clear_object (&core->dynamics); - - if (dynamics) - core->dynamics = g_object_ref (dynamics); + g_set_object (&core->dynamics, dynamics); } void diff --git a/app/tools/gimpcolortool.c b/app/tools/gimpcolortool.c index 231bd2a55d..993320ae11 100644 --- a/app/tools/gimpcolortool.c +++ b/app/tools/gimpcolortool.c @@ -184,11 +184,7 @@ gimp_color_tool_finalize (GObject *object) { GimpColorTool *color_tool = GIMP_COLOR_TOOL (object); - if (color_tool->options) - { - g_object_unref (color_tool->options); - color_tool->options = NULL; - } + g_clear_object (&color_tool->options); G_OBJECT_CLASS (parent_class)->finalize (object); } @@ -642,10 +638,7 @@ gimp_color_tool_enable (GimpColorTool *color_tool, return; } - if (color_tool->options) - g_object_unref (color_tool->options); - - color_tool->options = g_object_ref (options); + g_set_object (&color_tool->options, options); /* color picking doesn't snap, see bug #768058 */ color_tool->saved_snap_to = gimp_tool_control_get_snap_to (tool->control); @@ -669,11 +662,7 @@ gimp_color_tool_disable (GimpColorTool *color_tool) return; } - if (color_tool->options) - { - g_object_unref (color_tool->options); - color_tool->options = NULL; - } + g_clear_object (&color_tool->options); gimp_tool_control_set_snap_to (tool->control, color_tool->saved_snap_to); color_tool->saved_snap_to = FALSE; diff --git a/app/tools/gimpgradienttool.c b/app/tools/gimpgradienttool.c index bfb87d8636..09d59f1762 100644 --- a/app/tools/gimpgradienttool.c +++ b/app/tools/gimpgradienttool.c @@ -984,20 +984,15 @@ gimp_gradient_tool_set_gradient (GimpGradientTool *gradient_tool, GimpGradient *gradient) { if (gradient_tool->gradient) - { - g_signal_handlers_disconnect_by_func (gradient_tool->gradient, - G_CALLBACK (gimp_gradient_tool_gradient_dirty), - gradient_tool); + g_signal_handlers_disconnect_by_func (gradient_tool->gradient, + G_CALLBACK (gimp_gradient_tool_gradient_dirty), + gradient_tool); - g_object_unref (gradient_tool->gradient); - } - gradient_tool->gradient = gradient; + g_set_object (&gradient_tool->gradient, gradient); if (gradient_tool->gradient) { - g_object_ref (gradient); - g_signal_connect_swapped (gradient_tool->gradient, "dirty", G_CALLBACK (gimp_gradient_tool_gradient_dirty), gradient_tool); @@ -1074,15 +1069,8 @@ gimp_gradient_tool_set_tentative_gradient (GimpGradientTool *gradient_tool, g_return_if_fail (GIMP_IS_GRADIENT_TOOL (gradient_tool)); g_return_if_fail (gradient == NULL || GIMP_IS_GRADIENT (gradient)); - if (gradient != gradient_tool->tentative_gradient) + if (g_set_object (&gradient_tool->tentative_gradient, gradient)) { - g_clear_object (&gradient_tool->tentative_gradient); - - gradient_tool->tentative_gradient = gradient; - - if (gradient) - g_object_ref (gradient); - if (gradient_tool->render_node) { gegl_node_set (gradient_tool->render_node, diff --git a/app/tools/tool_manager.c b/app/tools/tool_manager.c index 6822c1ea3d..2fc5c0dd1c 100644 --- a/app/tools/tool_manager.c +++ b/app/tools/tool_manager.c @@ -638,11 +638,9 @@ tool_manager_select_tool (Gimp *gimp, tool_manager_control_active (gimp, GIMP_TOOL_ACTION_HALT, display); tool_manager_focus_display_active (gimp, NULL); } - - g_object_unref (tool_manager->active_tool); } - tool_manager->active_tool = g_object_ref (tool); + g_set_object (&tool_manager->active_tool, tool); } static void diff --git a/app/widgets/gimpcontainerview.c b/app/widgets/gimpcontainerview.c index f9b9046695..68fd3b3fd4 100644 --- a/app/widgets/gimpcontainerview.c +++ b/app/widgets/gimpcontainerview.c @@ -465,22 +465,18 @@ gimp_container_view_real_set_context (GimpContainerView *view, { GimpContainerViewPrivate *private = GIMP_CONTAINER_VIEW_GET_PRIVATE (view); - if (private->context) + if (private->context && + private->container) { - if (private->container) - gimp_container_view_disconnect_context (view); - - g_object_unref (private->context); + gimp_container_view_disconnect_context (view); } - private->context = context; + g_set_object (&private->context, context); - if (private->context) + if (private->context && + private->container) { - g_object_ref (private->context); - - if (private->container) - gimp_container_view_connect_context (view); + gimp_container_view_connect_context (view); } } diff --git a/app/widgets/gimppickablebutton.c b/app/widgets/gimppickablebutton.c index a422024976..0dd6c1dde0 100644 --- a/app/widgets/gimppickablebutton.c +++ b/app/widgets/gimppickablebutton.c @@ -327,24 +327,16 @@ gimp_pickable_button_set_pickable (GimpPickableButton *button, if (pickable != button->private->pickable) { if (button->private->pickable) - { - g_signal_handlers_disconnect_by_func (button->private->pickable, - gimp_pickable_button_notify_buffer, - button); + g_signal_handlers_disconnect_by_func (button->private->pickable, + gimp_pickable_button_notify_buffer, + button); - g_object_unref (button->private->pickable); - } - - button->private->pickable = pickable; + g_set_object (&button->private->pickable, pickable); if (button->private->pickable) - { - g_object_ref (button->private->pickable); - - g_signal_connect (button->private->pickable, "notify::buffer", - G_CALLBACK (gimp_pickable_button_notify_buffer), - button); - } + g_signal_connect (button->private->pickable, "notify::buffer", + G_CALLBACK (gimp_pickable_button_notify_buffer), + button); gimp_view_set_viewable (GIMP_VIEW (button->private->view), GIMP_VIEWABLE (pickable)); diff --git a/app/widgets/gimpviewrenderer.c b/app/widgets/gimpviewrenderer.c index 3e8019321c..7957f84669 100644 --- a/app/widgets/gimpviewrenderer.c +++ b/app/widgets/gimpviewrenderer.c @@ -538,24 +538,16 @@ gimp_view_renderer_set_color_config (GimpViewRenderer *renderer, if (color_config != renderer->priv->color_config) { if (renderer->priv->color_config) - { - g_signal_handlers_disconnect_by_func (renderer->priv->color_config, - gimp_view_renderer_config_notify, - renderer); + g_signal_handlers_disconnect_by_func (renderer->priv->color_config, + gimp_view_renderer_config_notify, + renderer); - g_object_unref (renderer->priv->color_config); - } - - renderer->priv->color_config = color_config; + g_set_object (&renderer->priv->color_config, color_config); if (renderer->priv->color_config) - { - g_object_ref (renderer->priv->color_config); - - g_signal_connect (renderer->priv->color_config, "notify", - G_CALLBACK (gimp_view_renderer_config_notify), - renderer); - } + g_signal_connect (renderer->priv->color_config, "notify", + G_CALLBACK (gimp_view_renderer_config_notify), + renderer); gimp_view_renderer_config_notify (G_OBJECT (renderer->priv->color_config), NULL, renderer); @@ -701,28 +693,20 @@ static void gimp_view_renderer_real_set_context (GimpViewRenderer *renderer, GimpContext *context) { - if (renderer->context) + if (renderer->context && + renderer->priv->color_config == + renderer->context->gimp->config->color_management) { - if (renderer->priv->color_config == - renderer->context->gimp->config->color_management) - { - gimp_view_renderer_set_color_config (renderer, NULL); - } - - g_object_unref (renderer->context); + gimp_view_renderer_set_color_config (renderer, NULL); } - renderer->context = context; + g_set_object (&renderer->context, context); - if (renderer->context) + if (renderer->context && + renderer->priv->color_config == NULL) { - g_object_ref (renderer->context); - - if (renderer->priv->color_config == NULL) - { - gimp_view_renderer_set_color_config (renderer, - renderer->context->gimp->config->color_management); - } + gimp_view_renderer_set_color_config (renderer, + renderer->context->gimp->config->color_management); } } @@ -967,19 +951,12 @@ gimp_view_renderer_render_pixbuf (GimpViewRenderer *renderer, dest += dest_stride; } - if (renderer->priv->pixbuf) - g_object_unref (renderer->priv->pixbuf); - + g_clear_object (&renderer->priv->pixbuf); renderer->priv->pixbuf = new; } else { - g_object_ref (pixbuf); - - if (renderer->priv->pixbuf) - g_object_unref (renderer->priv->pixbuf); - - renderer->priv->pixbuf = pixbuf; + g_set_object (&renderer->priv->pixbuf, pixbuf); } } diff --git a/libgimpwidgets/gimpcolorarea.c b/libgimpwidgets/gimpcolorarea.c index 31940eb2de..7f7b426fd8 100644 --- a/libgimpwidgets/gimpcolorarea.c +++ b/libgimpwidgets/gimpcolorarea.c @@ -681,17 +681,14 @@ gimp_color_area_set_color_config (GimpColorArea *area, g_signal_handlers_disconnect_by_func (priv->config, gimp_color_area_destroy_transform, area); - g_object_unref (priv->config); gimp_color_area_destroy_transform (area); } - priv->config = config; + g_set_object (&priv->config, config); if (priv->config) { - g_object_ref (priv->config); - g_signal_connect_swapped (priv->config, "notify", G_CALLBACK (gimp_color_area_destroy_transform), area); diff --git a/libgimpwidgets/gimpcolorbutton.c b/libgimpwidgets/gimpcolorbutton.c index 201bdc9198..bdf336c61f 100644 --- a/libgimpwidgets/gimpcolorbutton.c +++ b/libgimpwidgets/gimpcolorbutton.c @@ -895,16 +895,8 @@ gimp_color_button_set_color_config (GimpColorButton *button, priv = GET_PRIVATE (button); - if (config != priv->config) + if (g_set_object (&priv->config, config)) { - if (priv->config) - g_object_unref (priv->config); - - priv->config = config; - - if (priv->config) - g_object_ref (priv->config); - if (priv->color_area) gimp_color_area_set_color_config (GIMP_COLOR_AREA (priv->color_area), priv->config); diff --git a/libgimpwidgets/gimpcolorprofileview.c b/libgimpwidgets/gimpcolorprofileview.c index 9742e09507..f6c7955b8a 100644 --- a/libgimpwidgets/gimpcolorprofileview.c +++ b/libgimpwidgets/gimpcolorprofileview.c @@ -131,18 +131,11 @@ gimp_color_profile_view_set_profile (GimpColorProfileView *view, gtk_text_buffer_set_text (buffer, "", 0); - if (view->priv->profile) - g_object_unref (view->priv->profile); - - view->priv->profile = profile; - - if (view->priv->profile) + if (g_set_object (&view->priv->profile, profile) && profile) { GtkTextIter iter; const gchar *text; - g_object_ref (view->priv->profile); - gtk_text_buffer_get_start_iter (buffer, &iter); text = gimp_color_profile_get_label (profile); diff --git a/libgimpwidgets/gimpcolorscale.c b/libgimpwidgets/gimpcolorscale.c index 0e6b36d66b..5f23f06781 100644 --- a/libgimpwidgets/gimpcolorscale.c +++ b/libgimpwidgets/gimpcolorscale.c @@ -718,17 +718,14 @@ gimp_color_scale_set_color_config (GimpColorScale *scale, g_signal_handlers_disconnect_by_func (priv->config, gimp_color_scale_notify_config, scale); - g_object_unref (priv->config); gimp_color_scale_destroy_transform (scale); } - priv->config = config; + g_set_object (&priv->config, config); if (priv->config) { - g_object_ref (priv->config); - g_signal_connect (priv->config, "notify", G_CALLBACK (gimp_color_scale_notify_config), scale); diff --git a/libgimpwidgets/gimpcolorselect.c b/libgimpwidgets/gimpcolorselect.c index 59b7db7a9f..f6340b87b6 100644 --- a/libgimpwidgets/gimpcolorselect.c +++ b/libgimpwidgets/gimpcolorselect.c @@ -634,17 +634,14 @@ gimp_color_select_set_config (GimpColorSelector *selector, g_signal_handlers_disconnect_by_func (select->config, gimp_color_select_notify_config, select); - g_object_unref (select->config); gimp_color_select_destroy_transform (select); } - select->config = config; + g_set_object (&select->config, config); if (select->config) { - g_object_ref (select->config); - g_signal_connect (select->config, "notify", G_CALLBACK (gimp_color_select_notify_config), select); diff --git a/libgimpwidgets/gimppreview.c b/libgimpwidgets/gimppreview.c index 5f9fd101f4..29b6b6d18f 100644 --- a/libgimpwidgets/gimppreview.c +++ b/libgimpwidgets/gimppreview.c @@ -941,16 +941,7 @@ gimp_preview_set_default_cursor (GimpPreview *preview, priv = GET_PRIVATE (preview); - if (cursor != priv->default_cursor) - { - if (priv->default_cursor) - g_object_unref (priv->default_cursor); - - if (cursor) - g_object_ref (cursor); - - priv->default_cursor = cursor; - } + g_set_object (&priv->default_cursor, cursor); } GdkCursor * diff --git a/libgimpwidgets/gimppreviewarea.c b/libgimpwidgets/gimppreviewarea.c index cff2148d3c..1846cbb2b4 100644 --- a/libgimpwidgets/gimppreviewarea.c +++ b/libgimpwidgets/gimppreviewarea.c @@ -1820,17 +1820,14 @@ gimp_preview_area_set_color_config (GimpPreviewArea *area, g_signal_handlers_disconnect_by_func (priv->config, gimp_preview_area_destroy_transform, area); - g_object_unref (priv->config); gimp_preview_area_destroy_transform (area); } - priv->config = config; + g_set_object (&priv->config, config); if (priv->config) { - g_object_ref (priv->config); - g_signal_connect_swapped (priv->config, "notify", G_CALLBACK (gimp_preview_area_destroy_transform), area); diff --git a/modules/color-selector-cmyk.c b/modules/color-selector-cmyk.c index 8b2806e260..0135341a04 100644 --- a/modules/color-selector-cmyk.c +++ b/modules/color-selector-cmyk.c @@ -270,22 +270,16 @@ colorsel_cmyk_set_config (GimpColorSelector *selector, if (config != module->config) { if (module->config) - { - g_signal_handlers_disconnect_by_func (module->config, - colorsel_cmyk_config_changed, - module); - g_object_unref (module->config); - } + g_signal_handlers_disconnect_by_func (module->config, + colorsel_cmyk_config_changed, + module); - module->config = config; + g_set_object (&module->config, config); if (module->config) - { - g_object_ref (module->config); - g_signal_connect_swapped (module->config, "notify", - G_CALLBACK (colorsel_cmyk_config_changed), - module); - } + g_signal_connect_swapped (module->config, "notify", + G_CALLBACK (colorsel_cmyk_config_changed), + module); colorsel_cmyk_config_changed (module); } diff --git a/modules/color-selector-water.c b/modules/color-selector-water.c index ab65236c48..785baa179f 100644 --- a/modules/color-selector-water.c +++ b/modules/color-selector-water.c @@ -235,17 +235,14 @@ colorsel_water_set_config (GimpColorSelector *selector, g_signal_handlers_disconnect_by_func (water->config, colorsel_water_destroy_transform, water); - g_object_unref (water->config); colorsel_water_destroy_transform (water); } - water->config = config; + g_set_object (&water->config, config); if (water->config) { - g_object_ref (water->config); - g_signal_connect_swapped (water->config, "notify", G_CALLBACK (colorsel_water_destroy_transform), water); diff --git a/modules/gimpcolorwheel.c b/modules/gimpcolorwheel.c index 663404b3d7..4f1173dbc3 100644 --- a/modules/gimpcolorwheel.c +++ b/modules/gimpcolorwheel.c @@ -1463,17 +1463,14 @@ gimp_color_wheel_set_color_config (GimpColorWheel *wheel, g_signal_handlers_disconnect_by_func (priv->config, gimp_color_wheel_destroy_transform, wheel); - g_object_unref (priv->config); gimp_color_wheel_destroy_transform (wheel); } - priv->config = config; + g_set_object (&priv->config, config); if (priv->config) { - g_object_ref (priv->config); - g_signal_connect_swapped (priv->config, "notify", G_CALLBACK (gimp_color_wheel_destroy_transform), wheel);