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/sp-pattern.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/sp-pattern.cpp')
| -rw-r--r-- | src/sp-pattern.cpp | 19 |
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"); |
