From 61c45d91d6369511411f8f0828f2d27e00feeeae Mon Sep 17 00:00:00 2001 From: Raja R Harinath Date: Wed, 19 Aug 2009 20:41:51 +0000 Subject: [PATCH] Minor code re-organization * Regex.cs (group_numbers): New. (GetGroupNumbers): Move array initialization ... (GroupNumbers): ... to new on-demand initializer. svn path=/trunk/mcs/; revision=140287 --- .../System.Text.RegularExpressions/ChangeLog | 6 +++++ .../System.Text.RegularExpressions/Regex.cs | 25 +++++++++++++------ 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/mcs/class/System/System.Text.RegularExpressions/ChangeLog b/mcs/class/System/System.Text.RegularExpressions/ChangeLog index 89fb1dbaf6b..708ca8c6697 100644 --- a/mcs/class/System/System.Text.RegularExpressions/ChangeLog +++ b/mcs/class/System/System.Text.RegularExpressions/ChangeLog @@ -1,3 +1,9 @@ +2009-08-19 Raja R Harinath + + * Regex.cs (group_numbers): New. + (GetGroupNumbers): Move array initialization ... + (GroupNumbers): ... to new on-demand initializer. + 2009-08-19 Raja R Harinath * Regex.cs (group_names): Rename from _groupNumbersToNameMap. diff --git a/mcs/class/System/System.Text.RegularExpressions/Regex.cs b/mcs/class/System/System.Text.RegularExpressions/Regex.cs index 9ee0d3a6cb0..8cad895fbf1 100644 --- a/mcs/class/System/System.Text.RegularExpressions/Regex.cs +++ b/mcs/class/System/System.Text.RegularExpressions/Regex.cs @@ -306,12 +306,10 @@ namespace System.Text.RegularExpressions { return names; } - public int[] GetGroupNumbers () + public int [] GetGroupNumbers () { - int[] numbers = new int [1 + group_count]; - for (int i = 0; i <= group_count; ++i) - numbers [i] = i; - // FIXME: needs to handle arbitrarily numbered groups '(?<43>abc)' + int [] numbers = new int [1 + group_count]; + Array.Copy (GroupNumbers, numbers, 1 + group_count); return numbers; } @@ -509,13 +507,26 @@ namespace System.Text.RegularExpressions { group_names [(int) de.Value] = (string) de.Key; return group_names; } - + + private int [] GroupNumbers { + get { + if (group_numbers == null) { + group_numbers = new int [1 + group_count]; + for (int i = 0; i <= group_count; ++i) + group_numbers [i] = i; + // FIXME: needs to handle arbitrarily numbered groups '(?<43>abc)' + return group_numbers; + } + return group_numbers; + } + } + private IMachineFactory machineFactory; private IDictionary mapping; private int group_count; private bool refsInitialized; private string [] group_names; - + private int [] group_numbers; // protected members -- 2.25.1