for (int i = statements.size() - 1; i >= 0; i--) {
MemStatement st = statements.get(i);
if (st.getTillSnapshot() <= currentSnapshot) {
// stale statement
st.removeFromComponentLists();
statements.remove(i);
}
else {
// Reset snapshot
st.setSinceSnapshot(1);