summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/live_effects/lpe-clone-original.cpp12
-rw-r--r--src/live_effects/lpe-copy_rotate.cpp4
-rw-r--r--src/live_effects/lpe-measure-line.cpp11
-rw-r--r--src/live_effects/lpe-mirror_symmetry.cpp4
-rw-r--r--src/svg/svg-affine-test.h4
5 files changed, 25 insertions, 10 deletions
diff --git a/src/live_effects/lpe-clone-original.cpp b/src/live_effects/lpe-clone-original.cpp
index d97a990af..31bf0e270 100644
--- a/src/live_effects/lpe-clone-original.cpp
+++ b/src/live_effects/lpe-clone-original.cpp
@@ -138,10 +138,14 @@ LPECloneOriginal::cloneAttrbutes(SPObject *origin, SPObject *dest, bool live, co
dest_affine *= Geom::Translate(preserve_affine.translation());
affine_previous = preserve_affine;
preserve_affine = Geom::identity();
- SP_ITEM(dest)->getRepr()->setAttribute("transform",sp_svg_transform_write(dest_affine));
+ gchar * str = sp_svg_transform_write(dest_affine);
+ SP_ITEM(dest)->getRepr()->setAttribute("transform", str);
+ g_free(str);
}
} else {
- SP_ITEM(dest)->getRepr()->setAttribute("transform",sp_svg_transform_write(affine_origin));
+ gchar * str = sp_svg_transform_write(affine_origin);
+ SP_ITEM(dest)->getRepr()->setAttribute("transform", str);
+ g_free(str);
}
} else if ( shape_dest && shape_origin && live && (std::strcmp(attribute, "d") == 0)) {
SPCurve *c = NULL;
@@ -176,7 +180,9 @@ LPECloneOriginal::cloneAttrbutes(SPObject *origin, SPObject *dest, bool live, co
c->set_pathvector(c_pv);
if (!path_origin) {
shape_dest->setCurveInsync(c, TRUE);
- dest->getRepr()->setAttribute(attribute, sp_svg_write_path(c_pv));
+ gchar *str = sp_svg_write_path(c_pv);
+ dest->getRepr()->setAttribute(attribute, str);
+ g_free(str);
} else {
shape_dest->setCurve(c, TRUE);
}
diff --git a/src/live_effects/lpe-copy_rotate.cpp b/src/live_effects/lpe-copy_rotate.cpp
index f8be0f2a5..e80ad80cb 100644
--- a/src/live_effects/lpe-copy_rotate.cpp
+++ b/src/live_effects/lpe-copy_rotate.cpp
@@ -274,7 +274,9 @@ LPECopyRotate::toItem(Geom::Affine transform, size_t i, bool reset)
Inkscape::GC::release(phantom);
}
cloneD(SP_OBJECT(sp_lpe_item), elemref, true, reset);
- elemref->getRepr()->setAttribute("transform" , sp_svg_transform_write(transform));
+ gchar *str = sp_svg_transform_write(transform);
+ elemref->getRepr()->setAttribute("transform" , str);
+ g_free(str);
SP_ITEM(elemref)->setHidden(false);
if (elemref->parent != container) {
Inkscape::XML::Node *copy = phantom->duplicate(xml_doc);
diff --git a/src/live_effects/lpe-measure-line.cpp b/src/live_effects/lpe-measure-line.cpp
index 892744462..f7892cbe7 100644
--- a/src/live_effects/lpe-measure-line.cpp
+++ b/src/live_effects/lpe-measure-line.cpp
@@ -260,7 +260,7 @@ LPEMeasureLine::createTextLabel(Geom::Point pos, double length, Geom::Coord angl
rtspan = xml_doc->createElement("svg:tspan");
rtspan->setAttribute("sodipodi:role", "line");
}
- const char * transform;
+ gchar * transform;
Geom::Affine affine = Geom::Affine(Geom::Translate(pos).inverse());
angle = std::fmod(angle, 2*M_PI);
if (angle < 0) angle += 2*M_PI;
@@ -276,6 +276,7 @@ LPEMeasureLine::createTextLabel(Geom::Point pos, double length, Geom::Coord angl
transform = NULL;
}
rtext->setAttribute("transform", transform);
+ g_free(transform);
SPCSSAttr *css = sp_repr_css_attr_new();
sp_repr_css_attr_add_from_string(css, anotation_format.param_getSVGValue());
Inkscape::FontLister *fontlister = Inkscape::FontLister::get_instance();
@@ -317,7 +318,7 @@ LPEMeasureLine::createTextLabel(Geom::Point pos, double length, Geom::Coord angl
g_snprintf(length_str, 64, "%.*f", (int)precision, length);
setlocale (LC_NUMERIC, oldlocale);
g_free (oldlocale);
- Glib::ustring label_value = Glib::ustring(format.param_getSVGValue());
+ Glib::ustring label_value(format.param_getSVGValue());
size_t s = label_value.find(Glib::ustring("{measure}"),0);
if(s < label_value.length()) {
label_value.replace(s,s+9,length_str);
@@ -413,17 +414,19 @@ LPEMeasureLine::createLine(Geom::Point start,Geom::Point end, const char * id, b
}
line = elemref->getRepr();
- const char * line_str = sp_svg_write_path( line_pathv );
+ gchar * line_str = sp_svg_write_path( line_pathv );
line->setAttribute("d" , line_str);
line->setAttribute("transform", NULL);
+ g_free(line_str);
} else {
if (remove) {
return;
}
line = xml_doc->createElement("svg:path");
line->setAttribute("id", id);
- const char * line_str = sp_svg_write_path( line_pathv );
+ gchar * line_str = sp_svg_write_path( line_pathv );
line->setAttribute("d" , line_str);
+ g_free(line_str);
}
line->setAttribute("sodipodi:insensitive", "true");
line_pathv.clear();
diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp
index 186b97fe3..b1f10c242 100644
--- a/src/live_effects/lpe-mirror_symmetry.cpp
+++ b/src/live_effects/lpe-mirror_symmetry.cpp
@@ -291,7 +291,9 @@ LPEMirrorSymmetry::toMirror(Geom::Affine transform)
Inkscape::GC::release(phantom);
}
cloneD(SP_OBJECT(sp_lpe_item), elemref, true, true);
- elemref->getRepr()->setAttribute("transform" , sp_svg_transform_write(transform));
+ gchar *str = sp_svg_transform_write(transform);
+ elemref->getRepr()->setAttribute("transform" , str);
+ g_free(str);
if (elemref->parent != container) {
Inkscape::XML::Node *copy = phantom->duplicate(xml_doc);
copy->setAttribute("id", elemref_id);
diff --git a/src/svg/svg-affine-test.h b/src/svg/svg-affine-test.h
index af670a3a8..829ef8a5a 100644
--- a/src/svg/svg-affine-test.h
+++ b/src/svg/svg-affine-test.h
@@ -67,7 +67,9 @@ public:
void testWriteIdentity()
{
- TS_ASSERT_EQUALS(sp_svg_transform_write(Geom::identity()) , (void*)0)
+ gchar str = sp_svg_transform_write(Geom::identity());
+ TS_ASSERT_EQUALS(str, NULL);
+ g_free(str);
}
void testReadMatrix()