[gnumeric] gnm-so-polygon.c: handle ->points == NULL or empty better.



commit 2d9da0dc25c7a0720f666fd62daecba39c143b74
Author: Morten Welinder <terra gnome org>
Date:   Tue May 5 16:56:16 2009 -0400

    gnm-so-polygon.c: handle ->points == NULL or empty better.
---
 ChangeLog            |    4 ++++
 src/gnm-so-polygon.c |    7 +++++--
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index af8f701..c0e82eb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2009-05-05  Morten Welinder  <terra gnome org>
 
+	* src/gnm-so-polygon.c (gnm_so_polygon_set_property): Handle NULL
+	points.
+	(so_polygon_view_set_bounds): Handle empty points.
+
 	* src/gnm-style-impl.h (struct _GnmStyle): Allocate the right
 	number of border elements!
 
diff --git a/src/gnm-so-polygon.c b/src/gnm-so-polygon.c
index 3d73f21..7e2ae0a 100644
--- a/src/gnm-so-polygon.c
+++ b/src/gnm-so-polygon.c
@@ -78,6 +78,9 @@ so_polygon_view_set_bounds (SheetObjectView *sov, double const *coords, gboolean
 			return;
 
 		i = sop->points->len / 2;
+		if (i == 0)
+			return;
+
 		pts = foo_canvas_points_new (i);
 		x_scale = fabs (coords[2] - coords[0]);
 		y_scale = fabs (coords[3] - coords[1]);
@@ -258,8 +261,8 @@ gnm_so_polygon_set_property (GObject *obj, guint param_id,
 		break;
 	case SOP_PROP_POINTS:
 		points = g_value_get_pointer (value);
-
-		g_return_if_fail (points != NULL);
+		if (!points)
+			points = g_array_new (FALSE, TRUE, sizeof (double));
 
 		if (sop->points != points) {
 			g_array_free (sop->points, TRUE);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]