From 6b5644868cfb8ecf5cea0c09bb755fe600bb5c1d Mon Sep 17 00:00:00 2001 From: "Xamarin Public Jenkins (auto-signing)" Date: Thu, 20 Sep 2018 08:19:51 +0000 Subject: [PATCH] Imported Upstream version 5.16.0.163 Former-commit-id: 108ef693596ba53323fc750a7d4fdc946d0f5322 --- configure.REMOVED.git-id | 2 +- configure.ac.REMOVED.git-id | 2 +- mcs/build/common/Consts.cs | 2 +- .../ConditionalWeakTable.cs | 102 +++++++++++++++++- .../ConditionalWeakTableTest.cs | 15 +++ .../Mono.Security.dll.REMOVED.git-id | 2 +- .../System.Configuration.dll.REMOVED.git-id | 2 +- .../1051600011/System.IO.Compression.dll | Bin 99328 -> 99328 bytes .../System.Numerics.dll.REMOVED.git-id | 2 +- .../System.Security.dll.REMOVED.git-id | 2 +- .../1051600011/System.Xml.dll.REMOVED.git-id | 2 +- .../1051600011/mcs.exe.REMOVED.git-id | 2 +- .../1051600011/mscorlib.dll.REMOVED.git-id | 2 +- .../Mono.Security.dll.REMOVED.git-id | 2 +- .../System.Configuration.dll.REMOVED.git-id | 2 +- .../1051600011/System.IO.Compression.dll | Bin 99328 -> 99328 bytes .../System.Numerics.dll.REMOVED.git-id | 2 +- .../System.Security.dll.REMOVED.git-id | 2 +- .../1051600011/System.Xml.dll.REMOVED.git-id | 2 +- .../1051600011/mcs.exe.REMOVED.git-id | 2 +- .../1051600011/mscorlib.dll.REMOVED.git-id | 2 +- .../Mono.Security.dll.REMOVED.git-id | 2 +- .../System.Configuration.dll.REMOVED.git-id | 2 +- .../1051600011/System.IO.Compression.dll | Bin 99328 -> 99328 bytes .../System.Numerics.dll.REMOVED.git-id | 2 +- .../System.Security.dll.REMOVED.git-id | 2 +- .../1051600011/System.Xml.dll.REMOVED.git-id | 2 +- .../1051600011/mcs.exe.REMOVED.git-id | 2 +- .../1051600011/mscorlib.dll.REMOVED.git-id | 2 +- mcs/tools/mono-api-html/FieldComparer.cs | 12 +++ mono/mini/version.h | 2 +- po/mcs/de.gmo | Bin 5406 -> 5406 bytes po/mcs/de.po.REMOVED.git-id | 2 +- po/mcs/es.gmo | Bin 16329 -> 16329 bytes po/mcs/es.po.REMOVED.git-id | 2 +- po/mcs/ja.gmo | Bin 20863 -> 20863 bytes po/mcs/ja.po.REMOVED.git-id | 2 +- po/mcs/mcs.pot | 4 +- po/mcs/pt_BR.gmo | Bin 72806 -> 72806 bytes po/mcs/pt_BR.po.REMOVED.git-id | 2 +- 40 files changed, 159 insertions(+), 32 deletions(-) diff --git a/configure.REMOVED.git-id b/configure.REMOVED.git-id index 1120a467f6..2854e0bff8 100644 --- a/configure.REMOVED.git-id +++ b/configure.REMOVED.git-id @@ -1 +1 @@ -a8a3dec4f955c24b4400ea1a0230a855d96b97cf \ No newline at end of file +328b4f0c7026773896f9b8f9431e22729d34c418 \ No newline at end of file diff --git a/configure.ac.REMOVED.git-id b/configure.ac.REMOVED.git-id index fa35e2fd4a..676f8e8845 100644 --- a/configure.ac.REMOVED.git-id +++ b/configure.ac.REMOVED.git-id @@ -1 +1 @@ -dae60eb72446d9ce5f213d3cb3678c206afba466 \ No newline at end of file +1acb4ecc41015019c7f394aaf1b1025246bc3a01 \ No newline at end of file diff --git a/mcs/build/common/Consts.cs b/mcs/build/common/Consts.cs index c74fd61d6b..c57ff9ccd0 100644 --- a/mcs/build/common/Consts.cs +++ b/mcs/build/common/Consts.cs @@ -34,7 +34,7 @@ static class Consts // Use these assembly version constants to make code more maintainable. // - public const string MonoVersion = "5.16.0.160"; + public const string MonoVersion = "5.16.0.163"; public const string MonoCompany = "Mono development team"; public const string MonoProduct = "Mono Common Language Infrastructure"; public const string MonoCopyright = "(c) Various Mono authors"; diff --git a/mcs/class/corlib/System.Runtime.CompilerServices/ConditionalWeakTable.cs b/mcs/class/corlib/System.Runtime.CompilerServices/ConditionalWeakTable.cs index 17474df4f9..aa37ecc424 100644 --- a/mcs/class/corlib/System.Runtime.CompilerServices/ConditionalWeakTable.cs +++ b/mcs/class/corlib/System.Runtime.CompilerServices/ConditionalWeakTable.cs @@ -31,6 +31,8 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Diagnostics; +using System.Threading; namespace System.Runtime.CompilerServices { @@ -375,11 +377,109 @@ namespace System.Runtime.CompilerServices } } + // IEnumerable implementation was copied from CoreCLR IEnumerator> IEnumerable>.GetEnumerator () { - throw new NotImplementedException (); + lock (_lock) + { + return size == 0 ? + ((IEnumerable>)Array.Empty>()).GetEnumerator() : + new Enumerator(this); + } } IEnumerator IEnumerable.GetEnumerator () => ((IEnumerable>)this).GetEnumerator (); + + /// Provides an enumerator for the table. + private sealed class Enumerator : IEnumerator> + { + // The enumerator would ideally hold a reference to the Container and the end index within that + // container. However, the safety of the CWT depends on the only reference to the Container being + // from the CWT itself; the Container then employs a two-phase finalization scheme, where the first + // phase nulls out that parent CWT's reference, guaranteeing that the second time it's finalized there + // can be no other existing references to it in use that would allow for concurrent usage of the + // native handles with finalization. We would break that if we allowed this Enumerator to hold a + // reference to the Container. Instead, the Enumerator holds a reference to the CWT rather than to + // the Container, and it maintains the CWT._activeEnumeratorRefCount field to track whether there + // are outstanding enumerators that have yet to be disposed/finalized. If there aren't any, the CWT + // behaves as it normally does. If there are, certain operations are affected, in particular resizes. + // Normally when the CWT is resized, it enumerates the contents of the table looking for indices that + // contain entries which have been collected or removed, and it frees those up, effectively moving + // down all subsequent entries in the container (not in the existing container, but in a replacement). + // This, however, would cause the enumerator's understanding of indices to break. So, as long as + // there is any outstanding enumerator, no compaction is performed. + + private ConditionalWeakTable _table; // parent table, set to null when disposed + private int _currentIndex = -1; // the current index into the container + private KeyValuePair _current; // the current entry set by MoveNext and returned from Current + + public Enumerator(ConditionalWeakTable table) + { + // Store a reference to the parent table and increase its active enumerator count. + _table = table; + _currentIndex = -1; + } + + ~Enumerator() { Dispose(); } + + public void Dispose() + { + // Use an interlocked operation to ensure that only one thread can get access to + // the _table for disposal and thus only decrement the ref count once. + ConditionalWeakTable table = Interlocked.Exchange(ref _table, null); + if (table != null) + { + // Ensure we don't keep the last current alive unnecessarily + _current = default; + + // Finalization is purely to decrement the ref count. We can suppress it now. + GC.SuppressFinalize(this); + } + } + + public bool MoveNext() + { + // Start by getting the current table. If it's already been disposed, it will be null. + ConditionalWeakTable table = _table; + if (table != null) + { + // Once have the table, we need to lock to synchronize with other operations on + // the table, like adding. + lock (table._lock) + { + var tombstone = GC.EPHEMERON_TOMBSTONE; + while (_currentIndex < table.data.Length - 1) + { + _currentIndex++; + var currentDataItem = table.data[_currentIndex]; + if (currentDataItem.key != null && currentDataItem.key != tombstone) + { + _current = new KeyValuePair((TKey)currentDataItem.key, (TValue)currentDataItem.value); + return true; + } + } + } + } + + // Nothing more to enumerate. + return false; + } + + public KeyValuePair Current + { + get + { + if (_currentIndex < 0) + { + ThrowHelper.ThrowInvalidOperationException_InvalidOperation_EnumOpCantHappen(); + } + return _current; + } + } + + object IEnumerator.Current => Current; + + public void Reset() { } + } } } diff --git a/mcs/class/corlib/Test/System.Runtime.CompilerServices/ConditionalWeakTableTest.cs b/mcs/class/corlib/Test/System.Runtime.CompilerServices/ConditionalWeakTableTest.cs index 1db16372c7..a016888ca2 100644 --- a/mcs/class/corlib/Test/System.Runtime.CompilerServices/ConditionalWeakTableTest.cs +++ b/mcs/class/corlib/Test/System.Runtime.CompilerServices/ConditionalWeakTableTest.cs @@ -29,6 +29,7 @@ using NUnit.Framework; using System; +using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; @@ -486,6 +487,20 @@ namespace MonoTests.System.Runtime.CompilerServices { Assert.IsTrue (table.Remove (key), "#2-" + i + "-k-" + key); } } + + [Test] + public void ConditionalWeakTableEnumerable() + { + var cwt = new ConditionalWeakTable(); + Assert.AreEqual(0, cwt.ToArray().Length); + cwt.Add("test1", "foo1"); + cwt.Add("test2", "foo2"); + Assert.AreEqual(2, cwt.ToArray().Length); + cwt.Remove("test1"); + Assert.AreEqual(1, cwt.ToArray().Length); + cwt.Remove("test2"); + Assert.AreEqual(0, cwt.ToArray().Length); + } } } diff --git a/mcs/class/lib/monolite-darwin/1051600011/Mono.Security.dll.REMOVED.git-id b/mcs/class/lib/monolite-darwin/1051600011/Mono.Security.dll.REMOVED.git-id index b237d67011..d8e3103b75 100644 --- a/mcs/class/lib/monolite-darwin/1051600011/Mono.Security.dll.REMOVED.git-id +++ b/mcs/class/lib/monolite-darwin/1051600011/Mono.Security.dll.REMOVED.git-id @@ -1 +1 @@ -9340050d3e1d0b1811befe3ea863039a29991c05 \ No newline at end of file +cbcd64cd77d070cd661473e23a4316790b765443 \ No newline at end of file diff --git a/mcs/class/lib/monolite-darwin/1051600011/System.Configuration.dll.REMOVED.git-id b/mcs/class/lib/monolite-darwin/1051600011/System.Configuration.dll.REMOVED.git-id index ad2631ac91..d74a526f5d 100644 --- a/mcs/class/lib/monolite-darwin/1051600011/System.Configuration.dll.REMOVED.git-id +++ b/mcs/class/lib/monolite-darwin/1051600011/System.Configuration.dll.REMOVED.git-id @@ -1 +1 @@ -b5679a6f8a5199ca74d7143777f0742a5e0a00fd \ No newline at end of file +f481c6fb894fd7af68e77220f2c7493b67a4fcd6 \ No newline at end of file diff --git a/mcs/class/lib/monolite-darwin/1051600011/System.IO.Compression.dll b/mcs/class/lib/monolite-darwin/1051600011/System.IO.Compression.dll index a7fe79cd4729274d8ee112e1f33b0f9c8fe26a5f..32ba0f9d2e6e6a75d6eb15415afcb21e010cc402 100644 GIT binary patch delta 58 zcmV-A0LA}+hz5X&29SsZSDnqOfsD0`0W=H{juTVNo|!sFv$CmQ{#T}Fx6lj$Y6b%{ Q04kTDeE}-BXA=RLaLMQw2mk;8 delta 58 zcmV-A0LA}+hz5X&29SsZFV$zxfsD0`0W=H{AWUigAgCirwa5^(J1~Ecx6lj$Y6b%^ Q04kTDeE}-BXA=RLaFw7HP5=M^ diff --git a/mcs/class/lib/monolite-darwin/1051600011/System.Numerics.dll.REMOVED.git-id b/mcs/class/lib/monolite-darwin/1051600011/System.Numerics.dll.REMOVED.git-id index 73f6d14c98..4c8f44edb2 100644 --- a/mcs/class/lib/monolite-darwin/1051600011/System.Numerics.dll.REMOVED.git-id +++ b/mcs/class/lib/monolite-darwin/1051600011/System.Numerics.dll.REMOVED.git-id @@ -1 +1 @@ -4131faad1c2afbbc0aab29999890df98c9a3b9bc \ No newline at end of file +9017348bf1891a3baea0087b4db14b694f7a3001 \ No newline at end of file diff --git a/mcs/class/lib/monolite-darwin/1051600011/System.Security.dll.REMOVED.git-id b/mcs/class/lib/monolite-darwin/1051600011/System.Security.dll.REMOVED.git-id index 7f978bdf9e..d1a78645a4 100644 --- a/mcs/class/lib/monolite-darwin/1051600011/System.Security.dll.REMOVED.git-id +++ b/mcs/class/lib/monolite-darwin/1051600011/System.Security.dll.REMOVED.git-id @@ -1 +1 @@ -c2cb4d0ef943e31143821b8ef5f784d0cfd595f4 \ No newline at end of file +dfd320e42236ccea92c0012a84d4a13d26467077 \ No newline at end of file diff --git a/mcs/class/lib/monolite-darwin/1051600011/System.Xml.dll.REMOVED.git-id b/mcs/class/lib/monolite-darwin/1051600011/System.Xml.dll.REMOVED.git-id index c7a3a26574..6f29e5f5c8 100644 --- a/mcs/class/lib/monolite-darwin/1051600011/System.Xml.dll.REMOVED.git-id +++ b/mcs/class/lib/monolite-darwin/1051600011/System.Xml.dll.REMOVED.git-id @@ -1 +1 @@ -7c241e20526e563aa837c5a6a5e06ff3d71ce0a8 \ No newline at end of file +0db065b891cf7add08bdba86fcc71a56615c35ba \ No newline at end of file diff --git a/mcs/class/lib/monolite-darwin/1051600011/mcs.exe.REMOVED.git-id b/mcs/class/lib/monolite-darwin/1051600011/mcs.exe.REMOVED.git-id index 4eb8301b80..7a34a8186a 100644 --- a/mcs/class/lib/monolite-darwin/1051600011/mcs.exe.REMOVED.git-id +++ b/mcs/class/lib/monolite-darwin/1051600011/mcs.exe.REMOVED.git-id @@ -1 +1 @@ -89ffdbff17871bc72d84d1750e31ab3f03dab725 \ No newline at end of file +d2ce1f246fb723c118ea12eee232a6b39800ecda \ No newline at end of file diff --git a/mcs/class/lib/monolite-darwin/1051600011/mscorlib.dll.REMOVED.git-id b/mcs/class/lib/monolite-darwin/1051600011/mscorlib.dll.REMOVED.git-id index 2f76c0acb5..1e07a4d9e9 100644 --- a/mcs/class/lib/monolite-darwin/1051600011/mscorlib.dll.REMOVED.git-id +++ b/mcs/class/lib/monolite-darwin/1051600011/mscorlib.dll.REMOVED.git-id @@ -1 +1 @@ -d8a0ffa13d365a4212d158f99ec3689f9d2d61e9 \ No newline at end of file +a0159ead83b6724f17857a322578e51f3817329d \ No newline at end of file diff --git a/mcs/class/lib/monolite-linux/1051600011/Mono.Security.dll.REMOVED.git-id b/mcs/class/lib/monolite-linux/1051600011/Mono.Security.dll.REMOVED.git-id index b237d67011..d8e3103b75 100644 --- a/mcs/class/lib/monolite-linux/1051600011/Mono.Security.dll.REMOVED.git-id +++ b/mcs/class/lib/monolite-linux/1051600011/Mono.Security.dll.REMOVED.git-id @@ -1 +1 @@ -9340050d3e1d0b1811befe3ea863039a29991c05 \ No newline at end of file +cbcd64cd77d070cd661473e23a4316790b765443 \ No newline at end of file diff --git a/mcs/class/lib/monolite-linux/1051600011/System.Configuration.dll.REMOVED.git-id b/mcs/class/lib/monolite-linux/1051600011/System.Configuration.dll.REMOVED.git-id index ad2631ac91..d74a526f5d 100644 --- a/mcs/class/lib/monolite-linux/1051600011/System.Configuration.dll.REMOVED.git-id +++ b/mcs/class/lib/monolite-linux/1051600011/System.Configuration.dll.REMOVED.git-id @@ -1 +1 @@ -b5679a6f8a5199ca74d7143777f0742a5e0a00fd \ No newline at end of file +f481c6fb894fd7af68e77220f2c7493b67a4fcd6 \ No newline at end of file diff --git a/mcs/class/lib/monolite-linux/1051600011/System.IO.Compression.dll b/mcs/class/lib/monolite-linux/1051600011/System.IO.Compression.dll index a7fe79cd4729274d8ee112e1f33b0f9c8fe26a5f..32ba0f9d2e6e6a75d6eb15415afcb21e010cc402 100644 GIT binary patch delta 58 zcmV-A0LA}+hz5X&29SsZSDnqOfsD0`0W=H{juTVNo|!sFv$CmQ{#T}Fx6lj$Y6b%{ Q04kTDeE}-BXA=RLaLMQw2mk;8 delta 58 zcmV-A0LA}+hz5X&29SsZFV$zxfsD0`0W=H{AWUigAgCirwa5^(J1~Ecx6lj$Y6b%^ Q04kTDeE}-BXA=RLaFw7HP5=M^ diff --git a/mcs/class/lib/monolite-linux/1051600011/System.Numerics.dll.REMOVED.git-id b/mcs/class/lib/monolite-linux/1051600011/System.Numerics.dll.REMOVED.git-id index 73f6d14c98..4c8f44edb2 100644 --- a/mcs/class/lib/monolite-linux/1051600011/System.Numerics.dll.REMOVED.git-id +++ b/mcs/class/lib/monolite-linux/1051600011/System.Numerics.dll.REMOVED.git-id @@ -1 +1 @@ -4131faad1c2afbbc0aab29999890df98c9a3b9bc \ No newline at end of file +9017348bf1891a3baea0087b4db14b694f7a3001 \ No newline at end of file diff --git a/mcs/class/lib/monolite-linux/1051600011/System.Security.dll.REMOVED.git-id b/mcs/class/lib/monolite-linux/1051600011/System.Security.dll.REMOVED.git-id index 7f978bdf9e..d1a78645a4 100644 --- a/mcs/class/lib/monolite-linux/1051600011/System.Security.dll.REMOVED.git-id +++ b/mcs/class/lib/monolite-linux/1051600011/System.Security.dll.REMOVED.git-id @@ -1 +1 @@ -c2cb4d0ef943e31143821b8ef5f784d0cfd595f4 \ No newline at end of file +dfd320e42236ccea92c0012a84d4a13d26467077 \ No newline at end of file diff --git a/mcs/class/lib/monolite-linux/1051600011/System.Xml.dll.REMOVED.git-id b/mcs/class/lib/monolite-linux/1051600011/System.Xml.dll.REMOVED.git-id index c7a3a26574..6f29e5f5c8 100644 --- a/mcs/class/lib/monolite-linux/1051600011/System.Xml.dll.REMOVED.git-id +++ b/mcs/class/lib/monolite-linux/1051600011/System.Xml.dll.REMOVED.git-id @@ -1 +1 @@ -7c241e20526e563aa837c5a6a5e06ff3d71ce0a8 \ No newline at end of file +0db065b891cf7add08bdba86fcc71a56615c35ba \ No newline at end of file diff --git a/mcs/class/lib/monolite-linux/1051600011/mcs.exe.REMOVED.git-id b/mcs/class/lib/monolite-linux/1051600011/mcs.exe.REMOVED.git-id index 4eb8301b80..7a34a8186a 100644 --- a/mcs/class/lib/monolite-linux/1051600011/mcs.exe.REMOVED.git-id +++ b/mcs/class/lib/monolite-linux/1051600011/mcs.exe.REMOVED.git-id @@ -1 +1 @@ -89ffdbff17871bc72d84d1750e31ab3f03dab725 \ No newline at end of file +d2ce1f246fb723c118ea12eee232a6b39800ecda \ No newline at end of file diff --git a/mcs/class/lib/monolite-linux/1051600011/mscorlib.dll.REMOVED.git-id b/mcs/class/lib/monolite-linux/1051600011/mscorlib.dll.REMOVED.git-id index 2f76c0acb5..1e07a4d9e9 100644 --- a/mcs/class/lib/monolite-linux/1051600011/mscorlib.dll.REMOVED.git-id +++ b/mcs/class/lib/monolite-linux/1051600011/mscorlib.dll.REMOVED.git-id @@ -1 +1 @@ -d8a0ffa13d365a4212d158f99ec3689f9d2d61e9 \ No newline at end of file +a0159ead83b6724f17857a322578e51f3817329d \ No newline at end of file diff --git a/mcs/class/lib/monolite-win32/1051600011/Mono.Security.dll.REMOVED.git-id b/mcs/class/lib/monolite-win32/1051600011/Mono.Security.dll.REMOVED.git-id index b237d67011..d8e3103b75 100644 --- a/mcs/class/lib/monolite-win32/1051600011/Mono.Security.dll.REMOVED.git-id +++ b/mcs/class/lib/monolite-win32/1051600011/Mono.Security.dll.REMOVED.git-id @@ -1 +1 @@ -9340050d3e1d0b1811befe3ea863039a29991c05 \ No newline at end of file +cbcd64cd77d070cd661473e23a4316790b765443 \ No newline at end of file diff --git a/mcs/class/lib/monolite-win32/1051600011/System.Configuration.dll.REMOVED.git-id b/mcs/class/lib/monolite-win32/1051600011/System.Configuration.dll.REMOVED.git-id index ad2631ac91..d74a526f5d 100644 --- a/mcs/class/lib/monolite-win32/1051600011/System.Configuration.dll.REMOVED.git-id +++ b/mcs/class/lib/monolite-win32/1051600011/System.Configuration.dll.REMOVED.git-id @@ -1 +1 @@ -b5679a6f8a5199ca74d7143777f0742a5e0a00fd \ No newline at end of file +f481c6fb894fd7af68e77220f2c7493b67a4fcd6 \ No newline at end of file diff --git a/mcs/class/lib/monolite-win32/1051600011/System.IO.Compression.dll b/mcs/class/lib/monolite-win32/1051600011/System.IO.Compression.dll index a7fe79cd4729274d8ee112e1f33b0f9c8fe26a5f..32ba0f9d2e6e6a75d6eb15415afcb21e010cc402 100644 GIT binary patch delta 58 zcmV-A0LA}+hz5X&29SsZSDnqOfsD0`0W=H{juTVNo|!sFv$CmQ{#T}Fx6lj$Y6b%{ Q04kTDeE}-BXA=RLaLMQw2mk;8 delta 58 zcmV-A0LA}+hz5X&29SsZFV$zxfsD0`0W=H{AWUigAgCirwa5^(J1~Ecx6lj$Y6b%^ Q04kTDeE}-BXA=RLaFw7HP5=M^ diff --git a/mcs/class/lib/monolite-win32/1051600011/System.Numerics.dll.REMOVED.git-id b/mcs/class/lib/monolite-win32/1051600011/System.Numerics.dll.REMOVED.git-id index 73f6d14c98..4c8f44edb2 100644 --- a/mcs/class/lib/monolite-win32/1051600011/System.Numerics.dll.REMOVED.git-id +++ b/mcs/class/lib/monolite-win32/1051600011/System.Numerics.dll.REMOVED.git-id @@ -1 +1 @@ -4131faad1c2afbbc0aab29999890df98c9a3b9bc \ No newline at end of file +9017348bf1891a3baea0087b4db14b694f7a3001 \ No newline at end of file diff --git a/mcs/class/lib/monolite-win32/1051600011/System.Security.dll.REMOVED.git-id b/mcs/class/lib/monolite-win32/1051600011/System.Security.dll.REMOVED.git-id index 7f978bdf9e..d1a78645a4 100644 --- a/mcs/class/lib/monolite-win32/1051600011/System.Security.dll.REMOVED.git-id +++ b/mcs/class/lib/monolite-win32/1051600011/System.Security.dll.REMOVED.git-id @@ -1 +1 @@ -c2cb4d0ef943e31143821b8ef5f784d0cfd595f4 \ No newline at end of file +dfd320e42236ccea92c0012a84d4a13d26467077 \ No newline at end of file diff --git a/mcs/class/lib/monolite-win32/1051600011/System.Xml.dll.REMOVED.git-id b/mcs/class/lib/monolite-win32/1051600011/System.Xml.dll.REMOVED.git-id index c7a3a26574..6f29e5f5c8 100644 --- a/mcs/class/lib/monolite-win32/1051600011/System.Xml.dll.REMOVED.git-id +++ b/mcs/class/lib/monolite-win32/1051600011/System.Xml.dll.REMOVED.git-id @@ -1 +1 @@ -7c241e20526e563aa837c5a6a5e06ff3d71ce0a8 \ No newline at end of file +0db065b891cf7add08bdba86fcc71a56615c35ba \ No newline at end of file diff --git a/mcs/class/lib/monolite-win32/1051600011/mcs.exe.REMOVED.git-id b/mcs/class/lib/monolite-win32/1051600011/mcs.exe.REMOVED.git-id index 4eb8301b80..7a34a8186a 100644 --- a/mcs/class/lib/monolite-win32/1051600011/mcs.exe.REMOVED.git-id +++ b/mcs/class/lib/monolite-win32/1051600011/mcs.exe.REMOVED.git-id @@ -1 +1 @@ -89ffdbff17871bc72d84d1750e31ab3f03dab725 \ No newline at end of file +d2ce1f246fb723c118ea12eee232a6b39800ecda \ No newline at end of file diff --git a/mcs/class/lib/monolite-win32/1051600011/mscorlib.dll.REMOVED.git-id b/mcs/class/lib/monolite-win32/1051600011/mscorlib.dll.REMOVED.git-id index 2f76c0acb5..1e07a4d9e9 100644 --- a/mcs/class/lib/monolite-win32/1051600011/mscorlib.dll.REMOVED.git-id +++ b/mcs/class/lib/monolite-win32/1051600011/mscorlib.dll.REMOVED.git-id @@ -1 +1 @@ -d8a0ffa13d365a4212d158f99ec3689f9d2d61e9 \ No newline at end of file +a0159ead83b6724f17857a322578e51f3817329d \ No newline at end of file diff --git a/mcs/tools/mono-api-html/FieldComparer.cs b/mcs/tools/mono-api-html/FieldComparer.cs index 535205b235..3c987768c1 100644 --- a/mcs/tools/mono-api-html/FieldComparer.cs +++ b/mcs/tools/mono-api-html/FieldComparer.cs @@ -56,6 +56,18 @@ namespace Xamarin.ApiDiff { change.AppendAdded ("[NonSerialized]\n"); } } + + var srcHasFieldMarshal = (source & FieldAttributes.HasFieldMarshal) != 0; + var tgtHasFieldMarshal = (target & FieldAttributes.HasFieldMarshal) != 0; + if (srcHasFieldMarshal != tgtHasFieldMarshal) { + // this is not a breaking change, so only render it if it changed. + if (srcHasFieldMarshal) { + change.AppendRemoved ("[MarshalAs]", false); + } else { + change.AppendAdded ("[MarshalAs]", false); + } + change.Append (Environment.NewLine); + } } // the visibility values are the same for MethodAttributes and FieldAttributes, so just use the same method. diff --git a/mono/mini/version.h b/mono/mini/version.h index 9757e1889d..6f35c2c16e 100644 --- a/mono/mini/version.h +++ b/mono/mini/version.h @@ -1 +1 @@ -#define FULL_VERSION "explicit/1b18f39" +#define FULL_VERSION "explicit/7dd65f7" diff --git a/po/mcs/de.gmo b/po/mcs/de.gmo index 88fc52a5e869f9d29fce5ca9eb0f127a25f11659..498f83dfec5ad6bb6c0702feb18a378d64004347 100644 GIT binary patch delta 15 WcmbQIHBW296D}qrgU!#lEVuwLss(re delta 15 WcmbQIHBW296D}r0)6LJgEVuwL!3BH( diff --git a/po/mcs/de.po.REMOVED.git-id b/po/mcs/de.po.REMOVED.git-id index 4dc58c58ba..0acbeaffc0 100644 --- a/po/mcs/de.po.REMOVED.git-id +++ b/po/mcs/de.po.REMOVED.git-id @@ -1 +1 @@ -c79de62e7047faa161d24ff1912a6c2ac71cb115 \ No newline at end of file +b23fe7a470845f34b505db09db50688cfca8f327 \ No newline at end of file diff --git a/po/mcs/es.gmo b/po/mcs/es.gmo index b354b71b0a7c1f2fd349cb3a1c8f2b6a89a925fd..8a967619bb39a04453d161cb8c6b6b69ecb3e236 100644 GIT binary patch delta 15 WcmX?Ef3kjqt|F6>!DfBMS#kh1>IJR< delta 15 WcmX?Ef3kjqt|F76>1KV!S#kh20R^%E diff --git a/po/mcs/es.po.REMOVED.git-id b/po/mcs/es.po.REMOVED.git-id index 91ed56057c..7f89bd07a2 100644 --- a/po/mcs/es.po.REMOVED.git-id +++ b/po/mcs/es.po.REMOVED.git-id @@ -1 +1 @@ -0a90ee9269b7b3bdb1dae367641177044a5284be \ No newline at end of file +4099b3cd62edc3c9968d3c37f3f63c8d8cc4b4cf \ No newline at end of file diff --git a/po/mcs/ja.gmo b/po/mcs/ja.gmo index f5ecc88955925846c999b0c18ca86c0fd3956c2f..8c7e7d4649e25f684286e13b04a8df527388fe14 100644 GIT binary patch delta 17 Ycmeyri1Gg-#trQ1OhyKqIn~Rw076&>3IG5A delta 17 Ycmeyri1Gg-#trQ1OopbLIn~Rw077pD4gdfE diff --git a/po/mcs/ja.po.REMOVED.git-id b/po/mcs/ja.po.REMOVED.git-id index 726a4ba8a6..e916c8e8f8 100644 --- a/po/mcs/ja.po.REMOVED.git-id +++ b/po/mcs/ja.po.REMOVED.git-id @@ -1 +1 @@ -1e28d035ed9a723fbeabc041fccf1cbc0d758970 \ No newline at end of file +0463c8ff274c22f2e78d9f7eb0bdaf0ba337a87d \ No newline at end of file diff --git a/po/mcs/mcs.pot b/po/mcs/mcs.pot index a6fa255aaa..ea7aa61751 100644 --- a/po/mcs/mcs.pot +++ b/po/mcs/mcs.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: mono 5.16.0.160\n" +"Project-Id-Version: mono 5.16.0.163\n" "Report-Msgid-Bugs-To: http://www.mono-project.com/Bugs\n" -"POT-Creation-Date: 2018-09-15 08:05+0000\n" +"POT-Creation-Date: 2018-09-20 08:05+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/po/mcs/pt_BR.gmo b/po/mcs/pt_BR.gmo index 356a170533fd36e512060b1d8cc1d48896a6d0a9..133c93d2656792cf47528af9546d9a65cceac034 100644 GIT binary patch delta 17 ZcmaF1gXP%{mJP8}nT!lJ$4_N%2LMZZ2Y>(o delta 17 ZcmaF1gXP%{mJP8}nG8)g$4_N%2LMZw2ZR6s diff --git a/po/mcs/pt_BR.po.REMOVED.git-id b/po/mcs/pt_BR.po.REMOVED.git-id index a4a1fcb599..3936cc1196 100644 --- a/po/mcs/pt_BR.po.REMOVED.git-id +++ b/po/mcs/pt_BR.po.REMOVED.git-id @@ -1 +1 @@ -8cb5d1b71ae515da2abb2ff33795521eae210424 \ No newline at end of file +497cad09608c61d200b09d20a1a347f533cdca93 \ No newline at end of file