From ba09292a918d0a65f9d1b9eb05e324c5d8aa041e Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=A9mie=20Laval?= Date: Wed, 19 Dec 2012 18:36:49 +0100 Subject: [PATCH] [monkeydoc] When encountering an old tree, we force nodes to be re-sorted as they are instantiated to make sure the later match machinery works. --- mcs/tools/monkeydoc/MonkeyDoc/Node.cs | 5 ++++- mcs/tools/monkeydoc/MonkeyDoc/Tree.cs | 8 ++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/mcs/tools/monkeydoc/MonkeyDoc/Node.cs b/mcs/tools/monkeydoc/MonkeyDoc/Node.cs index 8d9bd1ea25a..1320c98b283 100644 --- a/mcs/tools/monkeydoc/MonkeyDoc/Node.cs +++ b/mcs/tools/monkeydoc/MonkeyDoc/Node.cs @@ -236,10 +236,13 @@ namespace MonkeyDoc nodes = new List (count); for (int i = 0; i < count; i++) { int child_address = DecodeInt (reader); - + Node t = new Node (this, -child_address); nodes.Add (t); } + + if (tree.ForceResort) + nodes.Sort (); } internal void Serialize (FileStream output, BinaryWriter writer) diff --git a/mcs/tools/monkeydoc/MonkeyDoc/Tree.cs b/mcs/tools/monkeydoc/MonkeyDoc/Tree.cs index b62caa02f3e..6c57c83338b 100644 --- a/mcs/tools/monkeydoc/MonkeyDoc/Tree.cs +++ b/mcs/tools/monkeydoc/MonkeyDoc/Tree.cs @@ -124,6 +124,14 @@ namespace MonkeyDoc InputStream.Position = address; baseNode.Deserialize (InputReader); } + + // Nodes use this value to know if they should manually re-sort their child + // if they come from an older generator version + internal bool ForceResort { + get { + return VersionNumber == 0; + } + } } public static class TreeDumper -- 2.25.1