The original code is somewhat badly commented, and is therefore difficult to navigate. In the initial phase I attempted to understand the code and identify the places where changes need to be made. Though this took an inordinate amount of time, it was worth the effort in the end, as I could identify all the relevant places to make changes without messing up the original code. Also this gave me an insight into the code which I would not have if I did pattern match type of modification. During this phase all sections of the code which were explored were commented. Comments were updated or marked with a `?' to denote speculative explanations. Any code change was explicitly demarcated within commented tags. Code replacements were identified in a similar manner.
//<codeChange> //<newCode> // Now this node has data, and is acting as a regular node, // so we should set its start value new_tail->numAggregated = 1; //</newCode> //</codeChange>
Above is a sample of a code change which was made. This is when the replay_op passed to the compress_node function is added to the rsd_queue after encapsulating in an rsd_node. This allowed easy tracing of code changes. Though the total amount of code added was very little, this technique for identifying code modification was very helpful.