-//class definition of SnapshotStack.....
-//declaration of constructor....
-SnapshotStack::SnapshotStack(){
- SnapshotGlobalSegments();
- stack=NULL;
+/** This method returns to the last snapshot before the inputted
+ * sequence number. This function must be called from the model
+ * checking thread and not from a snapshotted stack.
+ * @param seqindex is the sequence number to rollback before.
+ * @return is the sequence number we actually rolled back to.
+ */
+int SnapshotStack::backTrackBeforeStep(int seqindex)
+{
+ int i;
+ for (i = (int)stack.size() - 1; i >= 0; i++)
+ if (stack[i].index <= seqindex)
+ break;
+ else
+ stack.pop_back();
+
+ ASSERT(i >= 0);
+ snapshot_roll_back(stack[i].snapshotid);
+ return stack[i].index;