From 17617a54bdcd2c51f7b28cbde18655a2e62f63e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20Ka=CC=88fer?= Date: Tue, 5 Aug 2014 11:56:28 +0200 Subject: [PATCH] make sure to check the promise --- src/map/sprite.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/map/sprite.cpp b/src/map/sprite.cpp index 1cbc220ac..68453de52 100644 --- a/src/map/sprite.cpp +++ b/src/map/sprite.cpp @@ -67,7 +67,9 @@ void Sprite::load() { sprite->complete(); } else { Log::Warning(Event::Sprite, "Failed to load sprite info: Error %d: %s", res->code, res->error_message.c_str()); - sprite->promise.set_exception(std::make_exception_ptr(std::runtime_error(res->error_message))); + if (!sprite->future.valid()) { + sprite->promise.set_exception(std::make_exception_ptr(std::runtime_error(res->error_message))); + } } }); @@ -78,7 +80,9 @@ void Sprite::load() { sprite->complete(); } else { Log::Warning(Event::Sprite, "Failed to load sprite image: Error %d: %s", res->code, res->error_message.c_str()); - sprite->promise.set_exception(std::make_exception_ptr(std::runtime_error(res->error_message))); + if (!sprite->future.valid()) { + sprite->promise.set_exception(std::make_exception_ptr(std::runtime_error(res->error_message))); + } } }); }