summaryrefslogtreecommitdiffstats
path: root/src/canvas-base.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-01-11 03:49:32 +0000
committerDavid Robillard <d@drobilla.net>2012-01-11 03:49:32 +0000
commit5efc7ae9c304d7e01cc00291e0857ced7d3582ba (patch)
tree95952f5f1e49a3c6190291add106e96d90a11c86 /src/canvas-base.c
parentb666782d06fc2cd9fe810b3fdbf13cc3949f6927 (diff)
downloadganv-5efc7ae9c304d7e01cc00291e0857ced7d3582ba.tar.gz
ganv-5efc7ae9c304d7e01cc00291e0857ced7d3582ba.tar.bz2
ganv-5efc7ae9c304d7e01cc00291e0857ced7d3582ba.zip
Fix crash on shutdown and item deletion.
Use Item add and remove virtual methods for adding/removing ports instead of special explicit functions. git-svn-id: http://svn.drobilla.net/lad/trunk/ganv@3933 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/canvas-base.c')
-rw-r--r--src/canvas-base.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/canvas-base.c b/src/canvas-base.c
index 50a1027..04dfaa3 100644
--- a/src/canvas-base.c
+++ b/src/canvas-base.c
@@ -269,7 +269,11 @@ ganv_item_dispose(GObject* object)
}
if (item->parent) {
- GANV_ITEM_GET_CLASS(item->parent)->remove(item->parent, item);
+ if (GANV_ITEM_GET_CLASS(item->parent)->remove) {
+ GANV_ITEM_GET_CLASS(item->parent)->remove(item->parent, item);
+ } else {
+ fprintf(stderr, "warning: Item parent has no remove method\n");
+ }
}
G_OBJECT_CLASS(item_parent_class)->dispose(object);