[gimp] app: we should not have any g_assert*() code if possible.
- From: Jehan Pagès <jehanp src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: we should not have any g_assert*() code if possible.
- Date: Mon, 22 Jan 2018 11:51:27 +0000 (UTC)
commit f87bc3fe090f6565a7e1d9d7bc2228bce11ea8ef
Author: Jehan <jehan girinstud io>
Date: Mon Jan 22 12:33:39 2018 +0100
app: we should not have any g_assert*() code if possible.
Replace all g_assert_not_reached() in app/core/ by g_return_if_reached()
or g_return_val_if_reached(). GIMP may handle a lot of creative work,
sometimes unsaved for hours. We should not just crash on purpose.
g_assert*() could theoretically be turned off on a glib build, but this
is nearly never done, and is not a solution either (actually it is
probably even worse because the broken code would just continue on a
forbidden path). It is much better to return with a warning on such
forbidden code paths, allowing someone to report a bug without
experiencing a crash and data loss.
For now, I only took care of g_assert_not_reached() inside app/core.
More g_assert*() code should be replaced.
Note: assert are acceptable in plug-ins though, but not in the main
executable, unless absolutely necessary (something happening so bad that
crash is better than continuing).
app/core/gimpchannelpropundo.c | 4 ++--
app/core/gimpdrawable-transform.c | 2 +-
app/core/gimpfloatingselectionundo.c | 4 ++--
app/core/gimpgrouplayer.c | 2 +-
app/core/gimpgrouplayerundo.c | 4 ++--
app/core/gimpimage-arrange.c | 5 ++++-
app/core/gimpimage-rotate.c | 5 ++++-
app/core/gimpimage.c | 2 +-
app/core/gimpimageundo.c | 4 ++--
app/core/gimpitempropundo.c | 4 ++--
app/core/gimplayermaskpropundo.c | 4 ++--
app/core/gimplayerpropundo.c | 4 ++--
12 files changed, 25 insertions(+), 19 deletions(-)
---
diff --git a/app/core/gimpchannelpropundo.c b/app/core/gimpchannelpropundo.c
index 7f8eaef..0de3809 100644
--- a/app/core/gimpchannelpropundo.c
+++ b/app/core/gimpchannelpropundo.c
@@ -76,7 +76,7 @@ gimp_channel_prop_undo_constructed (GObject *object)
break;
default:
- g_assert_not_reached ();
+ g_return_if_reached ();
}
}
@@ -103,6 +103,6 @@ gimp_channel_prop_undo_pop (GimpUndo *undo,
break;
default:
- g_assert_not_reached ();
+ g_return_if_reached ();
}
}
diff --git a/app/core/gimpdrawable-transform.c b/app/core/gimpdrawable-transform.c
index 19113d1..00fe4cd 100644
--- a/app/core/gimpdrawable-transform.c
+++ b/app/core/gimpdrawable-transform.c
@@ -347,7 +347,7 @@ gimp_drawable_transform_rotate_point (gint x,
break;
default:
- g_assert_not_reached ();
+ g_return_if_reached ();
}
}
diff --git a/app/core/gimpfloatingselectionundo.c b/app/core/gimpfloatingselectionundo.c
index 07e49e7..34fff94 100644
--- a/app/core/gimpfloatingselectionundo.c
+++ b/app/core/gimpfloatingselectionundo.c
@@ -79,7 +79,7 @@ gimp_floating_selection_undo_constructed (GObject *object)
break;
default:
- g_assert_not_reached ();
+ g_return_if_reached ();
}
}
@@ -130,6 +130,6 @@ gimp_floating_selection_undo_pop (GimpUndo *undo,
break;
default:
- g_assert_not_reached ();
+ g_return_if_reached ();
}
}
diff --git a/app/core/gimpgrouplayer.c b/app/core/gimpgrouplayer.c
index c124d92..dca2d4a 100644
--- a/app/core/gimpgrouplayer.c
+++ b/app/core/gimpgrouplayer.c
@@ -895,7 +895,7 @@ get_projection_format (GimpProjectable *projectable,
return gimp_image_get_format (image, GIMP_GRAY, precision, TRUE);
}
- g_assert_not_reached ();
+ g_return_val_if_reached (NULL);
return NULL;
}
diff --git a/app/core/gimpgrouplayerundo.c b/app/core/gimpgrouplayerundo.c
index 5141aef..8287dca 100644
--- a/app/core/gimpgrouplayerundo.c
+++ b/app/core/gimpgrouplayerundo.c
@@ -80,7 +80,7 @@ gimp_group_layer_undo_constructed (GObject *object)
break;
default:
- g_assert_not_reached ();
+ g_return_if_reached ();
}
}
@@ -143,6 +143,6 @@ gimp_group_layer_undo_pop (GimpUndo *undo,
break;
default:
- g_assert_not_reached ();
+ g_return_if_reached ();
}
}
diff --git a/app/core/gimpimage-arrange.c b/app/core/gimpimage-arrange.c
index cbbab3c..b88215f 100644
--- a/app/core/gimpimage-arrange.c
+++ b/app/core/gimpimage-arrange.c
@@ -121,6 +121,9 @@ gimp_image_arrange_objects (GimpImage *image,
do_y = TRUE;
compute_offsets (list, alignment);
break;
+
+ default:
+ g_return_if_reached ();
}
object_list = sort_by_offset (list);
@@ -365,7 +368,7 @@ compute_offset (GObject *object,
break;
default:
- g_assert_not_reached ();
+ g_return_if_reached ();
}
g_object_set_data (object, "align-offset",
diff --git a/app/core/gimpimage-rotate.c b/app/core/gimpimage-rotate.c
index 7b6021b..56a2e32 100644
--- a/app/core/gimpimage-rotate.c
+++ b/app/core/gimpimage-rotate.c
@@ -109,7 +109,7 @@ gimp_image_rotate (GimpImage *image,
break;
default:
- g_assert_not_reached ();
+ g_return_if_reached ();
return;
}
@@ -266,6 +266,9 @@ gimp_image_rotate_item_offset (GimpImage *image,
case GIMP_ROTATE_180:
return;
+
+ default:
+ g_return_if_reached ();
}
gimp_item_get_offset (item, &off_x, &off_y);
diff --git a/app/core/gimpimage.c b/app/core/gimpimage.c
index 9597b96..1818ca1 100644
--- a/app/core/gimpimage.c
+++ b/app/core/gimpimage.c
@@ -1448,7 +1448,7 @@ gimp_image_get_proj_format (GimpProjectable *projectable)
gimp_image_get_precision (image), TRUE);
}
- g_assert_not_reached ();
+ g_return_val_if_reached (NULL);
return NULL;
}
diff --git a/app/core/gimpimageundo.c b/app/core/gimpimageundo.c
index b46c3e9..a5656a9 100644
--- a/app/core/gimpimageundo.c
+++ b/app/core/gimpimageundo.c
@@ -206,7 +206,7 @@ gimp_image_undo_constructed (GObject *object)
break;
default:
- g_assert_not_reached ();
+ g_return_if_reached ();
}
}
@@ -523,7 +523,7 @@ gimp_image_undo_pop (GimpUndo *undo,
break;
default:
- g_assert_not_reached ();
+ g_return_if_reached ();
}
}
diff --git a/app/core/gimpitempropundo.c b/app/core/gimpitempropundo.c
index f3a10ae..434ca08 100644
--- a/app/core/gimpitempropundo.c
+++ b/app/core/gimpitempropundo.c
@@ -148,7 +148,7 @@ gimp_item_prop_undo_constructed (GObject *object)
break;
default:
- g_assert_not_reached ();
+ g_return_if_reached ();
}
}
@@ -340,7 +340,7 @@ gimp_item_prop_undo_pop (GimpUndo *undo,
break;
default:
- g_assert_not_reached ();
+ g_return_if_reached ();
}
}
diff --git a/app/core/gimplayermaskpropundo.c b/app/core/gimplayermaskpropundo.c
index 0a9d685..f9e5056 100644
--- a/app/core/gimplayermaskpropundo.c
+++ b/app/core/gimplayermaskpropundo.c
@@ -80,7 +80,7 @@ gimp_layer_mask_prop_undo_constructed (GObject *object)
break;
default:
- g_assert_not_reached ();
+ g_return_if_reached ();
}
}
@@ -117,6 +117,6 @@ gimp_layer_mask_prop_undo_pop (GimpUndo *undo,
break;
default:
- g_assert_not_reached ();
+ g_return_if_reached ();
}
}
diff --git a/app/core/gimplayerpropundo.c b/app/core/gimplayerpropundo.c
index e01facd..c2a50c2 100644
--- a/app/core/gimplayerpropundo.c
+++ b/app/core/gimplayerpropundo.c
@@ -87,7 +87,7 @@ gimp_layer_prop_undo_constructed (GObject *object)
break;
default:
- g_assert_not_reached ();
+ g_return_if_reached ();
}
}
@@ -152,6 +152,6 @@ gimp_layer_prop_undo_pop (GimpUndo *undo,
break;
default:
- g_assert_not_reached ();
+ g_return_if_reached ();
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]