gimp r24929 - in trunk: . app/core



Author: mitch
Date: Wed Feb 20 13:48:37 2008
New Revision: 24929
URL: http://svn.gnome.org/viewvc/gimp?rev=24929&view=rev

Log:
2008-02-20  Michael Natterer  <mitch gimp org>

	* app/core/gimpcurve.c: add precondition checks.

	* app/core/gimpdrawable-curves.c (gimp_drawable_curves_spline):
	divide values by 255 before setting them on the curve. Fixes crash
	when using curves from the PDB.



Modified:
   trunk/ChangeLog
   trunk/app/core/gimpcurve.c
   trunk/app/core/gimpdrawable-curves.c

Modified: trunk/app/core/gimpcurve.c
==============================================================================
--- trunk/app/core/gimpcurve.c	(original)
+++ trunk/app/core/gimpcurve.c	Wed Feb 20 13:48:37 2008
@@ -438,6 +438,9 @@
                       gdouble    y)
 {
   g_return_if_fail (GIMP_IS_CURVE (curve));
+  g_return_if_fail (point >= 0 && point < GIMP_CURVE_NUM_POINTS);
+  g_return_if_fail (x == -1.0 || (x >= 0 && x <= 1.0));
+  g_return_if_fail (y == -1.0 || (y >= 0 && y <= 1.0));
 
   if (curve->curve_type == GIMP_CURVE_FREE)
     return;
@@ -460,6 +463,8 @@
                        gdouble    y)
 {
   g_return_if_fail (GIMP_IS_CURVE (curve));
+  g_return_if_fail (point >= 0 && point < GIMP_CURVE_NUM_POINTS);
+  g_return_if_fail (y >= 0 && y <= 1.0);
 
   if (curve->curve_type == GIMP_CURVE_FREE)
     return;
@@ -482,6 +487,7 @@
                       gdouble   *y)
 {
   g_return_if_fail (GIMP_IS_CURVE (curve));
+  g_return_if_fail (point >= 0 && point < GIMP_CURVE_NUM_POINTS);
 
   if (curve->curve_type == GIMP_CURVE_FREE)
     return;
@@ -496,6 +502,8 @@
                       gdouble    y)
 {
   g_return_if_fail (GIMP_IS_CURVE (curve));
+  g_return_if_fail (x >= 0 && x <= 1.0);
+  g_return_if_fail (y >= 0 && y <= 1.0);
 
   if (curve->curve_type == GIMP_CURVE_SMOOTH)
     return;

Modified: trunk/app/core/gimpdrawable-curves.c
==============================================================================
--- trunk/app/core/gimpdrawable-curves.c	(original)
+++ trunk/app/core/gimpdrawable-curves.c	Wed Feb 20 13:48:37 2008
@@ -85,8 +85,8 @@
 
   for (i = 0; i < n_points / 2; i++)
     gimp_curve_set_point (curve, i,
-                          points[i * 2],
-                          points[i * 2 + 1]);
+                          (gdouble) points[i * 2]     / 255.0,
+                          (gdouble) points[i * 2 + 1] / 255.0);
 
   gimp_data_thaw (GIMP_DATA (curve));
 
@@ -129,7 +129,7 @@
 
   for (i = 0; i < 256; i++)
     gimp_curve_set_curve (curve,
-                          (gdouble) i / 255.0,
+                          (gdouble) i         / 255.0,
                           (gdouble) points[i] / 255.0);
 
   gimp_data_thaw (GIMP_DATA (curve));



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