summaryrefslogtreecommitdiffstats
path: root/src/sp-namedview.cpp
diff options
context:
space:
mode:
authorJohan B. C. Engelen <jbc.engelen@swissonline.ch>2008-01-17 20:50:00 +0000
committerjohanengelen <johanengelen@users.sourceforge.net>2008-01-17 20:50:00 +0000
commit15b8b0b9397cd9eceeb18c87d7ee9616d84179ca (patch)
tree47aaea3400b76765034fa577a3b051c7740936c4 /src/sp-namedview.cpp
parentsorry for this late feature change. this makes the curvestitching *that* much... (diff)
downloadinkscape-15b8b0b9397cd9eceeb18c87d7ee9616d84179ca.tar.gz
inkscape-15b8b0b9397cd9eceeb18c87d7ee9616d84179ca.zip
remove SPDesktop from SPNamedView when it is destroyed. Fixing bug 183621, but another bug is apparently present that causes a bug with similar trigger
(bzr r4540)
Diffstat (limited to 'src/sp-namedview.cpp')
-rw-r--r--src/sp-namedview.cpp15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/sp-namedview.cpp b/src/sp-namedview.cpp
index 481f201cd..d26f00529 100644
--- a/src/sp-namedview.cpp
+++ b/src/sp-namedview.cpp
@@ -281,9 +281,9 @@ static void sp_namedview_release(SPObject *object)
// delete grids:
while ( namedview->grids ) {
- Inkscape::CanvasGrid *gr = (Inkscape::CanvasGrid *)namedview->grids->data;
+ Inkscape::CanvasGrid *gr = (Inkscape::CanvasGrid *)namedview->grids->data; // get first entry
delete gr;
- namedview->grids = g_slist_remove_link(namedview->grids, namedview->grids);
+ namedview->grids = g_slist_remove_link(namedview->grids, namedview->grids); // deletes first entry
}
if (((SPObjectClass *) parent_class)->release) {
@@ -575,6 +575,10 @@ sp_namedview_add_grid(SPNamedView *nv, Inkscape::XML::Node *repr, SPDesktop *des
doc = sp_desktop_document(desktop);
else
doc = sp_desktop_document(static_cast<SPDesktop*>(nv->views->data));
+ if (!doc) {
+ g_warning("sp_namedview_add_grid - how come doc is null here?!");
+ return NULL;
+ }
grid = Inkscape::CanvasGrid::NewGrid(nv, repr, doc, gridtype);
nv->grids = g_slist_append(nv->grids, grid);
//Initialize the snapping parameters for the new grid
@@ -833,13 +837,6 @@ void SPNamedView::hide(SPDesktop const *desktop)
}
views = g_slist_remove(views, desktop);
-
- // delete grids:
- while ( grids ) {
- Inkscape::CanvasGrid *gr = (Inkscape::CanvasGrid *)grids->data;
- delete gr;
- grids = g_slist_remove_link(grids, grids);
- }
}
void SPNamedView::activateGuides(gpointer desktop, gboolean active)