diff --git a/scwx-qt/source/scwx/qt/map/layer_wrapper.cpp b/scwx-qt/source/scwx/qt/map/layer_wrapper.cpp index 2e66f8d7..88fc7df9 100644 --- a/scwx-qt/source/scwx/qt/map/layer_wrapper.cpp +++ b/scwx-qt/source/scwx/qt/map/layer_wrapper.cpp @@ -31,17 +31,31 @@ LayerWrapper& LayerWrapper::operator=(LayerWrapper&&) noexcept = default; void LayerWrapper::initialize() { - p->layer_->Initialize(); + auto& layer = p->layer_; + if (layer != nullptr) + { + layer->Initialize(); + } } void LayerWrapper::render(const QMapLibre::CustomLayerRenderParameters& params) { - p->layer_->Render(params); + auto& layer = p->layer_; + if (layer != nullptr) + { + layer->Render(params); + } } void LayerWrapper::deinitialize() { - p->layer_->Deinitialize(); + // Ensure layers are not retained after call to deinitialize + auto& layer = p->layer_; + if (layer != nullptr) + { + layer->Deinitialize(); + layer = nullptr; + } } } // namespace map