From 99ed7ac08cf00b7feb8fa222e251538620850e1c Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Mon, 17 Oct 2016 17:24:20 -0700 Subject: [PATCH] Fix shutdown crash (hopefully) --- interface/src/ui/overlays/Circle3DOverlay.cpp | 24 ++++++++++--------- interface/src/ui/overlays/Line3DOverlay.cpp | 2 +- .../src/ui/overlays/Rectangle3DOverlay.cpp | 5 +++- 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/interface/src/ui/overlays/Circle3DOverlay.cpp b/interface/src/ui/overlays/Circle3DOverlay.cpp index 65cc1266cf..bea737baa9 100644 --- a/interface/src/ui/overlays/Circle3DOverlay.cpp +++ b/interface/src/ui/overlays/Circle3DOverlay.cpp @@ -45,17 +45,19 @@ Circle3DOverlay::Circle3DOverlay(const Circle3DOverlay* circle3DOverlay) : Circle3DOverlay::~Circle3DOverlay() { auto geometryCache = DependencyManager::get(); - if (_quadVerticesID) { - geometryCache->releaseID(_quadVerticesID); - } - if (_lineVerticesID) { - geometryCache->releaseID(_lineVerticesID); - } - if (_majorTicksVerticesID) { - geometryCache->releaseID(_majorTicksVerticesID); - } - if (_minorTicksVerticesID) { - geometryCache->releaseID(_minorTicksVerticesID); + if (geometryCache) { + if (_quadVerticesID) { + geometryCache->releaseID(_quadVerticesID); + } + if (_lineVerticesID) { + geometryCache->releaseID(_lineVerticesID); + } + if (_majorTicksVerticesID) { + geometryCache->releaseID(_majorTicksVerticesID); + } + if (_minorTicksVerticesID) { + geometryCache->releaseID(_minorTicksVerticesID); + } } qDebug() << "Destroying circle3d overlay"; } diff --git a/interface/src/ui/overlays/Line3DOverlay.cpp b/interface/src/ui/overlays/Line3DOverlay.cpp index 7e523d27bd..795faa2748 100644 --- a/interface/src/ui/overlays/Line3DOverlay.cpp +++ b/interface/src/ui/overlays/Line3DOverlay.cpp @@ -34,7 +34,7 @@ Line3DOverlay::Line3DOverlay(const Line3DOverlay* line3DOverlay) : Line3DOverlay::~Line3DOverlay() { qDebug() << "Destryoing line3D overlay"; auto geometryCache = DependencyManager::get(); - if (_geometryCacheID) { + if (_geometryCacheID && geometryCache) { geometryCache->releaseID(_geometryCacheID); } } diff --git a/interface/src/ui/overlays/Rectangle3DOverlay.cpp b/interface/src/ui/overlays/Rectangle3DOverlay.cpp index 52d270134b..82ad36defd 100644 --- a/interface/src/ui/overlays/Rectangle3DOverlay.cpp +++ b/interface/src/ui/overlays/Rectangle3DOverlay.cpp @@ -19,17 +19,20 @@ QString const Rectangle3DOverlay::TYPE = "rectangle3d"; Rectangle3DOverlay::Rectangle3DOverlay() : _geometryCacheID(DependencyManager::get()->allocateID()) { + qDebug() << "Building rect3d overlay"; } Rectangle3DOverlay::Rectangle3DOverlay(const Rectangle3DOverlay* rectangle3DOverlay) : Planar3DOverlay(rectangle3DOverlay), _geometryCacheID(DependencyManager::get()->allocateID()) { + qDebug() << "Building rect3d overlay"; } Rectangle3DOverlay::~Rectangle3DOverlay() { + qDebug() << "Destryoing rect3d overlay"; auto geometryCache = DependencyManager::get(); - if (_geometryCacheID) { + if (_geometryCacheID && geometryCache) { geometryCache->releaseID(_geometryCacheID); } }