X-Git-Url: http://pileus.org/git/?p=grits;a=blobdiff_plain;f=src%2Fplugins%2Felev.c;fp=src%2Fplugins%2Felev.c;h=e99b32633971981a5a406011455990c073110e78;hp=251ec74471ea0808c4f0cf2dc9d893d470fd3425;hb=032ddbf6f1d5abbfc96e236e3a9f22b867f009f1;hpb=fe2cf40af8380d32d65479f0c97545c42ab9241c diff --git a/src/plugins/elev.c b/src/plugins/elev.c index 251ec74..e99b326 100644 --- a/src/plugins/elev.c +++ b/src/plugins/elev.c @@ -336,9 +336,11 @@ static void grits_plugin_elev_dispose(GObject *gobject) g_debug("GritsPluginElev: dispose"); GritsPluginElev *elev = GRITS_PLUGIN_ELEV(gobject); /* Drop references */ - if (LOAD_BIL) - grits_viewer_clear_height_func(elev->viewer); if (elev->viewer) { + if (LOAD_BIL) + grits_viewer_clear_height_func(elev->viewer); + if (LOAD_OPENGL) + grits_viewer_remove(elev->viewer, elev->tiles); g_signal_handler_disconnect(elev->viewer, elev->sigid); g_object_unref(elev->viewer); elev->viewer = NULL; @@ -352,6 +354,8 @@ static void grits_plugin_elev_finalize(GObject *gobject) /* Free data */ grits_tile_free(elev->tiles, _free_tile, elev); grits_wms_free(elev->wms); + g_mutex_lock(elev->mutex); + g_mutex_unlock(elev->mutex); g_mutex_free(elev->mutex); G_OBJECT_CLASS(grits_plugin_elev_parent_class)->finalize(gobject);