diff --git a/src/mbgl/map/resource_loader.cpp b/src/mbgl/map/resource_loader.cpp index b3aa35b74..fba61cc64 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 000000000..5834addb7 --- /dev/null +++ b/test/miscellaneous/map.cpp @@ -0,0 +1,22 @@ +#include "../fixtures/util.hpp" + +#include +#include +#include +#include +#include +#include + +using namespace mbgl; + +TEST(MapContext, DoubleStyleLoad) { + util::RunLoop runLoop(uv_default_loop()); + std::shared_ptr display = std::make_shared(); + 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 1c81b76c7..d438a88bf 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',