forked from Lainports/freebsd-ports
25 lines
815 B
C++
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);
|
|
}
|