summaryrefslogtreecommitdiffstats
path: root/src/live_effects/lpe-clone-original.cpp
diff options
context:
space:
mode:
authorchr <chr>2017-05-23 19:48:27 +0000
committerchr <chr>2017-05-23 19:48:27 +0000
commit71f7e26f4a6714fe1d3b6a72f61c481c3e1f52a0 (patch)
tree066d28509e627c9d4193cc99ba4bbe020a05894e /src/live_effects/lpe-clone-original.cpp
parentbugfix: change active layer (diff)
downloadinkscape-71f7e26f4a6714fe1d3b6a72f61c481c3e1f52a0.tar.gz
inkscape-71f7e26f4a6714fe1d3b6a72f61c481c3e1f52a0.zip
fix a brunch of memory leaks pt.2
I'd like to see the crappy API fixed, to avoid this stupid mistakes. (bzr r15698.1.12)
Diffstat (limited to 'src/live_effects/lpe-clone-original.cpp')
-rw-r--r--src/live_effects/lpe-clone-original.cpp12
1 files changed, 9 insertions, 3 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);
}