aboutsummaryrefslogtreecommitdiffstats
path: root/graphics/inkscape
diff options
context:
space:
mode:
authormezz <mezz@FreeBSD.org>2010-03-18 09:53:51 +0800
committermezz <mezz@FreeBSD.org>2010-03-18 09:53:51 +0800
commit533202afbfdc96b106fe06759d54790d55dd226d (patch)
tree5fc67d285f40ae6cb550cc1dbff7e470a2ebee59 /graphics/inkscape
parent288ff418e317c245897c0a20d9a08f5c8ec900a3 (diff)
downloadfreebsd-ports-gnome-533202afbfdc96b106fe06759d54790d55dd226d.tar.gz
freebsd-ports-gnome-533202afbfdc96b106fe06759d54790d55dd226d.tar.zst
freebsd-ports-gnome-533202afbfdc96b106fe06759d54790d55dd226d.zip
Fix an infinite loop when opening a file. Bump the PORTREVISION.
PR: ports/142903 Submitted by: Thinker K.F. Li <thinker@branda.to>
Diffstat (limited to 'graphics/inkscape')
-rw-r--r--graphics/inkscape/Makefile2
-rw-r--r--graphics/inkscape/files/patch-src_document-subset.cpp25
2 files changed, 26 insertions, 1 deletions
diff --git a/graphics/inkscape/Makefile b/graphics/inkscape/Makefile
index 2dc15b0593b6..5297ebbb08db 100644
--- a/graphics/inkscape/Makefile
+++ b/graphics/inkscape/Makefile
@@ -7,7 +7,7 @@
PORTNAME= inkscape
PORTVERSION= 0.47
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= graphics gnome
MASTER_SITES= SF
diff --git a/graphics/inkscape/files/patch-src_document-subset.cpp b/graphics/inkscape/files/patch-src_document-subset.cpp
new file mode 100644
index 000000000000..6f09418b24da
--- /dev/null
+++ b/graphics/inkscape/files/patch-src_document-subset.cpp
@@ -0,0 +1,25 @@
+--- src/document-subset.cpp.orig 2010-01-17 13:47:18.000000000 +0800
++++ src/document-subset.cpp 2010-01-17 13:49:59.000000000 +0800
+@@ -184,9 +184,6 @@
+
+ void _doRemove(SPObject *obj) {
+ Record &record=records[obj];
+- record.release_connection.disconnect();
+- record.position_changed_connection.disconnect();
+- records.erase(obj);
+
+ if ( record.parent == NULL ) {
+ Record &root = records[NULL];
+@@ -198,6 +195,12 @@
+ }
+ }
+
++ /* Record must be ereased after removing from root, or
++ * content of record would be invalided. */
++ record.release_connection.disconnect();
++ record.position_changed_connection.disconnect();
++ records.erase(obj);
++
+ removed_signal.emit(obj);
+ sp_object_unref(obj);
+ }