Patent ID: 7904418

Claim:
A computer-implemented method, executed at least in part in a computing device, for incrementally updating an auxiliary data structure associated with a primary data structure, the computer-implemented method comprising: in response to a change in the primary data structure, adding a change description associated with the change to an edit list, the change description comprising at least one of the following: a body change that requires a recalculation of the auxiliary data structure, text added, wherein at least one of the following is specified: a first starting character index position for the text added and a number of added characters, text removed, wherein at least one of the following is specified: a second starting character index position for the text removed and a number of removed characters, and a text format change that specifies a third starting character position and a number of formatted characters; incrementing, by the computing device, a primary version stamp for the primary data structure for each added change description in the edit list; when prompted to update the auxiliary data structure, determining whether the primary version stamp for the primary data structure matches an auxiliary version stamp for the auxiliary data structure; when the primary version stamp and the auxiliary version stamp are different, scanning the edit list to detect a matching version stamp for the primary data structure that matches the auxiliary version stamp for the auxiliary data structure; and implementing, incrementally, in the auxiliary data store, each change description added to the edit list after a matching change description corresponding to the matching version stamp was added to the edit list, wherein implementing, incrementally, each change description added to the edit list after the matching change description corresponding to the matching version stamp was added to the edit list comprises: implementing, in the auxiliary data structure, a change description added to the edit list immediately after the matching change description corresponding to the matching version stamp was added to the edit list, incrementing the auxiliary version stamp to account for the change description implemented in the auxiliary data structure, determining whether the primary version stamp matches the incremented auxiliary version stamp, and when it is determined that the primary version stamp and the incremented auxiliary version stamp are different: incrementing the matching version stamp, and repeating the stage of implementing, incrementally, in the auxiliary data store, each change description added to the edit list until it is determined, in the stage of determining whether the primary version stamp matches the incremented auxiliary version stamp, that the incremented auxiliary version stamp matches the primary version stamp.