diff --git a/ReactCommon/fabric/mounting/Differentiator.cpp b/ReactCommon/fabric/mounting/Differentiator.cpp index 05e1cd8f5f4..4d327419224 100644 --- a/ReactCommon/fabric/mounting/Differentiator.cpp +++ b/ReactCommon/fabric/mounting/Differentiator.cpp @@ -45,11 +45,11 @@ class TinyMap final { using Iterator = Pair *; inline Iterator begin() { - return (Pair *)vector_; + return &vector_.front(); } inline Iterator end() { - return nullptr; + return &vector_.back() + 1; } inline Iterator find(KeyT key) { @@ -68,11 +68,8 @@ class TinyMap final { } inline void erase(Iterator iterator) { - static_assert( - std::is_same::value, - "The collection is designed to store only `Tag`s as keys."); - // Zero is a invalid tag. - iterator->first = 0; + *iterator = vector_.at(vector_.size() - 1); + vector_.pop_back(); } private: