From 52162e0c7a92381b5efa5c4dfcd74b67bf3f0517 Mon Sep 17 00:00:00 2001 From: epoupon Date: Wed, 30 Sep 2015 13:59:31 +0200 Subject: [PATCH] [UI] Prevent a crash in the cover resource --- src/ui/resource/CoverResource.cpp | 5 +++-- src/ui/resource/CoverResource.hpp | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ui/resource/CoverResource.cpp b/src/ui/resource/CoverResource.cpp index 6090b91f..885ad94b 100644 --- a/src/ui/resource/CoverResource.cpp +++ b/src/ui/resource/CoverResource.cpp @@ -41,9 +41,11 @@ CoverResource:: ~CoverResource() beingDeleted(); } -const Image::Image& +Image::Image CoverResource::getDefaultCover(std::size_t size) { + std::unique_lock lock(_mutex); + auto itCover = _defaultCovers.find(size); if (itCover == _defaultCovers.end()) { @@ -163,7 +165,6 @@ CoverResource::handleRequest(const Wt::Http::Request& request, Wt::Http::Respons // If no cover found, just send default one putCover(response, getDefaultCover(size)); - } catch (std::invalid_argument& e) { diff --git a/src/ui/resource/CoverResource.hpp b/src/ui/resource/CoverResource.hpp index 07ce6918..82fad5d4 100644 --- a/src/ui/resource/CoverResource.hpp +++ b/src/ui/resource/CoverResource.hpp @@ -47,7 +47,7 @@ class CoverResource : public Wt::WResource private: - const Image::Image& getDefaultCover(std::size_t size); + Image::Image getDefaultCover(std::size_t size); void putCover(Wt::Http::Response& response, Image::Image image); std::mutex _mutex;