summaryrefslogtreecommitdiffstats
path: root/src/sp-pattern.cpp
diff options
context:
space:
mode:
authorMenTaLguY <mental@rydia.net>2007-02-28 04:34:21 +0000
committermental <mental@users.sourceforge.net>2007-02-28 04:34:21 +0000
commit1600b0cda7951b219a2c99927b0b81adc11a02af (patch)
tree90602e19a84e585f6048591e23672d8e914625d3 /src/sp-pattern.cpp
parentFix layer transform issue (diff)
downloadinkscape-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/sp-pattern.cpp')
-rw-r--r--src/sp-pattern.cpp19
1 files changed, 6 insertions, 13 deletions
diff --git a/src/sp-pattern.cpp b/src/sp-pattern.cpp
index 8de8ac77b..3640a6768 100644
--- a/src/sp-pattern.cpp
+++ b/src/sp-pattern.cpp
@@ -484,12 +484,9 @@ sp_pattern_transform_multiply (SPPattern *pattern, NR::Matrix postmul, bool set)
}
pattern->patternTransform_set = TRUE;
- gchar c[256];
- if (sp_svg_transform_write(c, 256, pattern->patternTransform)) {
- SP_OBJECT_REPR(pattern)->setAttribute("patternTransform", c);
- } else {
- SP_OBJECT_REPR(pattern)->setAttribute("patternTransform", NULL);
- }
+ gchar *c=sp_svg_transform_write(pattern->patternTransform);
+ SP_OBJECT_REPR(pattern)->setAttribute("patternTransform", c);
+ g_free(c);
}
const gchar *
@@ -503,13 +500,9 @@ pattern_tile (GSList *reprs, NR::Rect bounds, SPDocument *document, NR::Matrix t
sp_repr_set_svg_double(repr, "width", bounds.extent(NR::X));
sp_repr_set_svg_double(repr, "height", bounds.extent(NR::Y));
- gchar t[256];
- if (sp_svg_transform_write(t, 256, transform)) {
- repr->setAttribute("patternTransform", t);
- } else {
- repr->setAttribute("patternTransform", NULL);
- }
-
+ gchar *t=sp_svg_transform_write(transform);
+ repr->setAttribute("patternTransform", t);
+ g_free(t);
defsrepr->appendChild(repr);
const gchar *pat_id = repr->attribute("id");