diff options
| author | Jabier Arraiza <jabier.arraiza@marker.es> | 2018-03-08 23:50:57 +0000 |
|---|---|---|
| committer | Jabier Arraiza <jabier.arraiza@marker.es> | 2018-03-26 17:48:34 +0000 |
| commit | 6e5d89bf9595648fcebcf76fd031ba1ea022d397 (patch) | |
| tree | a7eb90d21021e843a63c286427a533a4402877d7 /src/ui | |
| parent | Fix maren problem in https://gitlab.com/inkscape/inkscape/merge_requests/212#... (diff) | |
| download | inkscape-6e5d89bf9595648fcebcf76fd031ba1ea022d397.tar.gz inkscape-6e5d89bf9595648fcebcf76fd031ba1ea022d397.zip | |
Fixing refs
Diffstat (limited to 'src/ui')
| -rw-r--r-- | src/ui/tool/path-manipulator.cpp | 12 | ||||
| -rw-r--r-- | src/ui/tools/eraser-tool.cpp | 11 | ||||
| -rw-r--r-- | src/ui/tools/tweak-tool.cpp | 2 |
3 files changed, 4 insertions, 21 deletions
diff --git a/src/ui/tool/path-manipulator.cpp b/src/ui/tool/path-manipulator.cpp index dcf0a4d4b..67d914095 100644 --- a/src/ui/tool/path-manipulator.cpp +++ b/src/ui/tool/path-manipulator.cpp @@ -190,8 +190,7 @@ void PathManipulator::writeXML() { if (!_live_outline) _updateOutline(); - if (_live_objects) - _setGeometry(); + _setGeometry(); if (!_path) return; _observer->block(); @@ -201,9 +200,7 @@ void PathManipulator::writeXML() } else { // this manipulator will have to be destroyed right after this call _getXMLNode()->removeObserver(*_observer); - sp_object_ref(_path); _path->deleteObject(true, true); - sp_object_unref(_path); _path = NULL; } _observer->unblock(); @@ -1393,8 +1390,7 @@ void PathManipulator::_createGeometryFromControlPoints(bool alert_LPE) } if (_live_outline) _updateOutline(); - if (_live_objects) - _setGeometry(); + _setGeometry(); } /** Build one segment of the geometric representation. @@ -1515,8 +1511,8 @@ void PathManipulator::_setGeometry() if (empty()) return; if (SPCurve * original = _path->getCurveBeforeLPE()){ if(!_spcurve->is_equal(original)) { - _path->setCurveBeforeLPE(_spcurve); - delete original; + _path->setCurveBeforeLPE(_spcurve, false, false); + original->unref(); } } else if(!_spcurve->is_equal(_path->getCurve(true))) { _path->setCurve(_spcurve, false); diff --git a/src/ui/tools/eraser-tool.cpp b/src/ui/tools/eraser-tool.cpp index 01ae71413..8bf4ad82d 100644 --- a/src/ui/tools/eraser-tool.cpp +++ b/src/ui/tools/eraser-tool.cpp @@ -702,10 +702,8 @@ void EraserTool::set_to_accumulated() { SPItem *item = *i; SPUse *use = dynamic_cast<SPUse *>(item); if (SP_IS_PATH(item) && SP_PATH(item)->nodesInPath () == 2){ - sp_object_ref( *i, 0 ); SPItem *item = *i; item->deleteObject(true); - sp_object_unref(item); workDone = true; } else if (SP_IS_GROUP(item) || use ) { /*Do nothing*/ @@ -784,9 +782,7 @@ void EraserTool::set_to_accumulated() { SPItem * dup_clip_obj = SP_ITEM(item_repr->parent->appendChildRepr(dup_clip)); if (dup_clip_obj) { dup_clip_obj->doWriteTransform(item->transform); - sp_object_ref(clip_path, 0); clip_path->deleteObject(true); - sp_object_unref(clip_path); selection->raiseToTop(true); selection->add(dup_clip); selection->pathDiff(true); @@ -813,9 +809,7 @@ void EraserTool::set_to_accumulated() { } else { SPItem *erase_clip = selection->singleItem(); if (erase_clip) { - sp_object_ref(erase_clip, 0); erase_clip->deleteObject(true); - sp_object_unref(erase_clip); } } workDone = true; @@ -826,14 +820,9 @@ void EraserTool::set_to_accumulated() { } } } else { - for (std::vector<SPItem*> ::const_iterator i = toWorkOn.begin();i!=toWorkOn.end();++i) { - sp_object_ref( *i, 0 ); - } - for (std::vector<SPItem*>::const_iterator i = toWorkOn.begin();i!=toWorkOn.end();++i) { SPItem *item = *i; item->deleteObject(true); - sp_object_unref(item); workDone = true; } } diff --git a/src/ui/tools/tweak-tool.cpp b/src/ui/tools/tweak-tool.cpp index efa872ac1..6698316c7 100644 --- a/src/ui/tools/tweak-tool.cpp +++ b/src/ui/tools/tweak-tool.cpp @@ -468,9 +468,7 @@ sp_tweak_dilate_recursive (Inkscape::Selection *selection, SPItem *item, Geom::P double chance = g_random_double_range(0, 1); if (chance <= prob) { if (reverse) { // delete - sp_object_ref(item, NULL); item->deleteObject(true, true); - sp_object_unref(item, NULL); } else { // duplicate SPDocument *doc = item->document; Inkscape::XML::Document* xml_doc = doc->getReprDoc(); |
