Index: cc/base/sidecar_list_container.h |
diff --git a/cc/base/sidecar_list_container.h b/cc/base/sidecar_list_container.h |
index 52deaf4b0a47f11b3eeabaa780bb1ee2bcded359..842795fad1b3a94d2ea644a89c6fbd99301e5e4e 100644 |
--- a/cc/base/sidecar_list_container.h |
+++ b/cc/base/sidecar_list_container.h |
@@ -29,6 +29,10 @@ class SidecarListContainer { |
using SidecarDestroyer = void (*)(void* sidecar); |
using Iterator = typename ListContainer<BaseElementType>::Iterator; |
using ConstIterator = typename ListContainer<BaseElementType>::ConstIterator; |
+ using ReverseIterator = |
+ typename ListContainer<BaseElementType>::ReverseIterator; |
+ using ConstReverseIterator = |
+ typename ListContainer<BaseElementType>::ConstReverseIterator; |
explicit SidecarListContainer(size_t max_size_for_derived_class, |
size_t max_size_for_sidecar, |
@@ -60,6 +64,11 @@ class SidecarListContainer { |
list_.clear(); |
} |
+ void RemoveLast() { |
+ destroyer_(GetSidecar(*list_.rbegin())); |
+ list_.RemoveLast(); |
+ } |
+ |
// This permits a client to exchange a pointer to an element to a pointer to |
// its corresponding sidecar. |
void* GetSidecar(BaseElementType* element) { |