Merge branch 'upstream'

Former-commit-id: 3c8d4df686be3d5684e7ae89fd3d688f23f24acc
This commit is contained in:
Xamarin Public Jenkins
2015-12-09 05:58:02 -05:00
33 changed files with 84 additions and 76 deletions

View File

@@ -1318,7 +1318,8 @@ namespace System
else {
abbrevs.Add (abbrev_index, sb.ToString ());
//Adding all the substrings too, as it seems to be used, at least for Africa/Windhoek
for (int j = 1; j < sb.Length; j++)
//j == sb.Length empty substring also needs to be added #31432
for (int j = 1; j <= sb.Length; j++)
abbrevs.Add (abbrev_index + j, sb.ToString (j, sb.Length - j));
abbrev_index = i + 1;
sb = new StringBuilder ();

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
f8f8e8e5ba7264993dba7738414a0123ab743cfe
06f7fdab7429fe3c9ed22771dfe9380d208f037d

View File

@@ -1 +1 @@
4e690a5fc430b0f2617d1e6ef0c3f48c60c2acf2
f41bbb4a396f59eec461720dfc065f676523d1c1

View File

@@ -1 +1 @@
3d129032906541b033f18089e67b70c7bfa0a13a
ff03cd74a2624bd0a4a51658bb41e7d90f3144c9

View File

@@ -1 +1 @@
32e21a2c8d84ae3b6a90e4eafcfb933ce24d0350
d8009a94148589526c8dc39f0e1c0ca9e77217e8

View File

@@ -1 +1 @@
ff1a5fc565b24ddfc0c76f0f19d1271343f59208
22fc25a9bdf68807d3d57dc73d711bbd3bc8bc79

View File

@@ -334,6 +334,9 @@ namespace Mono.Linker.Steps {
return;
MarkType (et);
if (argument.Value == null)
return;
foreach (var cac in (CustomAttributeArgument[]) argument.Value)
MarkWithResolvedScope ((TypeReference) cac.Value);
} else if (at.Namespace == "System" && at.Name == "Type") {
@@ -355,7 +358,6 @@ namespace Mono.Linker.Steps {
if ((git != null) && git.HasGenericArguments) {
foreach (var ga in git.GenericArguments)
MarkWithResolvedScope (ga);
return;
}
// we cannot set the Scope of a TypeSpecification but it's element type can be set
// e.g. System.String[] -> System.String

View File

@@ -129,15 +129,24 @@ namespace Mono.Linker.Steps {
return new Regex (pattern.Replace(".", @"\.").Replace("*", "(.*)"));
}
void MatchType (TypeDefinition type, Regex regex, XPathNavigator nav)
{
if (regex.Match (type.FullName).Success)
ProcessType (type, nav);
if (!type.HasNestedTypes)
return;
foreach (var nt in type.NestedTypes)
MatchType (nt, regex, nav);
}
void ProcessTypePattern (string fullname, AssemblyDefinition assembly, XPathNavigator nav)
{
Regex regex = CreateRegexFromPattern (fullname);
foreach (TypeDefinition type in assembly.MainModule.Types) {
if (!regex.Match (type.FullName).Success)
continue;
ProcessType (type, nav);
MatchType (type, regex, nav);
}
}