Fix shutdown crash (hopefully)

This commit is contained in:
Brad Davis 2016-10-17 17:24:20 -07:00
parent dde79ef3c5
commit 99ed7ac08c
3 changed files with 18 additions and 13 deletions

View file

@ -45,17 +45,19 @@ Circle3DOverlay::Circle3DOverlay(const Circle3DOverlay* circle3DOverlay) :
Circle3DOverlay::~Circle3DOverlay() { Circle3DOverlay::~Circle3DOverlay() {
auto geometryCache = DependencyManager::get<GeometryCache>(); auto geometryCache = DependencyManager::get<GeometryCache>();
if (_quadVerticesID) { if (geometryCache) {
geometryCache->releaseID(_quadVerticesID); if (_quadVerticesID) {
} geometryCache->releaseID(_quadVerticesID);
if (_lineVerticesID) { }
geometryCache->releaseID(_lineVerticesID); if (_lineVerticesID) {
} geometryCache->releaseID(_lineVerticesID);
if (_majorTicksVerticesID) { }
geometryCache->releaseID(_majorTicksVerticesID); if (_majorTicksVerticesID) {
} geometryCache->releaseID(_majorTicksVerticesID);
if (_minorTicksVerticesID) { }
geometryCache->releaseID(_minorTicksVerticesID); if (_minorTicksVerticesID) {
geometryCache->releaseID(_minorTicksVerticesID);
}
} }
qDebug() << "Destroying circle3d overlay"; qDebug() << "Destroying circle3d overlay";
} }

View file

@ -34,7 +34,7 @@ Line3DOverlay::Line3DOverlay(const Line3DOverlay* line3DOverlay) :
Line3DOverlay::~Line3DOverlay() { Line3DOverlay::~Line3DOverlay() {
qDebug() << "Destryoing line3D overlay"; qDebug() << "Destryoing line3D overlay";
auto geometryCache = DependencyManager::get<GeometryCache>(); auto geometryCache = DependencyManager::get<GeometryCache>();
if (_geometryCacheID) { if (_geometryCacheID && geometryCache) {
geometryCache->releaseID(_geometryCacheID); geometryCache->releaseID(_geometryCacheID);
} }
} }

View file

@ -19,17 +19,20 @@ QString const Rectangle3DOverlay::TYPE = "rectangle3d";
Rectangle3DOverlay::Rectangle3DOverlay() : Rectangle3DOverlay::Rectangle3DOverlay() :
_geometryCacheID(DependencyManager::get<GeometryCache>()->allocateID()) _geometryCacheID(DependencyManager::get<GeometryCache>()->allocateID())
{ {
qDebug() << "Building rect3d overlay";
} }
Rectangle3DOverlay::Rectangle3DOverlay(const Rectangle3DOverlay* rectangle3DOverlay) : Rectangle3DOverlay::Rectangle3DOverlay(const Rectangle3DOverlay* rectangle3DOverlay) :
Planar3DOverlay(rectangle3DOverlay), Planar3DOverlay(rectangle3DOverlay),
_geometryCacheID(DependencyManager::get<GeometryCache>()->allocateID()) _geometryCacheID(DependencyManager::get<GeometryCache>()->allocateID())
{ {
qDebug() << "Building rect3d overlay";
} }
Rectangle3DOverlay::~Rectangle3DOverlay() { Rectangle3DOverlay::~Rectangle3DOverlay() {
qDebug() << "Destryoing rect3d overlay";
auto geometryCache = DependencyManager::get<GeometryCache>(); auto geometryCache = DependencyManager::get<GeometryCache>();
if (_geometryCacheID) { if (_geometryCacheID && geometryCache) {
geometryCache->releaseID(_geometryCacheID); geometryCache->releaseID(_geometryCacheID);
} }
} }