From 1ccf715e3b8a4378926c423166772e53aeab9177 Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Tue, 14 Mar 2017 09:09:14 -0700 Subject: [PATCH] Don't crash when failing to convert a texture to KTX format --- .../src/model-networking/TextureCache.cpp | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/libraries/model-networking/src/model-networking/TextureCache.cpp b/libraries/model-networking/src/model-networking/TextureCache.cpp index b9977e33d8..386e9239a4 100644 --- a/libraries/model-networking/src/model-networking/TextureCache.cpp +++ b/libraries/model-networking/src/model-networking/TextureCache.cpp @@ -526,16 +526,20 @@ void ImageReader::read() { // Save the image into a KTXFile auto ktx = gpu::Texture::serialize(*texture); - const char* data = reinterpret_cast(ktx->_storage->data()); - size_t length = ktx->_storage->size(); - KTXFilePointer file; - auto& ktxCache = DependencyManager::get()->_ktxCache; - if (!ktx || !(file = ktxCache.writeFile(data, KTXCache::Metadata(_hash, length)))) { - qCWarning(modelnetworking) << _url << "file cache failed"; + if (ktx) { + const char* data = reinterpret_cast(ktx->_storage->data()); + size_t length = ktx->_storage->size(); + KTXFilePointer file; + auto& ktxCache = DependencyManager::get()->_ktxCache; + if (!ktx || !(file = ktxCache.writeFile(data, KTXCache::Metadata(_hash, length)))) { + qCWarning(modelnetworking) << _url << "file cache failed"; + } else { + resource.staticCast()->_file = file; + auto ktx = file->getKTX(); + texture->setKtxBacking(ktx); + } } else { - resource.staticCast()->_file = file; - auto ktx = file->getKTX(); - texture->setKtxBacking(ktx); + qCWarning(modelnetworking) << "Unable to serialize texture to KTX " << _url; } }