1.1 --- a/include/fsserver/accessor.h Sun Aug 16 19:22:29 2020 +0200
1.2 +++ b/include/fsserver/accessor.h Sun Aug 16 19:33:02 2020 +0200
1.3 @@ -201,7 +201,7 @@
1.4
1.5 void insert(Flexpage *flexpage);
1.6
1.7 - void remove(Flexpage *flexpage);
1.8 + bool remove(Flexpage *flexpage);
1.9
1.10 void purge(PagingAccessor *accessor, Pages *pages);
1.11 };
2.1 --- a/lib/src/accessor.cc Sun Aug 16 19:22:29 2020 +0200
2.2 +++ b/lib/src/accessor.cc Sun Aug 16 19:33:02 2020 +0200
2.3 @@ -150,13 +150,17 @@
2.4
2.5 /* Remove the given flexpage from the collection, flushing its data. */
2.6
2.7 -void AccessMap::remove(Flexpage *flexpage)
2.8 +bool AccessMap::remove(Flexpage *flexpage)
2.9 {
2.10 + if (find(flexpage->get_data_start()) == NULL)
2.11 + return false;
2.12 +
2.13 lock_map();
2.14
2.15 _map.erase(flexpage->get_data_start());
2.16
2.17 unlock_map();
2.18 + return true;
2.19 }
2.20
2.21 /* Purge all flexpages from the collection, flushing their data. */
2.22 @@ -294,8 +298,8 @@
2.23
2.24 void PagingAccessor::remove_flexpage(Flexpage *flexpage)
2.25 {
2.26 - _map.remove(flexpage);
2.27 - flush_flexpage(flexpage, false, true);
2.28 + if (_map.remove(flexpage))
2.29 + flush_flexpage(flexpage, false, true);
2.30 }
2.31
2.32