Skip to content

Commit dcae0f9

Browse files
Remove XmlDependencies.fileRegularExpressions
Internally, only Dependencies.xml files are matched, so we can use the more performant file-matching pattern here. The public API remains unchanged and only supports regex for now.
1 parent 8b3b7fb commit dcae0f9

File tree

5 files changed

+11
-13
lines changed

5 files changed

+11
-13
lines changed

source/AndroidResolver/AndroidResolver.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@
5959
<Compile Include="src\CommandLine.cs" />
6060
<Compile Include="src\CommandLineDialog.cs" />
6161
<Compile Include="src\EmbeddedResource.cs" />
62+
<Compile Include="src\FileMatchPattern.cs" />
6263
<Compile Include="src\GradleResolver.cs" />
6364
<Compile Include="src\GradleTemplateResolver.cs" />
6465
<Compile Include="src\GradleWrapper.cs" />
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
namespace GooglePlayServices {
2+
public delegate bool FileMatchPattern(string filename);
3+
}

source/AndroidResolver/src/PlayServicesResolver.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ namespace GooglePlayServices {
1818
using System;
1919
using System.Collections.Generic;
2020
using System.IO;
21+
using System.Linq;
2122
using System.Text.RegularExpressions;
2223
using System.Threading;
2324
using System.Xml;
@@ -992,7 +993,7 @@ private static bool Initialize() {
992993
}
993994

994995
// Monitor Android dependency XML files to perform auto-resolution.
995-
AddAutoResolutionFilePatterns(xmlDependencies.fileRegularExpressions);
996+
autoResolveFilePatterns.Add(XmlDependencies.IsDependenciesFile);
996997

997998
svcSupport = PlayServicesSupport.CreateInstance(
998999
"PlayServicesResolver",
@@ -1079,15 +1080,16 @@ internal static void Log(string message, Google.LogLevel level = LogLevel.Info)
10791080
/// <summary>
10801081
/// Patterns of files that are monitored to trigger auto resolution.
10811082
/// </summary>
1082-
private static HashSet<Regex> autoResolveFilePatterns = new HashSet<Regex>();
1083+
private static HashSet<FileMatchPattern> autoResolveFilePatterns = new HashSet<FileMatchPattern>();
10831084

10841085
/// <summary>
10851086
/// Add file patterns to monitor to trigger auto resolution.
10861087
/// </summary>
10871088
/// <param name="patterns">Set of file patterns to monitor to trigger auto
10881089
/// resolution.</param>
10891090
public static void AddAutoResolutionFilePatterns(IEnumerable<Regex> patterns) {
1090-
autoResolveFilePatterns.UnionWith(patterns);
1091+
// Only regex patterns are supported in the public API, but a more performant default is used internally.
1092+
autoResolveFilePatterns.UnionWith(patterns.Select<Regex, FileMatchPattern>(p => p.IsMatch));
10911093
}
10921094

10931095
/// <summary>
@@ -1099,7 +1101,7 @@ private static bool CheckFilesForAutoResolution(HashSet<string> filesToCheck) {
10991101
bool resolve = false;
11001102
foreach (var asset in filesToCheck) {
11011103
foreach (var pattern in autoResolveFilePatterns) {
1102-
if (pattern.Match(asset).Success) {
1104+
if (pattern.Invoke(asset)) {
11031105
Log(String.Format("Found asset {0} matching {1}, attempting " +
11041106
"auto-resolution.",
11051107
asset, pattern.ToString()),

source/AndroidResolver/src/XmlDependencies.cs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,6 @@ namespace GooglePlayServices {
2828
/// </summary>
2929
internal class XmlDependencies {
3030

31-
/// <summary>
32-
/// Set of regular expressions that match files which contain dependency
33-
/// specifications.
34-
/// </summary>
35-
internal HashSet<Regex> fileRegularExpressions = new HashSet<Regex> {
36-
new Regex(@".*[/\\]Editor[/\\].*Dependencies\.xml$")
37-
};
38-
3931
/// <summary>
4032
/// Human readable name for dependency files managed by this class.
4133
/// </summary>

source/IOSResolver/src/IOSResolver.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1939,7 +1939,7 @@ private static void OnPostprocessAllAssets(string[] importedAssets,
19391939
var changedAssets = new List<string>(importedAssets);
19401940
changedAssets.AddRange(deletedAssets);
19411941
foreach (var asset in changedAssets) {
1942-
dependencyFileChanged = xmlDependencies.IsDependenciesFile(asset);
1942+
dependencyFileChanged = XmlDependencies.IsDependenciesFile(asset);
19431943
if (dependencyFileChanged) break;
19441944
}
19451945
if (dependencyFileChanged) RefreshXmlDependencies();

0 commit comments

Comments
 (0)