The cached m_lastReadNumEntries is not read anywhere. The next time getNumEntries() is called, it'll deserialize it again, isn't it?