freebsd-ports/graphics/inkscape/files/patch-src_document-subset.cpp
Jeremy Messenger af6ca49172 Fix an infinite loop when opening a file. Bump the PORTREVISION.
PR:		ports/142903
Submitted by:	Thinker K.F. Li <thinker@branda.to>
2010-03-18 01:53:51 +00:00

25 lines
815 B
C++

--- 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);
}