From 73ab73b08eb3f5523d05a3a0dd55701a19168498 Mon Sep 17 00:00:00 2001 From: nyamatongwe Date: Thu, 10 Feb 2011 23:28:29 +1100 Subject: Only append a state if the value differs from the last current value. --- lexlib/SparseState.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'lexlib/SparseState.h') diff --git a/lexlib/SparseState.h b/lexlib/SparseState.h index 39b6e605a..953800a44 100644 --- a/lexlib/SparseState.h +++ b/lexlib/SparseState.h @@ -30,7 +30,9 @@ class SparseState { public: void Set(int position, T value) { Delete(position); - states.push_back(State(position, value)); + if ((states.size() == 0) || (value != states[states.size()-1].value)) { + states.push_back(State(position, value)); + } } T ValueAt(int position) { if (!states.size()) -- cgit v1.2.3