summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchr <chr>2017-05-18 17:58:59 +0000
committerchr <chr>2017-05-18 17:58:59 +0000
commit6c05c1c14cb8d29fb06d6779ec9817615c518ab5 (patch)
treec2d27beedaeb56110dcd5b1ab325df8e76d16917
parentbugfix crash while moving objects (diff)
downloadinkscape-6c05c1c14cb8d29fb06d6779ec9817615c518ab5.tar.gz
inkscape-6c05c1c14cb8d29fb06d6779ec9817615c518ab5.zip
fix a brunch of memory leaks
(bzr r15698.1.2)
-rw-r--r--src/live_effects/lpe-bspline.cpp1
-rw-r--r--src/live_effects/parameter/path.cpp3
-rw-r--r--src/path-chemistry.cpp3
-rw-r--r--src/selection-chemistry.cpp7
-rw-r--r--src/sp-item-group.cpp1
-rw-r--r--src/sp-pattern.cpp1
6 files changed, 12 insertions, 4 deletions
diff --git a/src/live_effects/lpe-bspline.cpp b/src/live_effects/lpe-bspline.cpp
index 5c227e68a..dbd67beda 100644
--- a/src/live_effects/lpe-bspline.cpp
+++ b/src/live_effects/lpe-bspline.cpp
@@ -168,6 +168,7 @@ void LPEBSpline::changeWeight(double weight_ammount)
doBSplineFromWidget(curve, weight_ammount/100.0);
gchar *str = sp_svg_write_path(curve->get_pathvector());
path->getRepr()->setAttribute("inkscape:original-d", str);
+ g_free(str);
}
}
diff --git a/src/live_effects/parameter/path.cpp b/src/live_effects/parameter/path.cpp
index aa87508ab..6e90c9279 100644
--- a/src/live_effects/parameter/path.cpp
+++ b/src/live_effects/parameter/path.cpp
@@ -245,8 +245,9 @@ PathParam::param_editOncanvas(SPItem *item, SPDesktop * dt)
r.lpe_key = param_key;
Geom::PathVector stored_pv = _pathvector;
param_write_to_repr("M0,0 L1,0");
- const char *svgd = sp_svg_write_path(stored_pv);
+ gchar *svgd = sp_svg_write_path(stored_pv);
param_write_to_repr(svgd);
+ g_free(svgd);
} else {
r.item = ref.getObject();
}
diff --git a/src/path-chemistry.cpp b/src/path-chemistry.cpp
index b66bcf368..7840c4ca8 100644
--- a/src/path-chemistry.cpp
+++ b/src/path-chemistry.cpp
@@ -255,8 +255,9 @@ ObjectSet::breakApart(bool skip_undo)
repr->setAttribute("inkscape:original-d", str);
else
repr->setAttribute("d", str);
+ str = sp_svg_transform_write(transform);
+ repr->setAttribute("transform", str);
g_free(str);
- repr->setAttribute("transform", sp_svg_transform_write(transform));
// add the new repr to the parent
parent->appendChild(repr);
diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp
index 5d585ab5d..39846ba2c 100644
--- a/src/selection-chemistry.cpp
+++ b/src/selection-chemistry.cpp
@@ -3175,8 +3175,11 @@ void ObjectSet::toSymbol()
the_parent_repr->appendChild(clone);
if( single_group && transform.isTranslation() ) {
- if( !transform.isIdentity() )
- clone->setAttribute("transform", sp_svg_transform_write( transform ));
+ if( !transform.isIdentity() ) {
+ gchar *c = sp_svg_transform_write( transform );
+ clone->setAttribute("transform", c);
+ g_free(c);
+ }
}
// Change selection to new <use> element.
diff --git a/src/sp-item-group.cpp b/src/sp-item-group.cpp
index f2c0d2f2c..88b2bb1f9 100644
--- a/src/sp-item-group.cpp
+++ b/src/sp-item-group.cpp
@@ -594,6 +594,7 @@ sp_item_group_ungroup (SPGroup *group, std::vector<SPItem*> &children, bool do_d
Geom::Affine ttrans = ctrans.inverse() * SP_ITEM(text)->transform * ctrans;
gchar *affinestr = sp_svg_transform_write(ttrans);
nrepr->setAttribute("transform", affinestr);
+ g_free(affinestr);
}
} else {
nrepr->setAttribute("transform", affinestr);
diff --git a/src/sp-pattern.cpp b/src/sp-pattern.cpp
index fcfdf552e..1e198506b 100644
--- a/src/sp-pattern.cpp
+++ b/src/sp-pattern.cpp
@@ -393,6 +393,7 @@ const gchar *SPPattern::produce(const std::vector<Inkscape::XML::Node *> &reprs,
if(transform != Geom::Affine()){
gchar *t = sp_svg_transform_write(transform);
repr->setAttribute("patternTransform", t);
+ g_free(t);
}
defsrepr->appendChild(repr);
const gchar *pat_id = repr->attribute("id");