summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2015-05-05 13:34:06 -0700
committerJohn Firebaugh <john.firebaugh@gmail.com>2015-05-05 13:34:46 -0700
commita7df0781f823606ac439ba0e2769abac5f82c421 (patch)
treeaef62ade10298a7221d316a883c31585d430f703
parenteeb27dba1bceb0d5dc7a47d5870ff15722893bec (diff)
downloadqtlocation-mapboxgl-a7df0781f823606ac439ba0e2769abac5f82c421.tar.gz
Don't crash if ResourceLoader::_sprite is null
-rw-r--r--src/mbgl/map/resource_loader.cpp4
-rw-r--r--test/miscellaneous/map.cpp22
-rw-r--r--test/test.gypi1
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',