diff options
| author | MenTaLguY <mental@rydia.net> | 2007-02-28 04:34:21 +0000 |
|---|---|---|
| committer | mental <mental@users.sourceforge.net> | 2007-02-28 04:34:21 +0000 |
| commit | 1600b0cda7951b219a2c99927b0b81adc11a02af (patch) | |
| tree | 90602e19a84e585f6048591e23672d8e914625d3 /src/gradient-chemistry.cpp | |
| parent | Fix layer transform issue (diff) | |
| download | inkscape-1600b0cda7951b219a2c99927b0b81adc11a02af.tar.gz inkscape-1600b0cda7951b219a2c99927b0b81adc11a02af.zip | |
refactor sp_svg_transform_write to return a dynamically-allocated string
-- dynamic allocation won't hurt you, but buffer overruns will!
(bzr r2466)
Diffstat (limited to 'src/gradient-chemistry.cpp')
| -rw-r--r-- | src/gradient-chemistry.cpp | 36 |
1 files changed, 12 insertions, 24 deletions
diff --git a/src/gradient-chemistry.cpp b/src/gradient-chemistry.cpp index 78ea13507..f55694fcf 100644 --- a/src/gradient-chemistry.cpp +++ b/src/gradient-chemistry.cpp @@ -280,12 +280,9 @@ sp_gradient_reset_to_userspace (SPGradient *gr, SPItem *item) gr->gradientTransform = squeeze; { - gchar c[256]; - if (sp_svg_transform_write(c, 256, gr->gradientTransform)) { - SP_OBJECT_REPR(gr)->setAttribute("gradientTransform", c); - } else { - SP_OBJECT_REPR(gr)->setAttribute("gradientTransform", NULL); - } + gchar *c=sp_svg_transform_write(gr->gradientTransform); + SP_OBJECT_REPR(gr)->setAttribute("gradientTransform", c); + g_free(c); } } else { sp_repr_set_svg_double(repr, "x1", (center - NR::Point(width/2, 0))[NR::X]); @@ -350,12 +347,9 @@ sp_gradient_convert_to_userspace(SPGradient *gr, SPItem *item, gchar const *prop // apply skew to the gradient gr->gradientTransform = skew; { - gchar c[256]; - if (sp_svg_transform_write(c, 256, gr->gradientTransform)) { - SP_OBJECT_REPR(gr)->setAttribute("gradientTransform", c); - } else { - SP_OBJECT_REPR(gr)->setAttribute("gradientTransform", NULL); - } + gchar *c=sp_svg_transform_write(gr->gradientTransform); + SP_OBJECT_REPR(gr)->setAttribute("gradientTransform", c); + g_free(c); } // Matrix to convert points to userspace coords; postmultiply by inverse of skew so @@ -423,12 +417,9 @@ sp_gradient_transform_multiply(SPGradient *gradient, NR::Matrix postmul, bool se } gradient->gradientTransform_set = TRUE; - gchar c[256]; - if (sp_svg_transform_write(c, 256, gradient->gradientTransform)) { - SP_OBJECT_REPR(gradient)->setAttribute("gradientTransform", c); - } else { - SP_OBJECT_REPR(gradient)->setAttribute("gradientTransform", NULL); - } + gchar *c=sp_svg_transform_write(gradient->gradientTransform); + SP_OBJECT_REPR(gradient)->setAttribute("gradientTransform", c); + g_free(c); } SPGradient * @@ -925,12 +916,9 @@ sp_item_gradient_set_coords (SPItem *item, guint point_type, guint point_i, NR:: gradient->gradientTransform = new_transform; gradient->gradientTransform_set = TRUE; if (write_repr) { - gchar s[256]; - if (sp_svg_transform_write(s, 256, gradient->gradientTransform)) { - SP_OBJECT_REPR(gradient)->setAttribute("gradientTransform", s); - } else { - SP_OBJECT_REPR(gradient)->setAttribute("gradientTransform", NULL); - } + gchar *s=sp_svg_transform_write(gradient->gradientTransform); + SP_OBJECT_REPR(gradient)->setAttribute("gradientTransform", s); + g_free(s); } else { SP_OBJECT (gradient)->requestModified(SP_OBJECT_MODIFIED_FLAG); } |
