diff --git a/aegisub/src/video_provider_cache.cpp b/aegisub/src/video_provider_cache.cpp index 14b8ac5e0..5779b4a2d 100644 --- a/aegisub/src/video_provider_cache.cpp +++ b/aegisub/src/video_provider_cache.cpp @@ -60,7 +60,15 @@ std::shared_ptr VideoProviderCache::GetFrame(int n) { for (auto cur = cache.begin(); cur != cache.end(); ++cur) { if (cur->frame_number == n) { +#if BOOST_VERSION <= 105200 + // Until boost 1.52, boost::container::list incorrectly asserted + // that this != &other, so do an extra splice through an empty list + decltype(cache) temp; + temp.splice(temp.begin(), cache, cur); + cache.splice(cache.begin(), temp, temp.begin()); +#else cache.splice(cache.begin(), cache, cur); // Move to front +#endif return std::make_shared(cache.front()); }