diff options
| author | chr <chr> | 2017-05-18 17:58:59 +0000 |
|---|---|---|
| committer | chr <chr> | 2017-05-18 17:58:59 +0000 |
| commit | 6c05c1c14cb8d29fb06d6779ec9817615c518ab5 (patch) | |
| tree | c2d27beedaeb56110dcd5b1ab325df8e76d16917 | |
| parent | bugfix crash while moving objects (diff) | |
| download | inkscape-6c05c1c14cb8d29fb06d6779ec9817615c518ab5.tar.gz inkscape-6c05c1c14cb8d29fb06d6779ec9817615c518ab5.zip | |
fix a brunch of memory leaks
(bzr r15698.1.2)
| -rw-r--r-- | src/live_effects/lpe-bspline.cpp | 1 | ||||
| -rw-r--r-- | src/live_effects/parameter/path.cpp | 3 | ||||
| -rw-r--r-- | src/path-chemistry.cpp | 3 | ||||
| -rw-r--r-- | src/selection-chemistry.cpp | 7 | ||||
| -rw-r--r-- | src/sp-item-group.cpp | 1 | ||||
| -rw-r--r-- | src/sp-pattern.cpp | 1 |
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"); |
