diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2015-05-05 13:34:06 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2015-05-05 13:34:46 -0700 |
commit | a7df0781f823606ac439ba0e2769abac5f82c421 (patch) | |
tree | aef62ade10298a7221d316a883c31585d430f703 | |
parent | eeb27dba1bceb0d5dc7a47d5870ff15722893bec (diff) | |
download | qtlocation-mapboxgl-a7df0781f823606ac439ba0e2769abac5f82c421.tar.gz |
Don't crash if ResourceLoader::_sprite is null
-rw-r--r-- | src/mbgl/map/resource_loader.cpp | 4 | ||||
-rw-r--r-- | test/miscellaneous/map.cpp | 22 | ||||
-rw-r--r-- | test/test.gypi | 1 |
3 files changed, 26 insertions, 1 deletions
diff --git a/src/mbgl/map/resource_loader.cpp b/src/mbgl/map/resource_loader.cpp index b3aa35b74a..fba61cc649 100644 --- a/src/mbgl/map/resource_loader.cpp +++ b/src/mbgl/map/resource_loader.cpp @@ -22,7 +22,9 @@ ResourceLoader::~ResourceLoader() { source->setObserver(nullptr); } - sprite_->setObserver(nullptr); + if (sprite_) { + sprite_->setObserver(nullptr); + } } void ResourceLoader::setObserver(Observer* observer) { diff --git a/test/miscellaneous/map.cpp b/test/miscellaneous/map.cpp new file mode 100644 index 0000000000..5834addb7b --- /dev/null +++ b/test/miscellaneous/map.cpp @@ -0,0 +1,22 @@ +#include "../fixtures/util.hpp" + +#include <mbgl/util/run_loop.hpp> +#include <mbgl/map/map_data.hpp> +#include <mbgl/map/map_context.hpp> +#include <mbgl/platform/default/headless_view.hpp> +#include <mbgl/platform/default/headless_display.hpp> +#include <mbgl/storage/default_file_source.hpp> + +using namespace mbgl; + +TEST(MapContext, DoubleStyleLoad) { + util::RunLoop runLoop(uv_default_loop()); + std::shared_ptr<HeadlessDisplay> display = std::make_shared<HeadlessDisplay>(); + HeadlessView view(display, 512, 512, 1); + DefaultFileSource fileSource(nullptr); + MapData data(view, MapMode::Continuous); + MapContext context(uv_default_loop(), view, fileSource, data, false); + + context.setStyleJSON("", ""); + context.setStyleJSON("", ""); +} diff --git a/test/test.gypi b/test/test.gypi index 1c81b76c76..d438a88bfc 100644 --- a/test/test.gypi +++ b/test/test.gypi @@ -43,6 +43,7 @@ 'miscellaneous/comparisons.cpp', 'miscellaneous/enums.cpp', 'miscellaneous/functions.cpp', + 'miscellaneous/map.cpp', 'miscellaneous/mapbox.cpp', 'miscellaneous/merge_lines.cpp', 'miscellaneous/rotation_range.cpp', |