summaryrefslogtreecommitdiffstats
path: root/src/live_effects
diff options
context:
space:
mode:
Diffstat (limited to 'src/live_effects')
-rw-r--r--src/live_effects/effect.cpp4
-rw-r--r--src/live_effects/lpe-measure-segments.cpp4
-rw-r--r--src/live_effects/lpe-powermask.cpp2
-rw-r--r--src/live_effects/lpeobject-reference.cpp23
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