root.PopSensitive (from, to);
else
root.Pop (from, to);
+ root = (MInterval) p.Val;
+ if (M17n.debug)
+ DumpPropNested ();
root.MergeAfterChange (from, to);
root.Balance ();
}
/// intervals are mergeable.
private static void combine (MInterval head, MInterval tail)
{
- M17n.DebugPrint ("merging "); head.DumpOne (true, false);
+ M17n.DebugPrint ("combining "); head.DumpOne (true, false);
M17n.DebugPrint (" through "); tail.DumpOne (true, false);
int from = head.From;
else
prev = prev.Parent;
}
+ root.update_from_to ();
}
if (root.To < to)
{
else
next = next.Parent;
}
+ root.update_from_to ();
}
}
{
if (head != tail)
combine (head, tail);
+ i.update_from_to ();
head = i;
}
tail = i;
Random r = new Random (int.Parse (args[0]));
int check = (args.Length > 1 ? int.Parse (args[1]) : 0xFFFFFFF);
- for (int loop = 0; loop < 100000; loop++)
+ for (int loop = 0; loop < 1000000; loop++)
{
Console.WriteLine ("--- loop = {0} ---\n", loop);
if (loop >= check)