diff --git a/configure.REMOVED.git-id b/configure.REMOVED.git-id index 087dddf6e9..d7ae48f794 100644 --- a/configure.REMOVED.git-id +++ b/configure.REMOVED.git-id @@ -1 +1 @@ -1895650fb1b5a365ada5bcdf3fef86a448da51d2 \ No newline at end of file +08afe9df2791baac02e8201b01cce1aca3beb124 \ No newline at end of file diff --git a/configure.ac.REMOVED.git-id b/configure.ac.REMOVED.git-id index 2af5adf10d..509df77bc6 100644 --- a/configure.ac.REMOVED.git-id +++ b/configure.ac.REMOVED.git-id @@ -1 +1 @@ -2317c4f2abf300ae9f452f4dbfd8b9d63c944e1c \ No newline at end of file +4fa615ca8fe030cfede44041b86cf5bfc38aceaf \ No newline at end of file diff --git a/external/referencesource/mscorlib/system/globalization/datetimeparse.cs.REMOVED.git-id b/external/referencesource/mscorlib/system/globalization/datetimeparse.cs.REMOVED.git-id index 737703de67..744e5612e0 100644 --- a/external/referencesource/mscorlib/system/globalization/datetimeparse.cs.REMOVED.git-id +++ b/external/referencesource/mscorlib/system/globalization/datetimeparse.cs.REMOVED.git-id @@ -1 +1 @@ -530bd396504a300e1f44e8bb369913299172f01f \ No newline at end of file +3db9a4bafdb7398647430f25ef9f145d369259ca \ No newline at end of file diff --git a/mcs/build/common/Consts.cs b/mcs/build/common/Consts.cs index 93f00f19d9..60a4ecdf3a 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 = "4.2.1.0"; + public const string MonoVersion = "4.2.2.0"; 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/System.Data/System.Data.SqlClient/SqlDataReader.cs b/mcs/class/System.Data/System.Data.SqlClient/SqlDataReader.cs index 1b7d3e867c..1f3f02efb5 100644 --- a/mcs/class/System.Data/System.Data.SqlClient/SqlDataReader.cs +++ b/mcs/class/System.Data/System.Data.SqlClient/SqlDataReader.cs @@ -1263,20 +1263,29 @@ namespace System.Data.SqlClient throw new ArgumentNullException ("values"); int len = values.Length; - int bigDecimalIndex = command.Tds.ColumnValues.BigDecimalIndex; + var tds = command.Tds; + int columns = Math.Min (len, tds.Columns.Count); - // If a four-byte decimal is stored, then we can't convert to - // a native type. Throw an OverflowException. - if (bigDecimalIndex >= 0 && bigDecimalIndex < len) - throw new OverflowException (); - try { - command.Tds.ColumnValues.CopyTo (0, values, 0, - len > command.Tds.ColumnValues.Count ? command.Tds.ColumnValues.Count : len); - } catch (TdsInternalException ex) { - command.Connection.Close (); - throw SqlException.FromTdsInternalException ((TdsInternalException) ex); + if ((command.CommandBehavior & CommandBehavior.SequentialAccess) != 0) { + for (int i = 0; i < columns; ++i) { + values [i] = tds.GetSequentialColumnValue (i); + } + } else { + int bigDecimalIndex = tds.ColumnValues.BigDecimalIndex; + + // If a four-byte decimal is stored, then we can't convert to + // a native type. Throw an OverflowException. + if (bigDecimalIndex >= 0 && bigDecimalIndex < len) + throw new OverflowException (); + try { + tds.ColumnValues.CopyTo (0, values, 0, columns); + } catch (TdsInternalException ex) { + command.Connection.Close (); + throw SqlException.FromTdsInternalException ((TdsInternalException)ex); + } } - return (len < FieldCount ? len : FieldCount); + + return columns; } diff --git a/mcs/class/corlib/ReferenceSources/DefaultBinder.cs b/mcs/class/corlib/ReferenceSources/DefaultBinder.cs index 9f2a2d6808..074e754b95 100644 --- a/mcs/class/corlib/ReferenceSources/DefaultBinder.cs +++ b/mcs/class/corlib/ReferenceSources/DefaultBinder.cs @@ -36,7 +36,10 @@ namespace System return false; var from = Type.GetTypeCode (source); - switch (Type.GetTypeCode (target)) { + var to = Type.GetTypeCode (target); + if (from == to && source.IsPrimitive) + return true; + switch (to) { case TypeCode.Char: switch (from) { case TypeCode.Byte: @@ -146,4 +149,4 @@ namespace System return st == type || CanConvertPrimitive ((RuntimeType) st, type); } } -} \ No newline at end of file +} diff --git a/mcs/class/corlib/System/Delegate.cs b/mcs/class/corlib/System/Delegate.cs index 91eecdccb9..3f65556559 100644 --- a/mcs/class/corlib/System/Delegate.cs +++ b/mcs/class/corlib/System/Delegate.cs @@ -102,17 +102,7 @@ namespace System public MethodInfo Method { get { - if (method_info != null) { - return method_info; - } else { - if (method != IntPtr.Zero) { - if (!method_is_virtual) - method_info = (MethodInfo)MethodBase.GetMethodFromHandleNoGenericCheck (new RuntimeMethodHandle (method)); - else - method_info = GetVirtualMethod_internal (); - } - return method_info; - } + return GetMethodImpl (); } } @@ -511,7 +501,17 @@ namespace System protected virtual MethodInfo GetMethodImpl () { - return Method; + if (method_info != null) { + return method_info; + } else { + if (method != IntPtr.Zero) { + if (!method_is_virtual) + method_info = (MethodInfo)MethodBase.GetMethodFromHandleNoGenericCheck (new RuntimeMethodHandle (method)); + else + method_info = GetVirtualMethod_internal (); + } + return method_info; + } } // This is from ISerializable diff --git a/mcs/class/corlib/System/MulticastDelegate.cs b/mcs/class/corlib/System/MulticastDelegate.cs index 4941e7cea5..b09280ab52 100644 --- a/mcs/class/corlib/System/MulticastDelegate.cs +++ b/mcs/class/corlib/System/MulticastDelegate.cs @@ -33,6 +33,7 @@ using System.Collections; using System.Collections.Generic; +using System.Reflection; using System.Runtime.Serialization; using System.Runtime.InteropServices; @@ -112,6 +113,14 @@ namespace System return base.GetHashCode (); } + protected override MethodInfo GetMethodImpl () + { + if (delegates != null) + return delegates [delegates.Length - 1].Method; + + return base.GetMethodImpl (); + } + // // Return, in order of invocation, the invocation list // of a MulticastDelegate diff --git a/mcs/class/corlib/Test/System.Threading/ThreadTest.cs b/mcs/class/corlib/Test/System.Threading/ThreadTest.cs index 9bfc1c131e..01790cd0df 100644 --- a/mcs/class/corlib/Test/System.Threading/ThreadTest.cs +++ b/mcs/class/corlib/Test/System.Threading/ThreadTest.cs @@ -855,6 +855,32 @@ namespace MonoTests.System.Threading Assert.AreSame (Thread.GetNamedDataSlot ("te#st"), Thread.GetNamedDataSlot ("te#st"), "#2"); } + class DomainClass : MarshalByRefObject { + Thread m_thread; + bool success; + + public bool Run () { + m_thread = new Thread(ThreadProc); + m_thread.Start(Thread.CurrentThread); + m_thread.Join(); + return success; + } + + public void ThreadProc (object arg) { + success = m_thread == Thread.CurrentThread; + } + } + + [Test] + public void CurrentThread_Domains () + { + AppDomain ad = AppDomain.CreateDomain ("foo"); + ad.Load (typeof (DomainClass).Assembly.GetName ()); + var o = (DomainClass)ad.CreateInstanceAndUnwrap (typeof (DomainClass).Assembly.FullName, typeof (DomainClass).FullName); + Assert.IsTrue (o.Run ()); + AppDomain.Unload (ad); + } + void CheckIsRunning (string s, Thread t) { int c = counter; diff --git a/mcs/class/corlib/Test/System/TypeTest.cs.REMOVED.git-id b/mcs/class/corlib/Test/System/TypeTest.cs.REMOVED.git-id index 3d81b03ccd..2ac61bc2e2 100644 --- a/mcs/class/corlib/Test/System/TypeTest.cs.REMOVED.git-id +++ b/mcs/class/corlib/Test/System/TypeTest.cs.REMOVED.git-id @@ -1 +1 @@ -9f87bcd74d19a29f1b4e41b2d7171f2c1af2835c \ No newline at end of file +bc4d15d32cfe0aba953847153e27ae46f18e35c1 \ No newline at end of file diff --git a/mcs/class/lib/monolite/Mono.Security.dll.REMOVED.git-id b/mcs/class/lib/monolite/Mono.Security.dll.REMOVED.git-id index 7da2ec1311..e06fb70c0f 100644 --- a/mcs/class/lib/monolite/Mono.Security.dll.REMOVED.git-id +++ b/mcs/class/lib/monolite/Mono.Security.dll.REMOVED.git-id @@ -1 +1 @@ -06f7fdab7429fe3c9ed22771dfe9380d208f037d \ No newline at end of file +b937698af090202f18c31201001eb77a3e464dc5 \ No newline at end of file diff --git a/mcs/class/lib/monolite/System.Xml.dll.REMOVED.git-id b/mcs/class/lib/monolite/System.Xml.dll.REMOVED.git-id index 45b092c15f..be083f7ec7 100644 --- a/mcs/class/lib/monolite/System.Xml.dll.REMOVED.git-id +++ b/mcs/class/lib/monolite/System.Xml.dll.REMOVED.git-id @@ -1 +1 @@ -f41bbb4a396f59eec461720dfc065f676523d1c1 \ No newline at end of file +3fa77ec9258a44fd81c7433c3534093f2984d1cf \ No newline at end of file diff --git a/mcs/class/lib/monolite/System.dll.REMOVED.git-id b/mcs/class/lib/monolite/System.dll.REMOVED.git-id index 5c4e3b39c6..1175b6c9ac 100644 --- a/mcs/class/lib/monolite/System.dll.REMOVED.git-id +++ b/mcs/class/lib/monolite/System.dll.REMOVED.git-id @@ -1 +1 @@ -ff03cd74a2624bd0a4a51658bb41e7d90f3144c9 \ No newline at end of file +b656909fcd7c7447aa1b8639357c6c089a918a74 \ No newline at end of file diff --git a/mcs/class/lib/monolite/basic.exe.REMOVED.git-id b/mcs/class/lib/monolite/basic.exe.REMOVED.git-id index 6b38e331f0..55ce5947be 100644 --- a/mcs/class/lib/monolite/basic.exe.REMOVED.git-id +++ b/mcs/class/lib/monolite/basic.exe.REMOVED.git-id @@ -1 +1 @@ -d8009a94148589526c8dc39f0e1c0ca9e77217e8 \ No newline at end of file +ec8668e105a38b35bf91110fe79e06e0dca1ead6 \ No newline at end of file diff --git a/mcs/class/lib/monolite/mscorlib.dll.REMOVED.git-id b/mcs/class/lib/monolite/mscorlib.dll.REMOVED.git-id index 939fe40923..595dac3a09 100644 --- a/mcs/class/lib/monolite/mscorlib.dll.REMOVED.git-id +++ b/mcs/class/lib/monolite/mscorlib.dll.REMOVED.git-id @@ -1 +1 @@ -22fc25a9bdf68807d3d57dc73d711bbd3bc8bc79 \ No newline at end of file +47b95db8a26f7b940063993c07b77a5ee36746fe \ No newline at end of file diff --git a/mcs/mcs/expression.cs.REMOVED.git-id b/mcs/mcs/expression.cs.REMOVED.git-id index e2a5eaea34..e458e2fe6b 100644 --- a/mcs/mcs/expression.cs.REMOVED.git-id +++ b/mcs/mcs/expression.cs.REMOVED.git-id @@ -1 +1 @@ -f815830cd5626bb85f053420b1d6fcf19e0aeb2a \ No newline at end of file +3c2d3fbe2cac6adc7835cf53aa766fffd4381e86 \ No newline at end of file diff --git a/mcs/tests/test-null-operator-20.cs b/mcs/tests/test-null-operator-20.cs new file mode 100644 index 0000000000..d22f9624a0 --- /dev/null +++ b/mcs/tests/test-null-operator-20.cs @@ -0,0 +1,13 @@ +class M +{ + public static void Main () + { + string s = null; + s?.CompareTo ("xx").CompareTo(s?.EndsWith ("x")).GetHashCode (); + + string s1 = "abcd"; + string s2 = null; + + var idx = s1.Substring(1)[s2?.GetHashCode () ?? 0].GetHashCode (); + } +} diff --git a/mcs/tests/ver-il-net_4_5.xml.REMOVED.git-id b/mcs/tests/ver-il-net_4_5.xml.REMOVED.git-id index fbb1b18ba7..dfc18e7ac6 100644 --- a/mcs/tests/ver-il-net_4_5.xml.REMOVED.git-id +++ b/mcs/tests/ver-il-net_4_5.xml.REMOVED.git-id @@ -1 +1 @@ -08b0ee8ce9da391ffa51e1cc3eb0a3611adf5b5e \ No newline at end of file +7e6d08d8664395f0f877e388bd40276cefe0c2e9 \ No newline at end of file diff --git a/mono/metadata/sgen-mono.c b/mono/metadata/sgen-mono.c index b836a839b9..eae97dabd4 100644 --- a/mono/metadata/sgen-mono.c +++ b/mono/metadata/sgen-mono.c @@ -2339,6 +2339,8 @@ sgen_client_scan_thread_data (void *start_nursery, void *end_nursery, gboolean p FOREACH_THREAD (info) { int skip_reason = 0; + void *aligned_stack_start = (void*)(mword) ALIGN_TO ((mword)info->client_info.stack_start, SIZEOF_VOID_P); + if (info->client_info.skip) { SGEN_LOG (3, "Skipping dead thread %p, range: %p-%p, size: %zd", info, info->client_info.stack_start, info->client_info.stack_end, (char*)info->client_info.stack_end - (char*)info->client_info.stack_start); skip_reason = 1; @@ -2358,13 +2360,13 @@ sgen_client_scan_thread_data (void *start_nursery, void *end_nursery, gboolean p g_assert (info->client_info.suspend_done); SGEN_LOG (3, "Scanning thread %p, range: %p-%p, size: %zd, pinned=%zd", info, info->client_info.stack_start, info->client_info.stack_end, (char*)info->client_info.stack_end - (char*)info->client_info.stack_start, sgen_get_pinned_count ()); if (mono_gc_get_gc_callbacks ()->thread_mark_func && !conservative_stack_mark) { - mono_gc_get_gc_callbacks ()->thread_mark_func (info->client_info.runtime_data, info->client_info.stack_start, info->client_info.stack_end, precise, &ctx); + mono_gc_get_gc_callbacks ()->thread_mark_func (info->client_info.runtime_data, aligned_stack_start, info->client_info.stack_end, precise, &ctx); } else if (!precise) { if (!conservative_stack_mark) { fprintf (stderr, "Precise stack mark not supported - disabling.\n"); conservative_stack_mark = TRUE; } - sgen_conservatively_pin_objects_from (info->client_info.stack_start, info->client_info.stack_end, start_nursery, end_nursery, PIN_TYPE_STACK); + sgen_conservatively_pin_objects_from (aligned_stack_start, info->client_info.stack_end, start_nursery, end_nursery, PIN_TYPE_STACK); } if (!precise) { diff --git a/mono/metadata/threadpool-ms.c b/mono/metadata/threadpool-ms.c index 674340557a..cd7b033f7e 100644 --- a/mono/metadata/threadpool-ms.c +++ b/mono/metadata/threadpool-ms.c @@ -480,11 +480,13 @@ domain_get_next (ThreadPoolDomain *current) return tpdomain; } -static void +/* return TRUE if timeout, FALSE otherwise (worker unpark or interrupt) */ +static gboolean worker_park (void) { mono_cond_t cond; MonoInternalThread *thread = mono_thread_internal_current (); + gboolean timeout = FALSE; mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_THREADPOOL, "[%p] current worker parking", GetCurrentThreadId ()); @@ -495,10 +497,17 @@ worker_park (void) mono_mutex_lock (&threadpool->active_threads_lock); if (!mono_runtime_is_shutting_down ()) { + static gpointer rand_handle = NULL; + + if (!rand_handle) + rand_handle = rand_create (); + g_assert (rand_handle); + g_ptr_array_add (threadpool->parked_threads, &cond); g_ptr_array_remove_fast (threadpool->working_threads, thread); - mono_cond_wait (&cond, &threadpool->active_threads_lock); + if (mono_cond_timedwait_ms (&cond, &threadpool->active_threads_lock, rand_next (rand_handle, 5 * 1000, 60 * 1000)) != 0) + timeout = TRUE; g_ptr_array_add (threadpool->working_threads, thread); g_ptr_array_remove (threadpool->parked_threads, &cond); @@ -511,6 +520,8 @@ worker_park (void) mono_cond_destroy (&cond); mono_trace (G_LOG_LEVEL_DEBUG, MONO_TRACE_THREADPOOL, "[%p] current worker unparking", GetCurrentThreadId ()); + + return timeout; } static gboolean @@ -585,13 +596,15 @@ worker_thread (gpointer data) } if (retire || !(tpdomain = domain_get_next (previous_tpdomain))) { + gboolean timeout; + COUNTER_ATOMIC (counter, { counter._.working --; counter._.parked ++; }); mono_mutex_unlock (&threadpool->domains_lock); - worker_park (); + timeout = worker_park (); mono_mutex_lock (&threadpool->domains_lock); COUNTER_ATOMIC (counter, { @@ -599,6 +612,9 @@ worker_thread (gpointer data) counter._.parked --; }); + if (timeout) + break; + if (retire) retire = FALSE; diff --git a/mono/metadata/threads.c.REMOVED.git-id b/mono/metadata/threads.c.REMOVED.git-id index 230c7f529e..517c22c44e 100644 --- a/mono/metadata/threads.c.REMOVED.git-id +++ b/mono/metadata/threads.c.REMOVED.git-id @@ -1 +1 @@ -4b6a091a05719bcaeae9c139036b3b64e47d3685 \ No newline at end of file +6a8f7210854722081b142d053b3a793f67637e5e \ No newline at end of file diff --git a/mono/mini/Makefile.am b/mono/mini/Makefile.am index f7f9bc834e..d046a8fbd9 100644 --- a/mono/mini/Makefile.am +++ b/mono/mini/Makefile.am @@ -749,7 +749,7 @@ EXTRA_DIST = TestDriver.cs \ Makefile.am.in version.h: Makefile - echo "#define FULL_VERSION \"Stable 4.2.1.124/39edf24\"" > version.h + echo "#define FULL_VERSION \"Stable 4.2.2.10/7b87787\"" > version.h # Utility target for patching libtool to speed up linking patch-libtool: diff --git a/mono/mini/Makefile.am.in b/mono/mini/Makefile.am.in index f7f9bc834e..d046a8fbd9 100755 --- a/mono/mini/Makefile.am.in +++ b/mono/mini/Makefile.am.in @@ -749,7 +749,7 @@ EXTRA_DIST = TestDriver.cs \ Makefile.am.in version.h: Makefile - echo "#define FULL_VERSION \"Stable 4.2.1.124/39edf24\"" > version.h + echo "#define FULL_VERSION \"Stable 4.2.2.10/7b87787\"" > version.h # Utility target for patching libtool to speed up linking patch-libtool: diff --git a/mono/mini/Makefile.in.REMOVED.git-id b/mono/mini/Makefile.in.REMOVED.git-id index 01c5e8cb6b..67ea6c1d97 100644 --- a/mono/mini/Makefile.in.REMOVED.git-id +++ b/mono/mini/Makefile.in.REMOVED.git-id @@ -1 +1 @@ -3cfd458f71bd744fd88bb6d83cb1577e532349ed \ No newline at end of file +4b2d84dd6668bd0561add9df9659b3a3dbe4586b \ No newline at end of file diff --git a/mono/mini/aot-tests.cs b/mono/mini/aot-tests.cs index 98bd905faf..54fc93f572 100644 --- a/mono/mini/aot-tests.cs +++ b/mono/mini/aot-tests.cs @@ -291,4 +291,112 @@ class Tests return 1; return 0; } + + enum LongEnum : ulong { + A = 1 + } + + public static int test_0_long_enum_eq_comparer () { + var c = EqualityComparer.Default; + c.GetHashCode (LongEnum.A); + return 0; + } + + enum UInt32Enum : uint { + A = 1 + } + + enum Int32Enum : int { + A = 1 + } + + enum Int16Enum : short { + A = 1 + } + + enum UInt16Enum : ushort { + A = 1 + } + + enum Int8Enum : sbyte { + A = 1 + } + + enum UInt8Enum : byte { + A = 1 + } + + public static int test_0_int_enum_eq_comparer () { + var t1 = new Dictionary (); + t1 [Int32Enum.A] = "foo"; + + var t2 = new Dictionary (); + t2 [UInt32Enum.A] = "foo"; + + var t3 = new Dictionary (); + t3 [UInt16Enum.A] = "foo"; + + var t4 = new Dictionary (); + t4 [Int16Enum.A] = "foo"; + + var t5 = new Dictionary (); + t5 [Int8Enum.A] = "foo"; + + var t6 = new Dictionary (); + t6 [UInt8Enum.A] = "foo"; + + return 0; + } + + public static int test_0_array_accessor_runtime_invoke_ref () { + var t = typeof (string[]); + var arr = Array.CreateInstance (typeof (string), 1); + arr.GetType ().GetMethod ("Set").Invoke (arr, new object [] { 0, "A" }); + var res = (string)arr.GetType ().GetMethod ("Get").Invoke (arr, new object [] { 0 }); + if (res != "A") + return 1; + return 0; + } + + public static void SetArrayValue_ (T[] values) { + values.Select (x => x).ToArray (); + } + + public static int test_0_delegate_invoke_wrappers_gsharedvt () { + var enums = new LongEnum [] { LongEnum.A }; + SetArrayValue_ (enums); + return 0; + } + + struct LargeStruct { + public int a, b, c, d; + } + + [MethodImplAttribute (MethodImplOptions.NoInlining)] + public static bool GetHasValue(T? value) where T : struct + { + return value.HasValue; + } + + [Category ("DYNCALL")] + public static int test_0_large_nullable_invoke () { + var s = new LargeStruct () { a = 1, b = 2, c = 3, d = 4 }; + + GetHasValue (s); + +#if __MOBILE__ + var m = typeof(AotTests).GetMethod("GetHasValue", BindingFlags.Static | BindingFlags.Public); +#else + var m = typeof(Tests).GetMethod("GetHasValue", BindingFlags.Static | BindingFlags.Public); +#endif + + Type type = typeof (LargeStruct?).GetGenericArguments () [0]; + bool b1 = (bool)m.MakeGenericMethod (new Type[] {type}).Invoke (null, new object[] { s }); + if (!b1) + return 1; + bool b2 = (bool)m.MakeGenericMethod (new Type[] {type}).Invoke (null, new object[] { null }); + if (b2) + return 2; + return 0; + } } diff --git a/mono/mini/driver.c b/mono/mini/driver.c index 884d4a82ae..0cc353cfca 100644 --- a/mono/mini/driver.c +++ b/mono/mini/driver.c @@ -58,6 +58,9 @@ #include #include "version.h" #include "debugger-agent.h" +#if TARGET_OSX +# include +#endif static FILE *mini_stats_fd; @@ -1462,6 +1465,26 @@ switch_gc (char* argv[], const char* target_gc) #endif } +#ifdef TARGET_OSX + +/* + * tries to increase the minimum number of files, if the number is below 1024 + */ +static void +darwin_change_default_file_handles () +{ + struct rlimit limit; + + if (getrlimit (RLIMIT_NOFILE, &limit) == 0){ + if (limit.rlim_cur < 1024){ + limit.rlim_cur = MAX(1024,limit.rlim_cur); + setrlimit (RLIMIT_NOFILE, &limit); + } + } +} + +#endif + /** * mono_main: * @argc: number of arguments in the argv array @@ -1514,6 +1537,10 @@ mono_main (int argc, char* argv[]) setlocale (LC_ALL, ""); +#if TARGET_OSX + darwin_change_default_file_handles (); +#endif + if (g_getenv ("MONO_NO_SMP")) mono_set_use_smp (FALSE); diff --git a/mono/mini/mini-runtime.c.REMOVED.git-id b/mono/mini/mini-runtime.c.REMOVED.git-id index 7321da7dda..601ea71d8a 100644 --- a/mono/mini/mini-runtime.c.REMOVED.git-id +++ b/mono/mini/mini-runtime.c.REMOVED.git-id @@ -1 +1 @@ -b4605733bb4bb4fa16d13db526cb439680307bba \ No newline at end of file +4ebbe548d71b7a3556b34b718274beb4d108c38a \ No newline at end of file diff --git a/mono/mini/version.h b/mono/mini/version.h index 7c1cbd81ee..7ae695d55d 100644 --- a/mono/mini/version.h +++ b/mono/mini/version.h @@ -1 +1 @@ -#define FULL_VERSION "Stable 4.2.1.124/39edf24" +#define FULL_VERSION "Stable 4.2.2.10/7b87787" diff --git a/mono/profiler/Makefile.am b/mono/profiler/Makefile.am index 3e1961e996..97501856d3 100644 --- a/mono/profiler/Makefile.am +++ b/mono/profiler/Makefile.am @@ -19,7 +19,7 @@ if HAVE_VTUNE vtune_lib = libmono-profiler-vtune.la endif -lib_LTLIBRARIES = libmono-profiler-aot.la libmono-profiler-iomap.la libmono-profiler-log.la $(vtune_lib) +lib_LTLIBRARIES = libmono-profiler-aot.la libmono-profiler-iomap.la libmono-profiler-log.la libmono-profiler-log-static.la $(vtune_lib) if PLATFORM_DARWIN libmono_profiler_log_la_LDFLAGS = -Wl,-undefined -Wl,suppress -Wl,-flat_namespace @@ -68,6 +68,14 @@ libmono_profiler_vtune_la_CFLAGS = $(VTUNE_CFLAGS) libmono_profiler_vtune_la_LIBADD = $(VTUNE_LIBS) $(LIBMONO) $(GLIB_LIBS) $(LIBICONV) endif +# The log profile uses eglib functions, so it needs to be linked against +# libeglib in shared mode, but not in static mode, since that would +# leads to duplicate symbols when it is linked into an app which +# also uses eglib (e.g. the runtime). Automake doesn't support this +# functionality, so create a separate static version of the library. +libmono_profiler_log_static_la_SOURCES = proflog.c +libmono_profiler_log_static_la_LDFLAGS = -static + mprof_report_SOURCES = decode.c mprof_report_LDADD = $(Z_LIBS) $(GLIB_LIBS) $(LIBICONV) diff --git a/mono/profiler/Makefile.in b/mono/profiler/Makefile.in index 3f60220528..6528f17c91 100644 --- a/mono/profiler/Makefile.in +++ b/mono/profiler/Makefile.in @@ -160,6 +160,16 @@ libmono_profiler_iomap_la_OBJECTS = \ $(am_libmono_profiler_iomap_la_OBJECTS) @DISABLE_LIBRARIES_FALSE@@DISABLE_PROFILER_FALSE@@HOST_WIN32_FALSE@am_libmono_profiler_iomap_la_rpath = -rpath \ @DISABLE_LIBRARIES_FALSE@@DISABLE_PROFILER_FALSE@@HOST_WIN32_FALSE@ $(libdir) +libmono_profiler_log_static_la_LIBADD = +am_libmono_profiler_log_static_la_OBJECTS = proflog.lo +libmono_profiler_log_static_la_OBJECTS = \ + $(am_libmono_profiler_log_static_la_OBJECTS) +libmono_profiler_log_static_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(AM_CFLAGS) $(CFLAGS) \ + $(libmono_profiler_log_static_la_LDFLAGS) $(LDFLAGS) -o $@ +@DISABLE_LIBRARIES_FALSE@@DISABLE_PROFILER_FALSE@@HOST_WIN32_FALSE@am_libmono_profiler_log_static_la_rpath = -rpath \ +@DISABLE_LIBRARIES_FALSE@@DISABLE_PROFILER_FALSE@@HOST_WIN32_FALSE@ $(libdir) libmono_profiler_log_la_DEPENDENCIES = $(am__DEPENDENCIES_3) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libmono_profiler_log_la_OBJECTS = proflog.lo @@ -221,10 +231,12 @@ am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libmono_profiler_aot_la_SOURCES) \ $(libmono_profiler_iomap_la_SOURCES) \ + $(libmono_profiler_log_static_la_SOURCES) \ $(libmono_profiler_log_la_SOURCES) \ $(libmono_profiler_vtune_la_SOURCES) $(mprof_report_SOURCES) DIST_SOURCES = $(libmono_profiler_aot_la_SOURCES) \ $(libmono_profiler_iomap_la_SOURCES) \ + $(libmono_profiler_log_static_la_SOURCES) \ $(libmono_profiler_log_la_SOURCES) \ $(am__libmono_profiler_vtune_la_SOURCES_DIST) \ $(mprof_report_SOURCES) @@ -471,7 +483,7 @@ AM_CPPFLAGS = \ $(GLIB_CFLAGS) @DISABLE_LIBRARIES_FALSE@@DISABLE_PROFILER_FALSE@@HAVE_VTUNE_TRUE@@HOST_WIN32_FALSE@vtune_lib = libmono-profiler-vtune.la -@DISABLE_LIBRARIES_FALSE@@DISABLE_PROFILER_FALSE@@HOST_WIN32_FALSE@lib_LTLIBRARIES = libmono-profiler-aot.la libmono-profiler-iomap.la libmono-profiler-log.la $(vtune_lib) +@DISABLE_LIBRARIES_FALSE@@DISABLE_PROFILER_FALSE@@HOST_WIN32_FALSE@lib_LTLIBRARIES = libmono-profiler-aot.la libmono-profiler-iomap.la libmono-profiler-log.la libmono-profiler-log-static.la $(vtune_lib) @DISABLE_LIBRARIES_FALSE@@DISABLE_PROFILER_FALSE@@HOST_WIN32_FALSE@@PLATFORM_ANDROID_TRUE@libmono_profiler_log_la_LDFLAGS = -avoid-version @DISABLE_LIBRARIES_FALSE@@DISABLE_PROFILER_FALSE@@HOST_WIN32_FALSE@@PLATFORM_DARWIN_TRUE@libmono_profiler_log_la_LDFLAGS = -Wl,-undefined -Wl,suppress -Wl,-flat_namespace @DISABLE_EXECUTABLES_FALSE@@SHARED_MONO_FALSE@@SUPPORT_BOEHM_TRUE@LIBMONO = $(top_builddir)/mono/mini/$(LIBMONO_LA) $(static_libs) @@ -496,6 +508,14 @@ libmono_profiler_log_la_LIBADD = $(LIBMONO) $(GLIB_LIBS) $(Z_LIBS) @HAVE_VTUNE_TRUE@libmono_profiler_vtune_la_SOURCES = mono-profiler-vtune.c @HAVE_VTUNE_TRUE@libmono_profiler_vtune_la_CFLAGS = $(VTUNE_CFLAGS) @HAVE_VTUNE_TRUE@libmono_profiler_vtune_la_LIBADD = $(VTUNE_LIBS) $(LIBMONO) $(GLIB_LIBS) $(LIBICONV) + +# The log profile uses eglib functions, so it needs to be linked against +# libeglib in shared mode, but not in static mode, since that would +# leads to duplicate symbols when it is linked into an app which +# also uses eglib (e.g. the runtime). Automake doesn't support this +# functionality, so create a separate static version of the library. +libmono_profiler_log_static_la_SOURCES = proflog.c +libmono_profiler_log_static_la_LDFLAGS = -static mprof_report_SOURCES = decode.c mprof_report_LDADD = $(Z_LIBS) $(GLIB_LIBS) $(LIBICONV) PLOG_TESTS_SRC = test-alloc.cs test-busy.cs test-monitor.cs test-excleave.cs \ @@ -587,6 +607,9 @@ libmono-profiler-aot.la: $(libmono_profiler_aot_la_OBJECTS) $(libmono_profiler_a libmono-profiler-iomap.la: $(libmono_profiler_iomap_la_OBJECTS) $(libmono_profiler_iomap_la_DEPENDENCIES) $(EXTRA_libmono_profiler_iomap_la_DEPENDENCIES) $(AM_V_CCLD)$(LINK) $(am_libmono_profiler_iomap_la_rpath) $(libmono_profiler_iomap_la_OBJECTS) $(libmono_profiler_iomap_la_LIBADD) $(LIBS) +libmono-profiler-log-static.la: $(libmono_profiler_log_static_la_OBJECTS) $(libmono_profiler_log_static_la_DEPENDENCIES) $(EXTRA_libmono_profiler_log_static_la_DEPENDENCIES) + $(AM_V_CCLD)$(libmono_profiler_log_static_la_LINK) $(am_libmono_profiler_log_static_la_rpath) $(libmono_profiler_log_static_la_OBJECTS) $(libmono_profiler_log_static_la_LIBADD) $(LIBS) + libmono-profiler-log.la: $(libmono_profiler_log_la_OBJECTS) $(libmono_profiler_log_la_DEPENDENCIES) $(EXTRA_libmono_profiler_log_la_DEPENDENCIES) $(AM_V_CCLD)$(libmono_profiler_log_la_LINK) $(am_libmono_profiler_log_la_rpath) $(libmono_profiler_log_la_OBJECTS) $(libmono_profiler_log_la_LIBADD) $(LIBS) diff --git a/mono/profiler/proflog.c.REMOVED.git-id b/mono/profiler/proflog.c.REMOVED.git-id index a6dca423bc..5d9867f1f9 100644 --- a/mono/profiler/proflog.c.REMOVED.git-id +++ b/mono/profiler/proflog.c.REMOVED.git-id @@ -1 +1 @@ -f72a4476c3a46011d9e92c33d1ed3a6034ee3647 \ No newline at end of file +d019b1cf2962cfa266f0b7e6f75396789273ef1c \ No newline at end of file diff --git a/mono/sgen/sgen-cardtable.c b/mono/sgen/sgen-cardtable.c index fb18def266..21da2d0df8 100644 --- a/mono/sgen/sgen-cardtable.c +++ b/mono/sgen/sgen-cardtable.c @@ -247,7 +247,7 @@ sgen_card_table_mark_range (mword address, mword size) SGEN_ASSERT (0, num_cards <= CARD_COUNT_IN_BYTES, "How did we get an object larger than the card table?"); if (end > SGEN_CARDTABLE_END) { memset (start, 1, SGEN_CARDTABLE_END - start); - memset (sgen_cardtable, 1, end - sgen_cardtable); + memset (sgen_cardtable, 1, end - SGEN_CARDTABLE_END); return; } #endif diff --git a/mono/sgen/sgen-gc.c.REMOVED.git-id b/mono/sgen/sgen-gc.c.REMOVED.git-id index a7a6677a39..af68748de5 100644 --- a/mono/sgen/sgen-gc.c.REMOVED.git-id +++ b/mono/sgen/sgen-gc.c.REMOVED.git-id @@ -1 +1 @@ -21fd9dab9e70d3456026645e195f183d4ffb2739 \ No newline at end of file +2fc21552caddc04ff91dd8a266149ea98d4f0dc0 \ No newline at end of file diff --git a/mono/tests/Makefile.am b/mono/tests/Makefile.am index 23c9d1075d..3665b11d96 100644 --- a/mono/tests/Makefile.am +++ b/mono/tests/Makefile.am @@ -182,6 +182,7 @@ BASE_TEST_CS_SRC= \ delegate10.cs \ delegate11.cs \ delegate12.cs \ + delegate13.cs \ remoting1.cs \ remoting2.cs \ remoting3.cs \ diff --git a/mono/tests/Makefile.in b/mono/tests/Makefile.in index 20cc56a390..fd64a25ec0 100644 --- a/mono/tests/Makefile.in +++ b/mono/tests/Makefile.in @@ -601,6 +601,7 @@ BASE_TEST_CS_SRC = \ delegate10.cs \ delegate11.cs \ delegate12.cs \ + delegate13.cs \ remoting1.cs \ remoting2.cs \ remoting3.cs \ diff --git a/mono/tests/delegate13.cs b/mono/tests/delegate13.cs new file mode 100644 index 0000000000..3a4cfd02a0 --- /dev/null +++ b/mono/tests/delegate13.cs @@ -0,0 +1,31 @@ +using System; + +public static class Program +{ + public static int Main () + { + Action d1 = new Action (Method1); + Action d2 = new Action (Method2); + Action d12 = d1 + d2; + Action d21 = d2 + d1; + + if (d1.Method.Name != "Method1") + return 1; + if (d2.Method.Name != "Method2") + return 2; + if (d12.Method.Name != "Method2") + return 3; + if (d21.Method.Name != "Method1") + return 4; + + return 0; + } + + public static void Method1 () + { + } + + public static void Method2 () + { + } +} \ No newline at end of file diff --git a/po/mcs/de.gmo b/po/mcs/de.gmo index fc95c32490..7ef0c674df 100644 Binary files a/po/mcs/de.gmo and b/po/mcs/de.gmo differ diff --git a/po/mcs/de.po.REMOVED.git-id b/po/mcs/de.po.REMOVED.git-id index c9a69a7ca1..f40698e37a 100644 --- a/po/mcs/de.po.REMOVED.git-id +++ b/po/mcs/de.po.REMOVED.git-id @@ -1 +1 @@ -3e835f3bc1a499969b1ba8432073eaf96cfe1005 \ No newline at end of file +1d929b1ba2d06509548b3aa70c1fb24d06087c0e \ No newline at end of file diff --git a/po/mcs/es.gmo b/po/mcs/es.gmo index 3ae36a521e..0baa2fc213 100644 Binary files a/po/mcs/es.gmo and b/po/mcs/es.gmo differ diff --git a/po/mcs/es.po.REMOVED.git-id b/po/mcs/es.po.REMOVED.git-id index 635e5ad623..6a24ea4ee0 100644 --- a/po/mcs/es.po.REMOVED.git-id +++ b/po/mcs/es.po.REMOVED.git-id @@ -1 +1 @@ -28b44b354af0dba167d05874ae1a09d29417eda7 \ No newline at end of file +a87738a936bb99fc19aec669debef384ab553bdb \ No newline at end of file diff --git a/po/mcs/ja.gmo b/po/mcs/ja.gmo index 67fbe555f9..b8a432b7bc 100644 Binary files a/po/mcs/ja.gmo and b/po/mcs/ja.gmo differ diff --git a/po/mcs/ja.po.REMOVED.git-id b/po/mcs/ja.po.REMOVED.git-id index 9dad71d0ad..344ce91770 100644 --- a/po/mcs/ja.po.REMOVED.git-id +++ b/po/mcs/ja.po.REMOVED.git-id @@ -1 +1 @@ -c6e4de5919e4185763e2cde8f71db3c462da5e53 \ No newline at end of file +2d540bc9e9610e2115706b4863b3faf6be94ae02 \ No newline at end of file diff --git a/po/mcs/mcs.pot b/po/mcs/mcs.pot index 2cf63ba367..42831f677c 100644 --- a/po/mcs/mcs.pot +++ b/po/mcs/mcs.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: mono 4.2.1\n" +"Project-Id-Version: mono 4.2.2\n" "Report-Msgid-Bugs-To: http://www.mono-project.com/Bugs\n" -"POT-Creation-Date: 2015-12-08 12:30-0500\n" +"POT-Creation-Date: 2015-12-18 19:12-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1359,8 +1359,8 @@ msgstr "" msgid "Internal compiler error: {0}" msgstr "" -#: mcs/mcs/ecore.cs:581 mcs/mcs/expression.cs:1874 mcs/mcs/expression.cs:7940 -#: mcs/mcs/expression.cs:7948 +#: mcs/mcs/ecore.cs:581 mcs/mcs/expression.cs:1874 mcs/mcs/expression.cs:7943 +#: mcs/mcs/expression.cs:7951 msgid "A constant value is expected" msgstr "" @@ -1978,160 +1978,160 @@ msgstr "" msgid "Use of unassigned out parameter `{0}'" msgstr "" -#: mcs/mcs/expression.cs:7119 +#: mcs/mcs/expression.cs:7122 #, csharp-format msgid "Cannot invoke a non-delegate type `{0}'" msgstr "" -#: mcs/mcs/expression.cs:7130 +#: mcs/mcs/expression.cs:7133 #, csharp-format msgid "The member `{0}' cannot be used as method or delegate" msgstr "" -#: mcs/mcs/expression.cs:7152 +#: mcs/mcs/expression.cs:7155 msgid "" "Do not directly call your base class Finalize method. It is called " "automatically from your destructor" msgstr "" -#: mcs/mcs/expression.cs:7154 +#: mcs/mcs/expression.cs:7157 msgid "" "Destructors and object.Finalize cannot be called directly. Consider calling " "IDisposable.Dispose if available" msgstr "" -#: mcs/mcs/expression.cs:7183 +#: mcs/mcs/expression.cs:7186 #, csharp-format msgid "" "The base call to method `{0}' cannot be dynamically dispatched. Consider " "casting the dynamic arguments or eliminating the base access" msgstr "" -#: mcs/mcs/expression.cs:7278 +#: mcs/mcs/expression.cs:7281 #, csharp-format msgid "`{0}': cannot explicitly call operator or accessor" msgstr "" -#: mcs/mcs/expression.cs:7468 +#: mcs/mcs/expression.cs:7471 #, csharp-format msgid "Unsafe type `{0}' cannot be used in an object creation expression" msgstr "" -#: mcs/mcs/expression.cs:7491 +#: mcs/mcs/expression.cs:7494 #, csharp-format msgid "" "Cannot create an instance of the variable type `{0}' because it does not " "have the new() constraint" msgstr "" -#: mcs/mcs/expression.cs:7497 +#: mcs/mcs/expression.cs:7500 #, csharp-format msgid "" "`{0}': cannot provide arguments when creating an instance of a variable type" msgstr "" -#: mcs/mcs/expression.cs:7506 +#: mcs/mcs/expression.cs:7509 #, csharp-format msgid "Cannot create an instance of the static class `{0}'" msgstr "" -#: mcs/mcs/expression.cs:7518 +#: mcs/mcs/expression.cs:7521 #, csharp-format msgid "Cannot create an instance of the abstract class or interface `{0}'" msgstr "" -#: mcs/mcs/expression.cs:7791 +#: mcs/mcs/expression.cs:7794 msgid "" "An implicitly typed local variable declarator cannot use an array initializer" msgstr "" -#: mcs/mcs/expression.cs:7954 mcs/mcs/expression.cs:7979 +#: mcs/mcs/expression.cs:7957 mcs/mcs/expression.cs:7982 #, csharp-format msgid "An array initializer of length `{0}' was expected" msgstr "" -#: mcs/mcs/expression.cs:7970 +#: mcs/mcs/expression.cs:7973 msgid "" "Array initializers can only be used in a variable or field initializer. Try " "using a new expression instead" msgstr "" -#: mcs/mcs/expression.cs:7987 +#: mcs/mcs/expression.cs:7990 msgid "A nested array initializer was expected" msgstr "" -#: mcs/mcs/expression.cs:8034 +#: mcs/mcs/expression.cs:8037 msgid "An expression tree cannot contain a multidimensional array initializer" msgstr "" -#: mcs/mcs/expression.cs:8070 +#: mcs/mcs/expression.cs:8073 msgid "Cannot create an array with a negative size" msgstr "" -#: mcs/mcs/expression.cs:8162 +#: mcs/mcs/expression.cs:8165 msgid "" "Can only use array initializer expressions to assign to array types. Try " "using a new expression instead" msgstr "" -#: mcs/mcs/expression.cs:8586 +#: mcs/mcs/expression.cs:8589 msgid "" "The type of an implicitly typed array cannot be inferred from the " "initializer. Try specifying array type explicitly" msgstr "" -#: mcs/mcs/expression.cs:8741 +#: mcs/mcs/expression.cs:8744 msgid "" "The `this' object cannot be used before all of its fields are assigned to" msgstr "" -#: mcs/mcs/expression.cs:8747 +#: mcs/mcs/expression.cs:8750 msgid "" "Keyword `this' is not valid in a static property, static method, or static " "field initializer" msgstr "" -#: mcs/mcs/expression.cs:8750 +#: mcs/mcs/expression.cs:8753 msgid "" "Anonymous methods inside structs cannot access instance members of `this'. " "Consider copying `this' to a local variable outside the anonymous method and " "using the local instead" msgstr "" -#: mcs/mcs/expression.cs:8753 +#: mcs/mcs/expression.cs:8756 msgid "Keyword `this' is not available in the current context" msgstr "" -#: mcs/mcs/expression.cs:8829 +#: mcs/mcs/expression.cs:8832 msgid "Cannot take the address of `this' because it is read-only" msgstr "" -#: mcs/mcs/expression.cs:8831 +#: mcs/mcs/expression.cs:8834 msgid "Cannot pass `this' as a ref or out argument because it is read-only" msgstr "" -#: mcs/mcs/expression.cs:8833 +#: mcs/mcs/expression.cs:8836 msgid "Cannot assign to `this' because it is read-only" msgstr "" -#: mcs/mcs/expression.cs:8901 +#: mcs/mcs/expression.cs:8904 msgid "The __arglist construct is valid only within a variable argument method" msgstr "" -#: mcs/mcs/expression.cs:8962 +#: mcs/mcs/expression.cs:8965 msgid "An expression tree cannot contain a method with variable arguments" msgstr "" -#: mcs/mcs/expression.cs:9236 +#: mcs/mcs/expression.cs:9239 msgid "The typeof operator cannot be used on the dynamic type" msgstr "" -#: mcs/mcs/expression.cs:9277 +#: mcs/mcs/expression.cs:9280 #, csharp-format msgid "`{0}': an attribute argument cannot use type parameters" msgstr "" -#: mcs/mcs/expression.cs:9492 +#: mcs/mcs/expression.cs:9495 #, csharp-format msgid "" "`{0}' does not have a predefined size, therefore sizeof can only be used in " @@ -2139,154 +2139,154 @@ msgid "" "SizeOf)" msgstr "" -#: mcs/mcs/expression.cs:9557 +#: mcs/mcs/expression.cs:9560 #, csharp-format msgid "Alias `{0}' not found" msgstr "" -#: mcs/mcs/expression.cs:9598 +#: mcs/mcs/expression.cs:9601 msgid "" "The namespace alias qualifier `::' cannot be used to invoke a method. " "Consider using `.' instead" msgstr "" -#: mcs/mcs/expression.cs:9688 +#: mcs/mcs/expression.cs:9691 msgid "Cannot perform member binding on `null' value" msgstr "" -#: mcs/mcs/expression.cs:9850 +#: mcs/mcs/expression.cs:9853 #, csharp-format msgid "" "`{0}': cannot reference a type through an expression. Consider using `{1}' " "instead" msgstr "" -#: mcs/mcs/expression.cs:9929 +#: mcs/mcs/expression.cs:9932 #, csharp-format msgid "A nested type cannot be specified through a type parameter `{0}'" msgstr "" -#: mcs/mcs/expression.cs:9937 +#: mcs/mcs/expression.cs:9940 #, csharp-format msgid "" "Alias `{0}' cannot be used with `::' since it denotes a type. Consider " "replacing `::' with `.'" msgstr "" -#: mcs/mcs/expression.cs:10006 +#: mcs/mcs/expression.cs:10009 #, csharp-format msgid "The nested type `{0}' does not exist in the type `{1}'" msgstr "" -#: mcs/mcs/expression.cs:10030 +#: mcs/mcs/expression.cs:10033 #, csharp-format msgid "" "Type `{0}' does not contain a definition for `{1}' and no extension method " "`{1}' of type `{0}' could be found. Are you missing {2}?" msgstr "" -#: mcs/mcs/expression.cs:10322 +#: mcs/mcs/expression.cs:10325 #, csharp-format msgid "Cannot apply indexing with [] to an expression of type `{0}'" msgstr "" -#: mcs/mcs/expression.cs:10459 +#: mcs/mcs/expression.cs:10462 #, csharp-format msgid "Wrong number of indexes `{0}' inside [], expected `{1}'" msgstr "" -#: mcs/mcs/expression.cs:10899 +#: mcs/mcs/expression.cs:10904 msgid "" "The indexer base access cannot be dynamically dispatched. Consider casting " "the dynamic arguments or eliminating the base access" msgstr "" -#: mcs/mcs/expression.cs:10989 +#: mcs/mcs/expression.cs:10994 msgid "An expression tree may not contain a base access" msgstr "" -#: mcs/mcs/expression.cs:11007 +#: mcs/mcs/expression.cs:11012 msgid "Keyword `base' is not available in a static method" msgstr "" -#: mcs/mcs/expression.cs:11009 +#: mcs/mcs/expression.cs:11014 msgid "Keyword `base' is not available in the current context" msgstr "" -#: mcs/mcs/expression.cs:11047 +#: mcs/mcs/expression.cs:11052 msgid "" "A property, indexer or dynamic member access may not be passed as `ref' or " "`out' parameter" msgstr "" -#: mcs/mcs/expression.cs:11392 +#: mcs/mcs/expression.cs:11397 #, csharp-format msgid "Array elements cannot be of type `{0}'" msgstr "" -#: mcs/mcs/expression.cs:11395 +#: mcs/mcs/expression.cs:11400 #, csharp-format msgid "Array elements cannot be of static type `{0}'" msgstr "" -#: mcs/mcs/expression.cs:11571 +#: mcs/mcs/expression.cs:11576 msgid "Cannot use a negative size with stackalloc" msgstr "" -#: mcs/mcs/expression.cs:11575 +#: mcs/mcs/expression.cs:11580 msgid "Cannot use stackalloc in finally or catch" msgstr "" -#: mcs/mcs/expression.cs:11735 +#: mcs/mcs/expression.cs:11740 #, csharp-format msgid "" "Member `{0}' cannot be initialized. An object initializer may only be used " "for fields, or properties" msgstr "" -#: mcs/mcs/expression.cs:11743 +#: mcs/mcs/expression.cs:11748 #, csharp-format msgid "" "Static field or property `{0}' cannot be assigned in an object initializer" msgstr "" -#: mcs/mcs/expression.cs:11847 +#: mcs/mcs/expression.cs:11852 msgid "Expression tree cannot contain a dictionary initializer" msgstr "" -#: mcs/mcs/expression.cs:11972 +#: mcs/mcs/expression.cs:11977 #, csharp-format msgid "" "A field or property `{0}' cannot be initialized with a collection object " "initializer because type `{1}' does not implement `{2}' interface" msgstr "" -#: mcs/mcs/expression.cs:11983 +#: mcs/mcs/expression.cs:11988 #, csharp-format msgid "Inconsistent `{0}' member declaration" msgstr "" -#: mcs/mcs/expression.cs:11991 +#: mcs/mcs/expression.cs:11996 #, csharp-format msgid "" "An object initializer includes more than one member `{0}' initialization" msgstr "" -#: mcs/mcs/expression.cs:12009 +#: mcs/mcs/expression.cs:12014 #, csharp-format msgid "Cannot initialize object of type `{0}' with a collection initializer" msgstr "" -#: mcs/mcs/expression.cs:12154 +#: mcs/mcs/expression.cs:12159 msgid "" "Object and collection initializers cannot be used to instantiate a delegate" msgstr "" -#: mcs/mcs/expression.cs:12362 +#: mcs/mcs/expression.cs:12367 msgid "Anonymous types cannot be used in this expression" msgstr "" -#: mcs/mcs/expression.cs:12456 +#: mcs/mcs/expression.cs:12461 #, csharp-format msgid "An anonymous type property `{0}' cannot be initialized with `{1}'" msgstr "" diff --git a/po/mcs/pt_BR.gmo b/po/mcs/pt_BR.gmo index 715a6a6051..6657f0cb72 100644 Binary files a/po/mcs/pt_BR.gmo and b/po/mcs/pt_BR.gmo differ diff --git a/po/mcs/pt_BR.po.REMOVED.git-id b/po/mcs/pt_BR.po.REMOVED.git-id index 95af6fdf51..1945b00254 100644 --- a/po/mcs/pt_BR.po.REMOVED.git-id +++ b/po/mcs/pt_BR.po.REMOVED.git-id @@ -1 +1 @@ -64d8a39b13e9397974c8baea2aa9b3cad380c1b4 \ No newline at end of file +87b1481e5fb0387bb972cc8ff65492ccec2a8ba3 \ No newline at end of file