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/live_effects | |
| 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/live_effects')
| -rw-r--r-- | src/live_effects/effect.cpp | 4 | ||||
| -rw-r--r-- | src/live_effects/lpe-measure-segments.cpp | 4 | ||||
| -rw-r--r-- | src/live_effects/lpe-powermask.cpp | 2 | ||||
| -rw-r--r-- | src/live_effects/lpeobject-reference.cpp | 23 |
4 files changed, 13 insertions, 20 deletions
diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index bfc280ce6..80fa208fa 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -488,9 +488,7 @@ Effect::processObjects(LpeAction lpe_action) switch (lpe_action){ case LPE_TO_OBJECTS: if (item->isHidden()) { - sp_object_ref(item, 0 ); item->deleteObject(true); - sp_object_unref(item); } else { if (elemnode->attribute("inkscape:path-effect")) { sp_item_list_to_curves(item_list, item_selected, item_to_select); @@ -500,9 +498,7 @@ Effect::processObjects(LpeAction lpe_action) break; case LPE_ERASE: - sp_object_ref(item, 0 ); item->deleteObject(true); - sp_object_unref(item); break; case LPE_VISIBILITY: diff --git a/src/live_effects/lpe-measure-segments.cpp b/src/live_effects/lpe-measure-segments.cpp index cff5aec4b..151403c5c 100644 --- a/src/live_effects/lpe-measure-segments.cpp +++ b/src/live_effects/lpe-measure-segments.cpp @@ -339,9 +339,7 @@ LPEMeasureSegments::createTextLabel(Geom::Point pos, size_t counter, double leng Inkscape::XML::Node *copy = old_repr->duplicate(xml_doc); SPObject * elemref_copy = sp_lpe_item->parent->appendChildRepr(copy); Inkscape::GC::release(copy); - sp_object_ref(elemref, 0 ); elemref->deleteObject(true); - sp_object_unref(elemref); copy->setAttribute("id", id.c_str()); elemref = elemref_copy; } @@ -490,9 +488,7 @@ LPEMeasureSegments::createLine(Geom::Point start,Geom::Point end, Glib::ustring Inkscape::XML::Node *copy = old_repr->duplicate(xml_doc); SPObject * elemref_copy = sp_lpe_item->parent->appendChildRepr(copy); Inkscape::GC::release(copy); - sp_object_ref(elemref, 0 ); elemref->deleteObject(true); - sp_object_unref(elemref); copy->setAttribute("id", id.c_str()); } } diff --git a/src/live_effects/lpe-powermask.cpp b/src/live_effects/lpe-powermask.cpp index 202c97259..577d8a841 100644 --- a/src/live_effects/lpe-powermask.cpp +++ b/src/live_effects/lpe-powermask.cpp @@ -203,9 +203,7 @@ LPEPowerMask::setMask(){ mask->getRepr()->appendChild(mask_node); Inkscape::GC::release(mask_node); } - sp_object_ref(elemref, 0 ); elemref->deleteObject(true); - sp_object_unref(elemref); } // } std::vector<SPObject*> mask_list = mask->childList(true); diff --git a/src/live_effects/lpeobject-reference.cpp b/src/live_effects/lpeobject-reference.cpp index e96054212..1c04c909c 100644 --- a/src/live_effects/lpeobject-reference.cpp +++ b/src/live_effects/lpeobject-reference.cpp @@ -53,12 +53,14 @@ bool LPEObjectReference::_acceptObject(SPObject * const obj) const void LPEObjectReference::link(const char *to) { - if ( to == NULL ) { + if ( to && !to[0] ) { quit_listening(); unlink(); } else { if ( !lpeobject_href || ( strcmp(to, lpeobject_href) != 0 ) ) { - g_free(lpeobject_href); + if (lpeobject_href) { + g_free(lpeobject_href); + } lpeobject_href = g_strdup(to); try { attach(Inkscape::URI(to)); @@ -98,9 +100,6 @@ LPEObjectReference::start_listening(LivePathEffectObject* to) void LPEObjectReference::quit_listening(void) { - if ( lpeobject == NULL ) { - return; - } _modified_connection.disconnect(); _delete_connection.disconnect(); lpeobject_repr = NULL; @@ -122,16 +121,20 @@ lpeobjectreference_href_changed(SPObject */*old_ref*/, SPObject */*ref*/, LPEObj static void lpeobjectreference_delete_self(SPObject */*deleted*/, LPEObjectReference *lpeobjref) { - lpeobjref->quit_listening(); - lpeobjref->unlink(); - if (lpeobjref->user_unlink) - lpeobjref->user_unlink(lpeobjref, lpeobjref->owner); + lpeobjref->quit_listening(); + lpeobjref->unlink(); + if (lpeobjref->user_unlink) { + lpeobjref->user_unlink(lpeobjref, lpeobjref->owner); + } } static void lpeobjectreference_source_modified(SPObject */*iSource*/, guint /*flags*/, LPEObjectReference *lpeobjref) { - lpeobjref->owner->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG); + SPObject *owner_obj = lpeobjref->owner; + if (owner_obj) { + lpeobjref->owner->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG); + } } } //namespace LivePathEffect |
